当前位置: 首页 > news >正文

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编程 从入门到实践》

http://www.lryc.cn/news/34294.html

相关文章:

  • Pytorch中utils.data 与torchvision简介
  • 学习 Python 之 Pygame 开发魂斗罗(十)
  • Keepalive+LVS群集部署
  • 数组、指针总结【面试题】
  • 七色电子标签
  • 大数据是什么?发展前景怎么样
  • MYSQL必知必会 | 查询相关
  • Java学习环境一站说明(保姆级详细教学)
  • 05-Oracle中的对象(视图,索引,同义词,系列)
  • 如何通过websoket实现即时通讯+断线重连?
  • 爽,我终于掌握了selenium图片滑块验证码
  • 二、SpringMVC注解式开发
  • Java容器面试知识点总结
  • 增长:2023 IT运维发展趋势前瞻
  • 自己定义typescript的类型声明文件xx.d.ts
  • 数据分析方法及名词解释总结_(面试2)
  • 【FLY】Java知识点总结
  • SpringMVC-0307
  • 华为OD机试 - 九宫格按键输入(C 语言解题)【独家】
  • Oracle 11g RAC群集部署
  • 【C++、C++11】列表初始化、右值引用
  • CMU15-445 Project.3总结
  • 002+limou+HTML——(2)HTML文档
  • 红外传感器模块与 Arduino 连接
  • NC xml配置文件不能生产java文件
  • 华为OD机试 - 五键键盘(C 语言解题)【独家】
  • Kubernetes Service简介
  • 【c++类与对象 】
  • 【C++】内联函数auto范围for循环nullptr
  • 运维效率狂飙,都在告警管理上