【python学习9】自定义函数/python中常用的内置函数(待完善),python中的bug

(一)函数的定义和调用

1,函数基础知识 

 

 2,函数的参数传递

(1)形参与实参 

 (2)参数的类型

关键字参数:参数的名称必须和 函数定义的参数名称 相同 

若采用混合方式传递参数若位置参数在关键字参数之后,程序会报错;反过来不会报错

默认值参数形式:def happy_birthday(name="abc",age=18)   #即形参已给定数值

注意项:

①【函数定义时】,形参存在位置参数和默认值参数时,默认值参数放在最后

(3)长度可变的参数 

 可变位置参数:注意 列表传递解包操作前加*

 可变关键字参数:注意 直接传递字典解包操作前加**

#个数可变的位置参数
def fun(*para):
    print(type(para))
    for item in para:
        print(item)

fun(10,20,30,52)    #输出时tuple类型,(10,20,30,52)
fun(10)    #输出tuple类型,(10)
fun([10,20,30])    #输出tuple类型,[10,20,30],元组只有一个元素且元素类型时列表
fun(*[10,20,30])    #实参前加*号将列表进行解包,输出是(10,20,30)

#个数可变的关键字参数
def fun2(**ecpara):
    print(type(ecpara))
    for key,value in ecpara.items():
        print(key,value)
fun2(name="abc",age=18,height=180,weight=160)    #输出dict类型
#直接穿字典类型dict
d={"name":"abc","age":18,"height":180,"weight":160}
fun2(**d)    #类似字典的解包,即可穿字典类型

(4)函数的参数总结

(5)函数的返回值

 (6)变量的作用域

(7)递归函数

 (二)Bug的介绍

1,Bug简介和分类

Bug的由来:

某人在用第一部计算机写程序时,一致出现错误,因此他拆开计算机发现有个虫子卡在寄存器中,成为Bug,排除错误debug

 (1)是因为input()函数会将输入内容转为str类型,str不能与int比较,故语法错误

 (2)是因为未给 i 赋值,print是中文括号,循环体内没有改变循环变量的语句

对于逻辑不清晰的Bug调试采用: ①使用print()函数输出检验   ②使用“#”暂时注释部分代码 

2 ,针对被动掉坑(上图),python具有的异常处理机制:

(1)使用 try-except 结构

 

BaseExceptiom 是最基础最大的异常报错 ,是最大的父类

BaseException as e:是将该模块用作别名 e

 (2)使用try-except-else结构

 (3)使用try-except-else-finally结构

 finally模块:常用来释放try块中申请的资源

        *后面的 文件处理关闭数据库的连接 都会 放在finally模块中

try-except-else-finally结构 相较于前两种是 较为完整的处理程序异常的结构

3,python中常见的异常类型

 (1)traceback模块的使用

import traceback
try:
    print("---------------")
    print(1/0)
except:
    traceback.print_exc()    #打印错误信息

traceback模块 作用:用该模块打印错误信息,可能会存入到文件当中放到日志中成为log日志

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值