Python学习【第8篇】:python中的函数
1.python中函数定义方法
def test(x):
"This istest"
y = x*2+1
return y
vaule = test(2)
print(vaule)
运行结果:
5
def:定义函数关键字
test:函数名
():内可定义形参
“”:文档描述(非必要,但是建议为函数添加注释信息)
x+=1:泛指代码块或程序处理逻辑
return:定义返回值
函数的好处:
1.代码重用
2.保持一致性,易维护
3.可扩展性
2.过程定义:过程就是简单特殊没有返回值的函数
def test01():
msg = "Hello xiaoxing"
print(msg)
def test02():
msg = "Hello xiaoxing"
print(msg)
return msg
t1 = test01()
t2 = test02()
print(t1)
print(t2)
运行结果:
Hello xiaoxing
Hello xiaoxing
None
Hello xiaoxing
前两个为定义函数时的输出
第三个输出为none,因为在定义test01的时候过程没有返回值
第四个正常输出
总结:
返回值数=0:返回None
返回值数=1:返回object(对象)
返回值数>1:返回tuple(元组)
3.函数参数(对应day14-11)
(1).形参变量只在被调用时才分配内存单元,在调用结束即刻释放所分配内存单元,即形参内部有效
函数调用结束返回主调用函数后则不能再使用该形参变量
(2)实参可以是常量,变量,表达式,函数等,无论实参是何种类型的量,在进行函数调用时,它都必须有确定的值,以便把这些值传送给
形参。因此应预先用赋值,输入等办法使参数获得确定值
例子:
def calc(x,y):
res = x**y
return res
c = calc(2,3)
print(c)
运行结果是8
在这里x,y是形参,2,3是实参
(3)位置参数和关键字(标准调用;实参与形参位置一一对应;关键字调用:位置无需固定)
例子:
def calc(x,y,z):
print(x)
print(y)
print(z)
calc(1,2,3)
运行结果:
1
2
3
在这里clac(1,2,3)就是位置参数与形参位置一一对应,但是需注意缺一个不行,多一个也不行
def calc(x,y,z):
print(x)
print(y)
print(z)
calc(y=2,x=1,z=3)
运行结果也是
1
2
3
在这里因为是关键字参数因此无需一一对应,但是需注意缺一个不行,多一个也不行
例如
def calc(x,y,z):
print(x)
print(y)
print(z)
calc(y=2,x=1)
运行就会报错

(4)位置参数必须在关键字左边,否则运行会报错
def clac(x,y,z):
print(x)
print(y)
print(z)
clac(1,y=2,3)
在这里如果运行会报错,因未遵循位置参数必须在关键字左边
(5)默认参数
在定义函数时,就有值,即使不赋值,它就会使用默认参数
def calc(x,y="ceshi"):
print(x)
print(y)
calc(2)
运行结果:
2
ceshi
在这里我们未给y进行赋值,因此y使用默认参数进行输出
(6)参数组,**字典,*元组(在这里一个*输出元组,二个*输出字典)
def test(x,*args):
print(x)
print(args)
test(1,2,3,4,5,6)
运行结果
1
(2, 3, 4, 5, 6)
在这里2,3,4,5,6相当于元祖中的一个元素,传递到args中
test(1,("x","y","z"))
运行结果:
(('x', 'y', 'z'),)
test(1,*("x","y","z"))
运行结果:
('x', 'y', 'z')
如果是两个**
def test(x,**kargs):
print(x)
print(kargs)
test(1,y=2,z=3)
运行结果
1
{'y': 2, 'z': 3}
在这里输出的结果是字典
Python学习【第8篇】:python中的函数的更多相关文章
- Python学习第六篇——字典中的键和值
favorite_language ={ "jen":"python", "sarah":"c", "edwa ...
- Python 学习 第十篇 CMDB用户权限管理
Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...
- Python学习笔记进阶篇——总览
Python学习笔记——进阶篇[第八周]———进程.线程.协程篇(Socket编程进阶&多线程.多进程) Python学习笔记——进阶篇[第八周]———进程.线程.协程篇(异常处理) Pyth ...
- Python学习笔记基础篇——总览
Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...
- python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍
目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...
- python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍
目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...
- python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍
目录 python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍. 二丶列表,其它语言称为数组 1.列表的定义,以及语法 2.列表的使用,以及常用方法. 3.列表的常用操作 ...
- python学习第四讲,python基础语法之判断语句,循环语句
目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...
- Python学习系列(四)(列表及其函数)
Python学习系列(四)(列表及其函数) Python学习系列(一)(基础入门) Python学习系列(二)(基础知识) Python学习系列(三)(字符串) 一.基本概念 1,列表是什么? ...
- Python学习笔记——基础篇【第一周】——变量与赋值、用户交互、条件判断、循环控制、数据类型、文本操作
目录 Python第一周笔记 1.学习Python目的 2.Python简史介绍 3.Python3特性 4.Hello World程序 5.变量与赋值 6.用户交互 7.条件判断与缩进 8.循环控制 ...
随机推荐
- MongoDb学习(五)---gridfs --http文件下载
现在网上的文章都是用的低版本的jar包,而最新的jar包,下载的方法进行了改变.在网上也没找到好的方法.就用原生的方法进行下载, 我也不知道对不对.反正可以下载了.就先这样吧.后期准备还是用低版本的开 ...
- 跟我一起学python(1):占位符
模板 格式化字符串时,Python使用一个字符串作为模板.模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式.Python用一个tuple将多个值传递给模板,每个值对应一个格式符 ...
- JAVA Executor(线程池)框架
一.Executor概述 为更好控制线程,jdk提供一套线程管理框架Executor,帮助开发人员有效地进行线程控制.它们都位于java.util.concurrent包中,是jdk并发包的核心.其中 ...
- cmake - 可执行文件
1.生成可执行文件 add_executable(hello xxx.cpp xxxxx.cpp) ##根据文件xxx.cpp和xxxx.cpp生成可执行文件hello,但是这两个可执行文件如果依赖其 ...
- eclipse-切换分支-用途描述
操作细节参考文章 https://www.cnblogs.com/sunrunzhi/p/6509448.html 分析切换分支的用途: 背景: 1. 项目开发使用分支1.分支2: 2. 分支1代码是 ...
- ES6 Set.Map.Symbol数据结构
一.ES6 Set数据结构 ES6新推出了Set数据结构,它与数组很类似,Set内部的成员不允许重复,每一个值在Set中都是唯一的,如果有重复的值出现会自动去重(也可以理解为忽略掉),返回的是集合对象 ...
- java的多线程:线程安全问题
什么是线程安全? 为什么有线程安全问题? 当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题.但是做读操作是不会发生数据冲突问题. 抢火车的例子: ...
- centos7.5安装Oracle11gR2
centos7.5安装Oracle11gR2 说明:由于上一台旧的笔记本电脑(CPU:i5-7200,内存:8G,硬盘:128SSD+1T机械)卸任,所以打算在家搭建一个个人服务器(主要是换不锈钢盆不 ...
- 查找linux系统下的端口被占用进程的两种方法 【转】
在linux下开发时,你的软件可能要使用某一个端口,或者想查找某一个端口是否被占用.需要怎么做呢??这的确是一个比较烦恼的问题,我也此为这个苦恼过.但是通过查找man手册,还是同事的交流.总结出来两种 ...
- 图片质量评估论文 | 无监督SER-FIQ | CVPR2020
文章转自:同作者微信公主号[机器学习炼丹术].欢迎交流,共同进步. 论文名称:SER-FIQ: Unsupervised Estimation of Face Image Quality Based ...