我不明白为什么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
答案 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
语句来返回if
或True
。您可以自己对此进行简单测试:
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 返回该值功能中的关键字