函数特性、递归、切片
# pass by list
def calc(nums) :
ans = 0
for num in nums :
ans += num
print(ans)
# Change Parameter, it can pass zero or many parameters
# and Parameter are treated as tuple
def per(name, *oth) :
print(name, 'and', oth)
#keywords parameter, it are treated as dict
def keyParameter(name, **oth) :
print(name, oth)
# 命名关键字参数
def person(name, age, *, city, job) :
print(name, age, city, job)
def dfs(n) :
if n < 1 : return 1
if n == 1 or n == 2 : return 1
return dfs(n - 1) + dfs(n - 2)
# slice function
def slice() :
list = [1, 2, 3, 4, 5]
print(list[0:3])
print(list[:3])
print(list[:-2])
print(list[-2:-1])
print(list[-3:])
print(list[:4:2])
print(list[::2])
print(list[:])
if __name__ == '__main__' :
ls = [1, 2, 3]
# calc(ls)
# per('ygl', 30)
# keyParameter('ygl', age=17)
# person('ygl', 21, 'bb', 'stu') error
# person('ygl', 21, city = 'bb', job = 'stu')
# print(dfs(5))
slice()