python(三)語法結構,流程控制,序列的應用


一,語法結構
1,代碼縮進
Python 不像其他程序設計語言,(如Java或者C語言)采用大括號“{}”分隔代碼塊,而是采用代碼縮進和冒號“:”區分代碼之間的層次。
縮進可以使用空格或者 鍵實現。 其中,使用空格時,通常情況下采用4個空格作為一個所盡量,而使用Tab鍵時,則采用用一個Tab鍵作為一個縮進量。通常情況下建議采用空格進行縮進。
在python中,對於類定義、函數定義、流程控制語句、異常處理語句等,行尾的冒號和下一行的縮進表示一個代碼塊的開始,而縮進結束,則表示一個代碼塊的結束。
python對代碼的縮進要求非常嚴格,同一個級別的代碼塊縮進量必須相同。如果不采用合理的代碼縮進,將拋出SyntaxError異常。例如,代碼中有的縮進量是4個空格,還有的是3個空格,就會出現SyntaxError錯誤。
同一級別的代碼只需要保持對齊就可,對於不同級別的代碼進行縮進,這樣就能區分開代碼執行的邏輯。
python的語法其實總結一下就兩條:
第一,一條代碼作為一行:比如一個賦值、一個運算、一個請求、一條打印等。
第二,對齊和縮進:同一級別的代碼只需要保持對齊就可,對於不同級別的代碼進行縮進,這樣就能區分開代碼執行的邏輯。
2,保留字
保留字是python語言中一些已經被賦予特定意義的單詞。開發程序時,不可以把這些保留字作為變量、函數、類、模塊和其他對象的名稱來使用。

注:python中所有保留字是區分字母大小寫的。例如,if是保留字,但IF就不屬於保留字。
3,變量
(1)變量的定義:在python中,不需要先聲明變量名及其類型,直接賦值即可創建各種類型的變量。但是變量的命名並不是任意的,應遵循以下幾條規則:
1)變量名只能是字母、數字或下划線的任意組合
2)變量名的第一個字符不能是數字
3)變量名不能使用上述保留字
4)變量名必須是一個有效的標識符
5)慎用小寫字母i和大寫字母O
6)選擇有意義的單詞作為變量名
(2)name = "Crystal"(name:變量名;Crystal:變量值)
(3) 變量的調用:
print("my name is ",name)
注:print說明可以同時打印多個數據,打印的不同數據之間要用逗號區分開,逗號前后代表兩個參數
(4)變量的賦值:
name = "Crystal"
name2 = name #賦值
print("my name is ",name,name2)
name = "suki"
print(name,name2)
注:在python語言中,使用內置函數type()可以返回變量類型。
在python語言中,使用內置函數id()可以返回變量所指的內存地址。
4,數據類型
(1)數字類型
1)int(整型)
在32位機器上,整數的位數為32位,在64位系統上,整數的位數為64位。
整數:整數類型包括十進制、八進制、十六進制和二進制。
(1)二進制:0 1
(2)八進制:01234567
(3)十進制:0123456789
(4)十六進制:0123456789ABCDEF
二進制:
8 4 2 1(15)
1 1 1 1
1 0 0 1 1 0 0 1 (153)
#每個位置上“1”代表的阿拉伯數字是2
(n-1)次方,n表示位置所在位數。
2)long(長整型)
跟c語言不同,python的長整數沒有指定位寬,即:python沒有限制長整數數值的大小,但實際上由於機器內存有限,我們使用的長整數數值不可能無限大。
注意,自從Python2.2 起,如果長數發生溢出,python會自動將整數數據轉換為長整數,所以如今在長整數數據后面不加字母L也不會導致嚴重后果
3)float(浮點型)
浮點數用來處理實數,即帶有小數的數字。類似於c語言中的double類型,占8個字節(64位),其中52位表示底,11為表示指數,剩下的一位表示符號。
注:浮點的表示形式是小數,但小數不止包括浮點。
4)complex(復數)--3.x已經取消了,用處不多
復數由實數部分和敘數部分組成,一般形式為x+yj,其中的x是復數的實數部分,y是復數的虛數部分,這里的x和y都是實數。
注:python中存在小數字池:-5~257
(2)布爾類型
該類型主要用來表示真值或假值。真值返回結果為:True或者1,假值返回結果為:False或者0
在python中,所有的對象都可以進行真值測試。其中,只有下面列出的幾種情況得到的值為假:
1)False或者None
2)數值中的零,包括0、0.0、虛數0
3)空序列,包括字符串、空元組、空列表、空字典
4)自定義對象的實例,該對象的_bool_方法返回False或者_len_方法返回0
(3)字符串類型
字符串就是連續的字符序列,可以是計算機所能表示的一切字符集合。在python中,字符串屬於不可變序列,通常使用單引號' ',雙引號" "或者三引號""" """括起來。這位三種引號形式在語義上沒有差別,只是在形式上有些差別。其中單引號和雙引號的字符序列必須在一行上,而三引號內的字符序列可以分布在連續的多行上。注意,字符串開始和結尾使用的 形式必須保持一致。
字符串拼接:python中的字符串在C語言中體現為是一個字符數組,每次創建字符串的時候需要在內存開辟一塊連續的空,並且一旦需要修改字符串的話,就需要再次開辟空間,萬惡的+號每出現一次就會在內存中重新開辟一塊空間。
5,常用轉義字符說明


6,常用類型轉換函數及其作用

7,運算符
(1)算術運算符

(2)賦值運算符

(3)比較(關系)運算符

(4)邏輯運算符

6,基本的輸入和輸出
(1)使用input()函數輸入
(2)使用print()函數輸出
二,流程控制
1,知識框架

2,選擇語句
(1)最簡單的if
if (表達式):
語句1
else:
語句2

注:if語句后面一定要加冒號,不然會出錯。
(2)if...else語句
if (表達式):
語句1 #表達式為真(True),則執行語句1
else:
語句2 #表達式為真(False),則執行語句1

注:在使用else語句時,else一定不可以單獨使用,它必須和保留字if一起使用。
程序中使用if...else語句時,如果出現if語句多於else語句的情況,那么該else語句將會根據縮進確定該else語句屬於哪個if語句,如下例:

(3)if...elif...else語句
if 表達式1:
語句塊1
elif 表達式2:
語句塊2
elif 表達式3:
語句塊3
...
else:
語句塊n

注: 第二行代碼中的float()函數用於將用戶的輸入強制轉換成浮點型。
3,條件表達式

4,循環語句
(1)while

注:在使用while循環語句時,一定不要忘記添加將循環條件改變為False的代碼。


(2) for
for 迭代變量 in 對象:
循環體
1)進行數值循環

注:1)range()函數是python的內置函數,用於生成一系列連續的整數,其語法格式為:range(start,end,step)
start:用於指定計數的起始值,可以省略,如果省略,則從0開始。
end:用於指定計數的結束值(但不包括該值,如range(7),則得到的值為0~6,不包括7),不能省略。當range()函數中只有一個參數時,即表示指定計數的結束值。
step:用於指定步長,即兩個數之間的間隔,可以省略,如果省略則表示步長為1。例如,range(1,7)將得到1、2、3、4、5、6
在python3.X中,使用print()函數時,若想讓print語句輸出的內容在一行上顯示,需要加上“,end='分隔符'”,並且該分隔符為一個空格,如果在連接輸出時不需要用分隔符隔開,也可以不加分隔符。如:

for循環后邊一定要加冒號,否則會出錯
2)遍歷字符串

3)循環嵌套
在while循環中套用while循環的格式如下:

在for循環中套用for循環的格式如下:

在while循環中套用for循環的格式如下:

在for循環中套用while循環的格式如下:

5,跳轉語句
(1)break語句
break語句可以終止當前的循環,包括while和for在內的所有控制語句。
while 條件表達式1:
執行代碼
if條件表達式2:
break
-------------------
for 迭代變量 in 對象:
if 條件表達式:
break
(2)continue 語句
continue 語句的作用沒有break強大,它只能終止本次循環而提前進入到下一次循環中
while 條件表達式1:
執行代碼
if條件表達式2:
continue
-------------------
for 迭代變量 in 對象:
if 條件表達式:
continue
(3)pass 空語句
pass空語句一般起到占位作用

三,序列
1,知識體系

2,序列的概述
序列是一塊用於存放多個值的連續內存空間,並且按一定順序排列,每一個值(稱為元素)都分配一個數字,稱為索引或位置,通過該索引可以取出相應的值。
在python中,序列結構主要有列表、元組、集合、字典和字符串,對於這些序列結構有以下幾個通用的操作。其中,集合和字典不支持索引、切片、相加和相乘操作。
(1)索引


(2)切片
切片操作是訪問序列元素中的另一種方法,它可以訪問一定范圍內的元素。通過切片操作可以生成一個新的序列。實現切片操作的語法格式如下:
sname[start🔚step]
注:參數說明
sname:表示序列的名稱
start:表示切片的開始位置(包括該位置),如果不指定,則默認為0。
end:表示切片的截止位置(不包括該位置),如果不指定,則默認為序列的長度。
step:表示切片的步長,如果省略,則默認為1,當省略該步長時,最后一個冒號也可以省略。
注:如果想要復制整個序列,可以將start和end參數都省略,但是中間的冒號需要保留。例如:names[:]就表示復制整個名稱為names的序列。
(3)序列相加
在python中,支持兩種相同類型的序列相加操作,即將兩個序列進行連接,不會去除重復的元素,使用(+)運算符實現。例如,將兩個列表相加,可以使用以下代碼:

注:在進行序列相加時,相同類型的序列是指同為列表、元組、集合等,序列中的元素類型可以不同。不能將列表和元組相加,也不能將列表和字符串相加
(4)乘法

(5)檢查某個元素是否是序列的成員
在python中,可以使用in關鍵字檢查某個元素是否為序列的成員,即檢查某個元素是否包含在某個序列中。語法格式如下:
value in sequence # value表示要檢查的元素,sequence表示指定的序列。顯示結果為Ture或者False。

(6)計算序列的長度、最大值和最小值
序列的長度:

最大值:

最小值:

(7)python提供的內置函數及其作用

四,列表的使用
1.使用賦值運算符直接創建列表
listname = [element 1,element 2,element 3,...,element n]
2.創建空列表
emptylist = []
3.創建數值列表
list(data),其中,data表示可以轉換為列表的數據,其類型可以是range對象、字符串、元組或者其他可迭代類型的數據。使用list()數據不僅能通過range對象創建列表,還可以通過其他對象創建列表。
4.刪除列表
del listname
5.訪問列表元素(查)
在已知列表元素的狀態下:

在未知列表元素的狀態下:

6.添加列表元素(增)

7.插入列表元素(增)

8.修改列表元素(改)

9.刪除列表元素(刪)



10.清空列表(刪)

11.統計列表中重復的元素(查)

12.列表擴展

13.排序(特殊符號>數字>大寫字母順序>小寫字母順序)

14.元素翻轉

15.現假定一個列表有多個元素,想知道c在哪個位置?-----通過輸入”c”這個元素,直接找到c的位置。

16.淺復制(淺 copy:只復制第一層,復制的是內存地址)

17.深復制(深 copy:導入copy模塊)

五,元組
元組(tuple)與列表類似,也是由一系列按特定順序排列的元素組成,但是它是不可變序列。因此,元組也可以稱為不可變的列表。在形式上,元組的所有元素都放在一對“()”中,兩個相鄰元素間使用“,”分隔。在內容上,可以將整數、實數、字符串、列表、元組等任何類型的內容放入到元組中,並且在同一個元組中,元素的類型可以不同,因為它們之間沒有任何關系。通常情況下,元組用於保存程序中不可修改的內容。
1.元組的創建和刪除
(1)使用賦值運算符直接創建元組
語法格式:tuplename = (element 1,element 2,element 3,...,element n)
(2) 創建空元組
emptytuple = ()
(3)創建數值元組
tuple(data)
(4)刪除元組
del tuplename
2.訪問元組元素(查)


3.修改元組元素(改)

注:元組不能對單個元素進行修改,在進行元組連接時,連接的內容必須都是元組,不能將元組和字符串或者列表進行連接
4.元組與列表的區別
(1)列表屬於可變序列,它的元素可以隨時修改或者刪除;元組屬於不可變序列,其中的元素不可以修改,除非整體替換。
(2)列表可以使用append()、extend()、insert()、remove()和pop()等方法實現添加和修改列表元素,而元組沒有這幾個方法,所以不能向元組中添加和修改元素。同樣,元組也不能刪除元素。
(3)列表可以使用切片訪問和修改列表中的元素,元組也支持切片,但是它只支持通過切片訪問元組中的元素,不支持修改。
(4)元組比列表的訪問和處理速度要快,所以當只是需要對其中的元素進行訪問,而不進行任何修改時,建議使用元組。
(5)列表不能作為字典的鍵,而元組可以
六,字典
在python中,字典與列表類似,也是可變序列,不過與列表不同,它是無序的可變序列,保存的內容是以“鍵-值對”的形式存放的。使用就像字典,通過筆划、字母來查對應頁的詳細內容。
字典的特征如下:
(1)通過鍵而不是通過索引來讀取,字典有時也稱為關聯數組或者散列表(hash)。
(2)字典是任意對象的無序組合。
(3)字典是可變的,並且可以任意嵌套。
(4)字典中的鍵必須唯一。
(5)字典中的鍵必須不可變。
1.字典的創建和刪除
(1)通過映射函數創建字典
dictionary = dict(zip(list1,list2))
dictionary:字典名稱
zip()函數:用於將多個列表或元組對應位置的元素組合為元組,並返回包含這些內容的zip對象。如果想獲取元組,可以將zip對象使用的tuple()函數轉換為元組;如果想獲取列表,則可以使用list()函數將其轉換為列表

(2)通過給定的“鍵-值對”創建字典
dictionary=dict(key1=value1,key1=value1,...,keyn=valuen)

在python中,還可以使用dict對象的fromkeys()方法創建值為空的字典。
dictionary=dict.fromkeys(list1)

此外,還可以通過已存在的元組和列表創建字典。

在python中,訪問字典的元素可以通過下標的方式實現,與列表和元組不同,這里的下標不是索引號,而是鍵。

python中推薦的方法是使用字典對象的get()方法獲取指定鍵的值。
dictionary.get(key[,default])

(3)遍歷字典
使用字典對象的items()可以獲取字典的“鍵-值對”列表,語法格式如下:
dictionary.items()
其中,dictionary為字典對象;返回值為可遍歷的(鍵-值對)的元組列表。想要獲取到具體的“鍵-值對”,可以通過for循環遍歷該元組列表

添加字典元素(增):

修改字典元素(改):

刪除字典元素(刪):



查找字典元素(查):

判斷一個字典里有沒有某個元素:

合並字典:

將字典轉換成元組(info.item)

七,集合
在python中,提供了兩種創建集合的方法:一種是直接使用“{}”創建,另一種是通過set()函數將列表、元組等可迭代對象轉換為集合。推薦使用第二種方法。
1.直接使用“{}”創建集合
語法格式如下:
setname = {element1,element2,...,elementn}

注:在創建集合時,如果輸入了重復的元素,python會自動只保留一個。
2.使用set()函數創建

3.集合的添加
語法格式:setname.add(element)

4.從集合中刪除元素

5.交集


注:交集的符號:&
6.並集


7.差集(在我這里有在你那里沒有)


注:差集運算符號:-(減號)
8.子集

9.父集

10.對稱差集

11.判斷是否無交集


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM