Python 篇章(四)

一、常量概述

1、常量的定义:常量即指不变的量,如 P 3.141592653..., 或在程序运行过程中不会改变的量

2、在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量,比如:NAME = 'cc'

二、变量概述

作用:将不同类型的数据存储到内存

  1. 程序可操作的储存空间的名称

  2. 程序运行期间能改变数据

  3. 每个变量都有特定的数据类型

  • 定义变量格式

    • 变量名 = 初始值
    • 可以使用 print 函数来打印输出变量的初始值
  • 初始值是什么?

    • 为了确定变量的类型
    • Python 中定义变量是不需要指定类型的
      • Python 可以根据 = 等号右侧的值,自动推导出变量中存储数据的类型
      • 可以使用 type 函数可以查看一个变量的数据类型
  • 例如:

a1 = "lemon"
print(type(a1),a1)
<class 'str'> lemon

a2,a3 = "very","good"
print(type(a2),type(a3),a2, a3)
<class 'str'> <class 'str'> very good

a4 = a1 + a2 + a3
print(type(a4),a4)
<class 'str'> lemonverygood

a5 = input('输入:')
print(type(a5),a5)
输入:hello world
<class 'str'> hello world

三、变量的作用域(重点)

  • 作用域的概念:

    • 变量可以使用的范围,程序的变量并不是在所有位置都能使用的,访问的权限决定于变量在哪里定义的
  • 作用域的分类:

    • 局部变量
    • 全局变量

1. 局部变量概念

  • 概述:
    • 是在函数内部定义的变量,只能在函数内部使用;不同的函数可以定义相同名字的局部变量,各用各的,彼此不会产生影响。
  • 局部变量的作用:
    • 在函数内部使用,临时保存函数内部需要使用的数据
  • 局部变量的生命周期如下四点:局部变量的生命周期就是从定义开始到函数执行结束
    • 所谓生命周期就是变量从创建到被系统回收的过程;出生--->死亡
    • 局部变量在函数执行是才会被创建
    • 函数执行结束后,局部变量被系统回收
    • 局部变量只能在生命周期内来存储函数内部临时使用到的数据
  • 示例:
def demo1():

    # 定义一个变量
    # 1>出生:执行了下方{num = 10}代码之后,才会被创建
    # 2>死亡:函数执行完成之后这个变量就死亡了
    num = 10
    print("这是一个局部变量%d" % (num))

def demo2():

    # print(num)   # 不是自身函数内部定义的变量,不能为己使用
    pass

# print(num)       # 在函数内部定义的变量,不能在其他位置使用
demo1()
demo2()

2. 全局变量概念

  • 全局变量:

    • 是在函数外部定义的变量(而不是定义在某一个函数内),所有函数内部都可以使用这个变量
  • python全局变量引用的要求:

    • 在函数内部可以通过全局变量的引用获取对应的数据值,但是,不允许直接修改全局变量的数据值。
  • 全局变量的位置:

    • 注意--> 在开发时,应该把所有的全局变量定义到函数上方,这样就可以保证所有函数都能够正常的访问到每一个全局变量
  • 全局变量命名建议:

    • 为了避免局部变量和全局变量出现混淆,在定义全局变量时,全局变量名前应该增加g_gl_ 的前缀
  • 示例

num = 10
def demo1():
    # {num = 100}希望修改全局变量的值
    # 但是,在python中是不允许在函数内部直接修改全局变量值的
    # 如果直接使用赋值语句,仅会在函数内部定义一个和全局变量相同名字的局部变量
    num = 100
    print("demo1 == %d" % (num), id(num))

demo1()
print(f"num = {num}", id(num))
  • 那怎么才能在函数内部修改全局变量的值呢?
  • 示例
num = 10
def demo2():
    #{num = 100}希望修改全局变量的值 -> 使用global声明一下变量即可
    #global关键字会告诉解释器后面的变量是一个全局变量,随后再使用赋值语句是,就不会创建局部变量,而是修改全局变量的值
    global num
    num = 100
    print("demo2 == %d" % (num),id(num))

demo2()
print(f"num = {num}", id(num))
posted @   ArMinLi  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示