Python入门
Python开发工具的使用:Pycharm的配置使用
第一章:Python入门学习(一)Print函数、Input函数、基本数据类型、运算符、流程控制语句、循环语句
第二章:Python入门学习(二) 列表的增删改查
第三章:Python入门学习(三) 字典的增删改查
第四章:Python入门学习(四)元组与集合
第五章:Python入门学习(五)字符串的操作
第六章:Python入门学习(六)函数学习
第七章:Python入门学习(七)Python异常处理机制
第八章:Python入门学习(八)Python中的类和对象
第九章:Python入门学习(九)Python面向对象的三大特征封装、继承和多态
第十章:Python入门学习(十)Python模块化编程
第十一章:Python入门学习(十一)Python的IO操作
代码仓库地址:Python入门项目
介绍
- 什么是函数?
函数就是执行特定任务和完成特定功能的一段代码 - 为什么需要函数?
复用代码
隐藏实现细节
提高可维护性
提高可读性便于调试
函数
函数的创建、调用
函数的语法结构:
def 函数名 ([参数]):
函数体
[return xxx]
# 函数的创建
def calc(a,b):
c = a + b
return c
# 函数的调用 直接使用函数名调用
result = calc(10,20)
print(result)
result = calc(b=10,a=20)
print(result)
函数的参数传递
函数的参数传递:
def calc(a,b): a、b称为形式参数,简称形参, 位置是在函数的定义处
c = a + b 10、20成为实际参数,简称实参,位置是在函数的调用处
return c
1.位置实参 def calc(10,20) 根据形参的相应位置进行实参传递
2.关键字实参def calc(b=10,a=20)根据形参名进行实参传递 形参名称=实参值
函数返回多个值时,结果为元组
def fun(num): # 函数返回多个值时,结果为元组
odd=[]
even=[]
for item in num:
if item%2:
even.append(item)
else:
odd.append(item)
return odd,even
num = [12,43,46,22,3,54,23]
result = fun(num) # 返回的是一个元组 ([12, 46, 22, 54], [43, 3, 23])
print(result)
函数的参数定义
函数定义默认参数值
# 函数定义默认参数值 b成为默认值参数
def fun(a,b=10):
return a+b
print(fun(10)) # 如果只传入一个参数,则b使用默认值10
print(fun(10,b=20))# 如果传入时有b的值,则b不采用默认值使用传入时的值
print('hello',end='\t') # end是print函数的默认值参数 end默认为/n换行
print('world')
例如:print打印函数的默认参数值 end为换行符
个数可变的位置参数
定义函数时,可能无法实现确定传递的位置实参的个数时,可以使用可变的位置参数
使用*
定义个数可变的位置形参
结构为一个元组
个数可变的关键字形参
定义函数时,无法实现确定传递的关键字实参的个数时,使用可变的关键字形参
使用**
定义个数可变的关键字形参
结果为一个字典
def fun(*args):
print(args)
fun(10)
fun(12,23,45,15)
def fun(**args):
print(args)
fun(a=10)
fun(a=10,b=20,c=30)
函数的返回值
函数的返回值:
1.可以没有返回值
2.如果返回的只有一个值,直接返回类型
3.如果返回的多个值,则返回元组类型
变量的作用域
局部变量:在函数内定义并使用的变量,只在函数内部有效,局部变量使用global声明,这个变量就会成为全局变量
全局变量:函数体外定义的变量,可作用与函数内外
# 变量的作用域
def fun(a,b):
c = a+b # c成为局部变量,定义在函数内部,只能在函数内部使用,不能在函数外部使用
return c
fun(10,20)
name = 'lsh'
def fun():
print(name) # name称为全局变量,在函数内外都可以使用
fun()
def fun() :
global age #在函数内部定义age变量 是局部变量 但是使用global成为全局变量
age = 20
print(age)
fun()
print(age)
递归函数
# 递归函数 自己调自己
# 使用递归来计算阶乘 6! = 6*5*4*3*2*1
def fac(n):
if n == 1:
return 1
else:
res = n*fac(n-1)
return res
print(fac(6))
斐波那契数列:1 1 2 3 5 8 13 21 …
# 斐波那契数列 当前项的数字等于前两项之和 :1 1 2 3 5 8 13 21 ...
def fin(n):
if n == 1:
return 1
elif n==2:
return 1
else:
return fin(n-1)+fin(n-2)
print(fin(6))
# 输出这个序列的前六位数组
for i in range(1,7):
print(fin(i),end='\t')