定义一个函数

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 函数的更多相关文章

  1. Python全栈开发【模块】

    Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...

  2. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

  3. Python全栈day 03

    Python全栈day 03 一.运算符补充 in ,逻辑运算符,判断某字符或某字符串是否在一个大的字符串中,输出得到bool型数据. value = '我是中国人' v = '我' if v in ...

  4. Python全栈开发:模块

    模块,用一砣代码实现了某个功能的代码集合. 参考资源:http://www.cnblogs.com/alex3714/articles/5161349.html 类似于函数式编程和面向过程编程,函数式 ...

  5. Python全栈day21-22-23(模块)

    一,python的模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python ...

  6. python 全栈开发,Day10(动态参数,命名空间,作用域,函数嵌套)

    一.动态参数 def func(a,b,c,d,e,f,g): pass func(1,2,3,4,5,6,7) 如果加30个参数呢?有没有万能的参数,可以代表一切参数呢? *args 动态参数,万能 ...

  7. 【Python全栈笔记】03 [模块二] 16-17 Oct Set 集合,三目运算

    Set 集合 set - unordered collections of unique elements 创建一个set/一个空set # create a new set set1 = {1,2, ...

  8. 【Python全栈笔记】04 [模块二] 18 Oct lambda表达式, 内置函数

    lambda表达式 lambda表达式是函数的一种简化,如下面两种函数定义方法,实际上效果是一样的. 使用lambda表达式的函数,func2是函数名,lambda: 后面的123 即为返回值. de ...

  9. 【Python全栈笔记】01 [模块二] 14-15 Oct 运算符和字符串 4-1

    编码的问题 中文版 Windows 终端是默认GBK编码格式,python2默认为ASCII编码,虽然我们注释了需要用UTF-8,但是通过命令行运行的文件如果print中文内容还是会出现乱码. Uni ...

随机推荐

  1. PHP常用函数总结(不定期更新)

    array_merge函数和两个数组相加的区别 array_merge函数,在出现相同的索引数组,会把两个数组中的索引数组,进行融合,以第一个数组的索引最大值往后相加,如果是关联数组,后面数组的值覆盖 ...

  2. (dp)343. Integer Break

    Given a positive integer n, break it into the sum of at least two positive integers and maximize the ...

  3. Android开发-mac上使用三星S3做真机调试

    之前一直未使用真机进行Android开发,为准备明天的培训,拿出淘汰下来的s3准备环境,竟然发现无法连接mac,度娘一番找到答案,如下:mac 系统开发android,真机调试解决方案(无数的坑之后吐 ...

  4. Ubuntu16.04 apache2 wsgi 部署django

    在Ubuntu16.04上部署django其实还算简单直观,最重要的问题就是路径设置正确,并且保证版本统一,这个测试是在 Apache/2.4.18 (Ubuntu)  apt-get install ...

  5. Jmeter plugin jp@gc - PerfMon Metrics Collector

    Jmeter由于是开源工具,所以目前有很多插件可以供使用,最简单的方法是先把Plugin Manager安装了 下载地址:https://jmeter-plugins.org/wiki/Plugins ...

  6. Sublime Text 3 引用插件

    汉化插件 点击 View> Show Console 输入import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b ...

  7. Linux CentOS安装postgresql 9.4

    一.前言 PostgreSQL通常也简称Postgres,是一个关系型数据库管理系统,适用于各种Linux操作系统.Windows.Solaris.BSD和Mac OS X.PostgreSQL遵循P ...

  8. MongoDB(八)Mongodb——GridFS存储

    mongoDB的文档以BSON格式存储,支持二进制的数据类型,当我们把二进制格式的数据直接保存到mongoDB的文档中.但是当文件太大时,例如图片和视频等文件,每个文档的长度是有限的,于是mongoD ...

  9. wampserver配置域名

    装载自http://blog.csdn.net/znb26/article/details/51204313

  10. 安装sass并ruby更改淘宝镜像

    一.安装ruby 去官网下载ruby安装(注意:安装的时候选择第二项变量环境安装add ruby executables to your PATH) 二.安装完成后 在windows左下角打开所有应用 ...