第十八節,基本數據類型做業

1、元素分類python

1,將一個列表的元素,分類後分別放到兩個列表中git

  有以下值集合 [11,22,33,44,55,66,77,88,99,90],將全部大於 66 的值保存至一個列表,小於等於66的值保存到另外一個列表app

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 print("將一個列表的元素,分類後分別放到兩個列表中")
 4 a = [11,22,33,44,55,66,77,88,99,90]
 5 b = [] #建立空列表b
 6 c = [] #建立空列表c
 7 for i in a: #循環a列表元素
 8     if i <= 66:
 9         b.append(i) #判斷循環到的元素小於或等於66的,追加到b列表
10     else:
11         c.append(i) #判斷循環到的元素大於66的,追加到c列表
12 #分別打印出b列表和c列表
13 print(b)
14 print(c)
15 #打印出
16 #[11, 22, 33, 44, 55, 66]
17 #[77, 88, 99, 90]

2,將一個列表的元素,分類後分別放到一個字典中,列1spa

  有以下值集合 [11,22,33,44,55,66,77,88,99,90],將全部大於 66 的值保存至字典的k1鍵值,小於等於66的值保存至字典的k2鍵值code

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 print("將一個列表的元素,分類後分別放到一個字典中,列1")
 4 a = [11,22,33,44,55,66,77,88,99,90]
 5 b = [] #建立空列表b
 6 c = [] #建立空列表c
 7 for i in a: #循環a列表元素
 8     if i <= 66:
 9         b.append(i) #判斷循環到的元素小於或等於66的,追加到b列表
10     else:
11         c.append(i) #判斷循環到的元素大於66的,追加到c列表
12 d = {"k1":b, "k2":c} #新建立一個字典,鍵爲k1和k2,把b列表賦值給k1鍵,把c列表賦值給k2鍵
13 print(d)#打印出d字典
14 #打印出 {'k2': [77, 88, 99, 90], 'k1': [11, 22, 33, 44, 55, 66]}

3,將一個列表的元素,分類後分別放到一個字典中,列2blog

  有以下值集合 [11,22,33,44,55,66,77,88,99,90],將全部大於 66 的值保存至字典的k1鍵值,小於等於66的值保存至字典的k2鍵值索引

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 print("將一個列表的元素,分類後分別放到一個字典中,列2")
 4 a = [11,22,33,44,55,66,77,88,99,90]
 5 b = {"k1":[], "k2":[]}
 6 for i in a: #循環a列表元素
 7     if i <= 66:
 8         b["k1"].append(i) #判斷循環到的元素小於或等於66的,追加到b列表
 9     else:
10         b["k2"].append(i) #判斷循環到的元素大於66的,追加到c列表
11 print(b)
12 #打印出 {'k2': [77, 88, 99, 90], 'k1': [11, 22, 33, 44, 55, 66]}

2、查找ip

  查找列表,元組,字典,中元素,移除每一個元素的空格,並查找以 a或A開頭 而且以 c 結尾的全部元素。utf-8

   li = ["alec", " aric", "Alex", "Tony", "rain"]
    tu = ("alec", " aric", "Alex", "Tony", "rain") 
    dic = {'k1': "alex", 'k2': ' aric',  "k3": "Alex", "k4": "Tony"}
 
1,查找列表中元素,移除每一個元素的空格,並查找以 a或A開頭 而且以 c 結尾的全部元素。
  li = ["alec", " aric", "Alex", "Tony", "rain"]
 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 print("查找列表中元素,移除每一個元素的空格,並查找以 a或A開頭 而且以 c 結尾的全部元素。")
 4 li = ["aleb", " aric", "Alex", "Tony", "rain"]
 5 for i in li:
 6     b = i.strip() #移除循環到數據的兩邊空格
 7     #判斷b變量裏以a或者A開頭,而且以c結尾的元素
 8     #注意:若是一個條件語句裏,or(或者),and(而且),都在條件判斷裏,將前面or部分用括號包起來,當作一個總體,
 9     #否則判斷到前面or部分符合了條件,就不會判斷and後面的了,括起來後無論前面符不符合條件,後面的and都要判斷的
10     if (b.startswith("a") or b.startswith("A")) and b.endswith("c"):
11         print(b) #打印出判斷到的元素
12 #打印出
13 #aric
 
2,查找元組中元素,移除每一個元素的空格,並查找以 a或A開頭 而且以 c 結尾的全部元素。
  tu = ("aleb", " aric", "Alex", "Tony", "rain")
 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 print("查找元組中元素,移除每一個元素的空格,並查找以 a或A開頭 而且以 c 結尾的全部元素。")
 4 tu = ("aleb", " aric", "Alex", "Tony", "rain")
 5 for i in tu:
 6     tu1 = i.strip() #移除循環到數據的兩邊空格
 7     #判斷tu1變量裏以a或者A開頭,而且以c結尾的元素
 8     #注意:若是一個條件語句裏,or(或者),and(而且),都在條件判斷裏,將前面or部分用括號包起來,當作一個總體,
 9     #否則判斷到前面or部分符合了條件,就不會判斷and後面的了,括起來後無論前面符不符合條件,後面的and都要判斷的
10     if (tu1.startswith("a") or tu1.startswith("A")) and tu1.endswith("c"):
11         print(tu1) #打印出判斷到的元素
12 #打印出
13 #aric

 

3,查找字典中元素,移除每一個元素的空格,並查找以 a或A開頭 而且以 c 結尾的全部元素。
  dic = {'k1': "alex", 'k2': ' aric',  "k3": "Alex", "k4": "Tony"}
 1 print("查找字典中元素,移除每一個元素的空格,並查找以 a或A開頭 而且以 c 結尾的全部元素。")
 2 dic = {'k1': "aleb", 'k2': ' aric',  "k3": "Alex", "k4": "Tony"}
 3 for i in dic:
 4     dic1 = dic[i].strip() #移除循環到數據的兩邊空格
 5     #判斷dic1變量裏以a或者A開頭,而且以c結尾的元素
 6     #注意:若是一個條件語句裏,or(或者),and(而且),都在條件判斷裏,將前面or部分用括號包起來,當作一個總體,
 7     #否則判斷到前面or部分符合了條件,就不會判斷and後面的了,括起來後無論前面符不符合條件,後面的and都要判斷的
 8     if (dic1.startswith("a") or dic1.startswith("A")) and dic1.endswith("c"):
 9         print(dic1) #打印出判斷到的元素
10 #打印出
11 #aric

 3、輸出商品列表,用戶輸入序號,顯示用戶選中的商品input

  商品 li = ["手機", "電腦", '鼠標墊', '遊艇']

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 print("輸出商品列表,用戶輸入序號,顯示用戶選中的商品")
 4 li = ["手機", "電腦", '鼠標墊', '遊艇']
 5 for i,j in enumerate(li,1): #自定義列表索引下標,從1開始,將列表索引下標賦值給i,將列表值賦值給j
 6     print(i,j)#打印出列表的索引下標,和列表的值
 7 a = input("請輸入商品序號") #要求用戶輸入商品序號
 8 if a.isdigit():#判斷用戶輸入的是不是純數字
 9     pass
10 else:
11     exit("你輸入的不是有效的商品序號")#若是不是純數字打印提示信息,而且退出程序,不在往下執行
12 a = int(a) #將用戶輸入的序號轉換成數字類型
13 b = len(li)#統計li列表的元素個數
14 if a > 0 and a <= b: #判斷
15     c = li[a-1]
16     print(c)
17 else:
18     print("商品序號不存在")

 

4、購物車

  

功能要求:

  • 要求用戶輸入總資產,例如:2000
  • 顯示商品列表,讓用戶根據序號選擇商品,加入購物車
  • 購買,若是商品總額大於總資產,提示帳戶餘額不足,不然,購買成功。
  • 附加:可充值、某商品移除購物車

 

1.用列表構造以購買產品,購物車

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # 4、購物車
 4 # 功能要求:
 5 # 要求用戶輸入總資產,例如:2000
 6 # 顯示商品列表,讓用戶輸入商品名稱,加入購物車
 7 # 購買,若是商品總額大於總資產,提示帳戶餘額不足,不然,購買成功。
 8 # 附加:可充值、某商品移除購物車
 9 
10 #用列表構造以購買產品,購物車
11 #默認總資產等於0
12 zong_zi_chan = 0
13 #要求用戶輸入總資產
14 zong_zi_chan1 = input("請輸入總資產")
15 #判斷用戶輸入的是不是純數字
16 if zong_zi_chan1.isdigit():
17     pass
18 else:
19     exit("你輸入的不是數字類型的資產")
20 #將用戶輸入的總資產轉換成整數類型
21 zong_zi_chan = int(zong_zi_chan1)
22 #打印出用戶輸入的總資產
23 print("你的總資產爲:",zong_zi_chan,"")
24 #換行
25 print("\n")
26 
27 print("可購買商品有:")
28 shang_pin = [
29     {"名稱":"手機", "價格":200},
30     {"名稱":"電腦", "價格":300},
31     {"名稱":"水筆", "價格":10},
32     {"名稱":"紙張", "價格":20},
33 ]
34 #以購買商品
35 shang_pin2 = []
36 for i in shang_pin:
37     #經過循環列表裏面字典的鍵,來顯示出商品和價格
38     print(i["名稱"], i["價格"], "")
39 #換行
40 print("\n")
41 
42 ming = ""
43 while True:
44     #要求用戶輸入要購買的商品名稱
45     ming_cheng = input("輸入y結算/請輸入要購買的商品名稱挑選商品")
46     if ming_cheng == "y":#判斷用戶輸入的是商品名稱仍是結算符
47         break #若是用戶輸入的是結算符退出while進行結算
48     else:
49         for i in shang_pin:
50             #循環產品列表,判斷循環到的產品名稱是否有等於用戶輸入的名稱
51             if i["名稱"] == ming_cheng:
52                 #若是循環到的產品名稱有等於用戶輸入的名稱,將這個名稱賦值給ming變量
53                 ming = i["名稱"]
54             else:
55                 pass
56         #判斷ming變量是否等於用戶輸入的
57         if ming == ming_cheng:
58             pass
59         else:
60             #若是不等於提示商品名稱不存在,退出程序
61             exit("你輸入的商品名稱不存在")
62         for i in shang_pin:
63             #循環商品列表,判斷商品名稱是否有等於用戶輸入的
64             if i["名稱"] == ming_cheng:
65                 #若是循環到的商品名稱等於用戶輸入名稱,將此商品字典追加更新到一個新列表,也就是用戶
66                 shang_pin2.append(i)
67         print("你以挑選了:",shang_pin2)
68     zongjia = 0
69 for i in shang_pin2:
70     danjia = i["價格"]
71     zongjia += danjia
72 print("如今開始結算共計:", zongjia, "")
73 if zong_zi_chan >= zongjia:
74     print("恭喜你購買成功")
75 else:
76     print("你的餘額不足,請充值")

 

2.用字典構造以購買產品,購物車

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 #功能要求:
 4 # 要求用戶輸入總資產,例如:2000
 5 # 顯示商品列表,讓用戶輸入商品名稱,加入購物車
 6 # 購買,若是商品總額大於總資產,提示帳戶餘額不足,不然,購買成功。
 7 # 附加:可充值、某商品移除購物車
 8 
 9 #用字典構造以購買產品,購物車
10 #用戶輸入總資產
11 zong_zi_chan = input("請輸入你的總資產")
12 #將用戶輸入總資產轉換成數字類型
13 zong_zi_chan1 = int(zong_zi_chan)
14 #打印出總資產
15 print("您的總資產爲",zong_zi_chan1,"")
16 print("\n")
17 
18 #產品字典
19 shang_pin = [
20     {"名稱":"手機", "價格":200},
21     {"名稱":"電腦", "價格":300},
22     {"名稱":"水筆", "價格":10},
23     {"名稱":"紙張", "價格":20},
24 ]
25 print("可購買產品有:")
26 for i in shang_pin:
27     #循環出產品字典裏的名稱和價格
28     print(i["名稱"],i["價格"],"")
29 
30 print("\n")
31 #以購買的產品
32 gou_mai2 = {}
33 #循環購買模塊
34 while True:
35     #用戶輸入要購買的產品名稱
36     gou_mai = input("請輸入要購買的商品名稱,輸入y結算")
37     #將用戶輸入的信息進行判斷,若是用戶輸入的是y退出循環購買模塊
38     if gou_mai.lower() == "y":
39         break
40     else:#若是用戶輸入不是y執行下面
41         for i in shang_pin:
42             #判斷循環到的產品名稱若是等於用戶輸入的購買名稱
43             if i["名稱"] == gou_mai:
44                 #將循環到的賦值給一個變量
45                 chan_pin = i["名稱"]
46                 #判斷循環到的名稱在已購買產品字典裏是否存在這個鍵
47                 if chan_pin in gou_mai2.keys():
48                     #若是存在將已購買產品字典裏本條數據的數量加1
49                     gou_mai2[chan_pin]["數量"] = gou_mai2[chan_pin]["數量"] + 1
50                 else:
51                     #若是不在將已購買產品字典裏,將本條數據更新到已購買產品字典裏,默認數量1
52                     gou_mai2[chan_pin] = {"價格":i["價格"], "數量":1}
53                 #打印已購買產品
54                 print(gou_mai2)
55 
56 print("\n")
57 print("您以購買的商品有:")
58 #購買產品的全部共計費用
59 gong_ji = 0
60 #循環出以購買產品字典裏的鍵和值
61 for k,v in gou_mai2.items():
62     #將字典裏的價格賦值給一個變量
63     jia_ge = v["價格"]
64     #將字典裏的數量賦值給一個變量
65     shu_liang = v["數量"]
66     #將數量乘以價格等於每樣產品的總價
67     zong_jia = shu_liang * jia_ge
68     #打印出以購買的每樣產品的價格,數量,總價
69     print(k,"價格", v["價格"], "數量", v["數量"], "總價=",zong_jia)
70     #每次循環累計共計加總價等於共計消費
71     gong_ji += zong_jia
72 #打印出共計費用
73 print("共計:",gong_ji)
74 
75 #判斷總資產若是大於或者等於共計費用,購買成功,若是總資產小於共計費用說明資金不夠
76 if zong_zi_chan1 >= gong_ji:
77     print("恭喜你購買成功")
78 else:
79     print("對不起你的資金不夠,請充值")

 

  5、用戶交互,顯示省市縣三級聯動的選擇
用戶輸入省份,顯示出他下面的市,用戶輸入市,顯示出他下面的縣(區)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 5、用戶交互,顯示省市縣三級聯動的選擇
#用戶輸入省份,顯示出他下面的市,用戶輸入市,顯示出他下面的縣(區)
dic = {
    "四川":{
        "自貢":["富順", "沿灘", "黃市", "板橋"],
        "內江":["東興區", "資中縣", "威遠縣", "隆昌縣"]
    },
    "雲南":{
        "昆明市":["五華區", "盤龍區", "官渡區", "西山區"],
        "昭通市":["昭陽區", "水富縣", "永善縣", "魯甸縣"]
    }
}
#循環輸出全部的省
for i in dic: #循環出省份
    print(i) #打印循環到的省份
a = input("請輸入省份名稱") #要求用戶輸入省份
b = a in dic.keys() #檢查用戶輸入的省份是否在dic字典裏
if b == True:#判斷用戶輸入的省份是否存在
    pass #若是存在直接跳過
else:
    exit("你輸入的省份不存在")#若是不存在給出提示,退出程序,不在往下執行
key = dic[a]#將用戶輸入的省份做爲字典的鍵
for i in key:#將用戶輸入的省份做爲字典的鍵,在循環出它下面的市
    print(i)#打印出循環到的市
c = input("請輸入市名稱")#要求用戶輸入市名稱
d = c in key.keys() #檢查用戶輸入的市是否存在
if d == True:#判斷用戶輸入的市是否存在
    pass#若是存在直接跳過
else:
    exit("你輸入的市名稱不存在")#若是不存在給出提示,退出程序,不在往下執行
key2 = key[c]#將用戶輸入的,省份,市,做爲字典鍵
for i in key2:#將用戶輸入的,省份,市,做爲字典鍵,循環市下面的各級縣
    print(i)#打印出循環到的各級縣
相關文章
相關標籤/搜索