python 函数递归一次增加一次变量_python函数局部变量、全局变量、递归知识点总结...

函数局部变量 全局变量 及其作用域 #简单类型(int str等)变量的局部变量与全局变量及其作用域的关系

name = "xxx" #第一级顶头定义的变量都称为全局变量,其作用域从变量定义的位置开始到此程序结束

def Print_Name():

print("name before change:", name)

#由于name在此函数之前已经被定义为全局变量,此处函数读取变量name是读取的全局变量name “xxx”,函数内部就不能再定义其同名局部变量,否则无法区分变量为局部变量还是全局变量

# name = "yyy" #此语句放开以后会报错:IndentationError: unindent does not match any outer indentation level

Print_Name()

def Change_Name():

name = "yyy" #函数内部首先定义全局变量的同名局部变量,则整个函数内部操作的为局部变量(一个与全局变量同名的临时变量)

print("name after change is", name)

Change_Name() # yyy实际输出的是局部变量的值

print("global name is", name) # xxx此处访问的是全局变量,因为此print语句不是在Change_Name内部。

#函数内部需要强制对全局变量进行修改,使用global关键字

def Change_global_Name():

global name

print("name before change is :", name)

name = "yyy"

Change_global_Name() # xxx 修改前的全局变量

print("global name is :", name) # yyy此处由于函数内强制声明name为global变量,整个函数内部可以对global进行操作

#复杂数据类型列表 集合 字典等复杂数据结构如果函数外部定义了函数里面是可以不用global声明也操作的是全局变量,没有局部变量一说了

names = ['111', '222', '333']

def Change_Names():

names[0] = "444"

print("in function names :", names)

Change_Names() #in function names : ['444', '222', '333']

print("global names :", names) #in function names : ['444', '222', '333'] 对于复杂的数据类型,函数内直接操作全局变量,不会再生成局部变量

递归 #函数内部可以调用其它函数,如果函数在内部调用自己就被称为递归函数

def Half_fun(n):

print(n)

if n < 2:

return n

Half_fun(n/2)

Half_fun(100)

#递归特性:1、必须有一个明确的结束条件 2、每次递归调用问题复杂度需要相比上次简化 3、递归会占用大量内存

以上实例很简单,大家可以本次测试下,感谢你的阅读和对聚米学院的支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java实现出租车计价器

导读: 在我国,出租车行业是八十年代初兴起的一项新兴行业,随着出租车的产生,计价器也就应运而生。但当时在全国没有一家企业能够生产,因而那个时期的计价器是由台湾引进。台湾是计价器的主要生产场地,目前全世界的计价器中有90%为台湾生产。现今我国生产计价器的企业有上…

映像劫持技术(2):实例

在Image File Execution Options下创建cmd.exe项&#xff0c;将其“重定向”到我们自己编写的程序 1 #include<stdio.h>2 #include<windows.h>3 4 int main()5 {6 HKEY hKey;7 DWORD dwDispositionREG_CREATED_NEW_KEY; //新建一个子项8 if((::RegCre…

Hey,孙叫兽的2020 CSDN年度报告已出炉,请查收!

导读&#xff1a;最近经常看到朋友圈有人分享自己2020年在常用平台的年度报告&#xff1a; 有的人分享了这一年来听了多少首歌&#xff0c;最喜爱听的歌是什么&#xff1b; 有的人分享了这一年来消费了多少钱&#xff0c;最喜欢购买的产品类型是什么&#xff1b; 有的人分享了这…

mysql的表创建_MYSQL表创建

Customer属性&#xff1a;ID 字符型 最大10个字符 ——顾客编号NAME 字符型 最大16个字符 ——顾客姓名SEX 字符型 最大2个字符 ——性别MOBILE 字符型 最大11个字符 ——移动电话ADDRESS 字符型 最大50个字符 ——家庭住址约束&#xff1a; ID…

使用Swagger轻松记录您的Play Framework REST API

该帖子最初在http&#xff1a;// swag ger.io&#xff08;7/30/2015&#xff09;上发布 我一直在将Play Framework用作几个项目的基于Java的&#xff0c;快速的REST后端框架。 后来&#xff0c;我很高兴找到Swagger&#xff0c;并努力将其集成到几个项目中。 在我第一次挣扎时…

Java实现qq截图工具

导读:当今时代是飞速发展的信息时代,人们在对信息的处理中对图像的处理量与日俱增,这一点在文档人员上显得非常突出。 本软件采用Java语言进行模拟qq截图功能,获取屏幕方式灵活,可以获取指定的屏幕,并且可以对获取到的截图进行存储,编辑(添加文字)等操作,对这些操作设置了…

mysql查看导入大小_mysql 数据导入、导出,及库大小查看

一、导出数据库用mysqldump命令(注意mysql的安装路径&#xff0c;即此命令的路径)&#xff1a;1、导出数据和表结构&#xff1a;mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql#/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql敲回车后会提示输入密码2、…

java实现儿时的超级玛丽游戏

导读:近年来,Java作为一种新的编程语言,以其简单性、可移植性和平台无关性等优点,得到了广泛地应用。J2SE称为Java标准版或Java标准平台。J2SE提供了标准的SDK开发平台。利用该平台可以开发Java桌面应用程序和低端的服务器应用程序,也可以开发Java Applet程序。 “超级玛丽…

MongoDB实战指南(二):索引与查询优化

数据库保存记录的机制是建立在文件系统上的&#xff0c;索引也是以文件的形式存储在磁盘上&#xff0c;在数据库中用到最多的索引结构就是B树。尽管索引在数据库领域是不可缺少的&#xff0c;但是对一个表建立过多的索引会带来一些问题&#xff0c;索引的建立要花费系统时间&am…

mysql学生选课系统的关系模型_使用PowerDesigner搭建学生选课管理系统(学生老师管理员一体系结构)由基础设计至数据库生成(SQL语句源代码的生成)全过程实例操作...

思考构图大小及范围首先&#xff0c;我们大致的写出要建的几张表&#xff0c;并自定义其Code(所谓Code其实就是自定义一个字段名&#xff0c;因为SQL语句不能由中文)我们可以将不同的表按照不同的类型分开&#xff0c;这样一个类型的表可以一起建并且相互之间的关系不会弄混制作…

java实现飞机大战游戏

导读:现如今,随着智能手机的兴起与普及,加上5G(the 5th Generation mobile communication ,第5代移动通信技术)网络的深入,越来越多的IT行业开始向手机行业转移重心。而手机行业中游戏方面的利润所占比重较大,并且手机游戏大多数则是由Java语言开发研制的。所以我想顺应…

merge语句使用_使用SQL:2003 MERGE语句的奥术魔术

merge语句使用时不时地&#xff0c;由于以下任何原因&#xff0c;我们不得不将INSERT与UPDATE区分开来感到尴尬&#xff1a; 我们必须至少发表两个声明 我们必须考虑性能 我们必须考虑比赛条件 我们必须在[UPDATE; 如果UPDATE_COUNT 0 THEN INSERT]和[INSERT; 如果例外然后…

UVA 10917 Walk Through the Forest

最短路DP Walk Through the ForestTime Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu[Submit] [Go Back] [Status] Description Problem C: A Walk Through the Forest Jimmy experiences a lot of stress at work these days, especially sin…

python定义区间[-5、5_有一个数 x 在区间 [-5,0] 内 , 写出其条件表达式 。 (5.0分)_学小易找答案...

【其它】2018应心ABC反应时任务实验数据.sav 请利用上面的实验数据文档,完成本次实验的报告撰写,并上传。 【单选题】“ab”+”c”*2 结果是: (3.0分) 【判断题】元组可以作为集合的元素。 (2.0分) 【判断题】函数中必须包含return语句。 (3.5分) 【判断题】加法运算符可以用来…

java实现愤怒的小鸟游戏

导读:Java语言是一门面向对象的编程语言,它不但汲取了C++语言的各种精髓,而且还抛弃了C++语言里晦涩难懂的多继承和指针等概念,所以Java语言具有的特征便是:功能超强和易用实用。 Jbox2D中不仅集成了大量物理运动学和机械运动学计算,而且也将物理仿真包集成到

为什么应始终将连接池与Oracle XE一起使用

介绍 Oracle Express Edition是Oracle Enterprise Edition的免费版本&#xff0c;其较小的尺寸使其非常方便地测试各种Oracle功能。 根据Oracle文档 &#xff0c;Express Edition最多可以使用一个CPU和1 GB RAM&#xff0c;但是实际上存在其他限制并不总是很明显。 数据库连接…

异想维度 java_Java实现多字段(维度)复杂排序

//Java 实现多字段排序HashMap map1 new HashMap();map1.put("dataindex0", null);map1.put("dataindex1", 6);map1.put("dataindex2", 1.1);map1.put("id", 1);HashMap map2 new HashMap();map2.put("dataindex0", "…

Linux下mysql的root密码忘记解决方法

方法一&#xff1a; 1&#xff0e;首先确认服务器出于安全的状态&#xff0c;也就是没有人能够任意地连接MySQL数据库。 因为在重新设置MySQL的root密码的期间&#xff0c;MySQL数据库完全出于没有密码保护的 状态下&#xff0c;其他的用户也可以任意地登录和修改MySQL的信息…

一文教你用java实现愤怒的小鸟游戏

导读&#xff1a;Java语言是一门面向对象的编程语言&#xff0c;它不但汲取了C语言的各种精髓&#xff0c;而且还抛弃了C语言里晦涩难懂的多继承和指针等概念&#xff0c;所以Java语言具有的特征便是&#xff1a;功能超强和易用实用。Jbox2D中不仅集成了大量物理运动学和机械运…

java中大数开方_大数开方(Java版)

Java代码&#xff1a;适合被开方数不超过1000位的。import java.util.*;import java.math.*;public class Main{public static void main(String[] args){Scanner cinnew Scanner(System.in);int tcin.nextInt();BigInteger remainBigInteger.ZERO;BigInteger oddBigInteger.ZE…