1.用函数,编写关于成绩的程序
def yyy(score): if score > 100 or score < 0: print('不合法') elif score >= 90: print('A') elif score >= 80: print('B') elif score >= 70: print('C') elif score >= 60: print('D') else: print('不及格') while True: score = int(input('score:')) yyy(score)
2.关于return的理解
def func(a): if a%2 == 0: return 1,2,3 else: return 1 a = 12 b = 3 r1 = func(b) print(r1) #结果 1
3.函数的 计算
def addfunc(a,b,c=0): print(a + b + c) while True: a = int(input('number a : ')) b = int(input('number b : ')) if b%2 == 0: #如果输入的 b,为偶数。输入c c = int(input('number c : ')) addfunc(a,b,c) else: addfunc(a, b)
4.函数和for
def test(c=[]): c.append(1) print(c) for i in [1,2,3]: test() ##相当于 上面的 for # test() # test() # test() ###结果 [1] [1, 1] [1, 1, 1]
5.动态参数
def zzz(num,*args,f=True,**kwargs): print(num) print(args) print(f) print(kwargs) # zzz(20,a = 1,b = 1) d = {'b': 1, 'a': 1} zzz(50,1,2,3,5,**d) ##结果 50 (1, 2, 3, 5) True {'b': 1, 'a': 1}
6.函数调用
1.比较大小
def my_max(x,y): res = x if x>y else y return res print(my_max(10,100)) def my_max4(a,b,c,d): res1 = my_max(a,b) res2 = my_max(res1,c) res3 = my_max(res2,d) return res3 print(my_max4(1,20,3,4)) #结果 100 20
2.
def calc(n): print(n) if int(n/2) == 0: return n return calc(int(n/2)) calc(10) #结果 10 5 2 1
7.匿名函数
# f = lambda x,y:x+y #不是 匿名函数 # print(f(2,4)) # print((lambda x,y:x+y)(3,6)) # 是 匿名函数
递归调用
在函数内部,可以调用其他函数。如果在调用一个函数的过程中直接或间接调用自身本身
#----1 def calc(n): print(n) if int(n/2) == 0: return n return calc(int(n/2)) calc(10) #结果 10 5 2 1 #-----2 def func(num): #阶乘 if num==1: return 1 if num>1: return func(num-1)*num k = func(5) print(k) #结果 120
def test(n): print(n) n = n-1 if n>=1: test(n) test(5) #结果 5 4 3 2 1
#面试题 def add(n,i): return n+i def test(): for i in range(4): yield i g=test() for n in [1,10]: g=(add(n,i) for i in g) # n = 1 #g = (add(n,i) for i in g) #[1, 2, 3, 4] #n = 10 #g1 = (add(n,i) for i in (add(n,i) for i in g)) #g =test() 0,1,2,3 # # # #此处的n=10 #10,11.12.13 print(list(g)) #结果 [20, 21, 22, 23]