'''
python變量與常量內容:
'''
# 變量:定義世間萬物變化的狀態
'''
height 180
weight 140
age 18
tree_name yuyang
'''
# print(180)
height = 180
print('height:', height)
weight = 140
print('weight:', weight)
age = 18
print('age:', age)
tree_name = 'yuyang'
print('tree_name:', tree_name)
# 變量的組成(符合變量名組成就不錯)
# 變量名(描述;接收變量值) 賦值符號(賦值,把變量值傳給變量名) 變量值(具體的值)
# 變量名的規范
akljfdksl = 10
print('akljfdksl:', akljfdksl)
# 1. 變量名必須要有描述意義
# 2. 變量名由數字/字母/下划線組成,且不能以數字開頭
# $ = 10
# print($)
# 10tree = 10
# print(10tree)
# 3. 不能以關鍵字命名
'''
['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']
'''
# 定義變量的兩種方式(代碼至上而下運行,如果相同的變量名,執行后面的)
# 下划線一般用來連接單詞
name_of_nick = 'nick' # 下划線式(建議,必須)
NameOfJason = 'jason' # 駝峰體
print(name_of_nick) # 先定義才能使用,沒有引號的就是變量名
# 常量:不變化的量(變量名全大寫)
# age = 1
#
# age = age + 1
#
# print(age)
# 常量:不變化是約定俗成的
AGE = 1
AGE = AGE + 1 # 傻屌才做
# 常量:約定俗稱的不變化,實際能變化,但是當你強行變化的時候,你第二天就滾蛋了
# python內存管理
# 變量是python解釋器提供的概念,運行python的時候才有
# 定義變量並運行 開辟一塊新的內存空間存儲變量
# 引用計數(針對變量值):變量值的引用次數
# age = 1000 # 1000的引用計數為1
# age1 = age # 1000的引用計數為2
# del age # delete刪除age,1000的引用計數為1
# print(age1)
# del age1 # 1000的引用計數為0
# 垃圾回收機制:當一個變量值的引用計數為0的時候,會觸發垃圾回收機制,改變量值會被回收
#
# # id
# age = 1000
# print(age) # 打印值
# print(id(age)) # 1507487488變量值的內存地址
# # 小整數池
# age1 = age
# print(id(age1))
#
# # 當python啟動的時候,會自動定義[-5,256]之間的整數變量,他們的內存空間已經寫死了
#
# age = 10
# age1 = age
# del age
# del age1
# 按理來說因該觸發垃圾回收機制,但是由於10屬於小整數池,不會觸發垃圾回收機制
# 面試的時候可能會問你,這個才能考到你的水平 ---》 gil全局解釋器鎖
# 變量名用來接收變量值
# 定義變量就要開辟新的內存空間
# pycharm自行做了優化(短頻快),pycharm把小整數池范圍擴大了
# 打印值
print(age)
# 打印內存地址
print(id(age))
# 打印數據類型()
print(type(age))