gpt4 book ai didi

python - 如何阻止用户仅输入 "()"并在此之后仅输出 "()"

转载 作者:行者123 更新时间:2023-11-28 20:22:55 25 4
gpt4 key购买 nike

我是 python 的新手,所以我对它了解不多:/。但是,这是我的代码:

valid_chars = "0123456789-+/*ans() \n";
while True:
x = "x="
y = input(" >> ")
x += y
def ans():
return z
def ans():
try:
return z
except NameError:
return 0 # appropriate value
if any(c not in valid_chars for c in y):
print("WARNING: Invalid Equation")
continue
try:
exec(x)
except (SyntaxError, ZeroDivisionError, NameError, TypeError, ValueError):
print ("WARNING: Invalid Equation")
else:
z = x
print(x)

这行得通,但并不完美。如果用户键入“()”,它将输出“()”。如何阻止它输出“()”并说“警告:无效方程”?提前致谢!

更新:

如果我使用“if not”功能,它会起作用吗?示例:

if not(y == "()"):
continue
except:
print ("WARNING: Invalid Equation")

我知道这行不通,但我该如何解决它,或者有更好的想法吗?谢谢!

最佳答案

使用raise,如下:

if y == '()':
raise SyntaxError

这是您编辑的代码:

valid_chars = "0123456789-+/*ans() \n";
while True:
x = "x="
y = input(" >> ")
x += y
def ans():
try:
return z
except NameError:
return 0 # appropriate value
if y == '()':
print ("WARNING: Invalid Equation")
break
if any(c not in valid_chars for c in y):
print("WARNING: Invalid Equation")
try:
exec(x)
except (SyntaxError, ZeroDivisionError, NameError, TypeError, ValueError):
print ("WARNING: Invalid Equation")
break
else:
z = x
print(x)

哒哒!感谢 raise...

关于python - 如何阻止用户仅输入 "()"并在此之后仅输出 "()",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22108195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com