Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python列表中存储无效输入_Python_List_Input_User Input_Invalid Characters - Fatal编程技术网

在Python列表中存储无效输入

在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

我知道我可以使用try:except ValueError:处理无效的输入,但是如何将该输入存储在列表、变量或其他任何东西中

我希望当用户输入文本时,代码在代码的某些部分告诉“它绝对不是[文本]”(如下面的代码所示)。但它并没有按现在的方式工作

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)