使用python循环程序的项目

问题描述 投票:0回答:3

我儿子有这个项目,他必须在python中做,并被卡住了。

他需要做一个猜数游戏。代码必须生成0到10之间的随机密码,然后让用户5尝试猜测该数字,如果不正确则每个猜测必须指示它是否高于或低于秘密随机数。在每次猜测之后,代码需要显示文本,说明发生了什么。代码还需要存储所有猜测并在最后显示它们。需要使用loop,if,elif,else和数组或列表代码。

到目前为止的尝试如下

print("Hi there, lets play a little guessing game. Guess the number between 0 and 10")
from random import randint
x = [randint(0,10)]
counter = 0

guess = input("Enter guess:")

while counter < 5:
    print("You have " + str(counter) + " guesses left")
    counter = counter +1

    if guess == x:
        print("Congrats you got it")
        break
    elif guess > x:
        print("Too high")
    elif guess < x:
        print("Too low")
    else:
        print("You lost")
        break

任何帮助纠正我的儿子代码将不胜感激,因为这个项目即将到期,他无法访问他的导师

python
3个回答
0
投票

这应该做到这一点。代码的作用在下面的评论中解释。 你需要做x=randint(0,10),它将随机数分配给一个变量,即x=4而不是`x = [randint(0,10)] , which assigns the random number to a list ,x = [4]```

此外,您需要在循环中请求猜测,而不是在循环开始之前只进行一次猜测。您还需要将字符串转换为int进行比较,即guess = int(input("Enter guess:"))

print("Hi there, lets play a little guessing game. Guess the number between 0 and 10")
#Create a random number
from random import randint
x = randint(0, 10)
counter = 0
won = False

#Run 5 attempts in a loop
while counter<5:
    #Get the guess from the user
    guess = int(input("Enter guess:"))

    counter = counter+1
    #Check if the guess is the same, low or high as the random number
    if guess == x:
        print("Congrats you got it")
        won = True
        break
    elif guess > x:
        print("Too high")
    elif guess < x:
        print("Too low")
    print("You have " + str(5 - counter) + " guesses left")

#If you didn't won, you lost
if not won:
    print("The number was ", x)
    print("You Lost")

0
投票

所以这里是更正。所以x已经初始化为数组而不是整数。因此,与猜测的比较都不会起作用。计数器逻辑也是错误的。而不是从零开始,从5开始,这是最大机会数,而从反向开始。然后在每个if / elif循环附加所有猜测并将其打印到最后。

这是更正后的代码

from random import randint
x = randint(0,10)
print(x)
counter = 5
guesses=[] #initalize an empty list to store all guesses

while counter != 0:
    guess = input("Enter guess:")

    if guess == x:
        print("Congrats you got it")
        guesses.append(guess)
        break
    elif guess > x:
        print("Too high")
        guesses.append(guess)
    elif guess < x:
        print("Too low")
        guesses.append(guess)
    else:
        print("You lost")
        break

    counter = counter-1
    print("You have " + str(counter) + " guesses left")

print(guesses)


-1
投票

编辑:x = [randint(0,10)]不会工作,因为你在这里创建一个列表而不是单一猜测print("You have " + str(counter) + " guesses left")也是不正确的。您可以改为将计数器设置为5并检查计数器> 0并执行计数器 - = 1,这样可以修复消息最后存储所有需要变量的猜测

from random import randint

if __name__ == "__main__":
    number_to_guess = randint(0,10)
    guesses = []
    for c in range(5,0,-1):
        guessed = input("Enter guess:")
        guessed = guessed.strip()
        assert guessed.isnumeric()
        guessed = int(guessed)
        guesses.append(guessed) 
        if guessed == number_to_guess:
            print("yes")
            break
        elif guessed > number_to_guess:
            print("more")
        else:
            print("less")            
        c -= 1
        print("pending guesses", c)
    print("Expected - ", number_to_guess)
    print("All guesses - ", guesses)
© www.soinside.com 2019 - 2024. All rights reserved.