当前位置: 网站首页>网站建设>服务器空间

佛山网页设计-高端网站设计公司

发表日期: 2022-07-04 14:44:12 浏览次数:13

佛山网页设计-高端网站设计公司

网站建设.png

Python3 标准库概览

操作系统接口

os模块提供了不少与操作系统相关联的函数。

>>> import os>>> os.getcwd()      # 返回当前的工作目录'C:\\Python34'>>> os.chdir('/server/accesslogs')   # 修改当前的工作目录>>> os.system('mkdir today')   # 执行系统命令 mkdir 0

建议使用 "import os" 风格而非 "from os import *"。这样可以保证随操作系统不同而有所变化的 os.open() 不会覆盖内置函数 open()。

在使用 os 这样的大型模块时内置的 dir() 和 help() 函数非常有用:

>>> import os>>> dir(os)<returns a list of all module functions>>>> help(os)<returns an extensive manual page created from the module's docstrings>

针对日常的文件和目录管理任务,:mod:shutil 模块提供了一个易于使用的高级接口:

>>> import shutil>>> shutil.copyfile('data.db', 'archive.db')>>> shutil.move('/build/executables', 'installdir')

文件通配符

glob模块提供了一个函数用于从目录通配符搜索中生成文件列表:

>>> import glob>>> glob.glob('*.py')['primes.py', 'random.py', 'quote.py']




  1. 行结果:(正常运行)

    11

    在函数 test() 中,可以读取全局命名空间中的 “a”,对应语句 “b=a+1”。

    即在局部作用域中,可以访问全局命名空间中的变量。

    若程序改为如下:

    a = 10def test():    
        b = a + 1    
        a=b    
        print(b)test()

    运行:(提示出错)

    Traceback (most recent call last):
      File "<input>", line 6, in <module>
      File "<input>", line 3, in testUnboundLocalError: local variable 'a' referenced before assignment

    错误的原因在于语句 “a=b”,对 “a” 进行赋值是不可以的。

    即在函数 test() 中,不可以直接对全局命名空间中的 “a” 进行赋值。

    若程序改为如下:

    a = 10def test():
        global a
        b = a + 1    
        a=b    print(b)test() #输出bprint(a) #输出a

    运行:(正常运行)

    1111

    语句 “global a” 声明了 “a” 采用全局命名空间中的 “a”,这样便可在函数 test() 中,对全局命名空间中的 “a” 直接进行赋值了。

    若没有使用 global 或 nonlocal 关键字对局部变量进行声明,在局部作用域中,可以访问全局命名空间中的变量,不可对其进行赋值。

    若使用了 global 或 nonlocal 关键字对局部变量进行声明,在局部作用域中,可以访问全局命名空间中的变量,也可对其进行赋值。

    故,在局部作用域中,若想使用外部命名空间中的变量,应使用 global 或 nonlocal 关键字进行声明。

    GsxxInRnb

       GsxxInRnb

      993***819@qq.com

       参考地址

    11个月前 (07-24)
  2.    fenglu

      250***819@qq.com

    11

    楼上讲的结论是对的,但中间的逻辑是不对的。

    a = 10def test():    
        b = a + 1    
        a=b    
        print(b)test()

    运行后会报错:

    UnboundLocalError: local variable 'a' referenced before assignment

    这里说的很清楚啊,压根不是对全局变量赋值导致的错误,而是因为通过“a=b”定义了局部变量a,但是局部变量a在前一句“b=a+1”中被引用了,也就是说先使用,然后才定义的,这里的“b=a+1”中a被解析成了局部变量。

    那为什么去掉“a=b”就没问题了呢?

    因为去掉之后就不存在局部变量a的定义了,“b=a+1”中a被解析成全局变量a。



佛山网页设计-高端网站设计公司

想要咨询,请留言,我们的工作人员将尽快与您联系!
  
400-111-6878
服务热线
在线留言
在线咨询
预约专家
顶部

备案号: 苏ICP备11067224号

CopyRight © 2021 上往建站 All Right Reserved 未经许可不得复制转载

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: https://www.768800.com

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 苏州网站建设| 调温纤维| 海洋馆运营维护|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878