python 之路-語法(一)
- 2020 年 1 月 13 日
- 筆記
python 之路-語法(一)
Python 是一種面向對象、解釋型電腦程式語言,語法簡潔清晰,特色之一是強制用空白符
作為語句縮進,既支援面向過程編程也支援面向對象編程。
Python的設計目標之一是讓程式碼具備高度的可閱讀性。它設計時盡量使用其它語言經常使用的
標點符號和英文單字,讓程式碼看起來更加整潔美觀。
Python是一種高級語言,使用Python編寫程式時無需考慮如何管理程式使用的記憶體一類的底層
細節Python 可以直接從源程式碼運行,在電腦內部python解釋器把源程式碼轉換成位元組碼的中
間形式,然後在把它編譯成電腦使用的機器語言。
Python 具有豐富和強大的庫,它常被稱為『膠水語言』,能把用其他語言製作的各種模組
(尤其是C/C++)很輕鬆地連結在一起。python的標準庫很龐大,它可以幫助你處理各種工作,
包括正則表達式、文檔生成、單元測試、執行緒、資料庫、網頁瀏覽器、CGI、FTP、電子郵
件、XML、HTML、WAV文件、密碼系統、GUI(圖形用戶介面)、TK和其他與系統有關的操作。
一、 python 基礎
1. python 數據類型有整數、長整數、浮點數、複數和布爾型。
整 型(int) python自動識別數字類型,如果輸入的類型是整型就會存儲整型
長整型(long) 如果整數發生溢出python會自動將整數轉換為長整型(或有字母L) 浮點型(float) 用來處理實數,既帶有小數的數字 例:3.21 和 3.3E-1
複數型(complex) 如 1 + 2j 2.2 + 1.1j
布爾型(bool) 1 或 0 對應 Ture 或 False
2.字元串
python中可用單引號或雙引號來表示字元串;
python使用三引號(''' 或 """) 來表示多行字元串,通過''轉義;
通過r 進行反轉義-既原樣顯示,通常r'n' 就會顯示n而不是換行;
python允許處理unicode字元串,前面加u ,例:u'shuoming u'。
3.變數命名原則
a. 大小寫字母、數字或下劃線組成;
b. 數字不能為第一位;
c. 不能與關鍵字重複;
註:以下關鍵字不能聲明為變數名;
['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']
變數在記憶體中的變化機制–變數賦值
變數中如果修改字元串就會重新開闢空間,C語言中沒有字元串的概念只有字元概念,
所有字符集合組成字元串的概念

name1 = 'apache'
name2 = name1
如果變數name1再次被賦值後,變數name2的值不會改變:由於變數name1賦值給變數
name2時只是將其資訊保留在變數name2中,並沒有將'apache'賦值給name2;
4.輸入輸出
>>> name = input('請輸入用戶名:') #將輸入的用戶名賦值給變數name
請輸入用戶名:shuoming
>>> print(name) #輸出變數name資訊
shuoming
5.運算符及優先順序
(1)運算符
算數運算符 : + – * / %(商取余) **(冪運算) // (商取整)
比較運算符 : == != <> > < >= <= is
賦值運算符 : = += -= *= /= %= **= //=
*= 乘法賦值運算符 c *= a 等效於 c = c * a
/= 除法賦值運算符 c /= a 等效於 c = c / a
%= 取模賦值運算符 c %= a 等效於 c = c % a
**= 冪賦值運算符 c **= a 等效於 c = c ** a
//= 取整除賦值運算符 c //= a 等效於 c = c // a
位運算符 : & | ^ ~ << >>
邏輯運算符 : and or not
成員運算符 : in not in
身份運算符 : is not is
# "+" 兩個對象相加 ,數字 或 字元串
# 「-」 去一個數字的相反數或者實現兩個數字相減
# "*" 兩個數的相乘或者字元串重複
# < > != <= >= == 小於、大於、不等於、小於等於、大於等於、等於號 ,返回一個bool值
# 與運算兩個1為1,其他為0
# 或運算兩個0為0,其他為1
# 異或運算兩個1 、0 為0,其他為1
# 左移一個單位相當於乘2,左移兩個單位相當於乘4,左移n個單位相當於乘2的n次冪。
# is 判斷其中」==「 表示值相等,而 」is「 表示同一對象。
(2)優先順序
# 優先順序排名第一名—函數調用、定址、下標
# 優先順序排名第二名—冪運算 **
# 優先順序排名第三名—翻轉運算~
# 優先順序排名第四名—正負號
正負號的使用方法緊挨著操作數的,否則會出錯,這就說明正負號的優先順序優於加減乘除運算
# 優先順序排名第五名—* / %
# 優先順序排名第六名—+ –
# 優先順序排名第七名— << >>
# 優先順序排名第八名—按位 & ^ |
# 優先順序排名第九名—比較運算符
# 優先順序排名第十名—邏輯 not and or
# 優先順序排名十一名—lambda 表達式
二、數據結構
python 中有三種內建的數據結構:列表、元祖、字典。
1.列表
定義–list 是處理一組元素的集合容器,列表是可變得數據結構,例如:[1,2,'str'] []
方法– in:判斷列表是否包含某項用in;支援索引和切片;使用len() 查看長度;使用del
刪除列表中的項
# in
>>> print students
['zhao', 'wang', 'zhang', 'liu']
>>> "wang" in students
True
>>> "lihongye" in students
False
>>>
# len
>>> test_list
['shuoming', 'python', 'search', 'python', 'automatic', 1, 2]
>>> len(test_list)
7
# del
>>> test_list
['shuoming', 'python', 'search', 'python', 'automatic', 1, 2]
>>> del test_list[0] # 刪除第一個元素
>>> test_list
['python', 'search', 'python', 'automatic', 1, 2]
>>> del(test_list[2:4]) # 刪除2,3兩個元素,也可間隔元素刪除
>>> test_list
['python', 'search', 1, 2]
>>> del test_list # 刪除整個列表
>>> test_list
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'test_list' is not defined
>>>
list 常用函數:
['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort',『clear』]
pop : 只刪除列表最後一個值;
remove :可以刪除特定值 例:name_list.remove('python')
insert :在固定位置插入 例:name_list.insert(3,"python")
sort : 排序後特殊字元在前
extend : a+b 或 a.extend(b)
copy : 拷貝(深拷貝和淺拷貝)
1)append
>>> name_list.append("python")
>>> name_list
['shuoming', 'python', 'search', 'python']
2)index
>>> name_list.index("python")
1
3)count
>>> name_list.count("python")
2
4)insert
>>> name_list.insert(3,"python")
>>> name_list
['shuoming', 'python', 'search', 'python', 'python']
5)pop()
>>> name_list.pop()
'python'
>>> name_list
['shuoming', 'python', 'search', 'python']
6)remove
>>> name_list.remove('python')
>>> name_list
['shuoming', 'search', 'python']
7)reverse
>>> name_list
['shuoming', 'search', 'python', '@', '$']
>>> name_list.reverse()
>>> name_list
['$', '@', 'python', 'search', 'shuoming']
8)sort
>>> name_list
['shuoming', 'search', 'python', '@', '$']
>>> name_list.sort()
>>> print (name_list)
['$', '@', 'python', 'search', 'shuoming']
9)clear
>>> test_list
['shuoming', 'python', 'search', 'python', 'automatic', 1, 2]
>>> test_list.clear()
>>> test_list
[]
>>>
2.元祖
元祖(tuple)是通過圓括弧()其中用逗號分隔的項定義例如:(1,2,'str');與列表
很相似,但元祖不能修改。
由於元祖不能更改,因此數據更加安全;
方法– 可以使用 in 判斷元素是否在tuple中,支援索引和切片;
A : tuple與list可以互相轉換,使用內置函數list()和tuple()。
tuple_list = [1,2,'str']
print(tuple_list) # [1,2,'str']
to_tuple = tuple(tuple_list)
print(to_tuple) # (1,2,'str')
to_list = list(to_tuple)
print(to_list) # [1,2,'str']
B : 元祖最常用法是列印語句
name = 'Mr li'
age = 25
msg ='''
name : %s
age : %d
''' % (name,age)
print(msg)
name : shuoming
age : 10
元祖常用函數如下:
count(value) — 返回元祖中值為values元素的個數
num_tuple = (1,2,'str')
num_ruple.count(2) # 1
index(value,[start,[stop]]) — 返回列表中出現的值第一個value的索引,
如果沒有則返回 ValueError
t = (1, 2, 3, 1, 2, 'str')
print(t.index(3))
try:
print(t.index(str))
except ValueError:
print("ValueError") # ValueError
3.字典
字典是另一種可變容器模型,像其他容器模型一樣可隨意存儲任一類型對象。
字典由key和value組成鍵值對。字典也被稱作關聯數組或哈希表。
每個鍵和值用冒號隔開(:),每對用逗號分開,整體放在花括弧中{}例:
dict = {'key1':'value1','key2':'value2','key3':'value3'}
鍵必須唯一,值可以重複,值可取任意數據類型。
三、控制流
1.if 語句
if 條件判斷表達式
if condition:
action1
elif condition:
action2
else:
action3
# action 必須有縮進量 例如:
a = 10
if a>=80:
print("優秀")
elif a>=60:
print("及格")
else:
print("不及格")
2.while 語句
while 循環為真時執行循環體
while 條件為真:
循環執行該部分語句
else:
條件為假,執行該部分語句
例:
i=5
while i:
print "hello"
i=i-1
else:
print "結束"
3.for 語句
a=range(1,5)
print a
range(1,5,2) 步長為2
for k in range(0,3): (range函數 集合) 或者 [1,2,3,4,5] 等集合
k in [1,2,3,4,5]
k in (1,2,3,4,5)
i=0
print i
i=i+1
print i
註: 當 循環字典的時候,需要兩個變數
k={"姓名":"calvin","籍貫":"state"}
for ks,vs in k.items():
print ks
print vs
4.break 語句
break 語句是強制停止循環執行的意思,break語句用剛在循環語句中,出現break
的地方直接停止本層循環執行。
例:
a=1
while a:
print a
a=a+1
if a==5:
break
5. continue 語句
continue 語句的功能是強制停止循環中的這一次執行,直接跳到下一次執行。
例:
a=1
while a<7:
a=a+1
if a==3:
continue
print a
———————–見續 python 之路-語法(二)———————–