【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 ...
随机推荐
- HBase Shell操作
Hbase 是一个分布式的.面向列的开源数据库,其实现是建立在google 的bigTable 理论之上,并基于hadoop HDFS文件系统. Hbase不同于一般的关系型数据库(RDBMS ...
- public static void Invoke (Action action)
using System; using System.Security.Principal; using System.Security.Permissions; namespace Demo { c ...
- leetcode-【中等题】Divide Two Integers
题目 Divide two integers without using multiplication, division and mod operator. If it is overflow, r ...
- ubuntu修改设备名称
按住ctrl+alt+t打开终端 输入 sudo gedit /etc/hostname 出现一个打开的文件,显示的就是你的设备名字,也就是终端@的那个名字.将其修改成你想显示的名字,保存重启系统就可 ...
- PAT - 测试 01-复杂度2 Maximum Subsequence Sum (25分)
1, N2N_2N2, ..., NKN_KNK }. A continuous subsequence is defined to be { NiN_iNi, Ni+1N_{i ...
- vs2012安装Microsoft.AspNet.WebApi.WebHost
工具---库程序包管理器---程序包管理器控制台:输入下面命令: Install-Package Microsoft.AspNet.WebApi.WebHost
- jsvascript—谜之this?
原文:Gentle explanation of ‘this’ keyword in JavaScript 1. 迷之 this 对于刚开始进行 JavaScript 编程的开发者来说,this 具有 ...
- 浅述python中argsort()函数的用法
由于想使用python用训练好的caffemodel来对很多图片进行批处理分类,学习过程中,碰到了argsort函数,因此去查了相关文献,也自己在python环境下进行了测试,大概了解了其相关的用处, ...
- PHP常用函数大全
usleep() 函数延迟代码执行若干微秒.unpack() 函数从二进制字符串对数据进行解包.uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.time_sleep_until() ...
- ipython的安装
ipython:是python的一个交互式shell环境,可以安装到windows和linux上面.作用:用来执行python代码和调试用.windows上面安装:分为2.x版本和3.x版本,分为py ...