顯示具有 python 標籤的文章。 顯示所有文章
顯示具有 python 標籤的文章。 顯示所有文章

2018年3月9日 星期五

[Python] 第五篇--字典(dictionary)

[Python] 第五篇--字典(dictionary)


1. 建立字典

---方法一---
dict1 = {"蘋果":20, "香蕉":15, "西瓜":50}

---方法二---
dict2 = dict([["蘋果",20],["香蕉",15],["西瓜",50]])

---方法三---
dict3 = dict(蘋果=20, 香蕉=15, 西瓜=50)
注:鍵(key)不能使用數值

2. 字典取值

2.1 當字典重複時
dict1 = {"蘋果":20, "香蕉":15, "西瓜":50, "香蕉":100}
print(dict1["香蕉"])
注:

輸出:
100

2.2 當字典的鍵不存在時
#使用此方法,如果值不存在會造成錯誤
dict1 = {"蘋果":20, "香蕉":15, "西瓜":50}
print(dict1["鳳梨"])

#使用此方法,預設值可有可無,即使鍵不存在於字典中,也可以避免產生錯誤
dict1 = {"蘋果":20, "香蕉":15, "西瓜":50}
#沒有傳入預設值的情況下
print(dict1.get("蘋果"))  #鍵存在於字典時,輸出字典裡的值(20)
print(dict1.get("鳳梨"))  #鍵不存在於字典時,輸出(None)
#有傳入預設值的情況下,鍵不存在於字典中,會輸出預設值
print(dict1.get("蘋果", 80))  #鍵存在於字典時,輸出字典裡的值(20)
print(dict1.get("鳳梨", 75))  #鍵不存在於字典時,輸出預設值(75)

輸出:
20
None
20
75


2018年3月8日 星期四

[Python] 第四篇--元組(tuple)

[Python] 第四篇--元組(tuple)

1. 介紹

1.1 數組的值無法改變,與串列不相同
1.2 以 ( ) 建立組數

2. 建立數組

tp = (1, 2, 3, 4, 5, 6)
print(tp)

輸出:
(1, 2, 3, 4, 5, 6)

3. 組數的值相加

tp = (1, 2, 3, 4, 5, 6)
print(sum(tp))

輸出:
21

4. 切割組數

tp = (1, 2, 3, 4, 5, 6)
print(tp[2:5])
print(tp[-1])

解釋:

輸出:
(3, 4, 5)
6

5.  tuple

tp = tuple([2*x for x in range(1, 8)])
print(tp)

解釋:
把1~7的值帶入2*x裡,會得到(2, 4, 6, 8, 10, 12, 14)
輸出:
(2, 4, 6, 8, 10, 12, 14)

6. 元組轉換成串列

tp = (1, 2, 3, 4, 5, 6)
list1 = list(tp)
list1.append(8)
print(list1)

輸出:
[1, 2, 3, 4, 5, 6, 8]

7. 串列轉換成元組

list1 = [1, 2, 3, 4, 5, 6]
tp = tuple(list1)
print(tp)

輸出:
(1, 2, 3, 4, 5, 6)

2018年2月5日 星期一

[Python] 第三篇--串列(list)

[Python] 第三篇--串列(list)

1. 串列長度,len()

list1 = [0,1,2,3,4,5,6]
l = len(list1)
print("list1的串列長度:",l)

輸出:
list1的串列長度: 7

2. 搜尋指定串列元素的索引值,index()

list1 = [1,2,3,4,5,6]
n = list1.index(4)
print("list1的串列中4的索引值:",n)

輸出:
list1的串列中4的索引值: 3

3. 指定串列元素出現的次數,count()

list1 = [0,2,5,4,7,8,4,4,4,2,2,0,1]
m = list1.count(2)
print("list1的串列中2的數量:",m)

輸出:
list1的串列中2的數量: 3

4. 將元素加到串列最後面,append()

list1 = [1,2,3,4,5]
print("增加前:",list(list1))
list1.append(100)
print("增加後:",list(list1))

輸出:
增加前: [1, 2, 3, 4, 5]
增加後: [1, 2, 3, 4, 5, 100]

5. 將元素插入串列中指定的索引位置,insert()

list1 = [1,2,3,4,5]
print("插入前:",list(list1))
list1.insert(3,19)
#在索引位置為3的位置,插入值為19的數字
print("插入後:",list(list1))

輸出:
插入前: [1, 2, 3, 4, 5]
插入後: [1, 2, 3, 19, 4, 5]

6. 刪除串列中第一個指定的元素,remove()

list1 = [5,4,3,2,1,0]
print("用remove刪除前:",list(list1))
list1.remove(5)
#刪除第一個值為5的數字
print("用remove刪除後:",list(list1))

輸出:
用remove刪除前: [5, 4, 3, 2, 1, 0]
用remove刪除後: [4, 3, 2, 1, 0]

7. 用pop刪除元素,pop()

7.1 沒參數時,刪除串列的最後一個值
list1 = [5,4,3,2,1,0]
print("用pop刪除前(沒參數):",list(list1))
list1.pop()
print("用pop刪除後(沒參數):",list(list1))

輸出:
用pop刪除前(沒參數): [5, 4, 3, 2, 1, 0]
用pop刪除後(沒參數): [5, 4, 3, 2, 1]

7.2 有參數時,刪除串列中該參數位置的值
list1 = [5,4,3,2,1,0]
print("用pop刪除前(有參數):",list(list1))
list1.pop(3)
#串列中索引值為3的值是2
print("用pop刪除後(有參數):",list(list1))

輸出:
用pop刪除前(有參數): [5, 4, 3, 2, 1, 0]
用pop刪除後(有參數): [5, 4, 3, 1, 0]

8. 刪除元素、串列,del

8.1 刪除元素
list1 = [5,4,3,2,1,0]
print("用del刪除元素前:",list(list1))
del list1[2]
#串列中索引值為2的值是3
print("用del刪除元素後:",list(list1))

輸出:
用del刪除元素前: [5, 4, 3, 2, 1, 0]
用del刪除元素後: [5, 4, 2, 1, 0]

8.2 刪除串列
list1 = [5,4,3,2,1,0]
print("用del刪除串列前:",list(list1))
del list1[1:3]
#刪除串列中索引值為1的值是4
#刪除串列中索引值為2的值是3
print("用del刪除串列後:",list(list1))

輸出:
用del刪除串列前: [5, 4, 3, 2, 1, 0]
用del刪除串列後: [5, 2, 1, 0]

9. 串列由小到大排序,sort()

list1 = [7,2,85,44,25,65,35]
print("排序前:",list(list1))
list1.sort()
print("排序後:",list(list1))

輸出:
排序前: [7, 2, 85, 44, 25, 65, 35]
排序後: [2, 7, 25, 35, 44, 65, 85]

10. 串列反轉,reverse()

list1 = [7,2,85,44,25,65,35]
print("反轉前:",list(list1))
list1.reverse()
print("反轉後:",list(list1))

輸出:
反轉前: [7, 2, 85, 44, 25, 65, 35]
反轉後: [35, 65, 25, 44, 85, 2, 7]

11. 串列由大到小排序,sort()、reverse()

list1 = [7,2,85,44,25,65,35]
print("由大到小排序前:",list(list1))
list1.sort()
list1.reverse()
print("由大到小排序後:",list(list1))

輸出:
由大到小排序前: [7, 2, 85, 44, 25, 65, 35]
由大到小排序後: [85, 65, 44, 35, 25, 7, 2]

12. 串列排序,產生新串列(list2)並保留原本串列(list1),sorted()

12.1 reverse=False,代表由小到大排列
list1 = [7,2,85,44,25,65,35]
print("排序前list1:",list(list1))
list2 = sorted(list1, reverse=False)
print("排序後list1:",list(list1))
print("排序後list2:",list(list2))

輸出:
排序前list1: [7, 2, 85, 44, 25, 65, 35]
排序後list1: [7, 2, 85, 44, 25, 65, 35]
排序後list2: [2, 7, 25, 35, 44, 65, 85]

12.2 reverse=True,代表由大到小排列
list1 = [7,2,85,44,25,65,35]
print("排序前list1:",list(list1))
list2 = sorted(list1, reverse=True)
print("排序後list1:",list(list1))
print("排序後list2:",list(list2))

輸出:
排序前list1: [7, 2, 85, 44, 25, 65, 35]
排序後list1: [7, 2, 85, 44, 25, 65, 35]
排序後list2: [85, 65, 44, 35, 25, 7, 2]


2018年1月22日 星期一

[Python] 第二篇--判斷式

[Python] 第二篇--判斷式

在python的判斷式if(), elif(), else後面都要加":"

1. 單向判斷式

if(3<4):
    print("T")

輸出:
T

2. 雙向判斷式

if(3>4):
    print("T")
else:
    print("F")

輸出:
F

3. 多向判斷式

if(3>4):
    print("3")
elif(4>4):
    print("4")
else:
    print("F")

輸出:
F

4. 巢狀判斷式

if(100<1000): #true
    if(100 < 10): #false
        print("100<1000 and 100 < 10")
    else:
        print("100<1000 and 100 > 10")
else:
    print("100>1000")

輸出:
100<1000 and 100 > 10

[Python] 第一篇--輸出(print)

[Python] 第一篇--輸出(print)

1. sep = 分隔字元,預設值是" "

fruit1 = "香蕉"
fruit2 = "蘋果"
fruit3 = "櫻桃"
print("---測試sep---")
print(fruit1, fruit2, fruit3) #沒加sep:兩個變數中間用空白隔開(預設值)
print(fruit1, fruit2, fruit3, sep = "") #加sep="":兩個變數中間沒有東西
print(fruit1, fruit2, fruit3, sep = ",") #加sep=",":兩個變數中間用逗號隔開

輸出:
---測試sep---
香蕉 蘋果 櫻桃
香蕉蘋果櫻桃
香蕉,蘋果,櫻桃

2. end = 結束字元,預設值是換行符號(\n)

print("---測試end---")
print(fruit1, fruit2, fruit3) #沒加end:輸出完之後換行,所以END在新的一行
print("END")
print(fruit1, fruit2, fruit3, end = " ") #加end=" ":輸出完之後加上" ",再輸出END
print("END")
print(fruit1, fruit2, fruit3, end = "*") #加end="*":輸出完之後加上"*",再輸出END
print("END")

輸出:
---測試end---
香蕉 蘋果 櫻桃
END
香蕉 蘋果 櫻桃 END
香蕉 蘋果 櫻桃*END

3. 參數化

name = "小新"
age = 5
grade = 92.5
print("---測試參數化---")
print("%s今年%d歲,考試成績%f" % (name,age,grade)) #一般輸出
print("%5s今年%d歲,考試成績%f" % (name,age,grade)) #%5s:固定輸出5字元
print("%s今年%5d歲,考試成績%f" % (name,age,grade)) #%5d:固定輸出5字元,空白在左邊
print("%s今年%-5d歲,考試成績%f" % (name,age,grade)) #%-5d:固定輸出5字元,空白在右邊
print("%s今年%d歲,考試成績%8.2f" % (name,age,grade)) #%8.2f:固定輸出8字元(含小數點),小數輸出2位數

輸出:
---測試參數化---
小新今年5歲,考試成績92.500000
   小新今年5歲,考試成績92.500000
小新今年    5歲,考試成績92.500000
小新今年5    歲,考試成績92.500000
小新今年5歲,考試成績   92.50

4. format格式化

print("---format格式化---")
print("{}今年{}歲,考試成績{}".format(name, age, grade))

輸出:
---format格式化---
小新今年5歲,考試成績92.5