如何防止用户在python猜测游戏中输入以前的猜测?

如何防止用户在python猜测游戏中输入以前的猜测?,python,Python,我想存储用户已经做出的猜测列表,这样当用户做出下一次猜测时,我就可以对照之前的猜测列表检查该猜测。如果用户刚刚做出的猜测在该列表中,我想告诉用户再次猜测,不要将其视为一次尝试(5次尝试猜测正确的数字) 尝试使用append方法将猜测附加到一个空白列表,但我得到了一个“int obj has no append method”错误 随机导入 def guess_a_number(): 机会=5 随机数生成=random.randint(1,21) 当机会来临时!=0: choice=int(输入(

我想存储用户已经做出的猜测列表,这样当用户做出下一次猜测时,我就可以对照之前的猜测列表检查该猜测。如果用户刚刚做出的猜测在该列表中,我想告诉用户再次猜测,不要将其视为一次尝试(5次尝试猜测正确的数字)

尝试使用append方法将猜测附加到一个空白列表,但我得到了一个“int obj has no append method”错误

随机导入
def guess_a_number():
机会=5
随机数生成=random.randint(1,21)
当机会来临时!=0:
choice=int(输入(“猜一个介于1-20之间的数字,你只剩下{}次机会”。格式(机会)))
如果选择>随机数\u生成:
打印(“您的数字太高,猜测较低”)
elif选择<随机数\u生成:
打印(“您的号码太低,猜得更高”)
其他:
打印(“你猜对数字了!!!”)
打破
机会-=1
如果机会==0:
try_reach=input(“您想再次尝试播放吗?”)
如果重试。lower()=“是”:
猜一个数字()
其他:
打印(“下次好运”)
猜一个数字()

尝试保留先前猜测的列表,然后在选择后立即检查
如果先前猜测中有猜测:
。您可以使用
continue
跳过其余部分,然后再次提示它们。

只需使用
集合
列表
保存以前尝试的数字,并检查循环中的数字

我想你已经尝试过类似的东西了,但是从声音上看,你试图附加一个int

import random

while True:

    chances = 5
    randnum = random.randint(1, 21)
    prev_guesses = set()
    print("Guess a number between 1-20, you have {} chances ".format(chances))

    while True:

        try:
            choice = int(input("what is your guess? "))
        except ValueError:
            print('enter a valid integer')
            continue

        if choice in prev_guesses:
            print('you already tried {}'.format(choice))
            continue

        if choice > randnum:
            print("Your number is too high, guess lower")
        elif choice < randnum:
            print("Your number is too low, guess higher")
        else:
            print("You guessed the correct number!!!")
            break

        chances -= 1
        prev_guesses.add(choice)
        print("you have {} chances left".format(chances))

        if chances == 0:
            print("You ran out of guesses, it was {}".format(randnum))
            break

    try_again = input("Do you want to play again? ")

    if try_again.lower() not in ("y", "yes"):
        print("Better luck next time")
        break
随机导入
尽管如此:
机会=5
randnum=random.randint(1,21)
prev_guesses=set()
打印(“猜一个介于1-20之间的数字,你有{}次机会”。格式(机会))
尽管如此:
尝试:
choice=int(输入(“您的猜测是什么?”)
除值错误外:
打印('输入有效整数')
持续
如果上一个选项猜测:
打印('您已经尝试了{}'。格式(选择))
持续
如果选择>随机数:
打印(“您的数字太高,猜测较低”)
elif choice
欢迎来到StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确指定问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您指定的问题。您发布的代码没有显示您声称的问题;没有空列表,也没有追加。我怀疑您误用了
append
方法——请查看文档以了解正确用法<代码>我的列表。追加(新值)您应该在尝试追加的位置显示代码。看起来您可能没有添加到列表,而是添加到不受支持的int。通常,显示您为解决问题而编写的损坏代码比显示以前版本的有效代码更容易。
import random

while True:

    chances = 5
    randnum = random.randint(1, 21)
    prev_guesses = set()
    print("Guess a number between 1-20, you have {} chances ".format(chances))

    while True:

        try:
            choice = int(input("what is your guess? "))
        except ValueError:
            print('enter a valid integer')
            continue

        if choice in prev_guesses:
            print('you already tried {}'.format(choice))
            continue

        if choice > randnum:
            print("Your number is too high, guess lower")
        elif choice < randnum:
            print("Your number is too low, guess higher")
        else:
            print("You guessed the correct number!!!")
            break

        chances -= 1
        prev_guesses.add(choice)
        print("you have {} chances left".format(chances))

        if chances == 0:
            print("You ran out of guesses, it was {}".format(randnum))
            break

    try_again = input("Do you want to play again? ")

    if try_again.lower() not in ("y", "yes"):
        print("Better luck next time")
        break