Python之路【第十二篇】:函数
定义函数
def 函数名(形式参数):
函数体
return 返回值
a = 1 def f(b):print(b)return None
如上所示,就是简单的定义了一个函数
函数的返回值
return后面为函数的返回值,跟其他编程语言不一样的是,在python中,不需要在def前面指定函数返回值的类型
如果函数没有返回值,默认返回一个None
在函数里面,只要执行了return,函数就执行完了,函数中return后面的代码就不执行了
函数的参数
- 形参和实参
- 指定参数
- 默认参数
- 动态参数
- 函数作为参数
形参和实参
在定义函数的时候,函数名后面括号里的参数是形式参数,简称形参
在执行函数的时候,函数名后面括号里的参数是实际参数
a = 1 def f(b):print(b) f(a)
如上所示,b为形参,a为实参
指定参数
形参与实参默认是按照顺序一一对应的,如def f(x,y)......f(1,2),x与1对应,y与2对应,但是也可以指定参数,这样,形参与实参就不用一一对应了
def f(x,y)......f(y=1,x=2),这样就是指定参数
默认参数
def drive(p,name = 'alex'):temp = name + str(p) + '开车去东北'return temp s = drive(11) print(s)
输出结果为:
alex11开车去东北
在上面的例子中,p是一个普通参数,name具有默认参数,一定要把含有默认值的参数放在后面
也可以给含有默认值的参数传递参数,这时默认值就不起作用了
动态参数
第一种动态参数:在形参列表中,在形参前面加上一个*,这样参数就可以不受数量限制了,如:
def f(*a):print(a)print(type(a)) f(1,2,3,4,5)
输出结果为:
(1, 2, 3, 4, 5)
<type 'tuple'>
由此可见,虽然只有一个形参a,但是却接受了5个参数,还有一点需要注意,第一种动态参数的类型是元组类型
第二种动态参数:在形参列表中,在形参的前面加上两个*, 在传递参数的时候,必须是键值对传(key=value),第二种动态参数会将闯进来的参数转换成字典,如:
def f(**a):print(a) f(k1=1,k2=2)
输出结果为:
{'k2': 2, 'k1': 1}
一般,第一种动态参数用args表示,第二种动态参数用kwargs表示,因此因该是这样:f(*args)与f(**kwargs)
两种动态参数可以放在一起使用
def fun(*args,**kwargs)...注意:*args在前面,**kwargs在后面,这个是规定死了的,不能变
fun(11,22,33,44,key1=value1,key2=value2)
这样自动就把11,22,33,44方到args中,key1=value1,key2=value2放放到kwargs中,
def fun(p,*args,**kwargs)...
fun(11,22,33,44,key1=value1,key2=value2)
这样,把11自动给p,22,33,44给args,key1=value1,key2=value2放放到kwargs中
函数作为参数
def f1(): return 123print(f1)
输出结果为:<function f1 at 0x000001ABF30ED268>,由此,我们可以看出:
f1:代指函数
f1():调用函数
def f1():return 123 def f2(f1):f1()return 456
在f2函数中,参数为f1,这个时候,f1做了f2的参数
全局变量与局部变量
约定:全局变量都大写,局部变量都小写
在函数内部,如果想要修改全局变量需要加一条global A语句
A = 1 def fun():b = 2global AA = 3 fun() print(A)
A为全局变量,b为局部变量,如果想要修改A,需要加一条global A语句,如果不加该语句,b=1 A=3直接这样,表示又申请了一个局部变量A
转载于:https://www.cnblogs.com/ronghe/p/8358591.html
Python之路【第十二篇】:函数相关推荐
- Python之路(第十六篇)xml模块、datetime模块
一.xml模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单, xml比较早,早期许多软件都是用xml,至今很多传统公司如金融行业的很多系统的接口还主要 ...
- ES6之路第十二篇:Promise对象
Promise的含义 Promise 是异步编程的一种解决方案,比传统的解决方案--回调函数和事件--更合理和更强大.它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Prom ...
- python自定义html_Python 第十二篇:HTML基础
一:基础知识: HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可 ...
- Python开发【第十二篇】:DOM
文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.我们最为关心的是,DOM把 ...
- Python之路【第五篇】:面向对象及相关
Python之路[第五篇]:面向对象及相关 Python之路[第五篇]:面向对象及相关 面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance ...
- 跟我学SpringCloud | 第十二篇:Spring Cloud Gateway初探
SpringCloud系列教程 | 第十二篇:Spring Cloud Gateway初探 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如 ...
- Python之路【第八篇】:堡垒机实例以及数据库操作
Python之路[第八篇]:堡垒机实例以及数据库操作 堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于 ...
- MySQL数据库,从入门到精通:第十二篇——MySQL数据类型详解
MySQL数据库,从入门到精通:第十二篇--MySQL数据类型详解 第 12 章_MySQL数据类型精讲 1. MySQL中的数据类型 2. 整数类型 2. 1 类型介绍 2. 2 可选属性 2. 2 ...
- matlab最优控制实验报告_第十二篇 章 用MATLAB解最优控制问题及应用实例 最优控制课件.ppt...
第十二篇 章 用MATLAB解最优控制问题及应用实例 最优控制课件.ppt 综上所述可得结论:Q=diag(1,0,0),R=2时,系统各方面响应较好. 矩阵Q变大时,反馈矩阵变大: 当Q的对角线上第 ...
- CCIE-LAB-第十二篇-EIGRP+EIGRP末节区域+leak map+分发列表
CCIE-LAB-第十二篇-EIGRP+EIGRP末节区域+leak map+分发列表 实际中,思科只会给你5个小时去做下面的全部配置 这个是CCIE-LAB的拓扑图 问题 翻译:1.确保分支3分支4 ...
最新文章
- 圆角有边框背景色时,背景色溢出问题
- PHP-FPM对比Swoole:Swoole多了Reactor线程监听Socket 句柄的变化 代码初始化一次不结束进程 ws tcp mqtt服务
- gin 生成api文档_golang gin框架 集成swagger 自动生成文档
- python实现rm_python winrm模块使用
- mysql text类型 使用方法_MySQL使用TEXT/BLOB类型的知识点详解
- linux kernel_thread执行过程
- PHP在线无人值守源码交易网站源码,集成支付宝微信接口
- 【Python3网络爬虫开发实战】1.6.2-Tornado的安装
- 使用宽度优先搜索的常见场景
- 一起谈.NET技术,ASP.NET MVC 3 Beta初体验之超酷的Chart
- CentOS下openssh版本降级
- MATLAB的cat()函数
- 指付通盗刷信用卡维权连载--9月4日维权纪实
- 公有云、私有云、私有化_私有云与公共云的评估
- manjaro 亮度调节
- ua-parser-js实现获取浏览器信息和操作系统信息
- BFS、DFS复杂度分析(时间、空间)
- mybatis批量更新数据三种方法效率对比
- Rsync 备份服务:基本概述、应用场景、传输模式、注意事项、密码解决方案、服务实践、备份案例、结合inotify
- css旋转,附源代码
热门文章
- System.getProperty()参数大全
- 局域网与网络工程课堂笔记(1)(2)
- LOJ#2085 循环之美
- Apache Hadoop 2.7如何支持读写OSS
- hdu 1251 统计难题
- Upgrading PHP on CentOS 6.5 (Final)
- [UWP]了解模板化控件(7):支持Command
- MariaDB AX开源分析解决方案
- 如何查看oracle 查版本号
- Java Web Model2实战