02-變數
阿新 • • 發佈:2020-12-27
# 變數 # 什麼是變數? 為何要有變數? # 變數的三大組成部分是?每部分的作用 # 變數的命名元組、規範、風格 # 變數值的三大特徵是什麼? # is與==的區別 # 1、 什麼是變數 # 變數是指可以變化的量,量指的是事物的狀態,比如人的年齡、性別等 # 2、 為什麼要有變數 # 為了讓計算機能夠像人一樣去記憶事物的某種狀態,並且狀態是可以發生變化的 # 程式執行的本質是一系列狀態的變化,變是程式執行的直接體現,所以我們需要有一種機制能夠反映或者儲存下來 # 3、 怎麼用 # 3.1 變數基本使用 # 原則:先定義、後引用 name = 'xxx' # 定義-->存 print(name) # 引用-->取 # 3.2 記憶體管理:垃圾回收機制 # 垃圾:當一個變數值被繫結的變數名的個數為0時,該變數值無法被訪問到,稱之為垃圾 # 引用計數增加 x = 10 # 10的引用計數為1 y = x # 10的引用計數為2 z = x # 10的引用計數為3 # 引用計數減少 del x # 刪除變數名x與值10的繫結關係,10的引用計數變為2 # print(x, y) # 列印x報錯:NameError: name 'x' is not defined del y # 10的引用計數變為1 # print(z) # 10 z = 231 # 10的引用計數變為0 # print(z) # 231 # 3.3 變數三大組成部分 # Ⅰ:變數名=>指向等號右側值的記憶體地址,用來訪問等號右側的值 # Ⅱ:賦值符號:將變數值的記憶體地址繫結給變數名 # Ⅲ:變數值:代表記錄的事物的狀態 # 3.4 變數名的命名規則 # 原則:變數名的命名應該見名知意 # 3.4.1 變數名只能是 字母、數字、下劃線的任意組合 # 3.4.2 變數名不能以數字開頭 SyntaxError:invalid syntax # 3.4.3 關鍵字不能宣告為變數名,關鍵字: # 檢視所有關鍵字 # import keyword # print(keyword.kwlist) # ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'] # 3.4.4-內建函式名不能使用---否則該函式失去函式意義!--ex--print # 3.5 變數名的命名風格 # 3.5.1 純小寫加下劃線的方式(在python中,關於變數名的命名推薦使用這種方式) age_of_ly = 7 print(age_of_ly) # 3.5.2 駝峰體 AgeOfLy = 7 print(age_of_ly) # 3.6 變數值三個重要的特徵 # 3.6.1 id、type、value name = 'LY' print(id(name)) # 2432816488048 print(type(name)) # <class 'str'> print(name) # LY # id:反應的時變數值的記憶體地址,記憶體地址不同id則不同 # type:不同型別的值用來記錄不同的狀態 # value:值本身 # 3.6.2 is與== # is:比較左右兩個值身份id是否相等 # ==:比較左右兩個值他們的值是否相等 # id不同情況下,值可能相同、即兩塊不同的記憶體空間李可以存相同的變數 # id相同的情況下,值一定相同 # pycharm執行 x = 'info:ly:1023213' y = 'info:ly:1023213' print(x, y) # ('info:ly:1023213', 'info:ly:1023213') print(id(x), id(y)) # (2972975406704 2972975406704) # 命令列執行 # >>> x = 'info:ly:1023213' # >>> y = 'info:ly:1023213' # >>> x,y # ('info:ly:1023213', 'info:ly:1023213') # >>> id(x),id(y) # (1829332913776, 1829332239152) # >>> x is y # False # >>> x == y # True # 疑問:為什麼在pycharm中x和y的id值怎麼是一樣的? # 這是因為在pycharm中 ,每次執行是所有程式碼都載入到記憶體中,屬於一個整體, # 所以這個時候會有一個大整數物件池,即處於一個程式碼塊的大整數是同一個物件,我們只需要記住這是一種優化機制,無需細究。 # 3.6.3 小整數池[-5,256] # python對小整數的定義是【-5,256】這些證書物件是提前建立好的,不會被垃圾回收。 # 4. 常量:不變的量 # 注意:python語法中沒有常量的概念,但是在程式的開發過程中會涉及到常量的概念 AGE_OF_LY = 18 # 小寫字母全為大寫代表常量,這只是一種約定、規範