这是我的代码中遇到麻烦的部分:
class_number = input("Before your score is saved ,are you in class 1, 2 or 3?")
if class_number not in (1,2,3):
sys.exit("That is not a valid class, unfortunately your score cannot be saved, please try again")
else:
filename = (class_number + "txt")
但是当程序询问用户用户是什么类时,无论输入如何,程序都会退出系统。即使用户在(1,2,3)中输入 ,也会发生这种情况。
为什么不起作用?
答案 0 :(得分:2)
在Python3中,<?php echo $this->pagination->create_links();?>
只返回一个字符串,所以当你调用它来获取input
变量时,你得到一个字符串而不是一个int。您需要将其显式声明为int
class_number
或者,对字符串检查结果可能更安全(因为您不需要对结果执行算术运算)
class_number = int(input("Which classes scores would you like to see? Press 1 for class 1, 2 for class 2 or 3 for class 3"))
这更安全,因为前面的方法可以在一个字符串上调用if class_number not in ('1', '2', '3'):
,该字符串无法转换为数字并且会引发异常。例如,如果用户输入“3”将引发异常。如果你只是使用字符串,你就不会有这样的麻烦。
答案 1 :(得分:1)
你试过这个吗?
class_number = int(input("..."))
if class_number not in (1, 2 ,3):
sys.exit("...")
Python 3中的 input
相当于Python 2中的raw_input
。它返回一个字符串。如果要将字符串与int进行比较,则必须转换其中一个。您还可以执行以下操作:
class_number = input("...")
if class_number not in ("1", "2" ,"3"):
sys.exit("...")