变量未在函数中定义
Variable is not defined in the function
import random
def game(n):
while counter < n:
n1 = random.randrange(1,10)
n2 = random.randrange(1,10)
counter = 0
print (str(n1) + " + " + str(n1))
answer = input("Enter answer: ")
if answer == n1+n2:
print("Correct.")
else:
print("Incorrect.")
counter += 1
pass
错误在下面这一行中,提示 n1 未定义。
print (str(n1) + " + " + str(n1))
这是您需要解决的问题:
- 你的缩进到处都是。
- 在给它赋值之前,您曾尝试使用
counter
作为循环条件的一部分。
- 因为您在 while 循环体内创建了
n1
和 n2
,每次猜测后 n1
和 n2
将再次创建并分配不同的值.我不确定您是否希望发生这种情况,但如果您这样做了,您只需将这两行移回循环内即可。
- 如果用户猜对了答案,你就没有正确地跳出循环。这就是我添加
break
的原因。这将在成功回答后结束循环。此外,如果答案不正确,则不需要 pass
。循环将继续,直到收到正确答案或达到 counter
. 的值为止
无论如何,这是您的代码的 fixed/working 版本。
import random
def game(n):
counter = 0
n1 = random.randrange(1,10)
n2 = random.randrange(1,10)
while counter < n:
# move creation of n1, n2 here if you want #'s to change after every guess
print ('{} + {}'.format(n1, n2))
answer = input("Enter answer: ")
if answer == int(n1 + n2):
print("Correct.")
break
else:
print("Incorrect.")
counter += 1
您真的应该阅读一些基本的 Python 主题,例如缩进、while
循环和变量。
希望对您有所帮助!
最后,这里有2个测试。其中一个我成功猜对了正确答案,另一个我猜到了计数器。
4 + 9
Enter answer: 3
Incorrect.
4 + 9
Enter answer: 2
Incorrect.
4 + 9
Enter answer: 1
Incorrect.
9 + 8
Enter answer: 17
Correct.
在这两个示例中,我都使用 game(3)
调用了函数。
import random
def game(n):
while counter < n:
n1 = random.randrange(1,10)
n2 = random.randrange(1,10)
counter = 0
print (str(n1) + " + " + str(n1))
answer = input("Enter answer: ")
if answer == n1+n2:
print("Correct.")
else:
print("Incorrect.")
counter += 1
pass
错误在下面这一行中,提示 n1 未定义。
print (str(n1) + " + " + str(n1))
这是您需要解决的问题:
- 你的缩进到处都是。
- 在给它赋值之前,您曾尝试使用
counter
作为循环条件的一部分。 - 因为您在 while 循环体内创建了
n1
和n2
,每次猜测后n1
和n2
将再次创建并分配不同的值.我不确定您是否希望发生这种情况,但如果您这样做了,您只需将这两行移回循环内即可。 - 如果用户猜对了答案,你就没有正确地跳出循环。这就是我添加
break
的原因。这将在成功回答后结束循环。此外,如果答案不正确,则不需要pass
。循环将继续,直到收到正确答案或达到counter
. 的值为止
无论如何,这是您的代码的 fixed/working 版本。
import random
def game(n):
counter = 0
n1 = random.randrange(1,10)
n2 = random.randrange(1,10)
while counter < n:
# move creation of n1, n2 here if you want #'s to change after every guess
print ('{} + {}'.format(n1, n2))
answer = input("Enter answer: ")
if answer == int(n1 + n2):
print("Correct.")
break
else:
print("Incorrect.")
counter += 1
您真的应该阅读一些基本的 Python 主题,例如缩进、while
循环和变量。
希望对您有所帮助!
最后,这里有2个测试。其中一个我成功猜对了正确答案,另一个我猜到了计数器。
4 + 9
Enter answer: 3
Incorrect.
4 + 9
Enter answer: 2
Incorrect.
4 + 9
Enter answer: 1
Incorrect.
9 + 8
Enter answer: 17
Correct.
在这两个示例中,我都使用 game(3)
调用了函数。