Python 3.x Python程序赢得';t追加多个值
每当我尝试将(猜测)附加到all_guesses变量时,它似乎会替换上一个循环中的现有值。我想让程序记录下所有玩家每轮游戏的猜测次数,但它只记录最近的值。我确保变量不在while循环中,这样它就不会覆盖它,那么出了什么问题?我对python编程非常陌生,所以我似乎无法理解这一点。每次我运行循环时,猜测值和所有猜测值都会重置为其原始值 这是我的程序片段:Python 3.x Python程序赢得';t追加多个值,python-3.x,Python 3.x,每当我尝试将(猜测)附加到all_guesses变量时,它似乎会替换上一个循环中的现有值。我想让程序记录下所有玩家每轮游戏的猜测次数,但它只记录最近的值。我确保变量不在while循环中,这样它就不会覆盖它,那么出了什么问题?我对python编程非常陌生,所以我似乎无法理解这一点。每次我运行循环时,猜测值和所有猜测值都会重置为其原始值 这是我的程序片段: def main(): guesses = 0 guessed = [] all_guesses = [] gu
def main():
guesses = 0
guessed = []
all_guesses = []
guess = input('\nPlease guess a letter: ').lower()
letter = 'abcdefghi'
answer = random.choice(letter)
while len(guess) != 1 or guess not in letter:
print("\nInvalid entry! One alphabet only.")
guess = input('Please guess a letter: ')
while len(guess) < 2 and guess in letter:
if guess in guessed:
guess = input("\nYou've already guessed that! Try again: ").lower()
else:
if guess == answer:
guesses = guesses + 1
played = played + 1
print("\nCongratulations, that is correct!")
replay = input('Would you like to play again? Type y/n: ').lower()
all_guesses.append(guesses)
def main():
猜测=0
猜测=[]
所有猜测=[]
guess=输入('\n请猜一个字母:')。lower()
字母='abcdefghi'
答案=随机。选择(字母)
而莱恩(猜)!=1或猜测不在字母中:
打印(“\n无效条目!仅一个字母表。”)
猜=输入('请猜一个字母:')
而len(guess)<2和guess在字母中:
如果猜中猜:
guess=input(“\n您已经猜到了!请重试:”).lower()
其他:
如果猜测==答案:
猜测=猜测+1
播放=播放+1
打印(“\n语法,正确!”)
replay=input('是否要再次播放?键入y/n:')。lower()
所有猜测。追加(猜测)
简单的回答是,所有猜测都需要在main
之外定义一个全局,重放逻辑也需要围绕main
进行
您似乎缺少逻辑,因为您从不修改猜测的,而是希望在其中找到东西。代码中还有死胡同和其他缺失的部分。正如我所能猜到的,这大概就是你想要做的:
from random import choice
from string import ascii_lowercase as LETTERS
all_guesses = []
def main():
guessed = []
answer = choice(LETTERS)
guess = input('\nPlease guess a letter: ').lower()
while len(guess) != 1 or guess not in LETTERS:
print("\nInvalid entry! One alphabet only.")
guess = input('Please guess a letter: ').lower()
while len(guess) == 1 and guess in LETTERS:
if guess in guessed:
guess = input("\nYou've already guessed that! Try again: ").lower()
continue
guessed.append(guess)
if guess == answer:
print("\nCongratulations, that is correct!")
break
guess = input("\nIt's not that letter. Try again: ").lower()
all_guesses.append(len(guessed))
while True:
main()
replay = input('Would you like to play again? Type y/n: ').lower()
if replay == 'n':
break
print(all_guesses)
我甚至怀疑这个代码是否有效。例如,什么是播放的
?我没有发布完整的代码,因为它太长了。如果您试图运行我提供的代码,它肯定不会工作。Played代表他们玩过的回合,但我没有展示节目的这一部分。谢谢你尽你所能帮助我,我知道我的节目是多么糟糕和混乱。我基本上是自学成才,而且做得不好。