def start():
print("select any one of the operators: ")
print("SI")
print("BMI")
print("AP")
print('QE')
s = 'SI'
b = 'BMI'
a = 'AP'
q = 'QE'
x = input('type the required operation: ')
try:
intro = "select any one of the operators: "
print(red + intro.upper())
print('__________________________')
print("SI(simple interest)")
print("BMI(body mass index)")
print("AP(arithmetic progression)")
print("QE(quadratic equations)")
print('__________________________')
s = 'SI'
b = 'BMI'
a = 'AP'
q = 'QE'
yellow = '\033[33m'
x = input(yellow + 'Type the required operation: ')
if x.upper() == s:
si()
if x.upper() == b:
bmi()
if x.upper() == a:
ap()
if x.upper() == q:
qe()
except :
print('spelling error, please try again')
start()
我试图创建一个程序,其中列出了四个操作(简单兴趣,ap,二次方程,bmi),并要求用户输入。如果输入与任何操作都不匹配,则需要打印拼写错误并让用户再次尝试输入。但是如果我输入了操作以外的任何东西,程序就会结束而不打印任何东西。我也尝试过使用while循环,但也失败了
list = ['SI', 'BMI', 'AP', 'QE']
while x != list:
print('spelling error')
start()
if x == list:
break
请帮助我找到打印拼写错误的方法,并允许用户重试
2条答案
按热度按时间fumotvh31#
首先,
list
是python中的保留关键字,因此不能将其用作变量名。其次,如果要查看字符串是否在列表中,则必须使用in
关键字,不是==
. 你的start
函数应返回x
,否则while循环将无法识别x
你指的是。下面是一个使用while循环进行拼写检查的示例:
cqoc49vn2#
我会用这样的方法来验证输入:
然后创建and if、elif、else语句来选择一个操作如果您希望允许您的条目也以小写形式输入,请使用例如:
另外,尽量与空格保持一致。如果您已经为第一个缩进添加了4,那么尝试将4也用于try except块。
try子句下的语句也应尽可能少;只添加您真正想要测试的语句,否则所有其他错误也会被捕获,从而使调试更加困难。