Python try/except

Python try/except,python,try-catch,except,Python,Try Catch,Except,我正在尝试一个从枯燥的书中自动生成的小程序 我想确保输入非int变量的人不会使程序崩溃。代码抛出一个错误,指出“break”命令不在循环中。任何帮助都将不胜感激 import random print ('Hello. What is your name?') name = input() secretNumber=random.randint(1,20) print('Well ' + name + ', I\'m thinking of a number between 1 and 20.'

我正在尝试一个从枯燥的书中自动生成的小程序

我想确保输入非int变量的人不会使程序崩溃。代码抛出一个错误,指出“break”命令不在循环中。任何帮助都将不胜感激

import random
print ('Hello. What is your name?')
name = input()
secretNumber=random.randint(1,20)
print('Well ' + name + ', I\'m thinking of a number between 1 and 20.')

for guessesTaken in range(1,7):
    print()
    print ('Take a guess')
try:
    guess = int(input())

except ValueError:
    print ('I said guess a number not letters or words.')

    if guess < secretNumber:
        print('Your guess is too low.')
    elif guess > secretNumber:
        print('Your guess is too high.')
    else:
        break

if guess == secretNumber:
    print('Good job! You guessed it.')
else:
    print('Nope the number I was thinking of was ' + str(secretNumber)+' sorry.')
随机导入
打印('你好,你叫什么名字?')
名称=输入()
secretNumber=random.randint(1,20)
打印('Well'+name+',我想到的是一个介于1和20之间的数字。)
对于范围(1,7)内的猜测:
打印()
打印('猜一猜')
尝试:
guess=int(输入())
除值错误外:
打印('我说的是猜一个数字,而不是字母或单词')
如果guess秘密编号:
打印('您的猜测太高了')
其他:
打破
如果guess==secretNumber:
打印(“干得好!你猜对了。”)
其他:
打印('不,我想的号码是'+str(secretNumber)+'对不起')

您的缩进不正确。请注意,
try
块和它下面的所有内容都不再在您的
for
循环中。

首先,请记住始终将代码发布在此处,这样可以避免否决票

try:
    guess = int(input())

except (ValueError, NameError):
    print ('I said guess a number not letters or words.')
    break

if guess < secretNumber:
    print('Your guess is too low.')
elif guess > secretNumber:
    print('Your guess is too high.')
else:
    break
通过查看您的代码,我可以很容易地告诉您一些事情:

1) 缩进这段代码,因为它实际上不在
for
循环中

try:
    guess = int(input())

except (ValueError, NameError):
    print ('I said guess a number not letters or words.')
    break

if guess < secretNumber:
    print('Your guess is too low.')
elif guess > secretNumber:
    print('Your guess is too high.')
else:
    break
仍有改进的余地,但这将满足您的要求


祝您愉快=)。

在此处发布您的代码!更具体地说,在这里发布一段代码。在没有看到代码的情况下,我怀疑“else”命令不在循环中。在注释中这样格式化是不好的。编辑您的帖子以包含代码-请参阅上面评论中jonrsharpe的链接。@首先,请查看其他几个实际已回答的问题。你应该注意对OP的期望。