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. 十大经典排序算法最强总结(含Java、Python码实现)

    引言 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法.排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面 ...

  2. 【Java】指定【微信】好友自动发送消息

    package user.controller; import java.awt.*; import java.awt.datatransfer.Clipboard; import java.awt. ...

  3. 听说又有兄弟因为用YYYY-MM-dd被锤了...

    还记得去年分享过一篇日期格式化使用 YYYY-MM-dd 的潜在问题的文章不? 历史又重演了... 事故现场 我们来写个单元测试,重现一下这个问题. 测试逻辑: 创建两个日期格式化,一个是出问题的YY ...

  4. 码农英语四级考了6次,也能进知名IT外企

    程序员学英语 这显然不是新鲜的话题,但再怎么重复强调都不过分! 为啥要学 IT是当今世界发展最快的行业,没有之一!作为其中的从业人员,要始终保持对最新技术的关注度,难免需要阅读英文新闻或文章 平时工作 ...

  5. Java学习日报7.13

    /** * *//** * @author 86152 * */package Employee;import java.util.Scanner;public class Employee{ pri ...

  6. 重入锁ReentrantLock

  7. mysql 双主复制 centos7

    mysql 安装请看:http://www.cnblogs.com/leohe/p/6839705.html 双主复制设置 1. 两台虚拟机,都是 centos7 主: 10.1.1.115 从: 1 ...

  8. android stdio 打包

    1.Build -> Generate Signed APK...,打开如下窗口 2.假设这里没有打过apk包,点击Create new,窗口如下 这里只要输入几个必要项 Key store p ...

  9. 上班如何优雅的使用idea刷LeetCode(力扣)

    打开idea file->setting ->plugins 搜索 "LeetCode" install "LeetCode editor" 重启后 ...

  10. Syn_Flood攻击&防御手段

    Syn_Flood攻击原理 攻击者首先伪造地址对服务器发起SYN请求(我可以建立连接吗?),服务器就会回应一个ACK+SYN(可以+请确认).而真实的IP会认为,我没有发送请求,不作回应.服务器没有收 ...