# 一、变量
# 1、原则先定义,后引用
# 1.1定义
# age = 18
# 三大组成部分:
# 变量名:用来找值
# 赋值符号:将变量值的内存地址绑定给变量名
# 变量值:就是我们存储数据,或者说记录事物的状态
# 1.2 引用
# print(age)
# 二、变量名
# 命名的大前提:变量名的命名应该见名知意
# age = 19
# level = 18
# count = 18
# 命名规范:
# 1、是有字母、数字、下划线组成
# 2、不能以数字开头
# 3、不能用python关键字
# 命名风格
# 1、驼峰体
# LecelOfAge = 18
# 2、纯小写加下划线 *
# level_of_age = 18
# 三、变量值
# 3.1 变量值的两大特征
# age = 18
# salary = 3.3
# res = age + 1
# print(res)
# 类型
# print(type(age))
# print(type(salary))
# id:就是值在内存中的身份证号,id反映的就是内存
# print(id(age))
# print(id(salary))
# is :判断的是id是否相等
# == :判断的是值是否相等
# 如果两个变量的id一样,证明就是同一个内存地址,值一定是相等的
# x = 1000
# y = x
# print(x is y)
# 如果值相等,id可以不相等
# >>> y = 1000
# >>> x = 1000
# >>> print(id(y))
# 2102879878032
# >>> print(id(x))
# 2102879878096
# >>> print(x is y)
# False
# >>> print(x == y)
# True
# 小整数池,会调用同一内存地址
# y = -5
# x = -5
# print(id(y))
# 140714191619552
# print(id(x))
# 140714191619552
# print(y == x)
# True
# print(x is y)
# True
# 3.2 内存回收:垃圾回收机制
# 核心原理:引用计数
# 分代回收:提升效率
# 标记清除:循环引用导致内存泄漏问题
# x = 100 # 100的引用计数为1
# y = x # 100的引用计数为2
#
# y = 200 # 100的引用计数为1
# del x # 100的引用计数为0
# 四、常量
# 常量:一直不变的量,全部大写的变量设置为常量,并且放在文件的最上面
# AGE = 18
二、基本数据类型
# 1、整型int
# 作用:年龄、个数、号码
# age = 18
#
# 2、浮点型float
# 作用:身高、体重、薪资
# weight = 80.3
#
# 3、字符串类型str
# python中凡是用引号引起来的内容就是字符串
# msg1 = "鲁迅说:今天天气很好"
# msg2 = '鲁迅说:今天天气很好'
# msg3 = """鲁迅说:今天天气很好"""
# msg4 = """
# 鲁迅说:今天天气很好
# 鲁迅说:今天天气很好
# 鲁迅说:今天天气很好
# """
# msg5 = "'鲁迅说':今天天气很好"
#
# gender = "male"
# country = "china"
# 4、列表类型list:[]内用逗号分隔开多个任意类型的元素
# 作用:按照位置存放多个值
# 0 1 2
# l = [11,22,[444,555,33],"abc"]
# print(l[1])
# 22
# print(l[-1])
# abc
# print(l[2][0])
# 444
# 5、字典类型dict:{}内用逗号分隔开多个元素,每一个元素的组成都是key:value,
# 其中value可以是任意类型,而key通常是字符串类型
# d = {"k1":111,"k2":222,"k3":"sdsadx","k4":[11,22,33],"k5":{"a":1,"b":2}}
# print(d["k4"][2])
# 6、布尔类型:记录真假两种状态,用于不等式或条件的判断
# True
# False
三、基本算术运算
# 1、算术运算符
# 加 +
# 减 -
# 乘 *
# 除 /
# 取余 %
# 幂 **
# 取整除 //
2、比较运算符
# x = 10
# y = 10.0
# print(x == y)
# m = 10
# n = "10"
# print(m == n)
# print(10 == [1,2,3]) # == 不限类型
# print(10 + [1,2,3])
# print(10 == [1,2,3])
# print(10 != [1,2,3])
# print(10 > 3.1)
# print(10 >= 3.1)
# print(10 <= 3.1)
# print(10 < 3.1)