在我的if语句中打破不工作

时间:2017-06-21 14:10:24

标签: python

寻求以下代码块的帮助。

## This is a number guessing game!

import random

guessesTaken = 0

print('Hello! What is your name?')
myName= input()

number= random.randint(1, 20)
print ('Well, '+ myName + ', I am thinking of a number between 1 and 20.')

for guessesTaken in range(6):
    print ('Take a guess.')
    guess=input()
    guess=int(guess)

    if guess < number:
        print ('Your guess is too low.')

    if guess > number:
        print('Your guess is to high!')

    if guess == number:
        break

    if guess == number:
        guessesTaken = str(guessesTaken+1)
        print('Good job,  '+ myName + '! You guessed my number in ' + guessesTaken + ' guesses!')
    if guess != number:
            number= str(number)
            print('Nope. The number I was thinking of was ' + number + '.')

3 个答案:

答案 0 :(得分:2)

我猜你想要执行break之外的代码,我会将你的代码更改为

    ## This is a number guessing game!

import random

guessesTaken = 0

print('Hello! What is your name?')
myName= input()

number= random.randint(1, 20)
print ('Well, '+ myName + ', I am thinking of a number between 1 and 20.')

for guessesTaken in range(6):
    print ('Take a guess.')
    guess=input()
    guess=int(guess)

    if guess < number:
        print ('Your guess is too low.')

    elif guess > number:
        print('Your guess is to high!')

    elif guess == number:
        # print 'Good job' here instead of beyond the break in a separate if statement
        guessesTaken = str(guessesTaken+1)
        print('Good job,  '+ myName + '! You guessed my number in ' + guessesTaken + ' guesses!')
        break

    if guessesTaken == 5:
        number= str(number)
        print('Nope. The number I was thinking of was ' + number + '.')

通过这种方式,程序会检查您的猜测是否结束 - if guessesTaken == 5:如果您猜测数字,那么在打印good job之后它会中断

答案 1 :(得分:1)

我想你想这样做:(试一试)

import random

guessesTaken = 0

print('Hello! What is your name?')
myName= input()

number= random.randint(1, 20)
print ('Well, '+ myName + ', I am thinking of a number between 1 and 20.')
print(number)

for guessesTaken in range(6):
    print ('Take a guess.')
    guess=input()
    guess=int(guess)

    if guess < number:
        print ('Your guess is too low.')

    if guess > number:
        print('Your guess is to high!')

    if guess == number:
        break

if guess == number:
    guessesTaken = str(guessesTaken+1)
    print('Good job,  '+ myName + '! You guessed my number in ' + guessesTaken + ' guesses!')
if guess != number:
    number= str(number)
    print('Nope. The number I was thinking of was ' + number + '.')

你不应该缩进:

if guess == number:
    guessesTaken = str(guessesTaken+1)
    print('Good job,  '+ myName + '! You guessed my number in ' + guessesTaken + ' guesses!')
if guess != number:
    number= str(number)
    print('Nope. The number I was thinking of was ' + number + '.')

答案 2 :(得分:1)

import random

maxGuesses =  6
guessed    = False
myName     = input('Hello! What is your name? ')
number     = random.randint(1, 20)
print ('Well, {0}, I am thinking of a number between 1 and 20.'.format(myName))

for guessesTaken in range(1, maxGuesses + 1):
    guess = int(input("Guess: "))

    if guess < number:
        print ('Your guess is too low!')

    if guess > number:
        print('Your guess is to high!')

    if guess == number:
        guessed = True
        break

if guessed:
    print('Good job, {0}! You guessed my number in {1} guesses!'.format(myName, guessesTaken))
    print("Congrats you win!")
elif not guessed:
    print("Shucks, you lose!")

你的休息有效,但你得到的错误是,当你使用break时,循环结束并且没有达到下一个条件。

*以上代码有点整洁*