Python学习教程(learning Python)--2.2.2 Python全局和局部变量
Python的变量也有全局和局部变量之分。
1. 局部变量
用在子函数里的变量称之为局部变量,其生命周期为该函数执行周期,即函数执行完后变量即不存在。由于局部变量和某个函数直接相关,故不同子函数里可以定义相同名的变量,互相互不影响。请看下例。
def fun1() x = 12; print(x) def fun2() x = 13; print(x) fun1() fun2()
子函数fun1执行结果是打印x的值为12,子函数fun2打印的x的值为13.1-3行为fun1函数的定义,4-6行定义了函数fun2。第7行是调用fun1函数,第8行调用fun2函数。
2. 全局变量
与局部变量相对的概念是全局变量,全局变量不专属于某个子函数,所有函数均可使用全局变量,它的生命周期是整个程序执行期间。需要注意的是子函数里如果有对全局变量进行修改,在修改语句前必须用global声明这个变量是全局变量;如果子函数仅仅是读这个全局变量,可不用global声明。
def pprint(): x = 12 print(x) global z print("p") z = z + 10 def oprint(): x = 13 print(x) print("o") print(z) z = 15 pprint() oprint()
看pprint函数里,由于有z = z + 10的写z操作,在修改z之前必须声明z是全局变量,否则pprint函数会把z看作自己的局部变量;而在oprint函数里print函数仅仅是读z的值,此时不需要声明z是全局变量。
智普教育Python www.jeapedu.com
———————————————————————————————————
Python学习教程(learning Python)--2.2.2 Python全局和局部变量的更多相关文章
- python学习教程,史上最全面的python学习路线图
Python 是Web 开发.游戏脚本.计算机视觉.物联网管理和机器人开发的主流语言之一,随着Python用户可以预期的增长,它还有机会在多个领域里登顶.Python学习路线分享给你. 阶段一是Pyt ...
- Python学习教程(learning Python)--2.3.5 Python返回多个值问题
本节主要学习Python的函数是如何同时返回多个值的问题. 在学习Python的时候惊奇的发现,Python的函数可以同时返回多个值,很有意思. #define function sum def su ...
- Python学习教程(learning Python)--3.3.4 Python的if-elif-else语句
Python的if-elif-else语句用于多种条件判断后选择某个语句块执行.该语句可以利用一系列条件表达式进行检查,并在某个表达式为真的情况下执行相应的代码.需要注意的是,虽然if/elif/el ...
- Python学习教程(learning Python)--3.3.3 Python逻辑关系表达式
在if分支判断语句里的条件判断语句不一定就是一个表达式,可以是多个(布尔)表达式的组合关系运算,这里如何使用更多的关系表达式构建出一个比较复杂的条件判断呢?这里需要再了解一下逻辑运算的基础知识.逻辑关 ...
- Python学习教程(learning Python)--3.3.2 Python的关系运算
如果if的condition不用布尔表达式来做条件判断而采用关系表达式,实际上关系表达式运算的结果要么是True要么是False.下面我们先了解一些有关关系运算符的基础知识,如下表所示. 做个小程序测 ...
- Python学习教程(learning Python)--3.3.1 Python下的布尔表达式
简单的说就是if要判断condition是真是假,Python和C语言一样非0即真,所以如果if的condition是布尔表达式我们可以用True或者非0数(不可是浮点数)表示真,用False或者0表 ...
- Python学习教程(learning Python)--3.3 分支语句的条件表达式详解
本节主要讨论分支语句的条件表达式问题. 在if或者if-else分支控制语句里由于都用到条件判断(表达式是真还是假),条件判断可以是一种关系运算也可以是布尔表达式. 本节将对if及if-else语句的 ...
- Python学习教程(learning Python)--3.2 if-else分支语句
if-else分支语句结构的特点是当conditon条件满足时,执行if下的语句块,当condition条件不满足时执行else下的语句块,也就是说根据条件来控制让某些语句执行,某些语句不被执行. i ...
- Python学习教程(learning Python)--3.1 Python的if分支语句
本节研究一下if分支语句. if分支语句是Python下逻辑条件控制语句,用于条件执行某些语句的控制操作,当if后的条件conditon满足时,if其下的语句块被执行,但当if的控制条件condito ...
随机推荐
- jdk线程的同步问题
一.银行取款引出的问题 模拟银行取钱的例子: public class ThreadDemo06 { public static void main(String[] args) { Bank ban ...
- JSP SQL注入
Login.JSP <%@ page language="java" import="java.util.*" pageEncoding="UT ...
- 使用kendoui对grid指定行变色
关键点在于绑定数据源后进行判断,可直接获取当前绑定对象的属性 dataBound: function () { dataView = this.dataSource.view(); ; i < ...
- [转载]python中multiprocessing.pool函数介绍
原文地址:http://blog.sina.com.cn/s/blog_5fa432b40101kwpi.html 作者:龙峰 摘自:http://hi.baidu.com/xjtukanif/blo ...
- The BKS System for the Philco-2000 学习笔记
最近因为学业需要阅读这一篇论文......一把鼻涕一把泪地翻了一边以求更好地理解,谁让我英语渣呢....有很多地方翻译得感觉还是有问题或者不流畅,还请大家多多指教. The BKS System fo ...
- Informatica 启动、停止工作流命令
切换到Infa用户su - infa 停止$INFA_HOME/server/tomcat/bin/infaservice.sh shutdown 启动$INFA_HOME/server/tomcat ...
- No.008 String to Integer (atoi)
8. String to Integer (atoi) Total Accepted: 112863 Total Submissions: 825433 Difficulty: Easy Implem ...
- Hyper-V下安装Ossim系统
WindowsServer2008Hyper-V下安装Ossim系统 背景:很多朋友在用Hyper-v安装Linux的时候总是抱怨速度很慢,而且装好了系统无法识别网卡,可实际上针对网卡的问题本文提出了 ...
- Mac 平台下功能强大的Shimo软件使用指南
年初自从换了MAC工作站后,彻底享受了Apple产品给我们带来的完美体验,可能是刚转过来不适应,在访问网络设备时觉得远程连接不方便,例如ssh,vpn登陆都不是很方便,后来又安装了openvpnfor ...
- 对像转成 和 byte 互转类库方法
using System; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serializatio ...