区分各种形式的条件语句

时间:2019-01-13 21:49:43

标签: python python-3.x

我不明白为什么Python中的某些代码没有缩进地编写。

两个函数都做同样的事情,但是为什么第一个函数is_leap1只能用return方式写,而如果statemnt则不行呢?第一个函数如何在不使用if和else的情况下返回True和False:?

def is_leap1(year):
    return year % 4==0and(year %100 !=0 or year %400==0)

print(is_leap1(2014))

def is_leap2(year):
    if (( year%400 == 0)or (( year%4 == 0 ) and ( year%100 != 0))):
        return True
    else:
        return False

print(is_leap2(2014))

输出

False
False

2 个答案:

答案 0 :(得分:1)

比较运算符,例如 override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) showDropIn(clientTokenOrTokenizationKey: clientToken) } func showDropIn(clientTokenOrTokenizationKey: String) { BTUIKAppearance.darkTheme() BTUIKAppearance.sharedInstance().primaryTextColor = UIColor.red let request = BTDropInRequest() request.vaultManager = true let dropIn = BTDropInController(authorization: clientTokenOrTokenizationKey, request: request) { (controller, result, error) in if (error != nil) { print("ERROR") } else if (result?.isCancelled == true) { print("CANCELLED") } else if let result = result { // Use the BTDropInResult properties to update your UI // result.paymentOptionType // result.paymentMethod // result.paymentIcon // result.paymentDescription } controller.dismiss(animated: true, completion: nil) } self.present(dropIn!, animated: true, completion: nil) } ==!=<>=and等,都自然返回布尔值。因此,使用这些运算符时,无需使用or语句来返回ifTrue。您可以自己对此进行简单测试:

False

official documentation明确了这一点:

  

比较产生布尔值:print(5 > 3) # True print(True if 5 > 3 else False) # True True

答案 1 :(得分:1)

在第一个函数中,使用逻辑运算符输出True或False。

由于条件 year%4 == 0 year%100!= 0 < em> year%400 == 0 )是使用逻辑AND或OR编写的,这些函数将计算该值并产生值True或False,然后最终使用 return 返回该值功能中的关键字