当试图写一行斐波纳契数列,我明白了,我在遇到一个问题,fib = lambda a, b: b, a + b如"'b' is not defined"
但是,当我这样做时,sum = a, b, c: a + b + c我没有错误. sum(1, 2, 3)完美运行并返回6.
我研究了全局变量,发现如果我在开始之前将a和b设置为Null,它不会给我一个错误,但有没有办法不这样做?
我试图找出一种方法,如果输入可被4整除,则返回true,但不是100,除非也是400.我尝试失败了:
def is_leap(year):
leap = False
if [year % 100 == 0 if not year % 400]:
leap = False
else:
if leap % 4 == 0:
leap = True
return leap
Run Code Online (Sandbox Code Playgroud)
2100的输入可以被4和100整除但不是400,所以我希望它返回False.
我得出一个简单的结论
def is_leap(year):
leap = False
if year % 4 == 0 and year % 400 == 0:
leap = True
elif year % 4 == 0 and year % 100 != 0:
leap = True
return leap
Run Code Online (Sandbox Code Playgroud)
但除非是否有更简单或不同的方式来做?谢谢.
此外,虽然我主要倾向于使用python3.5来满足每个人的需求,但我喜欢2.7的简单性.任何帮助都将不胜感激.