首页 > 编程语言 >4.0 Python 变量与作用域

4.0 Python 变量与作用域

时间:2023-08-13 09:24:15浏览次数:42  
标签:4.0 作用域 sum Python num 函数 print 变量

在python中,变量的作用域决定了变量在哪些位置可以被访问。一个程序中的变量并不是所有的地方都可以访问的,其访问权限决定于变量的赋值位置。python中有两种最基本的变量作用域:局部作用域和全局作用域。局部变量是在函数内部定义的变量,只能在其被声明的函数内部访问。而全局变量则是在函数外定义的变量,可以在整个程序的范围内被访问。局部变量只有在其被声明的函数内部才能被访问,全局变量则可以在程序的任何地方被访问。变量的作用域对于程序的正确性和可读性非常重要,需要在编写程序时注意变量的赋值位置以及其作用域。

变量的作用域可分为以下几种状态:

  • L(Local):局部作用域
  • E(Enclosing):闭包函数外的函数中
  • G(Global):全局作用域
  • B(Built-in):内建作用域

变量的属性与变量的执行依据:

  • 变量的先后顺序是:L –> E –> G –>B 的规则查找
  • 在子程序中定义的变量称为局部变量
  • 在程序的一开始定义的变量称为全局变量
  • 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序
  • 当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用,在其它地方全局变量起作用
  • 当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字了
  • 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问

全局变量: 如下定义并使用一个全局变量,来看一下效果吧.

>>> import os
>>> import sys
>>> 
>>> sum=100                      #这就是一个全局变量
>>> 
>>> def print_sum():
    print("函数中调用sum: ",sum)

>>> print_sum()                  #函数中可以读取到
函数中调用sum:  100
>>> 
>>> print("函数外调用sum: ",sum)  #外部依然可以读取到
函数外调用sum:  100

局部变量: 如下定义并使用一个局部变量,来看一下效果吧.

>>> import sys
>>> import os
>>> 
>>> def print_sum():
    sum=100
    print("函数中调用sum: ",sum)

>>> print_sum()
函数中调用sum:  100
>>> print("函数外调用sum: ",sum)
函数外调用sum:  <built-in function sum>

局部转全局: 将一个局部变量通过global关键字,转换为全局变量.

>>> import os
>>> import sys
>>> 
>>> def print_num():
    global num
    num=1000
    print("函数内调用: ",num)

>>> print_num()
函数内调用:  1000
>>> 
>>> print("函数外调用: ",num)
函数外调用:  1000

外层非全局: 如果要修改嵌套作用域(enclosing 作用域,外层非全局作用域)中的变量则需要nonlocal关键字声明一下.

>>> import sys
>>> 
>>> def outer():
    num=100
    def inner():
        nonlocal num             #声明成外层非全局作用域
        num=1000
        print("inner层:",num)
    inner()
    print("outer层:",num)

>>> outer()
inner层: 1000
outer层: 1000

本文作者: 王瑞
本文链接: https://www.lyshark.com/post/43aec37f.html
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

标签:4.0,作用域,sum,Python,num,函数,print,变量
From: https://www.cnblogs.com/LyShark/p/17626140.html

相关文章

  • 5.0 Python 定义并使用函数
    函数是python程序中的基本模块化单位,它是一段可重用的代码,可以被多次调用执行。函数接受一些输入参数,并且在执行时可能会产生一些输出结果。函数定义了一个功能的封装,使得代码能够模块化和组织结构化,更容易理解和维护。在python中,函数可以返回一个值或者不返回任何值,而且函数的参......
  • n、Appium_Python_Api
    一、Appium_Python_Api方法参考博客:https://blog.csdn.net/ezreal_tao/article/details/80911950https://cloud.tencent.com/developer/article/1569596contextscontexts(self):Returnsthecontextswithinthecurrentsession.返回当前会话中的上下文,使用后可以识别H5......
  • python简介
    python简介1.python的产生与应用python于1989年圣诞节期间由吉多·范罗苏姆(GuidovanRossum)(中文名字:龟叔)为打发时间开发的一个新脚本解释程序,作为ABC语言的一种继承。(龟叔:2005年加入谷歌至2012年,2013年加入Dropbox直到现在,依然掌握着Python发展的核心方向,被称为仁慈的独裁者)。......
  • python基础
    python基础一、python基础初识1.运行python代码。在d盘下创建一个t1.py文件内容是:print('helloworld')打开windows命令行输入cmd,确定后写入代码pythond:t1.py您已经运行了第一个python程序,即:终端---->cmd----->python文件路径。回车搞定~2.解释器。上一步中执......
  • 某公司笔试题 - 坐标移动(附python代码)
    #开发一个坐标计算工具,A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取坐标,并将最终输入结果输出文件里面。#输入坐标为A(或D或W或S)+数字(两位以内)。坐标之间以;分隔#数据范围:1<=n<=10000每组输入的字符串长度坐标保证满足-......
  • python案例
    这猜单词游戏。具体步骤如下:导入random模块,用于随机选择单词。设置初始生命次数为3。创建一个单词列表words,其中包含了一些单词。使用random.choices()函数从单词列表中随机选择一个单词作为秘密单词secret_word。创建一个clue列表,用于表示未猜中的字母的占位符。初始时,将cl......
  • Python微信公众号文章批量转pdf
    文章来源:https://www.cnblogs.com/MrFlySand/p/17216072.html操作步骤下载离线html网页文件1、登录微信公众号后台,打开“文章发表记录”。按Ctrl+S保存离线html网页文件。3、记住html文件保存路径,设置html文件名称。4、点击第2页的文章发表记录,重复步骤2、步骤3的操......
  • 某公司笔试题 - 求int型正整数在内存中存储时1的个数(附python代码)
    #输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。#数据范围:保证在32位整型数字范围内num=int(input("请输入一个正整数:"))#将输入的正整数转化成二进制num_bin=bin(num)print(num_bin)#将二进制字符串转化成数组nbl=list(num_bin)iflen(nbl)>0and......
  • 某公司笔试题 - 字符串排序(附python代码)
    #给定n个字符串,请对n个字符串按照字典序排列。#数据范围:1<=n<=1000,字符串长度满足1<=len<=100times=int(input("请输入字符串的个数:"))iftimes>=1andtimes<=1000:dicts={}print("请输入字符串,回车键切换输入下一个字符串:")foriinrange(......
  • python urllib爬虫的坑 gzip.BadGzipFile: Not a gzipped file
    一句话返回的数据不是gzip加密的打印一下返回的headers数据有一个Content-Encoding就是返回数据的加密方式根据相应的解密就可以  建议把发送的请求里加密方式只留一个gzip或者其他方便解密  还有遇到一个问题就是发送请求目标网站返回的数据一会是加密的一会是原......