for循环过早结束

时间:2020-01-05 05:52:23

标签: python python-3.x

我开始学习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))

2 个答案:

答案 0 :(得分:1)

for循环遍历 list 元组(1、7)中的元素-两个元素,一个和七个。

您应该拥有

for guessesTaken in range(1, 7):

range(1,7)将返回6个元素的列表,即1、2、3、4、5、6,因此for循环将迭代这6个元素。

此外,您用两种方式拼写guessesTakenguessesTakenguessTaken

答案 1 :(得分:1)

布伦达几乎是正确的,只是(1,7)是一个元组,而不是列表。还有

for guessesTaken in range(7): # or 6, not sure about your true intentions

会短一些