# 单行注释
# print("hello world111") # 单行注释
'''
print("hello world") # 单行注释
print("hello world") # 单行注释
'''
# print("hello world111") # 单行注释
'''
print("hello world") # 单行注释
print("hello world") # 单行注释
'''
# print("hello world2222") # 单行注释
# print("hello world2222") # 单行注释
# print("hello world2222") # 单行注释
# print("hello world2222") # 单行注释
# print("hello world2222") # 单行注释
"""
1、什么是变量
量:记录下事物的状态
变:记录的事物的状态是可以被改变
2、为何要用变量
为了让计算机能够像人一样记忆事物的状态
并且状态是可以变化的
变量存的状态是存放于计算机的内存中的
3、如何用变量
原则:先定义、后引用
"""
#1、 定义
# name = "egon"
# age = 18
# salary = 3.1
1、什么是变量
量:记录下事物的状态
变:记录的事物的状态是可以被改变
2、为何要用变量
为了让计算机能够像人一样记忆事物的状态
并且状态是可以变化的
变量存的状态是存放于计算机的内存中的
3、如何用变量
原则:先定义、后引用
"""
#1、 定义
# name = "egon"
# age = 18
# salary = 3.1
#1.1、变量定义的三个组成部分
# 变量名: 关联一个房间的地址,用来找到变量值的
# 赋值符号:把房间的地址绑定给变量名
# 变量值:就是我们记忆的状态或者数据
# 变量名: 关联一个房间的地址,用来找到变量值的
# 赋值符号:把房间的地址绑定给变量名
# 变量值:就是我们记忆的状态或者数据
#1.2 变量名的命名规范
# 大前提:变量名的命名应该在保证见名知意的前提下,尽可能的简短
# (1):由字母、数字、下划线组成
# (2):不能以数字开头
# (3): 不能使用python的关键字命名变量名:['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
# print = "egon"
# print("haaa")
# 大前提:变量名的命名应该在保证见名知意的前提下,尽可能的简短
# (1):由字母、数字、下划线组成
# (2):不能以数字开头
# (3): 不能使用python的关键字命名变量名:['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
# print = "egon"
# print("haaa")
# _="aaaa"
# print(_)
# _a=111
# print(_a)
# print(_)
# _a=111
# print(_a)
#1.3 变量名的命名风格
#(1)纯小写+下划线(变量名推荐)
# age_of_oldboy = 73
#(2)驼峰体
# AgeOfOldboy = 73
#(1)纯小写+下划线(变量名推荐)
# age_of_oldboy = 73
#(2)驼峰体
# AgeOfOldboy = 73
#2、引用变量值
# print(name)
# xxx # 没有语法错误,有逻辑错误
# 变量名在等号左边,代表的是赋值操作
# 变量名只要不在等号左边,代表的是取值操作
# print(age + 1)
# res = age + 1
# print(res)
# 变量名只要不在等号左边,代表的是取值操作
# print(age + 1)
# res = age + 1
# print(res)
#2.1 变量值的两大特征:
# (1) id:反映的是内存地址
# x=10
# y=x
# y="aaaa"
#
# print(id(x))
# print(id(y))
# is判断的是id是否相等
# 例1
# x=1111
# y=2222
# print(x is y)
# 例1
# x=1111
# y=2222
# print(x is y)
# 例2
# x=1111
# y=x
# print(x is y)
# x=1111
# y=x
# print(x is y)
# ==判断的是值是否相等
# name1="egon"
# name2="egon"
# print(name1 == name2)
# name1="egon"
# name2="egon"
# print(name1 == name2)
# 强调1:id如果相等,值一定相等
# 强调2:id如果不相等,值有可能相等
"""
>python2
Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> x="aaa:[1,2,3]===00009888888*****"
>>> y="aaa:[1,2,3]===00009888888*****"
>>>
>>>
>>> x is y
False
>>> id(x),id(y)
(46901424L, 46899888L)
>>>
>>>
>>> x == y
True
"""
# 强调2:id如果不相等,值有可能相等
"""
>python2
Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> x="aaa:[1,2,3]===00009888888*****"
>>> y="aaa:[1,2,3]===00009888888*****"
>>>
>>>
>>> x is y
False
>>> id(x),id(y)
(46901424L, 46899888L)
>>>
>>>
>>> x == y
True
"""
# (2) type
# x=10
# print(type(x))
# name="egon"
# print(type(name))
# print(type(name))
#3、了解小整数池
# True
# False
# None
# x is True
# False
# None
# x is True
# x=1111
# y=222
# z=333
# print(type(x) is int)
# print(type(y) is int)
# print(type(z) is int)
# y=222
# z=333
# print(type(x) is int)
# print(type(y) is int)
# print(type(z) is int)
#4、内存管理:垃圾回收机制,GC
# 引用计数
x=10 # 值10的引用计数为1
y=x # 值10的引用计数为2
# print(x)
# print(y)
# 引用计数
x=10 # 值10的引用计数为1
y=x # 值10的引用计数为2
# print(x)
# print(y)
y=123 # 值10的引用计数减少为1
del x # 值10的引用计数减少为0
del x # 值10的引用计数减少为0