目录
一、函数
1.函数的定义
2.函数的创建 def() #defined
def 函数名 ([参数])
函数体
(return)
形参与实参(位置实参、关键字实参)
3.函数的参数传递
4.函数的返回值(return)
5.函数的参数定义
1.个数可变的位置参数:一开始可能无法知道位置实参的个数时,就可以使用可变的位置参数。使用*定义个数可变的位置形参,输出结果为一个元组。
例:def fun(*args)
print(args)
fun(10)
fun(10,20,30)
#输出结果为
(10,) #元组中只有一个参数时后面会加‘,’
(10,20,30)
2.个数可变的关键字形参:一开始可能无法知道关键字实参的个数时,就可以使用可变的关键字形参。使用**定义个数可变的关键字形参,输出结果位一个字典。
例:def fun(**args)
print(args)
fun(a=10)
fun(a=10,b=20,c=30)
#输出结果为
{'a':10}
{'a':10,'b':20,'c':30}
6.变量
1.局部变量、全局变量
7.递归函数
一个函数的函数体中调用了该函数本身。(套娃函数)关键在于要有结束的语句
1.斐波那契数列
例: def fib(n):
if n == 1:
return 1
elif n == 2:
return 1
else:
return fib(n-1)+fib(n-2)
二、BUG
1.语法错误 SyntaxError
2.索引越界错误IndexError
3.思路逻辑不清
4.用户输入操作错误
解决方法:
用这个方法可知道有什么错误
try:
#可能会出现错误的代码
except:
#异常处理代码
except:
#异常处理代码
如果try块中没有抛出异常,则执行else块;如果try中抛出异常,则执行except块。
try:
#可能出现异常的代码
except:
#异常代码类型
else:
#没有异常后的执行步骤
finally块无论是否发生异常都会被执行,能用来释放try块中申请的资源
try:
#可能出现异常的代码
except:
#异常代码类型
else:
#没有异常后的执行代码
finally:
#最后必须执行的代码
序号 | 异常类型 | 描述 |
1 | ZeroDivisionError | 除(或取模)零(所有数据类型) |
2 | IndexError | 序列中没有此索引(index) |
3 | KeyError | 映射中没有这个键 |
4 | NameError | 未声明/初始化对象(没有属性) |
5 | SyntaxError | python语法错误 |
6 | ValueError | 传入无效的参数 |
5.python的异常处理机制——traceback模块
使用traceback模块打印异常信息
例:import traceback
try:
print('1.--------')
num = 10/0
except:
traceback.print_exc()
#打印出错误信息:ZeroDivisionError:division by zero
三、PyCharm开发环境的调试
1.断点
2.进入调试试图