输入无效方程时 Python 计算器程序崩溃

标签 python input calculator

我遇到了关于我制作的 python 计算器的问题。我对 python 还很陌生,所以请不要对我太挑剔。我这样做是为了在输入以下等式时它不会崩溃:8*d、8/0、dajf。但是,当用户输入诸如:/7、*e 或 *6 之类的内容时。它崩溃了。当输入这样的无效方程时,如何防止它崩溃?假设,它只会响应“警告:无效方程”

我当前的代码:

valid_chars = "0123456789-+/* \n";
while True:
    x = "x="
    y = input(" >> ")
     x += y
     if any(c not in valid_chars for c in y):
         print("WARNING: Invalid Equation")
         continue
     try:
         exec(x)
     except ZeroDivisionError:
         print ("WARNING: Invalid Equation")
     else:
    print(x)

提前致谢!

最佳答案

当您输入无效输入时,实际引发的异常是SyntaxError

 >> -8*
Traceback (most recent call last):
  File "Test.py", line 19, in <module>
    exec(x)
  File "<string>", line 1
    x=-8*
        ^
SyntaxError: invalid syntax

所以,你也可以简单地捕获SyntaxError,就像这样

 try:
     exec(x)
 except (ZeroDivisionError, SyntaxError):
     print ("WARNING: Invalid Equation")
 else:
     print(x)

关于输入无效方程时 Python 计算器程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22087866/

相关文章:

java - 为 Android 计算器创建点函数

java - 字符串方程错误检查器不工作

java - 尝试用Java创建一个堆栈计算器

python - OCR的干净图像

javascript - 检查输入是否以特定字符结尾

css - 仅删除搜索字段周围的边框

input - Bootstrap 。前置和附加输入。如何最大化输入字段宽度?

python - 如何加快Flask响应下载速度

python - 在 python 中运行函数 'x' no。仅秒数

python - sudo 和 pip 不在同一条路径上