一个程序可以按不同的功能实现拆分成不同的模块,而函数就是能实现某一部分功能的代码块。

1、函数的概述

定义:在Python中,定义个函数要使用 def 语句,一次写出函数名、括号、括号中的参数和冒号(:),然后在缩进块中编写函数体,函数的返回值用return 语句返回。

def area_of_square(x):

s = x*x

return s

def area_of_square(x):

s = x*x

return s

2、全局变量

定义:在函数外面定义的变量称为全局变量。

作用域:整个代码段(文件、模块),在整个程序代码中都能被访问到。在函数内部可以去访问全局变量。

但不要在函数内部去修改全局变量,否则会得不到想要的结果;因为在函数内部试图去修改一个全局变量是,系统会自动创建一个新的同名局部变量去代替全局变量,采用屏蔽(Shadowing)的方式,当函数调用结束后函数的栈空间会被释放,数据也会随之释放。

如果要在函数内部去修改全局变量的值,并使之在整个程序生效,采用关键字global 即可。

3、局部变量

定义:在函数内部定义的参数和变量称为局部变量

作用域:仅在函数内部。

4、函数的参数

定义:函数的参数就是使得函数个性化的一个实例。

作用:函数有了参数后,输出结果变得可变了;多个参数用逗号  “,” 隔开即可。

4.1 参数传递方式:

在Python中,将函数参数分为三类:位置参数、可变参数、关键字参数。

位置参数:直接传入参数数据即可,如果有多个参数,位置先后顺序不能改变。

定义: 传入参数值按照位置顺序依次赋给参数,这样的参数称为位置参数

可变参数:法一:直接传入参数值

法二:先封装成列表(list)或元组(tuple),再封装后的列表或元组前面添加一个星号 “ * ” 传入。

定义:在定义函数参数的时候,不知道究竟需要多少个参数的时候,只有在参数前面加上星号 “ * ” 即可,这样的参数称为可变参数(又称为收集参数)。

关键字参数:法一:直接传入参数值

法二:先封装成字典(dict),再封装后的字典前面添加两个星号 “ ** ” 传入。            定义:直接给参数赋值,就不会因为顺序不同,导致结果的改变。

在函数调用的时候,通过参数指定需要赋值的参。通常我们在调用一个函数时,参数会有多个,常常会混淆参数的顺序,打不到我们希望的效果。

python引入关键字参数就可以解决这个潜在的问题。

4.2  默认值参数

定义:在定义函数时给参数赋了一个初值,这样的参数称为默认值参数。

5、函数的返回值

函数中如果没有用关键之 return 指定返回值,则返回一个“ None ” 对象。

Python是动态的确定变量类型,Python没有变量,只有名字。Python可以返回多个类型的值。

6、函数的调用

要调用一个函数,需要知道函数的名称和参数; *

函数分为自定义函数和内置函数;自定义函数需要定义再调用,有的内置函数时在特定的模块下,这是需要用 import 命令导入模块后再调用。

可以通过交互式命令help(函数名)查看函数的帮助信息。

6.1  函数嵌套调用

内部函数:函数内部创建另一个函数。内嵌函数的作用域在其内部。

6.2 使用闭包

闭包:函数式编程的一个重要的语法结构。在一个内部函数对一个外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数一分为值闭包(closure)。

注意:不能在全局域内访问闭包,否则会出错。在闭包中,外部函数的局部变量对闭包中的局部变量(相当与全局变量和局部变量的关系),在闭包中能访问外部函数的局部变量,但不能进行修改。

6.3   递归调用

递归的两个条件:调用函数自身;

设置了正确的返回条件。

Python 默认递归深度 100 层( Python 限制)。设置递归的深度系统函数是:sys.setrecursionlimit( stepcount )。参数:stepcount 设置递归的深度。

递归有危险性:消耗时间和空间,因为递归是基于弹栈和出栈操作。

递归忘掉返回使用程序崩溃,消耗掉所有的内存。

python函数名的语法_Python 基础语法六 ——函数相关推荐

  1. python 识别子串的位置_Python基础语法小白这一篇就足够了!

    一个多星期的 Python基础语法学习结束,整理了一些常用必备的知识要点笔记.大家可以参考参考,内容比较长,知识点涉及还是蛮全面的(没面向对象),面向对象总结了以后会再单独发一篇,没有耐心的朋友可以直 ...

  2. python吴枫千寻的_Python基础语法习题参考(0-9关)

    第0关 练习-打印皮卡丘-参考 请你使用**print()函数**和**'''**将下面的皮卡丘打印出来.皮卡丘字符画可以直接复制步骤1里的. ``` へ /| /\7 ∠_/ / │ / / │ Z ...

  3. python turtle基本语法_Python 基础语法-turtle篇

    Python 基础语法-turtle篇 今天这节课主要讲了类的概念,并引出turtle中的函数和Turtle类. -创建一个Turtle类:brad=turtle.Turtle() -定义Turtle ...

  4. python判断语法_Python基础语法——代码规范判断语句循环语句

    Python基础语法 代码的执行顺序 从上到下 从左到右 代码规范 模块名,包名,普通数据量一般小写字母,多个单词之间用 _ 连接 不要用系统定义的名称,具有特殊意义的表示符,如:doc,txt之类的 ...

  5. python函数作用域与闭包_python基础-08-内置函数、作用域、闭包、递归

    python基础-内置函数.作用域.闭包.递归 1.常见的内置函数 常见的内置函数: 查看内置函数: print(dir(__builtins__)) 常见函数 type() 数据类型 print() ...

  6. python deque索引超出范围_Python基础语法

    学习Python的四个要素有数据,函数,条件循环和模块 一.数据 数据是Python编程过程中的原材料,通过导入数据,对数据进行操作,实现预先设想的功能.数据共有5种类型,分别是字符串.数字.容器.布 ...

  7. python拍7游戏代码_Python基础语法-7(小游戏)

    代码太长?内容太复杂? 不用担心!往下看↓ 知道为什么python简洁,省力么? 就是因为python有很多写好的工具箱可以直接调用,我们只要开头给一个命令,在我们的代码 就可以直接使用它的功能了,这 ...

  8. python 字符串格式化语法_Python基础语法--字符串格式化

    PS:在学习到Python的字符串格式化一些个人的总结,利用字符串格式化可以更好的对代码结果进行格式化输出 语法栗子 例子中通过接收用户输入的值,赋值给sex_input和age_input生成两个变 ...

  9. python 一个列表转字典_python基础语法:列表和字典

    一个列表需要使用中括号[]将所有数据框起来,里面中的每一个数据叫做"元素", 使用英文逗号隔开 从列表中提取单个元素 transformers = ['擎天柱','大黄蜂','救护 ...

最新文章

  1. Echarts图表在VUE项目中使用动态数据源
  2. 配置ODBC数据源——找不到SA账户的解决
  3. WebService入门教程_Schema学习
  4. .Net应该学什么怎么学(三)
  5. WEB框架研究笔记六(Spring WEB)
  6. find之exec和args
  7. Windows上搭建EMQTT服务器
  8. tf.layers.dropout
  9. 算法 - KMP算法(字符串匹配)
  10. MySQL高级知识(十二)——全局查询日志
  11. [技巧心得] 嵌套选择器优先级
  12. metasploit学习之路(二) msfconsole基本使用
  13. 节假日查询接口,加班,补班,日期查询,放假,日历
  14. python从excel中读取数据然后随机选一个_从Python读取Excel复选框
  15. 屏库是个很好的网站,囊括了几乎所有型号的显示屏
  16. leetcode Revert Binary Tree
  17. Delphi Web前端开发教程(9):基于TMS WEB Core框架
  18. 中标麒麟桌面版7.0 u盘安装
  19. 深度学习系列24:开源抠图算法
  20. JAVA毕业设计HTML5“牧经校园疫情防控网站”设计与实现计算机源码+lw文档+系统+调试部署+数据库

热门文章

  1. 判断五个分数等级划分_2021年迎来新高考,你对“赋分等级”了解吗?选科注意这几点...
  2. mysql简单概述_MySQL入门很简单: 1 数据库概述
  3. c语言 listview,C语言 SDK编程之通用控件的使用--ListView
  4. memsql 落地mysql_MemSQL初体验 - (2)初始化测试环境
  5. 今日头条字节跳动抖音小程序上线前后的搜索优化配置
  6. android c# websocket
  7. Thundernet
  8. PyTorch开源物体检测工具包
  9. 卷积神经网络的“封神之路
  10. flask_socketio 用法: