本文主要是介绍python第八节:函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
函数
函数是一段封装的代码块,实现某个具体的功能,一般如果一段代码重复率很高,可以考虑封装成函数。
函数定义和调用:
用关键字def定义,可以有return表达式,也可以没有。
应给函数指定描述性名称,且只在其中使用小写字母和下划线。等号两边不要有空格。
def function_name(parameter_0, parameter_1='default value')
函数的调用就是在函数体外用 函数名(参数) 的方式,但是注意函数调用必须在函数定义之后。
语法:
def 函数名(参数):
代码块
例子:
def sayHello(name):print('hello :',name)sayHello('JACK')
结果:
hello : JACK
函数参数
函数定义时,参数可以有如下几种形式:
指定参数名称:
def describe_pet(animal_type, pet_name):
指定采纳数名称和默认值:此时不传递参数时使用指定的默认值。
describe_pet(animal_type='hamster', pet_name='harry')
例子:这样在引用时可以不按照位置传递参数。
def say_hello(name,age):print('名字和年龄分别是 :',name,age)say_hello(age=12,name='JACK')
结果:
名字和年龄分别是 : JACK 12
例子:指定默认值传参数,但指定默认值得参数必须在未指定默认值的参数后面,如def say_hello(name=‘TOM’,age):是错误的。
def say_hello(name,age=12):print('名字和年龄分别是 :',name,age)say_hello('TOM')
结果:
名字和年龄分别是 : TOM 12
不定长参数(元组):单个星号前缀,
语法:*var
不定长参数可以放在普通参数前面也可以放在后面。实际多个参数是以元组类型保存的。不传参数时,默认是一个空的元组。传递参数时,作为元组中的元素。
如果直接传入一个元组,则类型是元组里面嵌套元组。
如果传入星号后面跟着一个元组,则类型元组。
例子:
def say_hello(name,*info):print('名字是 :',name)for v in info:print('其他信息:',v)say_hello('TOM',15,'北京西城',13167895678)
结果:
名字是 : TOM
其他信息: 15
其他信息: 北京西城
其他信息: 13167895678
例子:
def say_hello(*info,name):print('名字是 :',name)for v in info:print('其他信息:',v)say_hello(15,'北京西城',13167895678,name='TOM')
结果:
名字是 : TOM
其他信息: 15
其他信息: 北京西城
其他信息: 13167895678
例子:
def say_hello(*info,name):print('名字是 :',name)print(info)for v in info:print('其他信息:',v)say_hello((15,'北京西城',13167895679),name='TOM')say_hello(name='JACK',*(15,'北京西城',13167895679))
结果:
名字是 : TOM
((15, '北京西城', 13167895679),)
其他信息: (15, '北京西城', 13167895679)
名字是 : JACK
(15, '北京西城', 13167895679)
其他信息: 15
其他信息: 北京西城
其他信息: 13167895679
匿名函数:lambda表达式
语法:lambda [arg1 [,arg2,.....argn]]:expression
前面是参数,冒号后面是表达式。
例子:
merge = lambda name,age,address:name+','+age+'岁,家住'+addressprint(merge('张三','12','北京'))
结果:
张三,12岁,家住北京
不定长参数(字典):参数前加两个星号
用法基本与单星号类似。但是接受的参数是键值对。
例子:
def say_hello(name,**info):print('名字是 :',name)print(type(info))print(info)for v in info:print('其他信息:',v)say_hello(name='JACK',age=15,address='北京西城',phone=13167895679)say_hello(name='TOM',**{'age':17,'address':'北京海淀','phone':13867895679})
结果:
名字是 : JACK
<class 'dict'>
{'age': 15, 'address': '北京西城', 'phone': 13167895679}
其他信息: age
其他信息: address
其他信息: phone
名字是 : TOM
<class 'dict'>
{'age': 17, 'address': '北京海淀', 'phone': 13867895679}
其他信息: age
其他信息: address
其他信息: phone
导入模块、函数、起别名
导入整个模块
import module_name
导入模块中指定函数
from module_name import func_0,func_1,func_2
给函数指定别名
from pizza import make_pizza as mp
给模块指定别名
import pizza as p
导入模块中所有函数
from pizza import *
最好不用会有函数名称、变量名称相同等问题。
这篇关于python第八节:函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!