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

变量格式

变量名称 = 常量

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

定义变量

  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

Python入门-变量与命名的更多相关文章

  1. python day1 变量的命名和赋值

    变量 一.变量的命名 1.不能以数字进行开头 2.不能包含特殊字符 3.不能是python内部的某些关键字 a = 123print(a)123 --------------------------- ...

  2. Python中变量的命名

    变量的命名 目标 标识符和关键字 变量的命名规则 0.1 标识符和关键字 1.1 标识符 标示符就是程序员定义的 变量名.函数名 名字 需要有 见名知义 的效果,见下图: 标示符可以由 字母.下划线 ...

  3. python的变量的命名规则以及定义

    1.变量,指计算机中存储数据的空间 2.变量的命名方式:变量名 = 值 3.变量的命名规定(标识符的命名规定): 只能由数字,字母,下划线组成(可以用中文但是不推荐) 不能以数字开头 不能与关键词重名 ...

  4. python之变量的命名规则

    变量的命名规则: 1.变量名由数字.字母和下划线组成名 2.变量名不能以数字开头 3.禁止使用python中的关键字 4.不能使用中文和拼音 5.变量名要区分大小写 6.变量名要有意义 7.推荐写法: ...

  5. Python中变量的命名与使用(个人总结)

    与众多编程语言一样,Python变量的命名有一定的规范: 变量名只能包含字母.数字.下划线且不能以数字开头.例如,num_1 为正确命名,而 1_num 则错误. 变量名不允许含空格,但是可以用下划线 ...

  6. python 中变量的命名方法

    从网上找到django中python的命名规范 Python  规范 代码的布局  编码 所有的Python脚本文件都应在文件头标上“# -*- coding:utf-8 -*-”.  缩进 4个空格 ...

  7. python 中变量的命名规范

    出自:http://www.diybl.com/course/3_program/python/20111130/563643.html 模块名: 小写字母,单词之间用_分割 ad_stats.py ...

  8. python入门-变量与数据类型

    1.命名规则 变量名只能包含字母.数字和下划线.但不能以数字打头. 变量名不能包含空格 不能与关键字冲突 变量名应尽量简短且具有描述性 2.字符串 python中引号括起的内容,其中引号可以为单引号或 ...

  9. python入门-变量和简单数据类型

    1 title() 是以首字母大写的方式显示每个单词 lower() 字母小写 upper() 字母大写 2 python使用+号来合并字符串 字符串中使用制表符用\t 字符串中使用换行符\n 用rs ...

随机推荐

  1. k8s命令行web代理神器gotty

    目录 介绍 安装 使用示例 -p 指定端口 -c 指定账号密码 -w 支持tty交互 --permit-arguments 支持get参数传参 --random-url 生成随机地址 --reconn ...

  2. MySQL 8.0无法通过Navicat远程连接 1045 - Access denied for user 'root'@'::1' (using password: YES) 的解决办法

    用navicat远程连接数据库的时候无法连接,提示信息:1045 - Access denied for user 'root'@'::1' (using password: YES). 是由于密码策 ...

  3. 分布式锁用Redis与Zookeeper的使用

    为什么用分布式锁?   在讨论这个问题之前,我们先来看一个业务场景: 系统A是一个电商系统,目前是一台机器部署,系统中有一个用户下订单的接口,但是用户下订单之前一定要去检查一下库存,确保库存足够了才会 ...

  4. org.junit.platform.commons.JUnitException: TestEngine with ID 'junit-jupiter' failed to discover tests

    https://blog.csdn.net/qq_43349162/article/details/115285780 https://blog.csdn.net/Think_and_work/art ...

  5. Linux安全加固手册

    1      身份鉴别 1.1         密码安全策略 操作系统和数据库系统管理用户身份鉴别信息应具有不易被冒用的特点,口令应有复杂度要求并定期更换. 设置有效的密码策略,防止攻击者破解出密码 ...

  6. SpringCloudAlibaba 微服务讲解(二)微服务环境搭建

    微服务环境搭建 我们这次是使用的电商项目的商品.订单.用户为案例进行讲解 2.1 案例准备 2.1.1 技术选型 maven :3.3.9 数据库:mysql 持久层:SpringData JPA S ...

  7. luoguP6622 [省选联考 2020 A/B 卷] 信号传递(状压dp)

    luoguP6622 [省选联考 2020 A/B 卷] 信号传递(状压dp) Luogu 题外话: 我可能是傻逼, 但不管我是不是傻逼, 我永远单挑出题人. 题解时间 看数据范围可以确定状压dp. ...

  8. Grep 命令有什么用?如何忽略大小写?如何查找不含该串的行?

    是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来. grep [stringSTRING] filename grep [^string] filename

  9. MyBatis与Hibernate有哪些不同?

      (1)Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句. (2)Mybatis直接编写原生态sql,可以严格控制sql执行性能,灵活 ...

  10. 什么叫线程安全?servlet 是线程安全吗?

    线程安全是编程中的术语,指某个函数.函数库在多线程环境中被调用时,能够 正确地处理多个线程之间的共享变量,使程序功能正确完成. Servlet 不是线程安全的,servlet 是单实例多线程的,当多个 ...