# -*-coding:utf-8 -*-
# @Time :19:41
# @Author: 黄荣津
# @File : 37.函数的定义与调用.py
# @Software: PyCharmdef calc(a,b):#a,b称为形式参数
c=a+b
return cresult=calc(10,20)#10,20成为实际参数
print(result)res=calc(b=10,a=20)# =左侧的变量的名称称为关键字参数
print(res)
# -*-coding:utf-8 -*-
# @Time :19:57
# @Author: 黄荣津
# @File : 38.函数参数传递的内存分析.py
# @Software: PyCharmdef fun(arg1,arg2):
print('arg1',arg1)
print('arg2', arg2)
arg1=100
arg2.append(10)
print('arg1', arg1)
print('arg2', arg2)n1=11
n2=[22,33,44]
print(n1)
print(n2)
print('-------------')
fun(n1,n2) #按位置顺序传参
print(n1)
print(n2)'''在函数的调用过程中,进行参数的转递
如果是不可变对象,在函数的修改不会影响实参的值,arg1的修改为100,不会影响n1的值
如果是可变对象,在函数体的修改会影响实参的值,arg2的修改,append(),会影响到n2的值
''''''函数参数定义-默认值参数'''def fun(a,b=10):#b称为默认值参数
print(a,b)#函数的调用
fun(100)
fun(20,30) #30会把10覆盖掉
# -*-coding:utf-8 -*-
# @Time :20:13
# @Author: 黄荣津
# @File : 39.函数的返回值.py
# @Software: PyCharmdef fun(num):
odd=[] #存计数
even=[] #存偶数
for i in num:
if i%2:
odd.append(i)
else:
even.append(i)
return odd,even#函数的调用lst=[10,29,34,23,44,53,55]
print(fun(lst))'''
函数的返回值
(1)如果函数没有返回值,return可以不用写
(2)函数的返回值如果是一个,直接返回类型
(3)函数的返回值如果是多个,返回的结果为元组
'''def fun1():
print('hello')fun1()def fun2():
return 'hello'res=fun2()
print(res)def fun3():
return 'hello','world'print(fun3())
# -*-coding:utf-8 -*-
# @Time :20:42
# @Author: 黄荣津
# @File : 40.函数参数形参个数可变.py
# @Software: PyCharmdef fun(*args):#函数定义时的 可变的位置参数只能是一个,返回是元组类型
print(args)fun(10)
fun(30,32)
fun(2,6,4)def fun1(**args): #个数可变的关键字参数,返回是字典类型
print(args)fun1(a=10)
fun1(a=10,b=20,c=30)def fun2(*args1,**args2):
pass'''
在一个函数的定义过程中,既有个数可变的关键字形参,也有个数可变的位置形参
要求:个数可变的位置形参要放在个数可变的关键字形参之前
'''
# -*-coding:utf-8 -*-
# @Time :20:57
# @Author: 黄荣津
# @File : 41.函数的参数总结.py
# @Software: PyCharmdef fun(a,b,c):
print('a',a)
print('b', b)
print('c', c)#函数的调用fun(10,20,30)lst=[11,22,33]
fun(*lst) #在函数调用时,将列表的每一个元素都转换为位置实参转入fun(a=100,b=200,c=300) #函数的调用dic={'a':111 , 'b':222,'c':333}
fun(**dic)#在函数调用时,将字典中的键值对都转换为位置实参转入
# -*-coding:utf-8 -*-
# @Time :20:35
# @Author: 黄荣津
# @File : 42.递归函数.py
# @Software: PyCharmdef fac(n):
if n==1:
return 1
else:
return n*fac(n-1)print(fac(6))def fib(n):
if n==1:
return 1
elif n==2:
return 1
else:
return fib(n-1)+fib(n-2)#斐波那契数列第六位上的数字
print(fib(6))#输出这个数列的前6位上的数字之和
sum=0
for i in range(1,7):
sum=sum+fib(i)print(sum)
【笔记|python 函数的概述与基本用法总结】
推荐阅读
- 笔记|python Matplotlib 绘制多个子图
- 笔记|基于python爬取数据以及可视化
- 笔记|python Bug的常见类型 总结
- 笔记|python matplotlib条形图
- 笔记|python字典的增删查改
- 笔记|python 函数
- python|【Python】基于逻辑回归的金融风控评分卡
- python_001.基础语法
- Python基础知识|043 from 库名 import 类,函数,方法