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中的函数的更多相关文章

  1. Python学习第六篇——字典中的键和值

    favorite_language ={ "jen":"python", "sarah":"c", "edwa ...

  2. Python 学习 第十篇 CMDB用户权限管理

    Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...

  3. Python学习笔记进阶篇——总览

    Python学习笔记——进阶篇[第八周]———进程.线程.协程篇(Socket编程进阶&多线程.多进程) Python学习笔记——进阶篇[第八周]———进程.线程.协程篇(异常处理) Pyth ...

  4. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

  5. python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍

    目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...

  6. python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍

    目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...

  7. python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍

    目录 python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍. 二丶列表,其它语言称为数组 1.列表的定义,以及语法 2.列表的使用,以及常用方法. 3.列表的常用操作 ...

  8. python学习第四讲,python基础语法之判断语句,循环语句

    目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...

  9. Python学习系列(四)(列表及其函数)

    Python学习系列(四)(列表及其函数) Python学习系列(一)(基础入门) Python学习系列(二)(基础知识) Python学习系列(三)(字符串) 一.基本概念 1,列表是什么?     ...

  10. Python学习笔记——基础篇【第一周】——变量与赋值、用户交互、条件判断、循环控制、数据类型、文本操作

    目录 Python第一周笔记 1.学习Python目的 2.Python简史介绍 3.Python3特性 4.Hello World程序 5.变量与赋值 6.用户交互 7.条件判断与缩进 8.循环控制 ...

随机推荐

  1. 扫盲:Kotlin 的泛型

    引子 相信总是有很多同学,总是在抱怨泛型无论怎么学习,都只是停留在一个简单使用的水平,所以一直为此而备受苦恼. Kotlin 作为一门能和 Java 相互调用的语言,自然也支持泛型,不过 Kotlin ...

  2. [LeetCode]690. Employee Importance员工重要信息

    哈希表存id和员工数据结构 递归获取信息 public int getImportance(List<Employee> employees, int id) { Map<Integ ...

  3. python之hashlib、suprocess模块

    一.hashlib模块 1.什么叫hash:hash是一种算法(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 ...

  4. .NET 云原生架构师训练营(模块二 基础巩固 MongoDB API重构)--学习笔记

    2.5.8 MongoDB -- API重构 Lighter.Domain Lighter.Application.Contract Lighter.Application LighterApi Li ...

  5. fatal error C1045: 编译器限制 : 链接规范嵌套太深

    前言 我相信你是遇到了同样的问题.通过搜索引擎来到这里的.为了不耽误排查问题的时间,我提前说明一下这篇文章所描述的问题范畴: 我遇到的问题和 c++ 模板相关: 如果我减少传递的参数的话,是有可能避免 ...

  6. tomcat版本号修改已dwr配置错误安全漏洞整改

    1.tomcat版本信息泄露修改方法:tomcat6是在tomcat/lib 下使用jar xf catalina.jar 解压这个jar包会得到两个目录:META-INF和org其中org\apac ...

  7. Approach for Unsupervised Bug Report Summarization 无监督bug报告汇总方法

    AUSUM: approach for unsupervised bug report summarization 1. Abstract 解决的bug被归类以便未来参考 缺点是还是需要手动的去细读很 ...

  8. 【环境搭建】SSM 整合使用

    SSM 整合使用 文章源码 搭建整合环境 整合说明 SSM 整合可以使用多种方式,但是选择 XML + 注解 的方式最为合适. 整合思路 搭建整合环境 Spring 环境搭建并测试 Spring 整合 ...

  9. ASP.NET Core错误处理中间件[1]: 呈现错误信息

    NuGet包"Microsoft.AspNetCore.Diagnostics"中提供了几个与异常处理相关的中间件.当ASP.NET Core应用在处理请求过程中出现错误时,我们可 ...

  10. 一文带你学会AQS和并发工具类的关系2

    1.创建公平锁 1.使用方式 Lock reentrantLock = new ReentrantLock(true); reentrantLock.lock(); //加锁 try{ // todo ...