Python -- 函数
文章目录
- 1、一个简单的函数
- 2、多参数函数
- 3、返回值
- 3.1、简单的返回
- 3.2、返回列表和字典
- 4、传入列表
- 5、传入任意数量的实参
- 5.1、以元组和字典的形式
- 5.2、形参的排列顺序
- 6、将函数储存在模块中
1、一个简单的函数
函数用关键字def来定义,传参时不用指定参数类型
para:形参 parameter
arg:实参 argumen
形参的类型和实参的类型一致
def my_fun(para):print(para)def back_item(src, dest):dest = srcmy_fun('arg')
my_fun([1, 3, 4])
my_fun({1: 'name', 2: 'age'})d = 0
# 同c语言一样d的值不会被改变
back_item(1, d)
print(f"d = {d}")
2、多参数函数
形参可设置默认值,但要放在未设置默认值的形参的后面
可使用关键字实参为函数赋值,可不考虑实参的顺序
def animal_introduce(name, num=4):print(f"This is {name}, it got {num}")animal_introduce('aa', 2)
animal_introduce('bb')
animal_introduce(name='cc', num=3)
animal_introduce(num=1, name='dd')
3、返回值
3.1、简单的返回
给中间名设置一个空的默认值,使其变成可选输入项
def get_name(first_name, last_name, middle_name=None):if middle_name:full_name = first_name + ' ' + middle_name \+ ' ' + last_nameelse:full_name = first_name + ' ' + last_namereturn full_name.title()name = get_name('tom', 'hanks')
print(name)
name = get_name('Stanley', 'Martin', 'Lieder')
print(name)
3.2、返回列表和字典
def get_info(first_name, last_name, age=None):person = {'first': first_name, 'last': last_name}if age:person = [first_name, last_name, age]return personinfo_dictionary = get_info('aa', 'cc')
print(info_dictionary)
info_list = get_info('dd', 'ee', 20)
print(info_list)
4、传入列表
传进函数的列表可被修改
若不修改列表,可传入列表的副本
def backup_list(src_list, dest_list):for item in src_list:dest_list.append(item)my_list = ['aa', 'bb', 'cc', 123]
bak_list=[]# 传递列表的副本,列表不会被修改
# backup_list(my_list,bak_list[:])backup_list(my_list[:],bak_list)
print(bak_list)
5、传入任意数量的实参
5.1、以元组和字典的形式
*args:让python创建一个名为args的空元组
**kwargs:让python创建一个名为kwargs的空字典
命名不一定非得是以上两个
def create_tuple(*args):for arg in args:print(arg, end=',')def create_dictionary(**kwargs):print(kwargs)create_tuple(1, 2, 'aa', 'abcd')
print()
create_dictionary(name='aa', age=1, sex='man')
5.2、形参的排列顺序
形参的顺序只能按:未指定默认值,指定默认值,*,**来排
即下面的顺序
def my_fun(name, age=12, *args, **kwargs):print(name)print(age)print(args)print(kwargs)# 后面的实参关键字不能再包含name,age
my_fun('XiaoMing', 20, 'aa','bb', 'cc',item='dd', sex='man')
6、将函数储存在模块中
可将函数存储在一个被称为模块的独立文件中(类似c语言库)
通过import可导入模块
通过from可导入指定函数
创建顺序
1、在主程序的目录下创建一个名为UserFunction.py的文件
2、在Userfunction.py创建一个函数
3、在主程序中导入该模块(Userfunction)
4、在主程序中调用模块中的函数
5、使用as可以改模块和函数指定别名
- UserFunction.py
def print_hello():print('hello', end=' ')def print_world():print('world')
- main.py
# 1 导入模块
import UserFunction as uf
# 2 导入模块的某个函数
from UserFunction \import print_world as pw
# 3 导入模块里所有的函数,注意避免与主程序函数名重复
from UserFunction import *uf.print_hello() # 执行该语句只需要有1pw() # 执行该语句只需要有2# 执行下面的语句只需要有3
print_hello()
print_world()
笔记来源:《Python编程 从入门到实践》