1 基本算數(shù)運(yùn)算和邏輯運(yùn)算
算數(shù)運(yùn)算包括加減乘除、乘方稚伍、求余數(shù),使用方法和C語言等基本相似戚宦,唯一新方法是乘方个曙,Python的乘方使用 **
表示:
3**2 # *這個表示3的平方*
除此之外,字符串也有新的運(yùn)算:
"hello" + "world !" # 運(yùn)用加法可以連接字符串
"hello~" * 2 # 運(yùn)用乘法可以連續(xù)輸出字符串受楼,這里指連續(xù)輸出兩次
邏輯運(yùn)算就是基本的與垦搬、或、非三種艳汽。Python用and
表示與猴贰;用or
表示或;用not
表示非河狐,真用Ture
表示米绕,假用False
表示(注意開頭字母必須大寫)。邏輯運(yùn)算和輸出結(jié)果符合邏輯學(xué)的基本運(yùn)算準(zhǔn)則馋艺。
True or False # 結(jié)果為True
True and False # 結(jié)果為False
not True # 結(jié)果為False
比較運(yùn)算包括大于(>
)栅干、大于等于(>=
)、小于(<
)丈钙、小于等于(<=
)非驮、等于(=
)交汤、不等于(!=
)這幾種雏赦,也符合邏輯運(yùn)算準(zhǔn)則。
7>8 # 結(jié)果為False
10<=10 # 結(jié)果為True
2==3 # 結(jié)果為False
2 變量的使用
一般我們都需要書寫大規(guī)模應(yīng)用程序芙扎,所以需要儲存中間數(shù)據(jù)星岗。程序語言采用變量的聲明和定義來儲存數(shù)據(jù)。Python采用動態(tài)調(diào)用戒洼,所以無需聲明即可直接定義(賦值)俏橘。定義時可以采用算術(shù)運(yùn)算對變量賦值,賦值時可以使用其他已定義的變量圈浇。我們可以使用print
函數(shù)打印變量結(jié)果到控制臺寥掐。
a2 = 3**2
b2 = 4**2
c2 = a2 + b2 # 典型勾股定理賦值
print(c2) # 輸出結(jié)果到控制臺
Python變量有許多數(shù)據(jù)類型,和C類似磷蜀,包括<u>整形召耘、浮點(diǎn)型、字符串褐隆、布爾型</u>污它。Python會自動是被并存儲定義的變量,無需聲明類型,這減少了代碼的復(fù)雜度衫贬。
a = 1 # 整形
b = 2.1 # 浮點(diǎn)型
c = "hello world !" # 字符串
d = True # 布爾
print(a, b, c, d) # 連續(xù)輸出
3 條件語句
條件語句也成為分支語句德澈,在Python中使用if
完成,主要讓計算機(jī)在不同的情況下執(zhí)行不同的程序固惯。計算機(jī)通過判斷if
條件語句的邏輯運(yùn)算結(jié)果來決定執(zhí)行什么代碼梆造。此外,Python為了整潔易讀缝呕,摒棄了C語言中每條語句的分號澳窑,條件判斷的小括號,還有確定域生命周期的大括號供常,采用冒號和tab符來表示摊聋。下面舉例:
if love==Ture:
print("you fall in love !")
顯然一個條件判斷不夠,我們還需要其他分支栈暇,Python中使用elif
表示麻裁。還有一個“其他情況”的分支,用else
表示源祈。
if love==True:
print("you fall in love !")
elif love==False:
print("you are not in love with anyone !")
else :
print("impossible !")
4 循環(huán)語句
Python采用for
做循環(huán)語句煎源,后跟定義的變量,之后跟in
香缺,in
后跟要循環(huán)的對象手销。這里介紹一下range(from, to, step)
函數(shù),他可以生成for循環(huán)的從from
到to-1
以step
為步長的數(shù)字序列图张。如果只寫一個數(shù)字锋拖,則代表0到這個數(shù)字減1的一個序列。例如
range(0, 5, 2) # 表示序列:0 2 4
range(4) # 表示序列:0 1 2 3
所以我們根據(jù)for
循環(huán)的語法祸轮,寫一個簡單的例子:
for i in range(0, 5, 2) :
print(i) # 表示遍歷輸出0 2 4 這個序列
range
函數(shù)還可以作為“次數(shù)”的意義來循環(huán)兽埃,如:
for i in range(5) # 可以做 5次循環(huán)
print(" 第 ", i+1, " 次輸出 ")
此外Python還有while循環(huán),使用方法和C類似适袜,首先需要先判斷條件語句的邏輯結(jié)果柄错,如果為True
就執(zhí)行,我們可以將上述循環(huán)次數(shù)用while
循環(huán)代替:
i=1
while i<5 :
print(" 第", i, "次輸出 ")
i = i+1
Python中斷循環(huán)的方法和C類似苦酱,有兩種售貌。用break
表示直接跳出當(dāng)前for
循環(huán);用continue
表示跳出當(dāng)前for
循環(huán)的一輪循環(huán)疫萤,直接開始下一輪循環(huán)颂跨。
5 其他結(jié)構(gòu)數(shù)據(jù)類型
為了可以更方便的表示數(shù)據(jù),Python提供了很多數(shù)據(jù)結(jié)構(gòu)给僵,包括列表毫捣、元組详拙、集合、詞典下面一一講解蔓同。
列表是一個由許多數(shù)據(jù)組合而成的大雜燴饶辙,定義列表用逗號隔開,外面用中括號括起斑粱。逗號隔開的每一個叫做元素弃揽,只要在定義時利用逗號確定位置,如果不更改便不會自己改變则北,因此可以利用向量確定列表的位置 矿微。每一個列表內(nèi)還可以繼續(xù)嵌套列表,比如在一個列表中存在一個字符串尚揣,則這個字符串可以看做一個列表涌矢,可以用二維向量表示他的位置。下面舉例說明:
li = [1,2,2,3,True,"lalala",[4,5,6]] # 定義列表快骗,其中有嵌套(包括字符串和嵌套列表)
print(li[1]) # 輸出列表的第二個元素2
print(li[5][0]) # 輸出列表第六個元素字符串的第一個元素'l'
print(li[6]) # 輸出列表第七個元素娜庇,也就是這個嵌套列表所有內(nèi)容
此外Python還可以列表還可以利用冒號輸出指定范圍的元素,更加創(chuàng)新的采用類似MATLAB矩陣的方法方篮,可以采用步長名秀,負(fù)數(shù)代表反向步長。而位置也可以用負(fù)數(shù)藕溅,代表倒數(shù)位置減一的位置匕得。下面舉例:
li = [0,1,2,3,4,5,6] # 定義列表
print(li[-1]) # 輸出倒數(shù)第一個元素6(如果中括號內(nèi)有冒號,則將位置減一)
print(li[:3]) # 輸出下標(biāo)0到2的元素0 1 2
print(li[4:]) # 輸出下標(biāo)為4到最后(6)的元素4 5 6
print(li[4:-1]) # 輸出下標(biāo)4到倒數(shù)第二個(5)的元素4 5
print(li[0:5:2]) # 以步長2輸出下標(biāo)0到4的元素0 2 4
print(li[0:5:-2]) # 以步長2逆序輸出下標(biāo)0到4元素4 2 0
print(li[::-1]) # 逆序輸出所有元素6 5 4 3 2 1 0
元組同樣可以表示元素的大雜燴巾表,其還可以作為函數(shù)多值輸出的一種解決方案汁掠。唯一和列表不同的是元組一旦定義完畢就不能修改。元組也可以和列表一樣確定位置攒发。元組定義采用小括號调塌,元素之間用逗號隔開晋南。下面舉例:
tup = (1,2,3,4,"lalala",[7,8,9]) # 定義元組
print(tup[1]) # 輸出下標(biāo)1的元素2
集合同樣可以表示元素的大雜燴惠猿,和列表不同的是它不能出現(xiàn)相同元素,且元素沒有順序负间,因此集合不能表示元素位置偶妖。集合定義采用大括號,元素用逗號隔開政溃。下面舉例:
set = {1,2,3,"lalala"} # 集合的定義
注意趾访,set
是一個函數(shù),本章會講董虱。在這里告訴我們扼鞋,與函數(shù)重名依然可以拿來做變量使用申鱼,但注意變量名一定不能和關(guān)鍵字重名。
詞典是一個保存鍵值集合的數(shù)據(jù)結(jié)構(gòu)云头,通過鍵捐友,我們可以找到其對應(yīng)的值。定義詞典溃槐,在鍵值之間用冒號隔開匣砖,每個鍵值對用逗號隔開,最后用大括號括起昏滴。注意詞典也是無序的猴鲫,所以無法確定位置。下面舉例對字典增刪改查:
dic = {"tim":23,"alice":18} # 定義年齡字典
print(dic["alice"]) # 查看alice的年齡
dic["alice"] = 20 # 修改alice的年齡
dic["malisa"] = 23 # 增加malisa的年齡
del dic["malisa"] # 刪除malisa的年齡
這幾個數(shù)據(jù)結(jié)構(gòu)都可以利用函數(shù)相互轉(zhuǎn)化谣殊,但是轉(zhuǎn)化后會根據(jù)該數(shù)據(jù)結(jié)構(gòu)特性有不可逆的變化拂共,這有時會提供便利。比如我想去除字符串中重復(fù)的字符姻几,可以把字符串轉(zhuǎn)換成集合后再轉(zhuǎn)換成列表即可匣缘。轉(zhuǎn)換為列表用list
,轉(zhuǎn)換為元組用tuple
鲜棠,轉(zhuǎn)換為集合用set
肌厨。另外每個數(shù)據(jù)結(jié)構(gòu)都有許多方便的函數(shù)可以使用,讀者可以自行查閱并學(xué)習(xí)豁陆。
實(shí)例代碼請看我的碼云:第二章樣例代碼