Python基础知识- 定义函数
目录
1.定义函数:
1.1向函数传递信息
1.2实参和形参
2.传递实参:
2.1位置实参
2.1关键字实参
2.2默认值:
2.3等效的函数调用
2.4避免实参错误
3.返回值
3.1返回简单值
3.2让实参变为可选的
3.3返回字典
4.传递列表
4.1禁止函数修改列表
5.传递任意数量的实参:
5.1结合使用位置实参和任意数量实参
6.将函数存储在模块中:
6.1导入整个模块import
6.2导入特定的函数
6.3使用as给函数指定别名
6.4使用as给模块指定别名
6.5导入模块中的所有函数,使用 *
1.定义函数:
使用关键字def 来定义一个函数
def introduction():print("Hello world!")
greet_user()
1.1向函数传递信息
def introduction(username):print("Hello world!")
introduction('Xixi')
1.2实参和形参
以1.1为例子,在函数introduction() 的定义中:
变量username 是一个形参 --- 函数完成其工作所需的一项信息。
在代码introduction('Xixi')中,值'Xixi' 是一个实参,实参是调用函数时传递给函数的信息。
2.传递实参:
2.1位置实参
def person(username,old):print("I am" + username + ".")print("I am" + old + "years old.")
person('Xixi','3')
输出的结果为:
I am Xixi.
I am 2 years old.
位置实参的顺序很重要!如果需要多次调用这个函数,只需再次调用person()即可。
2.1关键字实参
关键字实参的顺序无要求,因为Python知道各个值该存储到哪个形参中。下面两个函数调用是等效的:
def person(username,old):
person(username='aa', old='two')
person(old='one',username='aa')
注意:使用关键字实参时,务必准确地指定函数定义中的形参名。
2.2默认值:
在调用函数中给形参提供了实参时,Python将使用指定的实参值;否则,将使用形参的默认值。因此,给形参指定默认值后,可在函数调用中省略相应的实参。使用默认值可简化函数调用,还可清楚地指出函数的典型用法。
#将形参old 的默认值设置为'3'
def person(username,old='3'):
注意 :使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参。这让Python依然能够正确地解读位置实参。
2.3等效的函数调用
def pet(petname, anmal_type = 'cat'):print("hhhhh")
#以下几种函数调用均是等效的
pet('xxx')
pet(petname = 'xxx')
pet('aaa','dog')
pet(petname = 'aaa', anmal_type = 'dog')
pet(anmal_type = 'dog', petname = 'aaa')
2.4避免实参错误
如果出现实参不匹配,就会报错。出现traceback
3.返回值
3.1返回简单值
在函数中,可使用return 语句将值返回到调用函数的代码行。函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值 。
def get_name(first_name, last_name):
"""返回整洁的姓名"""full_name = first_name + ' ' + last_namereturn full_name.title()
singer = get_name('jimi', 'hendrix')
print(singer)
3.2让实参变为可选的
def get_name(first_name, last_name, middle_name=''):
if middle_name:full_name = first_name + ' ' + middle_name + ' ' + last_name
else:full_name = first_name + ' ' + last_namereturn full_name.title()
singer = get_name('kiki', 'hix')
print(singer)
musician = get_name('jon', 'lua', 'joe')
print(singer)
3.3返回字典
def build_pet(name, age):
"""返回一个字典,其中包含有关一只宠物的信息"""pet = {'first': name, 'last': age}pet personcat = build_person('kiki', '12')
print(cat)
4.传递列表
def build_pet(name):for name in names:greeting = "Hello, " + name.title() + "!"print(greeting)
petnames = ['cat', 'dog', 'tiger']
build_pet(petnames)
4.1禁止函数修改列表
build_pet(list_name[:])
5.传递任意数量的实参:
可以在第一行的形参前面加个*,例如:def build_pet(*age):
5.1结合使用位置实参和任意数量实参
如果要让函数接受不同类型的实参,必须在函数定义中将任意数量实参的形参放在最后。Python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中。
def build_pet(name ,*age):
6.将函数存储在模块中:
6.1导入整个模块import
创建一个a.py文件,在创建一个b.py文件,就可以在第二个文件里导入第一个文件
6.2导入特定的函数
from xxx import xxx
通过用逗号分隔函数名,可根据需要从模块中导入任意数量的函数:
from xxx import function1,function2,function3
6.3使用as给函数指定别名
from B import A as mp
6.4使用as给模块指定别名
import A as mp
6.5导入模块中的所有函数,使用 *
from A import *
本文学习内容参照《Python编程:从入门到实践》
Python基础知识- 定义函数相关推荐
- python基础知识之函数的定义及用法
目录 前言: 一.函数的定义和调用 1.函数的作用 2.函数名的命名规范 3.函数的返回值:return 4.调用函数 二.函数的参数 1.函数形参和实参 2.参数传递的两种形式: 3.函数定义的三种 ...
- Python基础知识_Day12_函数中高级
Day12 今日内容 函数中高级(闭包/高阶函数) 内置函数 内置模块(.py文件) 内容回顾 函数基础概念 函数的基本结构 def func(arg):return arg: v1 = func(1 ...
- Python基础知识(四)--函数
def functionName(arguments): #函数名(参数列表_可选) suite #函数体 def get_int(msg): whi ...
- Python基础知识之函数篇
- python程序如何执行死刑_「Python基础知识」Python生成器函数
原标题:「Python基础知识」Python生成器函数 对于程序而言,内存也是很重要的,因为程序中很多数据都是保存在内存中的,如果内存中存储的数据过多,那么系统就会崩溃,这是人们不希望发生的. 可以采 ...
- python基础知识资料-Python基础知识汇总
原标题:Python基础知识汇总 1.Anaconda的安装 百度Anaconda的官网,下载左边的Python3.X版本 然后是设置路径,最后给出Jupyter notebook.具体参考: 猴子: ...
- python基本语法规则-python基础知识——基本语法
在python基础知识这个系列中,准备罗列出我学习python的一些基础知识,包括:基本语法 控制语句 内置数据结构 模块和函数 字符串 文件处理 面向对象 异常处理 以前写机器学习算法喜欢使用Mat ...
- Python基础day05【函数(局部变量、全局变量、多函数执行流程、函数返回值、函数参数)、拆包、引用、可变与不可变类型、函数注意事项】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...
- python的基础知识可以应用到哪方面-Python基础知识
python基础 python的诞生 2002年,python 2.x 2008年,python 3.x python的命名 马戏团的名称 python简介 简单.易学 持快速开发. 跨平台. 开源. ...
最新文章
- 批量关闭公众号推送_微信内测新功能:提醒用户可停止接收长期不阅读公众号推送...
- ACM入门练习与递推小结
- 程序员学习网站备份(小众+不定时更新ing...)建议收藏
- ArrayBlockingQueue原理分析-dequeue方法
- 美国0封伊朗已经6天了,伊石油出口真归零了吗?
- 英语一段落排序题技巧
- ArrayList和HashMap遍历比较
- html获取url后面的参数_Golang Gin 实战(四)| URL查询参数的获取和原理分析
- 如何获取NuGet以安装/更新packages.config中的所有软件包?
- robotframework 新建UI自动化测试用例实例一(2)
- html css纯写桌球运动轨迹,纯JS实现椭圆轨迹运动的代码
- weblogic jdk版本升级
- win2008服务器系统玩红警,win8系统不能玩红警2如何解决?win8系统不能玩红警2的解决方法...
- Dell R910报错E1234的处理方法
- 3D-LaneNet:端到端三维多车道检测ICCV2019
- 安卓-电子签名signature
- Uwsgi+Nginx+Django部署
- 深圳首个“别墅”旧改项目规划出炉:超45万㎡!华侨城操盘
- python怎么把一个文件夹内的文件复制到另外一个文件夹(进阶重命名复制)
- 数学分析-证明:单调有界数列必有极限