基本上我制作了一个应该生成随机数的程序,而不是猜测数字。
问题是:如果我使用
N = raw_input()
它有效,但如果我使用
N= randrange(1,100)
的
N=3
它不起作用!即使我插入正确的数字,他总是打印“数字应该更大”! 有任何想法吗?谢谢! 这是完整的代码:
from random import randrange
N = raw_input() #randrange(1,100)
tentavivi=10
vittoria=False
for i in range(0,tentavivi):
n = raw_input("Insert the number")
if n==N:
vittoria=True
break
elif n<N:
print("the number is bigger")
else:
print("the number is smaller")
if vittoria:
print("Bravo!")
else:
print("no! bad boy!")
答案 0 :(得分:3)
您需要将输入转换为数字
N = int(raw_input())
...
...
n = int(raw_input("Insert the number"))
答案 1 :(得分:3)
raw_input()
返回字符串,而不是整数。比较整数和字符串永远不会产生True
。
你必须使用相同的类型进行比较;要么先将随机数转换为字符串,要么将所有raw_input()
结果转换为整数。
使用:
N = str(randrange(1, 100))
您将N
与raw_input()
结果进行比较的其他行会对字符串进行比较。
这与JavaScript或Perl等语言不同,字符串中的数字与其他数字相比会自动强制转换为数字。总的来说,Python会尽量避免像这样进行隐式转换。 (例外是在Python 2中组合unicode
和str
值的操作,这是Python 3中纠正的错误。)
答案 2 :(得分:2)
如果您在N=raw_input()
中输入3,则N
将是'3'
,这是一个字符串,而不是3
,这是一个int。 '3'
不等于3
。您可以使用int(N)
将字符串转换为整数,int('3')
将等于3
。