我想插入一个号码,如果我输入除4以外的任何号码,它会告诉我这是错的,但如果它是假的,它会告诉我“gg你赢了,noob。”。但是,当我插入4时,它告诉我这是不正确的。
x = input("Insert a numer: ")
while x != 4:
print("incorrect")
x =input("Insert another number: ")
if x == 4:
print("gg you win, noob")
答案 0 :(得分:3)
在Python 3+中,input
返回一个字符串,4
不等于'4'
。你必须修改为:
while x != '4':
或者使用int
,如果输入不是int,请小心检查ValueError
。
答案 1 :(得分:1)
input()
的结果将是一个字符串,您需要在比较它之前将其转换为整数:
x = int(input("Insert another number: ")
如果您的输入不是数字,则会引发ValueError
。
答案 2 :(得分:0)
此处,if x == 4
不是必需的。因为在x
等于4
之前,while
循环才会被传递。你可以尝试这样:
x = int(input("Insert a numer: "))
while x != 4:
print("incorrect")
x = int(input("Insert another number: "))
print("gg you win, noob")
答案 3 :(得分:0)
Python 2和3在函数input()
中有所不同。
input()
相当于eval(raw_input())
。raw_input()
,但input()
的工作方式与Python 2 raw_input()
类似。在你的情况下:
input()
为4
提供了int
类型,因此您的程序可以运行。input()
为'4'
提供了str
类型,因此您的程序存在错误。在Python 3中,解决此问题的一种方法是使用eval(input())
。但是对不受信任的字符串使用eval
是非常危险的(是的,你的程序在Python 2中危险地工作)。所以你应该先验证输入。
答案 4 :(得分:0)
试试这个:
z = 0
while z != "gg you win, noob":
try:
x = int(input("Insert a numer: "))
while x != 4:
print("incorrect")
x =int(input("Insert another number: "))
if x == 4:
z = "gg you win, noob"
print(z)
except:
print('Only input numbers')
这会将您的所有输入值转换为整数。如果您不输入整数,except
语句将提示您仅输入数字,while True
循环将从头开始重复您的脚本,而不是引发错误。