• python之作用域、内置函数、文件操作处理


    python之作用域、内置函数、文件操作处理

    一、作用域

    1、变量:变量分为全局变量和局部变量

    全局变量:在整个py文件中声明,全局范围内都可以访问

    局部变量:在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地方调用它,程序就会报错

    2、全局作用域、局部作用域、块级作用域

    1)全局作用域:整个py文件所在的区域

    2)局部作用域:某个函数的区域

    3)块级作用域:某一代码块的区域

    3、全局变量和局部变量

    1)区别:全局变量与局部变量两者的本质区别就在于作用域不一样

    2)全局变量在函数内部和外部都可以调用,局部变量只能在函数内调用,否则会报错

    3)如果全局变量与局部变量名一样,那么会优先调用局部变量

    4)全局变量在函数内部的修改

      a、是否需要使用global进行声明全局变量后再修改?需要看该数据的类型是否为可变类型还是不可变类型

      b、不可变类型数据的全局变量在函数内进行修改需要通过使用global关键字声明变量后再对其进行修改(单个数据类型、字符串、元组)

      c、可变类型的数据的全局变量在函数内进行修改不需要通过global关键字声明变量,可直接对其进行修改(列表,字典,set)

       综上总结:在一个函数中,对全局变量进行修改的时候,到底是否需要使用global进行说明,需要看是否对全局变量的指向进行了修改。如果修改让全局变量指向一个新的地址,那么必须使用global,如果仅仅只是修改了数据而没有修改指向那就不需要使用global

    4、if&for&while中变量的作用域

    1)if&for&while语句冒号后面的代码块是块级作用域

    2)在函数内if语句中的变量在整个函数作用域中都生效;在全局中if语句中的变量在全局作用域中都生效,相当于全局变量。但是一般不要在if语句中定义变量,在全局作用域中去调用,因为很容易出现bug,怕出现分支满足条件而又没有定义变量的时候,会报错。

    总结:变量在if语句的块级作用域中定义的变量的作用范围会向上冒泡到支持的最大作用范围,也就是函数作用域和全局作用域,同理for循环和while循环的块级作用域的变量亦是如此。

    二、内置函数

    内置函数:python内置的函数,不需要定义,可直接使用

    1、已学过的内置函数

    input、print、type、id、range、len以及类型转换:int、list、str、tuple、float、bool、dict、set

    2、最大值、最小值以及求和

    min:可传入多个数据,求这些数据中的最小值,输出最小值

    max:可传入多个数据,求这些数据中的最大值,输出最大值

    sum:求和:传入参数为迭代对象:list和tuple,输出和

    3、高级内置函数

    enumerate:列举列表的索引和值

    eval:去除字符串两端的双引号或者单引号

    zip:压缩,将数据压缩,可对两个列表进行压缩操作,转换成字典类型

    三、文件操作处理

    1、open函数:打开一个文件

    1)open(文件的路径,mode,encoding)

    2)文件的路径,如果没有路径的时候,只一个文件名时,指当前目录下

    3)mode:指以什么样的方式打开文件,获取对文件进行操作的权限,有r,r+,w,w+,a,a+,rb,wb,ab(b为二进制读写)几种模式,其中r+为读写先读后写,w+为写读,先写后读,a+为读写追加

    4)encoding编码方式,当需要对中文进行处理的时候,打开文件时需要加上encoding="utf-8",这样不会出现乱码

    2、读取文件内容

    1)file.read():将文件中的内容一次性读取出来

    2)file.readline():如果文件中还有内容,就从文件中读取一行内容

    3)file.readlines():从文件中读取多行内容,输出以每行内容为元素的一个列表,且如果有换行的话每个元素后面都会加上

    3、写入文件内容

    1)file.write(文件内容)

    2)当向文件中需要写入内容时,open函数中参数需要加上mode="w"否则会报错

    4、关闭文件

    1)file.close()

    2)每个打开的文件都必须进行关闭,如果不关闭,后续会容易出错,如果多个程序去访问文件就会报错

    本文来自博客园,作者:%女王%,转载请注明原文链接:https://www.cnblogs.com/lynne-wu/p/14160100.html

  • 相关阅读:
    Spark集群安装与配置
    Kafka集群的安装和部署
    Sqoop的安装和验证
    Zookeeper与HBase的安装
    Hive的安装
    在Eclipse中开发MapReduce程序
    HDFS基本命令与Hadoop MapReduce程序的执行
    Hadoop环境部署
    Java基础(十七)日志(Log)
    Java基础(十六)断言(Assertions)
  • 原文地址:https://www.cnblogs.com/lynne-wu/p/14160100.html
Copyright © 2020-2023  润新知