[英]Print function not printing results
我正在尝试为一个简单的游戏编写代码。 从一个基地开始,但我面临着非常烦人的错误(而不是小故障)。
import random
winning_number = random.randint(1, 1000)
allowed_numbers_single_digit = random.randint(1, 10)
allowed_numbers_single_digit2 = random.randint(1, 10)
allowed_numbers_single_digit3 = random.randint(1, 10)
allowed_numbers_single_digit4 = random.randint(1, 10)
middle_column_numbers = (10, 15, 20, 25)
right_column_numbers = (50, 75, 100)
double_digit_allowed = random.choice(middle_column_numbers)
double_high_digits = random.choice(right_column_numbers)
print(f"""Number that we are looking for is {winning_number}.
You may use {allowed_numbers_single_digit, allowed_numbers_single_digit2, allowed_numbers_single_digit3,
allowed_numbers_single_digit4, double_digit_allowed, double_high_digits}
""")
x = input()
print(x)
if winning_number != x:
print('Sorry, no points for you')
else:
print('You got 10 points!')
我正在谈论的故障:当用户将数字输入到字符串 'x' 时,下一行的写法几乎相同。 例如:如果用户输入 6+5,print 会打印出 6+5 而不是 11。有什么提示吗?
当用户输入x
您会得到一个字符串,并且不会对其进行评估。 如果你想评估他们写的表达式,你可以这样做
x = eval(input())
在这种情况下, x
将是一个整数。
如果您只想将输入的字符串解析为整数,(不支持 + 或 - 或其他),您可以这样做
x = int(input())
eval
有潜在危险,在这种情况下实际上可以让用户作弊。 如果用户winning_number
,则将选择中奖号码。
相反,您可以使用literal_eval
来避免这种情况。
import ast
x = ast.literal_eval(input())
这限制了用户使用程序其余部分中定义的变量,以及运行任何代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.