“理解”;试一试;及;除「;python

“理解”;试一试;及;除「;python,python,python-2.7,try-except,Python,Python 2.7,Try Except,因为到目前为止我所了解的是,计算机将尝试运行try部分中的代码,并将运行except部分中提到的内容。一旦计算机得到了除中提到的东西,它将运行除代码 因此,我尝试了以下方法: try: if year // 100: print year, "is not a leap year" else: print year, "is not a leap year" except year // 400 and year // 4:

因为到目前为止我所了解的是,计算机将尝试运行try部分中的代码,并将运行except部分中提到的内容。一旦计算机得到了除中提到的东西,它将运行除代码

因此,我尝试了以下方法:

try:
    if year // 100:
        print year, "is not a leap year"

    else:
        print year, "is not a leap year"


 except year // 400  and year // 4:
        print "is a leap year"
这是行不通的


我想知道为什么会是这样?

基本上是一种尝试,除了像是一个if和else…有点像

除了当您
try
时,如果它没有引发异常,它将超出
try
代码块,但是当它失败时,它将执行
except

a = [1,2,3,4,"hello"]

for i in a:
    try:
        print(i)
        i + 1

    except:
        print("nope " + i  + " is a string")
请读一读

声明的作用如下

  • 首先,执行try子句(和关键字之间的语句)
  • 如果没有发生异常,则跳过except子句并完成语句的执行
  • 如果在执行try子句期间发生异常,则跳过该子句的其余部分。然后,如果其类型与异常匹配 以except关键字命名,执行except子句,并且 然后在语句之后继续执行
  • 如果发生的异常与except子句中指定的异常不匹配,则将其传递给外部语句;如果没有 如果找到处理程序,则它是未处理的异常,执行将停止 使用如上所示的消息

除了只捕获表达式,它不像
if/else
你的意思是它捕获try部分中不可能的东西@Anandskumar您可能想阅读。不幸的是,您对try/except在Python中如何工作的理解是不正确的。try/except的目的是捕获和处理异常,异常是Python遇到错误时抛出的一种特定类型的对象。Try/except不能用于任意操纵控制流,就像您试图做的那样。@Michael0x2a哦,好的。我得到了它。非常感谢。