链式条件语句的Python语法

链式条件语句的Python语法,python,conditional-operator,Python,Conditional Operator,我是Python的初学者,目前正在通过《如何像计算机科学家一样思考》一书进行自学 根据《链式条件句》一书中的一个练习,所教授的语法是: def function(x,y) if ..: print ".." elif..: print ".." else: print".." 然而,当我试图找出它是否合法时,它起了作用: def function (x,y) if ..: print ".." if ..:

我是Python的初学者,目前正在通过《如何像计算机科学家一样思考》一书进行自学 根据《链式条件句》一书中的一个练习,所教授的语法是:

 def function(x,y)
   if ..:
      print ".."
   elif..:
      print ".."
   else:
      print".."
然而,当我试图找出它是否合法时,它起了作用:

 def function (x,y)
   if ..:
     print ".."
   if ..:
     print ".."
后者是正确的语法吗?或者它甚至不被认为是一个链式条件? 我想知道,即使这在Python中是合法的,它是否是编写代码的“好方法”


衷心感谢您的帮助

尽管第二个示例有效,但它与第一个示例不同。在第二种情况下,将对每个
if
条件进行评估,而不管前一个条件是否为真并执行。在链式
if/elif
示例中,整个事件被视为一个单元,只执行第一个匹配的条件

例如: 然而
我不会把第二个变量称为链式条件变量。它只是一系列(可能不相关的)
if
语句


主要区别在于,第一个变量始终只执行一条
print
语句,而在第二个变量中,可以执行多条
print
语句。

是否确实执行了代码?因为在每次
def
之后,您需要有一个“:”例如:
def函数(x,y):
假设您的函数决定“您穿什么衣服”,if语句是“if rain=>穿雨衣”和“if sunny=>穿短裤”。。。在第一个例子中,你要么穿雨衣,要么穿短裤,但在第二个例子中,正如迈克尔指出的那样,你可以同时穿雨衣和短裤。。有帮助吗?嗨,你说得对。我确实漏掉了冒号。嗨,Richard,是的,它确实有帮助:)。我现在明白了,谢谢:)非常感谢!对于像我这样的人来说,这个例子非常简单明了。感谢:)
# An if/elif chain
a = 2
b = 3

if a == 2:
  print "a is 2"
elif b == 3:
  print "b is 3"
else:
  print "whatever"

# prints only
"a is 2"
# even though the b condition is also true.
# Sequential if statements, not chained
a = 2
b = 3

if a == 2:
  print "a is 2"

if b == 3:
  print "b is 3"

# prints both
"a is 2"
"b is 3"