实际上我在练习代码,然后这个问题出现了
假设这是我的代码:
import random
randomnumber=random.randrange(0,100)
print(randomnumber)
input_user=23 #now input_user is int
再输入一些代码:
像这样:
import random
randomnumber=random.randrange(0,100)
print(randomnumber)
input_user=23 #now input_user is str
while input_user !=randomnumber:
input_user=0
print("enter number")
input_user=input()
if input_user < randomnumber:
print("very less")
elif (input_user > randomnumber ):
print ("very big")
else:
print("correct :"+randomnumber)
您可以看到这是我的问题
答案 0 :(得分:2)
为您固定
import random
randomnumber=random.randrange(0,100)
print(randomnumber)
input_user=23 #now input_user is str
while input_user !=randomnumber:
print("enter number")
input_user=int(input())
if input_user < randomnumber:
print("very less")
elif input_user > randomnumber:
print ("very big")
else:
print("correct :"+str(randomnumber))
input()的结果始终是一个字符串,即使它由数字组成。
答案 1 :(得分:1)
该行:
input_user=input()
将使input_user
成为str
,除非您对此采取任何措施(即将其分配给另一个变量),否则您将失去之前与之相关的任何值。
请注意,当行是:
input_user=23
input_user
是一个int
。
要使代码正常工作,您可以在进行比较之前强制转换input()
的结果,例如
import random
random_number=random.randrange(0,100)
print('Random Number: ', random_number)
input_number = None
while input_number != random_number:
input_number = int(input("enter number: "))
if input_number < random_number:
print("very less")
elif (input_number > random_number):
print("very big")
else:
print("correct: ", random_number)
请注意,这不是处理输入内容的可靠方法,因为不插入数字会引发ValueError
。
更好的方法可能是使用try
/except
构造捕获错误:
import random
random_number=random.randrange(0,100)
print('Random Number: ', random_number)
input_number = None
while input_number != random_number:
try:
input_number = int(input("enter number: "))
except ValueError:
input_number = None
else:
if input_number < random_number:
print("very less")
elif (input_number > random_number):
print("very big")
else:
print("correct: ", random_number)