【发布时间】:2018-07-31 16:58:26
【问题描述】:
我对编程很陌生,我正在尝试在 python 3.6 中编写一个程序,它生成一个随机数作为“答案”,然后计算机必须猜测 x 个问题的答案。为了跟踪计算机猜对了多少问题,我创建了一个名为“正确”的变量,如果计算机的答案等于猜测,则在该变量中添加一个。但是,即使它是错误的,它也会每次都这样做。抱歉,如果这看起来很愚蠢,但感谢您的帮助
import random
def total(x, t):
for i in range(t):
cor = 0
gue = 0
n = 0
right = 0
def ans():
cor = random.randint(1,4)
print(cor, 'answer')
def guess():
gue = random.randint(1,4)
print(gue, 'guess')
while n <= x:
ans()
guess()
if cor == gue:
right += 1
n += 1
print(right, n)
【问题讨论】:
-
在
if cor == gue、cor和gue行中始终为零,因此它们始终相等。在ans()和guess()函数中更改这些变量只会在该函数内更改它们。有一些方法可以解决这个问题(例如将这些变量声明为非本地变量),但最好的方法是返回值。 -
谢谢,我取出了第一部分,我将 cor 和 gue 定义为 0,并在 ans() 和 guess() 中将它们设为全局。现在可以了,谢谢你的帮助
标签: python if-statement random