【发布时间】:2022-06-28 10:07:02
【问题描述】:
您好,我是 python 和一般编程的新手----一个完整的初学者。我在一些 youtube python 初学者课程中学习了 2 个小时,他做了一些猜谜游戏来演示 while 循环的应用。
我复制了它,以便练习编码,但我自己做了一些修改。
他制作了猜谜游戏,您可以使用 while 循环、if 和 else 函数以及布尔变量的组合来尝试猜词 3 次。
我的版本类似,但我希望它有一个计数器,您可以在其中知道您还剩多少次尝试。
secret_word = "Aircraft"
answer = ""
guess_count = 0
guess_limit = 3
remaining_guess = guess_limit - guess_count
while answer != secret_word and remaining_guess != 0:
if guess_count < guess_limit and remaining_guess == 3:
def re_guesses(remaining_guess_1):
print("You have " + str(remaining_guess_1) + " remaining guesses")
int(remaining_guess_1)
return remaining_guess_1
remaining_guess = re_guesses(remaining_guess)
def guess_word(guess_count_1):
answer = input("Enter answer: ")
guess_count_1 += 1
return guess_count_1
guess_count = guess_word(guess_count)
elif guess_count < guess_limit and remaining_guess == 2:
def re_guesses(remaining_guess_1):
print("You have " + str(remaining_guess_1) + " remaining guesses")
int(remaining_guess_1)
return remaining_guess_1
remaining_guess = re_guesses(remaining_guess)
def guess_word(guess_count_1):
answer = input("Enter answer: ")
guess_count_1 += 1
return guess_count_1
guess_count = guess_word(guess_count)
else:
def re_guesses(remaining_guess_1):
print("You have " + str(remaining_guess_1) + " remaining guesses")
int(remaining_guess_1)
return remaining_guess_1
remaining_guess = re_guesses(remaining_guess)
def guess_word(guess_count_1):
answer = input("Enter answer: ")
guess_count_1 += 1
return guess_count_1
guess_count = guess_word(guess_count)
if remaining_guess == 0:
print("You lost!!")
else:
print("I can't believe you won!")
当我转换为整数时,我尝试将返回值 (remaining_guess_1) 再次存储到 remaining_guess。我对guess_count_1的返回值做了同样的事情,并将其存储在guess_count的原始变量中。
我希望结果是计数器会在每个错误答案后减去 1 次尝试,但它却卡在 “你还有 3 个剩余猜测”。
请有人解释我做错了什么以及如何使它起作用。谢谢。
【问题讨论】:
-
你永远不会在循环内减少
remaining_guess。 -
因为你永远不会更新
remaining_guess的值。它以一个 int 开头,您将其作为 arg 传递给re_guesses并将其转换为int(它已经是),然后返回该值并将其重新分配给remaining_guess,但实际数值永不改变
标签: python python-3.x function if-statement while-loop