【问题标题】:Adding a new name/item to a list and calling that variable globally?将新名称/项目添加到列表并全局调用该变量?
【发布时间】:2018-04-23 16:40:01
【问题描述】:

我对编码非常陌生,因此决定从 Python 开始。我一直在研究一个简单的“猜数游戏”,并且每次迭代都会对其进行更多改进。

我决定让它更健壮一点,而不是在猜到数字后才完成。

我希望用户/玩家输入他们的姓名,存储该姓名,然后在整个过程中使用......直到最后,当他们被问到是否要再次玩游戏以及是否是“同一用户?”如果他们说“不”,我希望它在列表中附加一个新名称,然后再次进行游戏。

这是我到目前为止所得到的...请温柔...我知道有一些错误:(

        import sys
        import os
        import random
        global player


        while True:
            def GuessingGame():
        player = []
        player.append(input("Please Enter Your Name:\n")),
        # player_name = input("Please enter your name: \n")
        print(f"Hello, {player[0]}! Let's get started!\n")
        number = 500
        count = 1
        guess = int(input("Guess a number between 1 and 1000: \n"))

        while guess != number:
            count += 1
            if guess > (number + 10):
            print("TOO HIGH, a little lower...")
            elif guess < (number - 10):
                print("TOO LOW... guess higher!")
            elif guess > (number + 5):
                print("You're getting warmer, but still TOO HIGH, a little lower...")
            elif guess < (number - 5):
                print("You're getting warmer, but still TOO LOW...  higher!")
            elif guess < number:
                print("You're REALLY warm, but still a bit TOO LOW")
            elif guess > number:
                print("You're REALLY, but still a bit TOO HIGH")
            guess = int(input("Try again...\n"))
        if guess == number:
            print(f"You got it!!! It took you {count} tries to guess {number}\n")
            response1 = str(input("Would you like to try again? Y or N\n"))
            if response1 == ("y" or "Y"):
                 sameplayer = str(input("Is this still {player[0]}? Y1 or N1\n"))
                 if sameplayer == ("y1" or "Y1"):
                    GuessingGame()
                 else:
                    newplayer = player.extend(str(input("Please Enter New Player's Name:\n")))
                    print(f"Hello, {player[1]}!, Let's Get Started!")

        return
        GuessingGame()

Again, this is the first time I'm sharing anything I've done... so please don't just wreck me :)

【问题讨论】:

  • 请修正你的缩进!
  • 您知道将代码复制/粘贴到此介质中的好方法吗?我试图这样做,但它没有用......是否有固定消息可能关于我如何更合适地做到这一点? TIA
  • 好吧,你复制粘贴你的代码,然后选中并按 ctrl+k
  • 您的代码没有正确的流程,您在不打算使用它们的地方使用递归函数,请尝试使用循环,也请务必在要求再次尝试之前检查猜测你在“guess = int(input("Try again...\n"))”上做,你可以画一个流程图来解释你的程序的流程,这真的可以帮助你改进你的程序设计。
  • 我只是用“ctrl-K”重新复制并粘贴了代码...请告诉我它是否对您更好...至于您制作“流程图”的建议,我正是这样做的......我想出的是:玩家输入他们的名字 - 玩家被打招呼 - 玩家被要求猜测 1:1000 之间的数字......如果它们在 10 个数字之内,无论是正数还是负数,他们'被告知它们很接近,如果它们在 5 以内,正负值,它们真的很暖和。 - 猜到之后,又要他们再玩一次? - 如果是,则询问他们是否仍然是玩家 - 如果不是,则要求他们输入新名称 - 游戏重新开始。

标签: numbers append extends custom-lists


【解决方案1】:

在这里,我复制了您编写的相同代码,但我觉得需要进行一些修改。

from random import randint

player = None

def GuessingGame():
    global player
    if player is None:
        player = input("Please Enter Your Name:\n")
    print(f"Hello, {player}! Let's get started!\n")
    number = randint(1, 1000)
    guess = int(input("Guess a number between 1 and 1000: \n"))
    count = 1
    while guess != number:
        if guess > (number + 10):
            print("TOO HIGH, a little lower...")
        elif guess < (number - 10):
            print("TOO LOW... guess higher!")
        elif guess > (number + 5):
            print("You're getting warmer, but still TOO HIGH, a little lower...")
        elif guess < (number - 5):
            print("You're getting warmer, but still TOO LOW...  higher!")
        elif guess < number:
            print("You're REALLY warm, but still a bit TOO LOW")
        elif guess > number:
            print("You're REALLY, but still a bit TOO HIGH")
        if guess == number:
            break
        else:
            count += 1
            guess = int(input("Try again...\n"))

    print(f"You got it!!! It took you {count} tries to guess {number}\n")
    response1 = str(input("Would you like to try again? Y or N\n"))
    if response1.lower() == 'y':
        sameplayer = str(input(f"Is this still {player}? Y or N\n"))
        if sameplayer.lower() == 'n':
            player = None
            return
        else:
            return

while True:
    GuessingGame()

如果您有任何问题,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    相关资源
    最近更新 更多