0
点赞
收藏
分享

微信扫一扫

python笔记(十):函数feb func( )函数定义和传参、异常处理try 和except

朱小落 2022-03-23 阅读 43

-----学习视频来源于马士兵教育-----

内容主要为了自己复习用,也可以让大家梳洗思路

#函数创建
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操作
举报

相关推荐

0 条评论