-----学习视频来源于马士兵教育-----
内容主要为了自己复习用,也可以让大家梳洗思路
#函数创建 def calc(a,b): c=a+b return c result=calc(10,20) #位置实参 result=calc(b=10,a=20) #关键字实参 print(result) #30 def fun (user1,user2): print('user1',user1) #user1 11 print('user2',user2) #user2 [22, 33, 44] user1=100 user2.append(10) print('user1',user1) #user1 100 print('user2',user2) #user2 [22, 33, 44, 10] return n1=11 n2=[22,33,44] print('n1',n1) #n1 11 print('n2',n2) #n2 [22, 33, 44] fun(n1,n2) print('n1',n1) #n1 11 #n1是不可变对象,在函数体内不会影响实参的值 print('n2',n2) #n2 [22, 33, 44, 10] #n2是可变对象,在函数提的修改会影响到实参的值 #奇数和偶数分开 def fun(num): jishu=[] oushu=[] for i in num: if i%2: jishu.append(i) else: oushu.append(i) return jishu,oushu n=[1,2,3,4,5,6,7,8] print(fun(n)) #([1, 3, 5, 7], [2, 4, 6, 8]) #函数的返回值 #1、如果函数没有返回值,retrun可以省略 #2、函数返回值如果是一个值直接返回类型 #3、函数的返回值如果是多个,返回的结果为元组 def fun(a,b=10): print(a,b) fun(100) #100 10 fun(100,200) #100 200 print('hello',end='\t') print('world') #hello world def fun(*num): #位置参数,返回元组,只能是一个 print(num) fun(10) #(10,) fun(10,20) #(10, 20) fun(10,2,30) #(10, 2, 30) def fun1(**num1): #关键字参数,返回字典,只能是一个 print(num1) fun1(a=10) #{'a': 10} fun1(a=10,b=20) #{'a': 10, 'b': 20} #在一个函数的定义过程,可变参数同时存在,关键位置参数在关键字参数前面def fun1(*num,**num1): def fun(a,b,c): print(a) print(b) print(c) fun(1,2,3) num=[1,2,3] fun(*num) fun(a=1,b=2,c=3) dic={'a':1,'b':2,'c':3} fun(**dic) #返回结果都是1 2 3 def fun(a,b=10): print(a) print(b) def fun1(*user): print(user) def fun2(**user): print(user) fun1(10,2,3) #(10, 2, 3) fun2(a=1,b=2) #{'a': 1, 'b': 2} def fun3(a,b,*,c,d): #*后采用关键字,前面采用位置实参 print(a) print(b) print(c) print(d) fun3(10,20,c=30,d=50) #10 20 30 50 #global 可以声明为全局变量 #计算6*5*4*3*2*1 def fac(n): if n==1: return 1 else: return n*fac(n-1) print(fac(6)) #720 #斐波那契数列 def fib(n): if n==1: return 1 elif n==2: return 1 else: return fib(n-1)+fib(n-2) print(fib(6)) #8 常见错误: 1、漏了末尾的冒号 2、缩进错误 3、英文符号携程中文 4、字符串和数字拼在一起 5、没有自定义变量 6、==比较运算符,=赋值运算符
1、ZeroDivisionError数算运算错误print(2/0) 2、indexError 索引错误 print(list[5]) 3、KeyError 4、NameError print(num) #num没有定义 5、SyntaxError 语法错误 6、ValueError 传入无效的参数 #Tracerback 打印错误参数 import traceback try: print(1/0) except: traceback.print_exc() ##try 和except异常处理机制 try: a=int(input('one:')) b=int(input('two:')) sum=a/b print(sum) except SyntaxError: print('error') except SyntaxError: print('no 0') except ValueError: print('could be number') print('game over') ##try----except----else异常处理机制 try: a=int(input('one:')) b=int(input('two:')) sum=a/b except BaseException as e: #基本的错误标识 print('error',e) else: print(sum) ##try----except----else---finally异常处理机制 try: a=int(input('one:')) b=int(input('two:')) sum=a/b except BaseException as e: #基本的错误标识 print('error',e) else: print(sum) finally: print('thank')#无论成功与否都会执行thanks操作