初识python 函数(定义,传参,返回值)
python基础(二):
菜鸟教程基础知识讲解的非常全面,内容选择我认为的重点输出一遍
函数:
定义一个函数:
你可以定义一个由自己想要功能的函数,以下是简单的规则:
- def fun(arg):
- pass
- return arg
- # 函数调用语法
- fun(arg)
- arg:argument,参数(也叫prarmeter) ,任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
- def:define,定义,创建函数 ,函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
- 代码缩进表示语句块,表明代码从属关系
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
函数的调用:
将参数传入已经定义好的函数中,便可以调用此函数
- def printme( str ):
- "打印任何传入的字符串"
- print (str)
- return
- # 调用函数
- printme("我要调用用户自定义函数!")
- printme("再次调用同一函数")
- 以上实例输出结果:
- 我要调用用户自定义函数!
- 再次调用同一函数
函数返回值:
所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果
- #定义函数
- def add2num(a, b):
- return a+b
- #调用函数,顺便保存函数的返回值
- result = add2num(100,98)
- #因为result已经保存了add2num的返回值,所以接下来就可以使用了
- print (result) --->198
函数返回值可以为多个:
- #定义函数
- def divid(a, b):
- ... shang = a//b
- ... yushu = a%b
- ... return shang, yushu
- ...
- >>> sh, yu = divid(5, 2)
- >>> sh
- 5
- >>> yu
- 1
- def divid(a, b):
4种函数的类型:
函数根据有没有参数,有没有返回值,可以相互组合,一共有4种
无参数,无返回值
-
- # 函数定义,初级
- def numsum():
- a = 5
- b = 10
- c = a + b
- print(c)
- # 函数执行
- numsum() --->15
- # 函数定义,初级
-
无参数,有返回值
有参数,无返回值
有参数,有返回值
- 输入参数:
- 形参:形式参数,声明函数时,括号()中的参数
- 实参:实际参数,调用函数是,括号()中的参数
- 实参将值传给形参,本质上是变量赋值
- 返回值:return
- 会终止函数执行(return是函数的最后一句),并返回一个值给调用方
- 不带表达式的return返回None
- Print()不是返回值,只是输出信息到界面
- # 函数定义,带输入输出
- def numsum2(a, b):
- c = a + b
- return c
- # 函数调用
- d = numsum2(10, 20)
- print(d) --->30
- # 函数定义,带输入输出
- 输入参数:
函数中参数的类别:
- 必需参数
-
- #可写函数说明
- def printme( str ):
- "打印任何传入的字符串"
- print (str)
- return
- #调用printme函数
- printme()
- #可写函数说明
-
- 关键字参数
-
- def about(name,course,site):
- print (name,course,site)
- about(site='www.baidu.com',name='green',course=100) ##以关健字方式传入参数(可以不按顺序)
- def about(name,course,site):
-
- 默认参数
-
- def about(name,course,site):
- print (name,course,site)
- about('jim','','www.baidu.com') ## 必须按顺序传参
- def about(name,course,site):
-
- 不定长参数
-
- 非关键字可变参数(元组)
- 放在默认值参数后面
- 可将传入的不确定数量的默认参数聚合为元组方便函数使用
- def fun(a, b, *args):
- print(a)
- print(b)
- print(args)
- print("="*30)
- ret = a + b
- for i in args: #便利args中的元素
- ret += i
- return ret
- print(fun(1,2,3,4))
- 结果:
- 1
- 2
- (3, 4)
- ==============================
- 10
- def fun(a, b, *args):
- 关键字可变参数(字典)
- 放在非关键字可变参数后面
- 可将传入的不确定数量的默认值参数聚合为字典方便函数使用
- def fun(a, b, *args, **kwargs):
- print(a)
- print(b)
- print(args)
- print(kwargs)
- fun(1, 2, 3, 4, name = "hello", age = 20)
- 结果:
- 1
- 2
- (3, 4)
- {'name': 'hello', 'age': 20}
- def fun(a, b, *args, **kwargs):
- 非关键字可变参数(元组)
-
尽量避免多种参数格式混合(主要是两种可变参数)
多参数混合时注意顺序:
一般顺序是:默认参数,默认值参数,非关键字可变参数,关键字可变参数
注意:
带关键字的参数必须放在最后
匿名函数:
- 语义上讲,lambda 只是普通函数定义中的一个语法技巧,书写代码更简洁(但不易懂)
- lambda 是一个表达式(非代码块),比 def 简单,仅能封装有限的逻辑如if else分支,不能使用多项分支和循环,不适合复杂操作
- # 普通函数
- def def_sum(a, b):
- return a + b
- def_sum(5, 10)
- # 匿名函数:变量名 = lambda 参数... : 表达式计算
- lambda_sum = lambda a, b: a + b
- lambda_sum(5, 10)
- --->15
- 分支匿名函数
- # 普通函数
- def def_gender(g):
- if g == 1:
- return '男性'
- else:
- return '女性'
- def_gender(0)
- # 匿名函数:变量名 = lambda 参数... : 分支1的值 if 判断条件 else 分支2的值
- lambda_gender = lambda a: '男性' if a == 1 else '女性'
- lambda_gender(1)
- --->男性
- # 普通函数
- def absum(a, b):
- return a + b
- def def_sum2(a, b, c):
- return absum(a, b) + c
- def_sum2(1,2,3)
- # 匿名函数:变量名 = lambda 参数... : 其他函数组成的表达式
- def absum(a, b):
- return a + b
- lambda_sum = lambda x, y, z: absum(x, y) + z
- lambda_sum(1,2,3)
- --->6
匿名函数练习题:
- 将列表内的字典按照年龄进行排序:
infors = [{'name':'laowang','age':23},{'name':'ab','age':34},{'name':'bf','age':43}]
初识python 函数(定义,传参,返回值)的更多相关文章
- Python函数之传参
目录 1. 函数传参 1.1 参数的作用 1.2 形参和实参 1.3 位置参数 1.4 关键字参数 1.5 默认实参 1.6 参数总结 2. 可变参数 1. 函数传参 1.1 参数的作用 1.2 形参 ...
- python函数的传参模式
python里的变量更像是一个名字.标签.而Python中一切又皆为对象. 当函数传参时,函数参数作为一个标签,指向某个对象,因此更贴切的说是"call by object". 但 ...
- python函数的使用和返回值
#coding=utf-8 def a(): i=1a() #函数的返回值,用return语句实现 #一个返回值的情况def test(): i=7 return iprint test() #多个返 ...
- python 全栈开发,Day9(函数的初始,返回值,传参,三元运算)
一.函数的初始 比如python没有len()方法,如何求字符串的长度使用for循环 s = 'fdshfeigjoglfkldsja' count = 0 for i in s: count += ...
- python 全栈开发,Day9(函数的初始,返回值,传参,三元运算)
一.函数的初始 比如python没有len()方法,如果求字符串的长度 使用for循环 s = 'asdfadsf' count = 0 for i in s: count += 1 print(co ...
- 9 - Python函数定义-位置参数-返回值
目录 1 函数介绍 1.1 为什么要使用函数 1.2 Python中的函数 2 函数的基本使用 3 函数的参数 3.1 参数的默认值 3.2 可变参数 3.2.1 可变位置传参 3.2.2 可变关键字 ...
- Python之函数(一)定义函数以及传参
定义函数以及传参 函数的定义 def 函数名(): 函数体 例子: def func():#def关键字--定义 func函数名--和变量定义规则一样 ()必须要写格式 :声明 语句结束 s=[1,2 ...
- Python全栈工程师(函数的传参)
ParisGabriel 感谢 大家的支持 每天坚持 一天一篇 点个订 ...
- day11 python学习 函数的建立,返回值,参数
函数的定义主要有如下要点: def:表示函数的关键字 函数名:函数的名称,日后根据函数名调用函数 函数体:函数中进行一系列的逻辑计算,如:发送邮件.计算出 [11,22,38,888,2]中的最大数等 ...
随机推荐
- PHP程序员应当如何保持与时俱进?
记得之前在某个论坛上看到别人说php程序员土,作为一名php程序员内心当然是不乐意的.不过别人这么说也不是完全没有道理,其实他说php程序员土应该指的就是php程序员不懂得与时俱进. 当然,这也不全是 ...
- Orchard Core 文档翻译 (六)HTML
Body (OrchardCore.Html) Theming Shapes 将HtmlBodyPart附加到内容类型时,将呈现以下形状(Shapes) Name Display Type Defau ...
- Spring3+Struts2+Hibernate4+Mybatis整合的一个maven例子
说明: 1.用了maven去搞这个demo,懒得去导jar包... 2.这个demo用了spring去做Ioc,事务的aop:用了struts2去做“MVC”(没有用到任何UI技术,有点对不起这个MV ...
- 【转】android ListView详解
由于google doc 很多人都打不开,故更新了源码下载地址 [源码下载]----2011-01-18 在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根 ...
- 清除IE地址栏中的历史网址
实现效果: 知识运用: RegistryKey类的GetValueNames和DeleteValue方法 实现代码: private void button1_Click(object sender, ...
- HashMap对HashCode碰撞的处理
先说Java之外的,什么是拉链法?怎么解决冲突的: 拉链法解决冲突的做法是:将所有关键字为同义词的结点链接在同一个单链表中. 若选定的散列表长度为m,则可将散列表定义为一个由m个头指针组成的指针数组t ...
- 使用pako.js实现gzip的压缩和解压
poko.js可至Github下载:https://github.com/nodeca/pako 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...
- android 学习笔记 杂记1
getIntent().getExtras().get("intent"); 这个intent是数据包装的参数. 比如: Intent intent = new Intent(th ...
- Python学习之路——文件操作
文件操作分三步:打开文件,读写文件,关闭文件.读取操作时没有给read函数加括号,会出现下面这样的车祸 >>> data = open('/home/supersun/Documen ...
- 涉及JSP、Servlet的页面编码问题
1. JSP页面中,二处的字符编码有何区别 1.<%@ page contentType="text/html;charset=UTF-8" %> 是服务器端java程 ...