个人简介
- 大家好,我是韩慧腾。一名正在努力学python的大一小白,本文章为初学的笔记,希望各位多多指教。
- 欢迎点赞+收藏+留言
- 每一朵乌云背后都有阳光李
一、函数
概述:函数就是执行特定任务以完成特定功能的一段代码
函数的好处:
- 复用代码
- 隐藏实现细节
- 提高可维护性
- 提高可读性便于调式
二、函数的创建
# @Author:韩慧腾
# @Time :2022/7/8 10:10
# @File :函数_Demo0.py
# 努力已经来不及了,你得拼命
#函数的定义
def sum(a,b):
sum=a+b
return sum;
c=sum(12,23)#函数的调用 通过位置传参数
c1=sum(b=12,a=23)#通过变量名字传参数
print(c)#35
三、函数的参数
- 形式参数(简称形参):位置在函数定义处
- 实际参数(简称实参):位置是在函数调用处
- 函数定义默认值参数:函数定义时,给形参设置默认值,只有与默认值不符的时候才需要传递实参
我们一直用的print函数输出都会换行就是因为print函数定义的时候有个默认参数(end='n'),只要我们使用的时候改变这个默认值就可以达到不换行的效果。
# @Author:韩慧腾
# @Time :2022/7/9 10:13
# @File :函数_Demo2.py
# 努力已经来不及了,你得拼命
print('hello')
print('wprld')
print('hello',end='t')
print('world')
- 函数的参数定义
1.个数可变的位置参数
定义函数时,可能无法事先确定传递的位置参数的个数时,可以使用可变的位置参数,使用*定义个数可变的位置形参,结果为一个元组
2. 个数可变的关键字形参
定义参数时,无法事先确定传递的关键字实参的个数时,使用可变的关键字形参,使用**定义个数可变的关键字形参,结果为一个字典
# @Author:韩慧腾
# @Time :2022/7/9 10:47
# @File :函数_Demo3.py
# 努力已经来不及了,你得拼命
def fun(*a):
print(a)
#函数的调用
fun(12)
fun(12,23)
fun(12,23,123)
# @Author:韩慧腾
# @Time :2022/7/9 13:26
# @File :函数_Demo4.py
# 努力已经来不及了,你得拼命
def fun(**a):
print(a)
#函数的调用
fun(a=10)#{'a': 10}
fun(a=11,b=22,c=33)#{'a': 11, 'b': 22, 'c': 33}
注意:
- 个数可变的位置参数和关键字参数只能是一个
- 在一个函数的定义过程中,既有个数可变的关键字形参,也有个数可变的位置参数,要求个数可变的位置形参放在个数可变的关键字之前
- 如果有多个参数,其中有*,则*后面的就是关键字参数
四、变量的作用域
作用域就是程序代码能访问该变量的区域,根据变量的有效范围可分为局部变量和全员变量。
五、递归函数
概述:如果在一个函数的函数体内调用了该函数的本身,这个函数就称为递归函数
递归的组成部分:递归调用和递归终止条件
递归的调用过程:每递归调用一次函数,都会在栈内存分配一个栈帧,每执行完一次函数,都会释放相应的空间
递归的优缺点:优点是思路和代码简单,缺点是占用内存多效率低下。
# @Author:韩慧腾
# @Time :2022/7/9 14:27
# @File :函数_Demo5.py
# 努力已经来不及了,你得拼命
#递归函数
def fac(n):
if n==1:
return 1
else:
return n*fac(n-1)
#函数的调用
print(fac(6))
六、斐波那契数列
# @Author:韩慧腾
# @Time :2022/7/9 14:37
# @File :函数_Demo6.py
# 努力已经来不及了,你得拼命
def f(n):
if n==1 or n==2:
return 1
else:
return f(n-1)+f(n-2)
print(f(6))#斐波那契数列的第六位数



