Python函数认识

变量

昨天学习了函数基本定义和函数的参数,今天接着学习函数,先来认识下变量,跟其他语言一样,变量之间的区别就是变量的作用域不一样,Python中的变量分为全局变量和局部变量。详细解释如下:

(1). 全局变量:顾名思义,定义在函数外的变量,可以在整个程序内访问的就是全局变量,也可以说没有缩进的变量就是全局变量。

(2). 局部变量:顾名思义,定义在函数内的变量,只能在函数内部访问的就是局部变量,也可以说有缩进的变量就是局部变量。

name = 'mary'  #全局变量def change_name():print(name)
change_name()def  change_name1():name = 'li'   #局部变量print(name)
change_name1()

1.全局变量和局部变量的调用

(1). 如果没有局部变量会直接调用全局变量

name = 'mary'  #全局变量def change_name():print(name)   #调用全局变量
change_name()  #调用函数

(2). 如果全局变量和局部变量同名,则调用局部变量

name = 'mary'  #全局变量def  change_name1():name = 'li'   #局部变量print(name)   #调用局部变量
change_name1()    #调用函数

(3). 如果函数中有global关键字声明的局部变量,则这个局部变量指向全局变量

name = 'mary'  #全局变量def change_name2():global name   #声明全局变量,必须放在调用此变量之前name = 'pick' #修改全局变量print(name)   #调用全局变量
change_name2()    #调用函数

注意:上面写的是变量的调用规则,感觉很容易混淆,所以呢,如何避免这个问题呢,编程时,默认规则是全局变量全部大写,局部变量全部小写,有没有突然感觉前面学的没用了,其实不然,还有就是global关键字的使用,使用后全局变量如何变化,这就要看数据类型是不是的可变的啦。

Python函数递归

1.定义

在调用函数时,直接或间接调用函数本身,这个过程就是递归

def sub(n):print(n)n = n-1     #减小问题规模if n > 0 :  #结束条件sub(n) #调用本身
sub(10)

2.特性

(1). 必须有一个明确的结束条件

(2). 每次递归都是让规模变小

(3). 递归层次越多,效率越低,且存在栈溢出风险

Python匿名函数

python 使用 lambda 来创建匿名函数,lambda只是一个表达式,lambda的主体是一个表达式,而不是一个代码块,lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。

lambda [arg1 [,arg2,.....argn]]:expression

例子:

def calc(x):      #一般函数return x+1
print(calc(10)) fun = lambda x:x+1  #匿名函数
print(fun(10))

Python函数--return语句

return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。支持返回函数。

def calc(x):      return x+1  #返回值表达式
print(calc(10))
总结:到这里,基本上把Python函数部分基本学完了,总体来说,Python函数这块的知识点不是很复杂,理解起来还是不难的,请广大网友多多指教。
开心时刻:某程序员对书法十分感兴趣,退休后决定在这方面有所建树。于是花重金购买了上等的文房四宝。一日,饭后突生雅兴,一番磨墨拟纸,并点上了上好的檀香,颇有王羲之风范,又具颜真卿气势,定神片刻,泼墨挥毫,郑重地写下一行字:hello world。

Python函数认识(二)相关推荐

  1. python 函数(二)

    一.高阶函数 1.函数名可以赋值 2.函数名可以作为函数参数 3.函数名可以作为函数的返回值 def f1(n):return n*ndef f2(a, b, f):return f(a) + f(b ...

  2. python函数(二)

    #6.传递任意个数的参数: #在定义函数时,若参数名前面使用"*",则表示可接受任意个数的参数,这些参数保存在一个元祖中. #定义函数,*代表b是一个元祖,可以接受多个参数 def ...

  3. 深入浅出python机器学习_如何用python画(绘制)二维函数(二维图)?

    参考文档 python 如何绘制二维函数? from matplotlib import pyplot as plt import numpy as np low=lambda x:10000 if ...

  4. boost::python模块包装几个 C++ 函数 将二维数组操作为采用 NumPy 数组的 Python 函数作为参数

    boost::python模块包装几个 C++ 函数 将二维数组操作为采用 NumPy 数组的 Python 函数作为参数 实现功能 C++实现代码 实现功能 boost::python模块包装几个 ...

  5. python函数和代码复用思维导图_Python语言程序---代码复用与函数递归(二)

    Python语言程序---代码复用与函数递归(二) 函数递归 在函数定义中,调用函数自身的方式就是递归. 递归并不是程序设计的专有名词,在数学中也广泛存在.例如:n!.在n!中,我们定义当n=0时,n ...

  6. python学习笔记(二)--深入了解python函数

    python的函数与C++还是大有不同的,具体按照官方手册(python3.4)的介绍,总结如下: 一.定义函数def 从def 下一行开始,每行必须是缩进的.第一行语句是可选的文本字符串docstr ...

  7. python opencv图像二值化函数_python opencv 二值化 计算白色像素点的实例

    python opencv 二值化 计算白色像素点的实例 贴部分代码 #! /usr/bin/env python # -*- coding: utf-8 -*- import cv2 import ...

  8. python函数五要素_python之基础篇(二)

    防伪码:忘情公子著 一.面向过程与面向对象 面向过程: 以指令为中心,由指令去处理数据 只要考虑如何组织代码去解决问题 面向对象: 以数据为中心,所有的处理代码都围绕数据展开 要考虑如何设计数据结构组 ...

  9. 数据挖掘之Python基础(二)函数与文件读写

    前言 前一篇文章我们讲到了Python的基本的数据结构,如果对于Python不是很熟悉,建议先看前一篇文章,或者关注公众号QStack,里面有全部文章. if条件语句 基本所有语言的if条件语句都差不 ...

  10. Python基础语法 函数(二)

    函数(二) (一)返回值 在Python中,可以在函数体内使用return语句为函数指定返回值.该返回值可以是任意类型, 且无论return语句出现在函数的什么位置,只要得到执行,就会直接结束函数的执 ...

最新文章

  1. ZLComboBox自定义控件开发详解
  2. 大盘点|卷积神经网络必读的 100 篇经典论文,包含检测 / 识别 / 分类 / 分割多个领域
  3. 从零开始搭建spring-cloud(3) ----feign
  4. java 判断端口是否被占用_java检测端口是否被占用详解
  5. 帮盖尔优化SQL-----子查询优化的经典案例
  6. CodeForces - 1426F Number of Subsequences(dp)
  7. HTML基础(part5)--常用标签之重文本标签
  8. java爬虫-简单爬取网页图片
  9. PHP编写命令行脚本和后台运行程序的注意事项
  10. 第4篇:Flowable-Modeler详述之流程概述
  11. Java import static静态导入
  12. python生成验证码的程序_Python基础篇生成4位随机验证码
  13. 用c语言实现键盘画图,用C实现键盘画图.doc
  14. 修改系统启动项 grub2配置的方法 ubuntu[转]
  15. Openstack api 学习文档 restclient使用文档
  16. python dll注入监听_DLL注入和API拦截
  17. 如何满足python安装需求升级win7到SP1版本
  18. 学习笔记——MongDB非关系型数据库的脚本代码汇总
  19. 使用adb指令往机顶盒上安装应用
  20. Matlab画天球坐标图,知道方位角和高度角

热门文章

  1. 16 Python总结之舆情时间序列可视化
  2. 2022-2027年中国棉纱行业市场全景评估及发展战略规划报告
  3. 【信号系统实验2】MATLAB—连续时间信号与系统的频域分析
  4. mysql分片做主从_使用mycat部署mysql集群(分片,读写分离,主从复制)
  5. How to Generate PDF in Ruby on Rails(HowtoGeneratePDFs) ZT
  6. Cisco综合配置实验——二层、三层交换机、路由器
  7. 长短时记忆神经网络python代码_零基础入门深度学习(6) - 长短时记忆网络(LSTM)
  8. AcWing 1117 单词接龙
  9. pandas 读表格_手把手教你数据分析(1)--Pandas读取Excel信息
  10. 报错Warning: ReactDOM.render is no longer supported in React 18.Use createRoot instead.Until you...