[英]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.