1.函数的定义
开发程序时,需要多次调用某一部分代码,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码组织为一个小模块,这就是函数。
2.函数的格式
def 函数名称()
。。。函数体。。。
注意要求:
1.函数名称遵循标识符命名规范,使用下滑线连接多个标识符
2.函数依靠强制缩进来表示的。
3 : () 都是英文表示
4. 函数只有在调用的时候才创建,不调用不执行。
3.调用函数格式:
函数名():
注意:
必须定义函数在调用函数,函数可以调用多次。
一般情况下##
4.函数的参数:
格式:
函数名称(参数1,参数2。。。)
函数定义几个参数,调用就必须调用几个参数
定义的函数叫形参,调用函数的时候叫实参
5.return的运用
函数体最后使用一个关键字return作为要返回值。
若不反回,就默认none 后面不会写其它代码
可以返回值
6.传参
位置传参
位置一一对应
关键字传参
默认参数
# 默认参数:
def save_user_info(username,age,gender='男'): #gender='男' 默认必须放到后面
print('姓名{},年龄{},性别{}'.format(username,age,gender))
save_user_info('张三',10) #默认性别为男
save_user_info('李四',20,'女') #更改性别为女
可变参数 :元组参数(*args) 字典参数(**kwargs)
*的用法 (具有打散功能) 打散元组列表字符串
def func(a,s,d,f): #定义函数内是可变数据类型
print(a,s,d,f)
tup=(1,2,3,4)
func(*tup) #1 2 3 4
tup=(1,23,4,5,6)
print(*tup) #1 23 4 5 6
lst=['a','s','d','f']
print(*lst) #a s d f
s='hello'
print(*s) #h e l l o
元组参数
def func(*args):
print(args)
print(args[0],args[2]) #获得元组中的元素
func(1,2,3,4,5,6)
字典参数(**kwargs) **的功能-
def func(**kwargs):
print(kwargs) #{'age': 18, 'name': '张三', 'gender': '男'}
print(kwargs['name'],kwargs['age'],kwargs['gender']) # 张三 18 男
func(name='张三',age=18,gender='男')
**的功能---具有打散的功能。
def func(name = '张三',age=10):
print(name,age) #赵四 10
dic={'name':'赵四','age':10} #打散字典
func(**dic)
*args 必须放在**kwargs 后
def func(**kwargs,args) #报错
pass
def func(*args,**kwargs):
print(args[0],kwargs['name'])
func(10,name='李白')
顺序:
位置参数—>*args—>默认参数---->**kwargs
7.函数里面的嵌套
题型:
#一创建一个say_helle函数:
def say_hello():
print('hello,world')
print('hello!')
print('hello,python')
#调用函数
say_hello()
print('程序结束')
函数
def sum_num(aa,bb):
print(aa,'--->',bb)
num1=aa
num2=bb
num3 = num1 + num2
print(num3)
sum_num(1,2)
a=10000
print('a变量的id值--->',id(a))
def fun(b):
print('b变量的id值--->',id(b))
print(b)
b = 200
print(b)
print('b变量的id值--->', id(b))
fun(a)
print(a)
运行流程:
def func():
a=10
b=20
return a,b
ret= func()
print(ret)#(10,20)
#因此可以用多个变量来接受元组中的内容
num1,num2=func()
print(num1,num2)
def func(a,*args,b=10,**kwargs):
print(a)
print(args)
print(b)
print(kwargs)
func('zs','as',b = 23,c=20,d=49)
def outter():
print('aaa')
def inner():
print('bbb')
inner()
outter()
def func1():
print('func1...')
def func2():
func1()
print('func...2')
def func3():
func2()
print('func3...')
func3()
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190103164655414.png
打印重复语句:
def print_lines(row,char,num):
temp =1
while temp<=row:
print(char,num)
temp+=1
print_lines(5,'~',10) # 5 10 可以更改