繁体   English   中英

初学者:使用 elif 控制流和语法错误

[英]Beginner: Control flow and syntax errors with elif

stackflow 的新手,我希望我的问题可以帮助其他 python 新手。

我正在尝试创建一个执行以下内容的程序:1.secret_num == 生成一个 1-10 之间的随机#
2. 要求用户猜测 1-10 之间的这个数字 3. 如果guess == secret_num 祝贺他们并提供猜测的次数 number_guesses (减去任何重复的猜测) 4. 考虑重复的猜测 5. 让他们知道猜测是否正确太高或太低

我知道这对你们中的许多人来说都是 abc 的东西,但我在语法、缩进和控制流方面遇到了典型的新程序员问题。 现在我得到了关于 elif guess == secret num 的语法。 否则我无法使用此代码来解释重复项以挽救我的生命。 我将不胜感激任何帮助。 谢谢你 。

import random

def game():
# generate a random number between 1 -100 and initiate repeat guess list
    secret_num=random.randint(1,10)
# initiate duplicate list and number of guesses
    already_guesses = []
    number_guesses = 0

    while True:
# ask for user guess
        guess = int(input('Guess a number from 1-10> '))
# help with guesses and announce if it is correct number!
# catch someone if they submit the same number
        if guess in already_guesses:
            print ("You already guessed that number, try again")
        already_guesses.append(guess)
        number_guesses += 1
        elif guess == secret_num:
            print("whooohoo! you guessed it, my number is {}".format(secret_num))
            print("It took you {} guesses".format(number_guesses - len([already_guesses])))
            break
        elif guess < secret_num:
            print("You\'re getting hot, try a higher number")
        else:
            guess > secret_num
            print("You\'re cold, try a lower number")
# ask if they want to play again
    else:
        play_again = input("Do you wanna play again? y/n")
        if play_again != 'n':
            game()
        else:
            print("Bah Bye!")

game()

您的代码还有一些其他问题(在评论中提到缩进之后):

import random

def game():
    # Generate a random number between 1-100 and initiate repeat guess list
    secret_num=random.randint(1,10)
    # Initiate duplicate list
    # Consider using a set instead so you don't have to cast it into a set later
    already_guesses = []

    while True:
    # Ask for user guess
        guess = int(input('Guess a number from 1-10> '))
        # Help with guesses and announce if it is correct number!
        # Catch someone if they submit the same number
        if guess in already_guesses:
            print ("You already guessed that number, try again")
        elif guess == secret_num:
            # Format your strings properly
            print("whooohoo! you guessed it, my number is {0}".format(secret_num))
            # See how many unique guesses there were and add the correct guess to it (+1)
            # To do so just use a set
            print("It took you {0} guesses".format(
                len(set(already_guesses))+1
            ))
            break
        elif guess < secret_num:
            print("You\'re getting hot, try a higher number")
        else:
            guess > secret_num
            print("You\'re cold, try a lower number")
        # Make sure to append the guess to the already_guessed list in any case, not just if the number is in already_guesses
        # If you only do that in your original if block, already_guesses will always remain empty
        already_guesses.append(guess)

    # Ask if they want to play again
    play_again = input("Do you wanna play again? y/n")
    if play_again != 'n':
        game()
    else:
        print("Bah Bye!")

game()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM