1. 程式人生 > >python 第二章 列表,if循環

python 第二章 列表,if循環

col 數字 判斷 語句 -s max 成績 if判斷 生成

列表

序列是Python中最基本的數據結構。序列中的每個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。

Python有6個序列的內置類型,但最常見的是列表和元組。

序列都可以進行的操作包括索引,切片,加,乘,檢查成員。

此外,Python已經內置確定序列的長度以及確定最大和最小的元素的方法。

列表是最常用的Python數據類型,它可以作為一個方括號內的逗號分隔值出現。

列表的數據項不需要具有相同的類型

創建一個列表,只要把逗號分隔的不同的數據項使用方括號括起來即可

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
3 4 list = [1,2,3,4,5,6,7] #定義一個列表 5 6 print(list[0]) #通過索引取值 7 print(list[-1]) #支持倒取-1表示最後一個 8 list[0]=8 #通過索引修改值 9 print(list) 10 11 #輸出 12 1 13 7 14 [8,2,3,4,5,6,7]

給列表添加元素

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 list = [1,2,3,4,5,6,7]
 5 list.append(10) #在列表末尾添加元素
 6 print
(list) 7 list.insert(1,10) #指定索引位置插入元素,把元素插入到置頂位置 比如索引號為 1的位 8 print(list) 9 list1 = [9,8,7,6,5] #定義一個list1 列表 10 list.extend(list1) #擴展原列表,參數為可叠代對象(可以被for循環遍歷的) 11 print(list) 12 #輸出 13 [1, 2, 3, 4, 5, 6, 7, 10] 14 [1, 10, 2, 3, 4, 5, 6, 7, 10] 15 [1, 10, 2, 3, 4, 5, 6, 7, 10, 9, 8, 7, 6, 5]

列表拷貝可以用copy(),也可以直接賦值但是建議使用copy()方法,也可以用切片的方法

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 list = [1,2,3,4,5,6,7,8,9]
 5 a = list.copy()  #拷貝,復制,淺拷貝
 6 print(a)
 7 b = a[:] #切片的方法
 8 print(b)
 9 #輸出
10 [1, 2, 3, 4, 5, 6, 7, 8, 9]
11 [1, 2, 3, 4, 5, 6, 7, 8, 9]

計算元素在列表中出現了幾次,獲取當前元素的索引位置,以及len()函數

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 list = [1,2,3,4,5,5,5,6,7]
 5 a = list.count(5) #計算元素在列表中出現幾次
 6 print(a)
 7 b = list.index(6,3,9) #根據值獲取當前值的索引位置 從左開始,可以在參數後加上 從第幾個開始 第幾個結束,不寫默認從1開始
 8 print(b)
 9 c = len(list) #確定列表的長度
10 print(c)
11 #輸出
12 3
13 7
14 9

刪除列表元素,清空列表

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 list = [1,2,3,4,5,6,7,8,9,9,2]
 5 del list[0] #通過索引刪除,永久刪除並不可以在使用其值
 6 print(list)
 7 
 8 list.pop() #通過索引刪除,但是可以把其重新賦值給一個變量,還可以繼續使用,默認從最後往前刪
 9 b = list.pop()
10 print(b)
11 
12 list.remove(2) #根據值刪除元素
13 print(list)
14 
15 list.clear() #清空列表
16 print(list)
17 #輸出
18 [2, 3, 4, 5, 6, 7, 8, 9, 9, 2]
19 9
20 [3, 4, 5, 6, 7, 8, 9]
21 []

列表排序

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 list = [0,1,2,3,4,5,6]
 5 a = sorted(list) #臨時排序
 6 print(a)
 7 
 8 b = sorted(list,reverse = True) #反向臨時排序
 9 print(b)
10 
11 list.sort() #永久排序
12 print(list)
13 
14 list.sort(reverse = True) #反向排序
15 print(list)
16 
17 list.reverse()  #反轉列表,但不是按順序。 如果想返回需要再次調用reverse()
18 print(list)
19 #輸出
20 [0, 1, 2, 3, 4, 5, 6]
21 [6, 5, 4, 3, 2, 1, 0]
22 [0, 1, 2, 3, 4, 5, 6]
23 [6, 5, 4, 3, 2, 1, 0]
24 [0, 1, 2, 3, 4, 5, 6]

使用range()函數創建列表,對數字列表進行簡單的統計計算

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 a = list(range(10)) #只會生成0-9
 5 print(a)
 6 
 7 print(min(a)) #列表最小值
 8 print(max(a)) #列表最大值
 9 print(sum(a)) #列表總和
10 #輸出
11 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
12 0
13 9
14 45

and,or,in,not in 用法

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 and 只要有一個為False結果就為False
 5  1>2and2>3
 6 False
 7  1<2 and 2<3
 8 True
 9  1>2 and 2<3
10 False  
11 
12 or 只要有一個為True 結果就為True
13  1>2 or 2>3
14 False
15  1>2 or 2<3
16 True
17 
18 檢查元素是否在列表中: in
19 a = [1,2,3,4,5,6,6]
20  2 in a
21 True
22  7 in a
23 False
24 
25 檢查元素是否不在列表中: not in
26 a = [1,2,3,4,5,6,6]
27  2 not in a
28 False
29  7 not in a
30 True

求模運算符

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 4%3
 5 1
 6 5%3
 7 2
 8 6%3
 9 0
10 7%3
11 2
12 """求模運算不會指出一個數是另一個數的多少倍,而只是指出余數是多少

if else 語句

如果if語句結果為True則運行if下面的程序
否則運行else 下面的程序

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 """如果一個數被另一個數整除,余數為0,因此求模運算符將返回0,可以利用這點來判斷一個數是奇數還是偶數"""
 5 
 6 a = 7
 7 if a % 2 == 0:
 8     print("這是一個偶數")
 9 else:
10     print("這是一個奇數")

if elif else 語句
如果if語句結果為True則運行if下面的程序
如果elif語句結果為True則運行elif下面的程序
否則運行else 下面的程序

#!/usr/bin/env python
# -*- coding:utf-8 -*-

"""這是一個判斷學生成績評分的if語句"""

temp =int(input(輸入一個分數:))
if (60 <= temp < 80):
    print("C")
elif (80 <= temp < 90):
    print("B")
elif (90 <= temp <= 100):
    print("A")
else:
    print("不及格")

列表解析式 a = [i for i in range(10)]

列表生成式

寫列表生成式時,把要生成的元素放到前面,後面跟for循環就可以把list創建起來

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 a = [x*x for x in range(10) ]
 5 print(a)
 6 
 7 #for循環後面還可以加上if判斷
 8 a = [x*x for x in range(10) if x%2==0]
 9 print(a)
10 
11 #還可以使用兩層循環
12 a = [m+n for m in "ABC" for n in "XYZ"]
13 print(a)
14 #輸出
15 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
16 [0, 4, 16, 36, 64]
17 [AX, AY, AZ, BX, BY, BZ, CX, CY, CZ]

切片

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 a = [1,2,3,4,5,6,7,8,9]
 5 print(a[0:3]) #顯示前三個元素
 6 print(a[2:6]) #顯示從3到第6個元素
 7 print(a[-3:]) #顯示最後三個元素
 8 #輸出
 9 [1, 2, 3]
10 [3, 4, 5, 6]
11 [7, 8, 9]

python 第二章 列表,if循環