600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > python避免深度嵌套的if-else_避免嵌套If语句?(Python 2.7)

python避免深度嵌套的if-else_避免嵌套If语句?(Python 2.7)

时间:2019-05-22 19:05:43

相关推荐

python避免深度嵌套的if-else_避免嵌套If语句?(Python 2.7)

像这样尝试,使用continue退出循环的当前迭代,并在循环的顶部重新开始。在

你还有一个逻辑错误:if guess <= 1 and guess >= 20 and guess not in already_guessed:

一个数字不能同时小于或等于1,也不能大于或等于20。您的and应该是这样的or:

^{pr2}$

或者更简单:if 1 <= guess <= 20 and guess not in already_guessed:

另外,将你的try/except只放在可能引发异常的情况下(或者在发生异常时不应该发生:from random import randint

import sys

name = raw_input("Hello! What's your name? ")

print "Well {}, I'm thinking of a number between 1 and 20.".format(name)

print "Since I'm a benevolent computer program, I'll give you 6 guesses."

secret_number = randint(1, 20)

guesses_left = 6

already_guessed = []

while guesses_left > 0:

print "You have {} guesses left!".format(guesses_left)

try:

guess = int(raw_input("Take a guess: "))

except ValueError:

print "Invalid input! Please try again!\n"

continue

# If the number is not between 1 and 20...

if not (1 <= guess <= 20):

print "Not a number between 1 - 20!"

print "Please try again!\n"

continue

if guess in already_guessed:

print "You already guessed that!\n"

continue

guesses_left -= 1

already_guessed.append(guess)

if guess == secret_number:

print "You win! {} was my secret number!".format(secret_number)

sys.exit(0)

elif guess < secret_number:

print "Your guess is too low!\n"

elif guess > secret_number:

print "Your guess is too high!\n"

下面是一个运行示例:Hello! What's your name? :)

Well :), I'm thinking of a number between 1 and 20.

Since I'm a benevolent computer program, I'll give you 6 guesses.

You have 6 guesses left!

Take a guess: 2

Your guess is too low!

You have 5 guesses left!

Take a guess: 2

You already guessed that!

You have 5 guesses left!

Take a guess: 3

Your guess is too low!

You have 4 guesses left!

Take a guess: 7

Your guess is too high!

You have 3 guesses left!

Take a guess: 5

Your guess is too high!

You have 2 guesses left!

Take a guess: 4

You win! 4 was my secret number!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。