【Python全栈笔记】03 [模块二] 16-17 Oct 函数
定义一个函数
def function_name(形式参数):
代码块
return 'Value' #如果没有写return,则默认返回None
# 一个函数到return这一行就结束执行了,在return后面写的东西不执行
function_name(实际参数) # 只有call这个函数的时候才会执行函数里面的代码
函数把功能提取了出来,提高效率减少代码量
定义函数的时候,参数可以有不止一个,可以是普通参数,默认参数,动态参数。默认参数放在普通参数后面,动态参数放在最后面。
输入实际参数的时候按照形式参数顺序依次写入,如果不按照顺序,则需要把参数名加上写入。
默认参数可以有默认值,输入实际参数的时候可以覆盖默认值。
动态参数通常写为'*args'和'**kwargs'两颗星号的放在后面,一颗星的参数算作一个tuple, 两颗星的算作一个dict。
函数外部的变量为全局变量,函数里面是局部变量,python内置的为内置变量。遵循local > global> built-in 的变量查找顺序。
为了便于区分,全局变量用全大写。在函数内如果需要使用全局变量,需要在变量前加上global。
def top_movies(num=5, *args, **kwargs):
print(num)
print(args)
print(kwargs) rank = (0, 1, 2, 3, 4, 5)
keywords = { '': 'The Shawshank Redemption', '':'Fight Club', '':'Toy Stories', '':'Radio Rock', '':'Fantastic Mr. Fox'} top_movies(*rank, **keywords) '''
运行后得到结果:
0
(1, 2, 3, 4, 5)
{'1': 'The Shawshank Redemption', '5': 'Fantastic Mr. Fox', '2': 'Fight Club', '3': 'Toy Stories', '4': 'Radio Rock'}
参数第一个数字默认为num, 虽然是在rank这个tuple里面,剩余的几位为args,最后为kwargs。可见是严格按照指定参数顺序来的。
如果不在实参前加上'*'和'**',输入的参数会默认为实际参数的第一个值。
'''
Reference:
想不起来讲了什么内容的时候,参考一下老师的教学笔记
http://www.cnblogs.com/wupeiqi/articles/5453708.html
【Python全栈笔记】03 [模块二] 16-17 Oct 函数的更多相关文章
- Python全栈开发【模块】
Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- Python全栈day 03
Python全栈day 03 一.运算符补充 in ,逻辑运算符,判断某字符或某字符串是否在一个大的字符串中,输出得到bool型数据. value = '我是中国人' v = '我' if v in ...
- Python全栈开发:模块
模块,用一砣代码实现了某个功能的代码集合. 参考资源:http://www.cnblogs.com/alex3714/articles/5161349.html 类似于函数式编程和面向过程编程,函数式 ...
- Python全栈day21-22-23(模块)
一,python的模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python ...
- python 全栈开发,Day10(动态参数,命名空间,作用域,函数嵌套)
一.动态参数 def func(a,b,c,d,e,f,g): pass func(1,2,3,4,5,6,7) 如果加30个参数呢?有没有万能的参数,可以代表一切参数呢? *args 动态参数,万能 ...
- 【Python全栈笔记】03 [模块二] 16-17 Oct Set 集合,三目运算
Set 集合 set - unordered collections of unique elements 创建一个set/一个空set # create a new set set1 = {1,2, ...
- 【Python全栈笔记】04 [模块二] 18 Oct lambda表达式, 内置函数
lambda表达式 lambda表达式是函数的一种简化,如下面两种函数定义方法,实际上效果是一样的. 使用lambda表达式的函数,func2是函数名,lambda: 后面的123 即为返回值. de ...
- 【Python全栈笔记】01 [模块二] 14-15 Oct 运算符和字符串 4-1
编码的问题 中文版 Windows 终端是默认GBK编码格式,python2默认为ASCII编码,虽然我们注释了需要用UTF-8,但是通过命令行运行的文件如果print中文内容还是会出现乱码. Uni ...
随机推荐
- pyqt5安装
花了一天时间,终于是装好了. 这东西硬是把我从Python2掰弯成了Python3 本来用pip安装了一个pyqt,但是后来才发现,这是个x64版本的. 我不知道啊! 我以为是还要装qt5 所以我把q ...
- C#实现堆栈
堆栈(Stack)是一种特殊的线性表,是一种操作只允许在尾端进行插入或删除等操作的线性表.表尾允许进行插入删除操作,称为栈顶(Top),另一端是固定的,称为栈底(Bottom).栈的操作使按照先进后出 ...
- Dictionary的几种遍历方法
Dictionary<string, int> list = new Dictionary<string, int>(); list.Add("d", 1) ...
- R&S学习笔记(二)
1.OSPF:路由条目1万多条.收敛时间1s:ISIS:路由条目可以达2万多条,收敛时间50ms().ISIS在链路层上面,不依赖IP这层,这样给了它很多可能.比如IPv4, IPv6路由的混合承载, ...
- Druid 基础使用-操作篇(Pivot、plyql)
一.Pivot --9095 端口 二.基本sql 使用 .plysql-- http://plywood.imply.io/plyql (下面的端口应该是8082,我这个地方做了端口转换) ...
- View & draw
When an iOS application is launched, it starts a run loop. The run loop’s job is to listen for event ...
- PlayerPrefs游戏存档
本地存储.相当于Flash里面的SharedObject. Android位置:机器自身存储的(非扩展卡)/data/data/appname/shared_prefs/{AppName}.xml,如 ...
- vi和vim 的常用操作
到文件末尾: ESC + shift G : 到文件头: G + G: 整块模式 快捷键 [不使用鼠标,来选择块] v 字符选择,会将光标经过的地方反白选择! V ...
- PHP5.6.15连接Sql Server 2008配置方案
php5.6的如果想连接Sql Server 2008数据库,需要手动配置扩展和安装一个驱动. 下载SQL Server Driver for PHP的扩展包,64位系统的官方不支持,找到一个非官方的 ...
- centos下ssh无密码验证
#安装openssh-clients,rsync等#1.修改所有master和slave服务器的sshd_config,后面增加UseDNS noClientAliveInterval 30RSAAu ...