如何实现“如果发生错误就不要实现此代码”?

时间:2019-07-17 22:58:06

标签: python if-statement

我想用python编写基本上执行以下操作的代码:

if error occurs while implementing int(a) print('valid character')
elif no error occurs while implementing int(a)  print('invalid character')

a是输入。

我想做一个简单的子手游戏,如果输入的不是字母,我希望显示某些消息。我尝试使用if a==int(),但是输入始终是字符串。

2 个答案:

答案 0 :(得分:2)

通常,您会使用Try, Except clause来处理错误,但是由于实际上并没有收到错误-您只想知道输入的内容是否为字母字符,可以使用{{ 3}}功能。

guess = input()
if not guess.isalpha():
    print('You must supply an alphabetical character')
else:
    #the rest of your code would go here


现在玩得开心。这就是您将确切实现所要查询内容的方式,但是,请注意,它不会捕获标点符号,表情符号字符以及任何其他非数字和非字母的随机字符。

guess = input()
isOk = False

try:
   int(guess)
except ValueError:
    isOk = True

if not isOk:
    print("you cannot enter a number")

我不知道是否提个这个好主意,因为在此处添加else是Python的一个非常古怪的功能,但是您可以从技术上将上述代码浓缩为

guess = input()
try:
   int(guess)
except ValueError:
    # All good
    pass
else:
    # we where able to cast to an integer = bad
    print("you cannot enter a number")

但是我可能永远不会在生产代码中这样做。另外,重要说明。当您了解try除外条款时。即使有可能只做except:,请确保始终陈述所捕获的内容。在这种情况下,是ValueError except ValueError:。如果不这样做,那么您将抑制所有错误,并且冒着被重要错误抑制的危险而陷入困境,并且您不知道为什么程序的行为不正确。

答案 1 :(得分:0)

探索除试设计

try:
   # do something here
except (ErrorName):
   # error catching
   print("invalid character")

请尝试包括可复制的代码或伪代码的代码块,以便其他人可以更轻松地遵循!!