函数初识

为什么要使用函数?

函数最重要的目的是方便我们重复使用相同的一段程序。

将一些操作隶属于一个函数,以后你想实现相同的操作的时候,只用调用函数名就可以,而不需要重复敲所有的语句。

函数的定义与调用

定义:def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"。

(def 是固定的,不能变,他就是定义函数的关键字。)

空格 为了将def关键字和函数名分开,必须空(四声)当然你可以空2格、3格或者你想空多少都行,但正常人还是空1格。

函数名:函数名只能包含字符串、下划线和数字且不能以数字开头。虽然函数名可以随便起,但我们给函数起名字还是要尽量简短,并能表达函数功能。

括号(调用操作符):

    1. 不带括号时,调用的是这个函数本身 ,是整个函数体,是一个函数对象,不须等该函数执行完成。
    2. 带括号(参数或者无参),调用的是函数的执行结果,须等该函数执行完成的结果。

参数:接收不同的数据在同样的代码中执行。

注释:每一个函数都应该对功能和参数进行相应的说明,应该写在def定义函数下面第一行。以增强代码的可读性。

调用:就是 函数名() 要记得加上括号。

函数的参数

为了让函数能够重复使用。如果函数中重复的程序只有变量有所变化时,我们可以通过设置参数来改变同一段函数中运行的过程。

这个在调用函数时设置参数的过程就叫做传递参数。简称:传参。

在函数的定义与调用中。

定义时函数中的参数为:形式参数。

形式参数又简称形参,形参只是形式上设置参数,设置变量进入函数中进行运行时的位置。是一个变量名。

调用时函数中的参数为:实际参数。

实际参数又简称实参,实参是调用函数时实际使用的参数,通过传递实参给形参,使参数在代码中运行起来。

函数的注释

""" """ 官方推荐
运行: 查看注释: func名.__doc__
查看函数名: func名.__name__

函数的运行顺序

     加载顺序:
1.内置空间
2.全局空间
3.局部空间
取值顺序:
1.局部空间
2.全局空间
3.内置空间

函数的作用域

全局作用域

内置 + 全局局部作用域

局部

global : 在局部修改全部变量,如果没有就创建一个新的。

nonlocal : 在局部空间内,修改离自己最近的变量,如果上一层没有就继续向上找,直到找到局部变量的顶层,局部空间内没有可以修改的变量,就报错。

在内层函数中使用和全局空间中同名的变量:

只有两种方法:

  1. 直接使用
  2. 更改

TIP:如果直接使用一个变量,默认是全局的,不能在内层函数中对全局变量进行修改。

函数的返回值

  • return
  1. 结束整个函数
  2. 给函数的执行者(调用者)返回值。
    1. 不写return时,函数运行后的值为None
    2. 当return的值没有指定时,函数返回一个None。
    3. 当return的值为一个时,返回指定的值,并且值的类型不变。
    4. 当return的值为多个时,将所有的值加入一个空元组中,值的类型是元组。

python学习第9-10天,函数。的更多相关文章

  1. python学习笔记(10)函数(二)

    (函数的参数&递归函数) 一.函数的参数 Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数和关键字参数,使得函数定义出来的接口,不但能处 ...

  2. 【python学习笔记】10.充电时刻

    [python学习笔记]10.充电时刻 任何python都可以作为模块倒入 *.pyc:平台无关的经过编译的的python文件, 模块在第一次导入到程序中时被执行,包括定义类,函数,变量,执行语句 可 ...

  3. Python学习【第九篇】函数

    函数 函数是什么? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上而下实现功能,其往往用一段代码来实现指定功能,开发过 ...

  4. Deep learning with Python 学习笔记(10)

    生成式深度学习 机器学习模型能够对图像.音乐和故事的统计潜在空间(latent space)进行学习,然后从这个空间中采样(sample),创造出与模型在训练数据中所见到的艺术作品具有相似特征的新作品 ...

  5. python学习笔记十——模块与函数

    第五章 模块与函数 5.1 python程序的结构 函数+类->模块              模块+模块->包                 函数+类+模块+包=Python pyth ...

  6. Python学习笔记014——迭代工具函数 内置函数enumerate()

    1 描述 enumerate() 函数用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中. 2 语法 enumerate(sequ ...

  7. Python学习系列----第四章 函数

    4.1 函数定义   函数是python中重要的工具.函数用关键字 def 来定义.def 关键字后跟一个函数的标识符名称,然后跟一对圆括号.圆括号之中可以包括一些变量名,该行以冒号结尾.接下来是一块 ...

  8. Python学习进程(6)函数

        函数最重要的目的是方便我们重复使用相同的一段程序.     (1)函数的定义: 函数定义的简单规则: 1.函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(): 2.任何传入参数和 ...

  9. Python学习笔记(九)—— 函数

    一.函数调用: 1.python内部函数查询:http://docs.python.org/3/library/functions.html#abs 2.注意调用函数的参数个数和类型. 3.函数名其实 ...

  10. python学习笔记之迭代器和函数(第三天)

    一.collection系列: 1.counter计数器 如果counter(dict)是对字典的一个补充,如果counter(list)则是对列表的补充,初步测试对字典的值进行排序. ####### ...

随机推荐

  1. npm i 与 npm install之间的细小区别

    1.用npm i 安装的模块无法用npm uninstall卸载,需要用npm uninstall i命令 2.npm i 会帮助检测与当前node版本最匹配的npm包 版本号,并匹配出来相互依赖的n ...

  2. you can't add a reference to Newtonsoft.Json.dll as it was not built against the silverlight runtime

    加载错误: silverlight的framework是精简版本,所以标准的库是引用不了的.必须要引用portable版本的  

  3. Coursera, Deep Learning 5, Sequence Models, week3, Sequence models & Attention mechanism

    Sequence to Sequence models basic sequence-to-sequence model: basic image-to-sequence or called imag ...

  4. 源码解读-文件上传angularFileUpload1

    angular-file-upload 1.文件上传模块的引入就不赘述,简单准备 2.初始化组件并绑定change事件 3.监听用户选择文件FileItem(change事件),push进文件数组qu ...

  5. Spring中@Transactional(rollbackFor = Exception.class)的作用

    Spring中的@Transactional(rollbackFor = Exception.class)事务处理,当你的方法中抛出异常时,它会将 事务回滚,数据库中的数据将不会改变,也就是回到进入此 ...

  6. ==,hashcde, equals(一)

    1.Hash  的属性, 1)bucket 和 list 2.java.lang.object 的 hashcode 和 equal 通过内存地址比较 3.为什么要重写hashcode 和 equal ...

  7. sqlmap 使用总结

    一直在用sqlmap,一直在浅层的使用方面,所以我想深入了解一下sqlmap. 参考文章: Sqlmap使用教程[个人笔记精华整理]        http://www.vuln.cn/1992 sq ...

  8. 解码base64加密的图片并打印到前台

    经过base64加密的图片对象是一串字符串,我们解码后可通过流将其打印出来: utils类: package com.aebiz.app.web.modules.controllers.open.ap ...

  9. 20165237 2017-2018-2 《Java程序设计》第5周学习总结

    20165237 2017-2018-2 <Java程序设计>第5周学习总结 教材学习内容总结 1.内部类:在一个类中定义另一个类:外嵌类:包含内部类的类. 2.内部类的类体中不能声明类变 ...

  10. 20165337学习基础和C语言基础调查

    20165337学习基础和C语言基础调查 你有什么技能比大多人(超过90%以上)更好? 讲道理我感觉我自己没有什么能比90%以上的人都做得好的技能,我就瘸子里面拔将军挑一个我自认为还不错的技能吧. 我 ...