一、葵花寶典: 學習新知識的【靈魂三問】 + what XXX是什麼? 遇到新名詞,先從字面意思下手,提取其中的關鍵詞,拆分解釋。 例如:變數,會變的量…… + why 為什麼要有它,有啥用? 一種事物的存在,即有其理由。 為什麼要有它,用它來做什麼? 編程語言是由人類創造,用來控制電腦運行操作的 ...
一、葵花寶典:
學習新知識的【靈魂三問】
+ what -XXX是什麼?
遇到新名詞,先從字面意思下手,提取其中的關鍵詞,拆分解釋。
例如:變數,會變的量……
+ why -為什麼要有它,有啥用?
一種事物的存在,即有其理由。
為什麼要有它,用它來做什麼?
編程語言是由人類創造,用來控制電腦運行操作的一系列指令。指令中的規則,是人為制定的,因此必定是為了滿足某個需求創造的。
例如:變數,是用來存放數據的,就像一個個容器,裝著程式中所需要使用的東西。
+ how -怎麼使用它?
需要的時候,就去使用。
實踐出真知。
知道what+why,是實現how的前提。如何更好地實現how,則需要做到融會貫通,熟能生巧。
臺上一分鐘,臺下十年功。
二、變數和常量
1、變數
(1)什麼是變數
變數,就是可以變化的量,量指的是事物的狀態,比如人的年齡、性別、游戲角色的等級等等
(2)為什麼要有變數,變數的作用
為了讓電腦能夠像人一樣去記憶事物的某種狀態,並且狀態是可以發生變化的
詳細地說:
程式執行的本質就是一系列狀態的變化,【變】是程式執行的直接體現,所以我們需要有一種機制能夠反映或者說是保存下來程式的執行
(3)如何使用變數
+變數基本使用
原則:先定義,後引用
name = 'egon' # 定義-》存
print(name) # 引用-》取
age = 18 >>> print(age)
+記憶體管理:垃圾回收機制
垃圾:當一個變數值被綁定的變數名的個數為0時,該變數值無法被訪問到,稱之為垃圾
引用計數增加:
x = 10 # 10的引用計數為1
y = x # 10的引用計數為2
z = x # 10的引用計數為3
引用計數減少:
del x # 解除變數名x與值10的綁定關係,10的引用計數變為2
print(y)
del y # 10的引用計數變為1
print(z)
z = 12345 # 10的引用計數變為0
print(z)
+變數有三大組成部分:
I:變數名:是指向等號右側值的記憶體地址的,用來訪問等號右側的值
II:賦值符號:將變數值的記憶體地址綁定給變數名
III:變數值:代表記錄的事物的狀態
eg:z = 12345
+變數命名規則和風格
++命名規則
原則:變數名的命名應該見名知意
三大主要規則:
=變數名只能是字母、數字或下劃線的任意組合
=變數名的第一個字元不能是數字
=關鍵字不能聲明為變數名,常用關鍵字如下:
['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']
一舉慄子:
age=18
print='egon'
ps:不要用拼音,不要用中文,在見名知意的前提下儘可能短
二舉慄子:
mingzi='egon'
名字='egon'
print(名字)
++命名風格
+++純小寫加下劃線的方式(在python中,關於變數名的命名推薦使用這種方式)
慄子1:
age_of_alex = 73
print(age_of_alex)
+++駝峰體
慄子2:
AgeOfAlex = 73
print(AgeOfAlex)
+變數的三個重要特征
++三大特征——id,type,value
慄子:
name='egon' #id:反映的是變數值的記憶體地址,記憶體地址不同id則不同
print(id(name)) #type:不同類型的值用來表示記錄不同的狀態
print(type(name)) #value:值本身
print(name)
++ 區分 is ,==
is:比較左右兩個值身份id是否相等
==:比較左右兩個值他們的值是否相等
ps:
id不同的情況下,值有可能相同,即兩塊不同的記憶體空間里可以存相同的值
id相同的情況下,值一定相同,x is y成立,x == y也必然成立
x='info:Egon:18'
y='info:Egon:18'
print(x,y)
info:Egon:18 info:Egon:18
print(id(x),id(y))
4565819264 4566192176
x == y
True
x is y
False
** ps: pyCharm軟體和Python解釋器的程式運行結果有時會不同**
就上一個例子再次在pyCharm軟體中運行,結果如下:
x='info:Egon:18'
y='info:Egon:18'
print(x,y)
info:Egon:18 info:Egon:18
print(id(x),id(y))
2017437926096 2017437926096
為什麼x和y的id會一樣呢?因為pyCharm軟體在執行程式時,會對程式進行優化。
一般pyCharm軟體是用於編寫程式,程式的運行結果,仍應以Python解釋器的程式運行結果為準。
++小整數池[-5,256]
從python解釋器啟動那一刻開始,就會在記憶體中事先申請好一系列記憶體空間存放好常用的整數。
m=10
n=10
id(m)
4562619328
id(n)
4562619328res=4+6
res
10
id(res)
4562619328
x=-5
y=-5
x is y
True
x=-6
y=-6
x is y
False
x='aaa'
y='aaa'id(x)
4566200880
id(y)
4566200880
x=-6
y=-6
print(id(x))
print(id(y))
print(x is y)
2、常量
即 不變的量
註意:python語法中沒有常量的概念,但是在程式的開發過程中會涉及到常量的概念
AGE_OF_ALEX = 73 # 小寫字母全為大寫代表常量,這隻是一種約定、規範
AGE_OF_ALEX = 74
print(AGE_OF_ALEX)