在Python列表中存储无效输入
我知道我可以使用try:except ValueError:处理无效的输入,但是如何将该输入存储在列表、变量或其他任何东西中 我希望当用户输入文本时,代码在代码的某些部分告诉“它绝对不是[文本]”(如下面的代码所示)。但它并没有按现在的方式工作在Python列表中存储无效输入,python,list,input,user-input,invalid-characters,Python,List,Input,User Input,Invalid Characters,我知道我可以使用try:except ValueError:处理无效的输入,但是如何将该输入存储在列表、变量或其他任何东西中 我希望当用户输入文本时,代码在代码的某些部分告诉“它绝对不是[文本]”(如下面的代码所示)。但它并没有按现在的方式工作 while True: try: while guessedNumber != realNumber: tries = tries + 1 check
while True:
try:
while guessedNumber != realNumber:
tries = tries + 1
checkTries()
guessedNumbers.append(guessedNumber)
os.system("clear")
print(pyfiglet.figlet_format("Try again!", font = "big"))
print("The number is:")
for x in guessedNumbers:
if x < realNumber:
print("Higher than " + str(x))
elif x > realNumber:
print("Lower than " + str(x))
elif type(guessedNumber) is not int:
print("Definitely not " + str(x)) # to solve this, maybe use another Try: except:.
guessedNumber = int(input("The number is... "))
if tries == 1:
os.system("clear")
print(pyfiglet.figlet_format("You won!", font = "big"))
print("You got it in the first try! What a lucky person!")
else:
os.system("clear")
print(pyfiglet.figlet_format("You won!", font = "big"))
print("Way to go! You got it in " + str(tries) + " tries!")
break
except ValueError:
guessedNumbers.append(guessedNumber)
playAgain()
为True时:
尝试:
而猜数字!=实数:
尝试=尝试+1
支票()
追加(guessedNumber)
操作系统(“清除”)
打印(pyfiglet.figlet_格式(“重试!”,font=“大”))
打印(“编号为:”)
对于猜测数字中的x:
如果x重新分配数:
打印(“低于”+str(x))
elif类型(guessedNumber)不是int:
print(“绝对不是”+str(x))#要解决这个问题,可以使用另一种尝试:除了:。
guessedNumber=int(输入(“数字是…”))
如果尝试==1:
操作系统(“清除”)
打印(pyfiglet.figlet_格式(“你赢了!”,font=“大”))
打印(“你第一次就成功了!真是个幸运的人!”)
其他:
操作系统(“清除”)
打印(pyfiglet.figlet_格式(“你赢了!”,font=“大”))
打印(“干得好!你在”+str(尝试)+“尝试!”)中得到了它)
打破
除值错误外:
追加(guessedNumber)
再次播放()
无论用户输入是作为命令行参数、传递的函数/方法值还是由input()
函数返回的输入,您都可以创建一个列表并将无效输入添加到子句中,但
除外
命令行参数
函数调用
def my_func(参数):
尝试:
...
除值错误外:
无效的\u输入。追加(参数)
Input()函数
user\u input=input()
尝试:
...
除值错误外:
无效的\u输入。追加(用户\u输入)
请注意,您在中定义的范围将取决于您的选择
编辑1
由于所讨论的变量只有在为整数时才是“有效”的,因此检查该属性是try
子句中唯一需要的语句
猜测=[]
尽管如此:
猜=输入(“猜一个数字”)
尝试:
猜测=int(猜测)
除值错误外:
打印(f“绝对不是{guess}”)
猜测。追加(猜测)
持续
无效输入是什么意思?@MarioKhoury认为(就像我的脚本列表中发生的那样)输入应该是整数,但如果用户输入字符串,则为无效输入。控制台返回该错误。该错误不起作用。我编辑了问题并在脚本中添加了部分代码。也许这会有帮助。@Manu1Volta首先,我建议减少try
子句中的代码量。由于整个代码片段基本上都在try
子句中,因此很难准确地指出ValueError
将在哪里引发。第二,你说的“那没用”是什么意思?除非您给出预期的输出,否则我无法编写“有效”的代码。是的,您完全正确。。。我才刚开始,谢谢你!预期的输出将是无效输入存储在列表guessedNumbers中,这样当我打印输出时,所有输入的数字和每个数字的详细信息,对于无效的数字,打印“肯定不是[input text]”。遵循代码可能更容易理解。
try:
...
except ValueError:
invalid_input.append(sys.argv)