Python变量详解

转载至:https://mp.weixin.qq.com/s/WPTUzgN_g3eRYL4-NTpN8w

1 变量的定义

变量其实就相当于一个“名字”,也可以理解为一个标签

2 作用

大家在去超市买东西的时候,往往会把我们随身携带的一些东西存储在超市的储物柜中,而储物柜那么多小格子,那我们又是如何知道我们到底把东西放在了哪个小格子里呢?是不是大家发现每个小格子上面都有一个编号,当我们取东西的时候,我们拿着储物柜的钥匙去找对应编号的小格子就行了呢?

同样,我们程序中有那么多的数值、对象等(当然在python中一切皆对象),到底放在哪里呢?其实他们是放在内存中的,而大家同样可以理解为内存中也有很多小格子,每个小格子上面都有一个内存地址,而我们的变量就是指向的这个内存地址。

3 变量的命名

变量的命名其实就是相当于给这个变量起个名字,但是这个名字又不能乱起,他是有一定的规则要求的,在讲变量的命名规则之前,我们先将一下什么是Python的关键字?

3.1 python关键字

  • Python关键字是Python这门语言人家已经被赋予了特定意义的一些单词,若是我们用了这些关键字作为我们的变量名,这个时候就会导致一些程序的报错

  • Python的关键字到底有哪些呢?

  

  • 如何查看Python的关键字呢?我们可以通过如下命令进行查看:

>>> import keyword
>>> keyword.kwlist

    

 实例:

#我们用if作为一个变量名称,并将if这个变量值打印一下
if = "张三"
print(if)
执行结果:
if = "张三"
       ^
SyntaxError: invalid syntax
这个时候就会报语法错误

3.2 变量的命名规则

  • 由字母、下划线“_”和数字组成,并且第一个字母不能数字;

  • 不能是Python的关键字;

  • 区分字母大小写,在Python中会严格区分大小写的,两个同样的单词,如果大小写格式不一样,所代表的意义就完全不同;

  • 变量名称一定要有意义,别人一看就知道这个是啥,也就是顾名知意,这样可以提高代码的可读性;

  • 在python中虽然可以用汉字命名也不会报错,但是建议大家不要用汉字命名;

  • 推荐使用驼峰型(如:UserName或userName)和下划线(user_name)来命名;

  • 常量通过使用大写来命名

4 变量的赋值

   变量的每一个值都会存储在内存中,那么这个时候一定会在内存中开辟一个空间,而每个空间的大小又由变量的类型来决定,但是在python中是不需要专门来声明变量类型的;

每个变量在使用前必须赋值,只有变量赋值以后才会被创建。

4.1 编写规则:

变量名称 =  值
如:name = "张三"
解释:将“张三”赋值给变量name

4.2 给多个变量名赋同一个值

a,b,c=1
解释:将1赋值给a和b以及c

4.3  给多个变量赋值

a,b,c = 1,2,3
解释:将1赋值给a,将2赋值给b,将3赋值给c

5 局部变量和全局变量

5.1 局部变量

  • 局部变量定为范围:只能在函数内部定义,且只能在函数内部使用

#在函数内部定义变量name_in
def getName_1():
    name_in = "李四"
    print("局部变量name->{}".format(name_in))


getName_1()
执行结果:
局部变量name->李四
  • 不同的函数,可以定义相同的名字的局部变量,但是 彼此之间不会产生影响


#在getName_1和getName_2方法中,都定义变量name_in
def getName_1():
    name_in = "李四"
    print("局部变量name->{}".format(name_in))


def getName_2():
    name_in = "王五"
    print("局部变量name->{}".format(name_in))


getName_1()
getName_2()
执行结果:
局部变量name->李四
局部变量name->王五


#从结果中,我们不难发现,虽然在俩个函数中都定义了name_in,但是最后打印的结果,都是各自赋值的变量值

 

  • 局部变量的作用:在函数内部使用,临时保存函数内部需要使用的数据

  • 局部变量的生命周期

    • 所谓生命周期就是变量从被创建到被系统回收的过程

    • 局部变量在函数执行时才会被创建,执行之后局部变量会系统回收

5.2全局变量

  • 全局变量是在函数外部定义的变量

  • 所有函数内部都可以使用这个变量

  • #定义一个全局变量
    name_out = "张三"
    
    
    def getName_1():
        name_in = "李四"
        print("全局变量name->{}".format(name_out))
        print("局部变量name->{}".format(name_in))
    
    
    getName_1()
    
    
    执行结果:
    全局变量name->张三
    局部变量name->李四
posted @ 2022-01-24 19:39  LH0722  阅读(199)  评论(0编辑  收藏  举报