zwx901323

 在上一篇中,我们定义了很多变量,变量格式是啥?变量名字可以随意么?有啥命名规范么?下面细讲

变量格式

变量名称 = 常量

把常量赋值给变量的过程,就是定义变量。

 定义变量

  Python中的变量不需要声明,变量的赋值操作,就是变量声明和定义的过程。

counter = 100  # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John"  # 字符串

  每个变量在使用前都必须先定义,定义以后该变量才会被创建使用,

  如果使用一个未被定义的变量,就会报错,代码如下。

print(a)  #定义一个未赋值的变量,执行会报错  NameError: name \'a\' is not defined

定义多个变量

  Python中 允许同时为多个变量赋值,也可以为多个对象指定多个变量。例如:

a = b = c =1     #多个变量定义同一个值
a,b,c = 1,2,3    #多个变量,定义为多个值

改变变量

定义变量后,如果想改变变量的值,可以重新定义即可
name = "tom"
print(name)
name = "hello"
print(name)
"""
tom
hello
"""

定义变量的本质是啥?

 定义的变量都存在于内存中,每创建一个变量,就会在内存中创建一个内存空间,每个内存空间都有一个ID,这个ID就是变量地址。

# 使用id()函数,可以查看变量地址,会发现,两个变量的地址是一致的。
a = 2021
print(id(a))  #查看a的ID地址
b = 2021
print(id(b))  #查看b的ID地址
"""
2105034802832
2105034801712
"""

    所以变量定义的本质:变量本质上只是引用了变量的内存地址!

常见面试题:如果两个变量值一致,他们的地址也一致么?

答案查阅下面参考文档。    

参考文档:https://www.cnblogs.com/downey-blog/p/10482955.html

                  https://www.cnblogs.com/downey-blog/p/10483216.html

删除变量以及变量回收机制

    删除变量方法:del 变量名    

# python的垃圾回收机制原理
1,当一个对象的引用计数归零时,它将被垃圾收集机制处理掉。
2,当两个对象a和b相互引用时,del语句可以减少a和b的引用计数,并销毁用于引用底层对象的名称。
然而由于每个对象都包含一个对其他对象的引用,因此引用计数不会归零,对象也不会销毁。(从而导致内存泄露)。
为解决这一问题,解释器会定期执行一个循环检测器,搜索不可访问对象的循环并删除它们。

 回收机制代码演示

# 使用getrefcount方法可以获取指针数据
import sys
a = 222
b = 333
print(sys.getrefcount(a))
print(sys.getrefcount(b))
"""
11
3
"""

垃圾回收机制参考文档:https://www.cnblogs.com/lurenjia1994/p/10498593.html

 

变量的命名规范

#定义合法标识符的规则【规则必须遵守,否则代码会报错】:
"""
​    a.由数字,字母和下划线组成
​    b.不能使用空格和除了下划线以外的其他特殊符号
​    c.不能使用关键字和系统的函数名
​    d.不能以数字开头
​    e.严格区分大小写
"""
#定义标识符的规范【可以不遵守,但是代码不规范】:
"""
​    a.做到见名知意
​    b.表示形式
       形式一:Python官方推荐的写法:所有的单词全部小写,不同单词之间使用下划线相连,举例:stu_score
​       形式二:驼峰命名法【大驼峰和小驼峰】
​           大驼峰:所有单词的首字母大写,类名一般采用大驼峰,举例:StuScore
​           小驼峰:除了第一个单词,其他单词的首字母大写,变量名和函数名一般采用小驼峰,举例:stuScore
"""    

编码规范

"""
a.一行书写一条语句
b.一旦使用到运算符【+-*/等】,尽量在运算符的前后添加空格
​    举例: 3 + 5 = 8
c.一行代码尽量不超过80个字符,否则会导致代码可读性降低,可维护性降低
d.使用缩进表示代码块【if语句,while语句等】
​    注意:四个空格表示一个缩进【pycharm可使用一个tab键】
e.文件,项目以及变量等的命名尽量不要使用中文和空格
"""

 

 

其他参考:

https://www.cnblogs.com/EmptyRabbit/p/7679093.html

https://www.cnblogs.com/Maker-Liu/p/5528213.html

https://www.cnblogs.com/wangcp-2014/p/4608265.html

https://www.cnblogs.com/yaksea/archive/2011/08/30/2159416.html

https://www.cnblogs.com/zhangyafei/p/10429426.html

分类:

技术点:

相关文章:

  • 2021-12-05
  • 2021-12-05
  • 2021-12-05
  • 2021-12-05
  • 2021-12-05
  • 2021-09-19
  • 2021-09-04
猜你喜欢
  • 2021-12-05
  • 2021-09-19
  • 2021-10-17
  • 2022-01-10
  • 2022-12-23
  • 2022-12-23
  • 2021-12-05
相关资源
相似解决方案