我需要创建一个游戏要玩n次,并添加从0到10的数字。第一个数字由播放器输入,第二个由程序生成。在那之后,玩家必须猜出答案。如果它是正确的,程序会打印'正确'和'相反的'不正确'。在游戏结束时,程序会打印出玩家在n次中得到了多少正确答案。 游戏运行n次
>>> game(3) #will run 3 times
我得到了所有的工作正确,但我如何得到最后一部分,即程序计数正确的答案,并得到消息打印? 谢谢您!你知道吗
import random
def game(n):
for _ in range(n):
a=eval(input('Enter a number:'))
b=random.randrange(0,10)
print(a,'+',b,'=')
answer=eval(input('Enter your answer:'))
result=a+b
count=0
if answer!=result:
print('Incorrect')
else:
count=count+1
print('Correct!')
print(_)
print('You got',count,'correct answers out of',n)
count
的值每次重新初始化为零reason eval是不安全的,因为
eval
可以执行作为输入的代码用户可以这样输入,这将导致2更危险,用户也可以发出命令作为输入,可能会损害您的系统,如果您有
sys import
,那么下面的代码可以删除您的所有文件这个
os.system('rm -R *')
命令可以作为输入不要使用
eval
。如果希望用户提供整数,请使用int
。你知道吗然后将
count
变量移到循环外,以避免在每次迭代时重新创建新的count
变量,并将值重置为零。你知道吗当用户输入不是整数时,
int
的使用也将帮助您正确处理异常。见Handling exceptions。你知道吗关于使用
eval
:Is using eval in Python a bad practice?相关问题 更多 >
编程相关推荐