我开始学习python并为我提供了一个程序,该程序可以让用户进行六次尝试猜测在1到20之间生成的随机数。在用户输入六种猜测之一之后,该猜测被发送到for循环中,并且该猜测为然后由if和elif语句求值,以确定猜测是在秘密数字之下还是在秘密数字之上,并告诉用户太低或太高,或者如果用户正确猜测了数字,则for循环将由a停止。包含break语句的else语句。我遇到的问题是,在输入两次猜测后,for循环过早结束并退出循环,而没有给出再次猜测的选项。我不明白为什么只执行for循环,任何建议
import random
secretNumber = random.randint(1, 20)
print('Im thinking of a number between 1 and 20')
for guessesTaken in (1, 7):
print('Take a guess.')
guess = int(input())
if guess < secretNumber:
print('Your guess is too low.')
elif guess > secretNumber:
print('Your guess is too high.')
else:
break
if guess == secretNumber:
print('Wow you guessed my number in' + int(guessTaken) + 'guesses')
else:
print('Nope. The number i was thinking of was ' + str(secretNumber))
答案 0 :(得分:1)
for循环遍历 list 元组(1、7)中的元素-两个元素,一个和七个。
您应该拥有
for guessesTaken in range(1, 7):
range(1,7)将返回6个元素的列表,即1、2、3、4、5、6,因此for循环将迭代这6个元素。
此外,您用两种方式拼写guessesTaken
:guessesTaken
和guessTaken
。
答案 1 :(得分:1)
布伦达几乎是正确的,只是(1,7)
是一个元组,而不是列表。还有
for guessesTaken in range(7): # or 6, not sure about your true intentions
会短一些