Python中的局部全局与全局变量主要体现在函数内的变量与函数外的变量。

局部与全局就是变量的作用域(作用范围)。

当你在函数内部定义变量的时候,它们与函数外具有相同名称的变量没有任何关系,即变量对于函数来说是 局部 的。这也是这个变量的 作用域 。

所有的变量的作用域是它们被定义的块,从它们被定义的地方开始。

使用局部变量:

#!/usr/bin/env python

# Filename: func_local.py

# -*- encoding:utf-8 -*-

def func(x):

print 'x is', x

x = 2   # 定义函数内的变量

print 'Changed local x to', x

x = 50   # 这里定义了全局变量

func(x)

print 'x is still', x

输出结果:

x is 50

Changed local x to 2

x is still 50

在函数中,我们第一次使用的 x 的值的时候,Python使用函数声明的形参的值。

接着,我们把数值 2 赋值给 x 。x是函数func的局部变量,它的作用域只能在函数内部。所以,当我们改变 x 的值的时候,在主块中定义的 x 不受影响。

在最后的 print 语句中,证明了主块中的 x 的值确实受到影响。

使用 global 语句 声明全局变量:

如果你想要为一个定义在函数外的变量赋值(即想要在函数内改变主块中的变量),那么我们就必须告诉Python这个变量不是局部的,而是 全局 的。我们可使用 global 关键字来声明。如果不使用 global 是不能为定义在函数外的变量赋值的。

你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。然而不建议这么做,因为这使得程序的读者不清楚这个变量是在哪里定义的。使用 global 可以清楚的表明变量是在外面的块定义的。

#!/usr/bin/python

# -*- encoding:utf-8 -*-

# Filename: func_global.py

def func():

global x  # 声明变量 x 是全局变量

print 'x is', x

x = 2  # 在函数内部为全局变量 x 赋值

print 'Changed local x to', x

x = 50

func()

print 'Value of x is', x

输入结果:

x is 50

Changed global x to 2

Value of x is 2

使用 global 关键字在函数内声明了变量 x 是全局的,因此,我们在函数内为 x 赋值的时候,这个变化也反映在我们在主块中使用 x 的值的时候。

你可以用同一个 global 指定多个全局变量。如:global x,y,z。

注意两点:

1、如果想要在函数内部去改变主块中的的变量值,需要在函数内部声明这个变量为全局变量;

2、如果在函数内部不使用 global 声明与主块中同名的变量,那么这个变量会覆盖主块的变量,在函数内而不会使用全局变量,如例一。

python 局部变量输出到全局_Python局部变量与全局变量相关推荐

  1. python怎么输出斜杠_python如何输出反斜杠

    python如何输出反斜杠,斜杠,字符串,引号,几个,写法 python如何输出反斜杠 易采站长站,站长之家为您整理了python如何输出反斜杠的相关内容. python本身使用 \ 来转义一些特殊字 ...

  2. 莫烦python学习笔记之全局,局部变量

    局部变量 在 def 中, 我们可以定义一个局部变量, 这个变量 a 只能在这个功能 fun 中有效, 出了这个功能, a 这个变量就不是那个局部的 a. APPLY = 100 # 全局变量 def ...

  3. 用python倒序输出一个字符串_Python 反转字符串(reverse)的方法小结

    前段时间看到letcode上的元音字母字符串反转的题目,今天来研究一下字符串反转的内容.主要有三种方法: 1.切片法(最简洁的一种) #切片法 def reverse1(): s=input(&quo ...

  4. 用python倒序输出一个字符串_Python字符串逆序输出的实例讲解

    1.有时候我们可能想让字符串倒序输出,下面给出几种方法 方法一:通过索引的方法 >>> strA = "abcdegfgijlk" >>> st ...

  5. python控制台输出到文件_Python print 立即打印内容到重定向的文件

    看到本文标题也许要奇怪了,Python 的 print 难道不是也上可以看到结果的吗?在 Python shell 下只要 >> print('Hello world!') Hello w ...

  6. python怎么输出一个数组_python中实现将多个print输出合成一个数组

    比如有下面一段代码: for i in range(10): print ("%s" % (f_list[i].name)) 该代码段的执行,会生成如下的10行"name ...

  7. python换行输出到文件_Python的quot;printquot;函数在“Hello World”之外的延伸

    想必任何一个人学习python的第一件事就是学习怎么去输出字符串"hello world",就像你期望的那样,这段代码是非常简洁的: 确实,python的"print&q ...

  8. python怎么输出所有奇数_python输出100以内奇数的几种输出方式-Go语言中文社区

    自从看了一些Python的一些基础语言之后,发现Python这门语言还是蛮有趣啊,很多计算用Python效率还是蛮高啊,几行就搞定了.比方说输出100以内的奇数,用其他语言,可能都是先for循环遍历1 ...

  9. 编写python程序输出数学表达式_Python基本编程题

    问题1:仅使用 Python 基本语法,即不使用任何模块,编写 Python 程序计算下列数学表达式的结果并输出,小数点后保留3位.‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬ ...

最新文章

  1. 弹性网络_理论物理所建立解析模型研究凝胶网络弹性介导的液液相分离现象
  2. P1155 双栈排序(二分图染色)
  3. java中怎么固定间距_java中的GridBagLayout是怎么调组件间距的...
  4. Linux内存释放脚本
  5. 【C语言练习】将100~200之间的素数输出
  6. KUDU--秒级查询的数据仓库
  7. 64位Visual Studio 2022,微软在下一盘大棋!
  8. datagrip jdbc驱动_datagrip离线安装驱动jar
  9. 常用CNN网络(AlexNet,GoogleNet,VGG,ResNet,DenseNet,inceptionV4)适合初学者
  10. 经典书单 —— 机器学习/深度学习/AI/CV/PGM
  11. vue 类型字段除了用select框_pumelo-select
  12. wiquery ResizePanel
  13. Layui Ajax请求时加上 load 加载效果
  14. 闲置域名解析到自己的博客
  15. linux运行roon,Roon + HQPlayer + NAA + 解码 网线直连方案
  16. css写字体浮雕效果,使用CSS3的text-shadow制作浮雕文字阴影和多重文字阴影效果-网站程序网...
  17. python根据身高计算标准体重_有谁知道如何根据身高计算标准体重
  18. 中国古代衣食住行 3
  19. Unity自定义创建脚本模板菜单
  20. 零基础入门进化算法(基本概念)

热门文章

  1. JavaSE——07多线程
  2. linux下perror函数,Linux/Unix C编程之的perror函数,strerror函数,errno
  3. 中国光纤陀螺仪行业研究与投资战略报告(2022版)
  4. Andorid开机自动锁频浅析 - 默认开机不锁屏
  5. 项目管理中的主动控制与被动控制
  6. logstash同步mysql数据到elasticsearch,动态模板
  7. linux系统函数之mktime
  8. 树莓派4B GPIO介绍及编程
  9. AI助盲,让盲人看见世界
  10. SuperSlide播放暂停解决方案