python作業02
1、請用代碼實現:利用下劃線將列表的每一個元素拼接成字符串,li=[‘alex‘, ‘eric‘, ‘rain‘]
li = [‘alex‘, ‘eric‘, ‘rain‘] v = "_".join(li) print(v)
2、查找列表中元素,移除每個元素的空格,並查找以a或A開頭並且以c結尾的所有元素。
li = ["alec", " aric", "Alex", "Tony", "rain"] # 列表 tu = ("alec", " aric", "Alex", "Tony", "rain") # 元組 dic = {‘k1‘: "alex", ‘k2‘: ‘ aric‘, "k3": "Alex", "k4": "Tony"} # 字典 tu_li = list(tu) dic_li = list(dic.values()) list = li + tu_li + dic_li for i in list: m = i.strip() # startswith查看開頭字符,endswith查看結尾字符 if(m.startswith(‘a‘) or m.startswith(‘A‘) and m.endswith(‘c‘)): print(m)
3、寫代碼,有如下列表,按照要求實現每一個功能
li=[‘alex‘, ‘eric‘, ‘rain‘]
計算列表長度並輸出
列表中追加元素“seven”,並輸出添加後的列表
請在列表的第1個位置插入元素“Tony”,並輸出添加後的列表
請修改列表第2個位置的元素為“Kelly”,並輸出修改後的列表
請刪除列表中的元素“eric”,並輸出修改後的列表
請刪除列表中的第2個元素,並輸出刪除的元素的值和刪除元素後的列表
請刪除列表中的第3個元素,並輸出刪除元素後的列表
請刪除列表中的第2至4個元素,並輸出刪除元素後的列表
請將列表所有的元素反轉,並輸出反轉後的列表
請使用for、len、range輸出列表的索引
請使用enumrate輸出列表元素和序號(序號從100開始)
請使用for循環輸出列表的所有元素
# 1 print(len(li)) # 2 li.append("seven") print(li) # 3 li.insert(0,‘Tony‘) print(li) # 4 li[1] = ‘Kelly‘ print(li) # 5 li.remove(‘eric‘) print(li) # 6 li.pop(1) print(li) # 7 li.pop(2) print(li) # 8 li = [‘alex‘, ‘eric‘, ‘rain‘] del li[1:3] print(li) # 9 li = [‘alex‘, ‘eric‘, ‘rain‘] li.reverse()print(li) # 10 li = [‘alex‘, ‘eric‘, ‘rain‘] for i in range(len(li)): print(i) # 11 li = [‘alex‘, ‘eric‘, ‘rain‘] for m,n in enumerate(li,100): print(m,n) # 12 for i in li: print(i)
4、寫代碼,有如下列表,請按照功能要求實現每一個功能
li = ["hello", ‘seven‘, ["mon", ["h", "kelly"], ‘all‘], 123, 446]
請根據索引輸出“Kelly”
請使用索引找到‘all‘元素並將其修改為“ALL”,如:li[0][1][9]...
寫代碼,有如下元組,按照要求實現每一個功能
print(li[2][1][1]) li[2][2] = "ALL" print(li)
5、寫代碼,有如下元組,請按照功能要求實現每一個功能
tu=(‘alex‘, ‘eric‘, ‘rain‘)
計算元組長度並輸出
獲取元組的第2個元素,並輸出
獲取元組的第1-2個元素,並輸出
請使用for輸出元組的元素
請使用for、len、range輸出元組的索引
請使用enumrate輸出元祖元素和序號(序號從10開始)
print(len(tu)) print(tu[1]) print(tu[0:2]) for i in tu: print(i) for m in range(len(tu)): print(m) for n,k in enumerate(tu,10): print(n,k)
6、有如下變量,請實現要求的功能
tu = ("alex", [11, 22, {"k1": ‘v1‘, "k2": ["age", "name"], "k3": (11,22,33)}, 44])
講述元祖的特性
請問tu變量中的第一個元素“alex”是否可被修改?
請問tu變量中的"k2"對應的值是什麽類型?是否可以被修改?如果可以,請在其中添加一個元素“Seven”
請問tu變量中的"k3"對應的值是什麽類型?是否可以被修改?如果可以,請在其中添加一個元素“Seven”
答:
1、元組跟列表差不多,它一旦創建,便不能再修改.元組本身不可變,如果元組中還包含其他可變元素,這些可變元素可以改變。
2、tu變量中的第一個元素“alex”不可被修改
3、"k2"是列表,可以修改。 tu[1][2]["k2"].append("Seven")
4、"k3"是元組不可修改
7、字典
dic = {‘k1‘: "v1", "k2": "v2", "k3": [11,22,33]}
請循環輸出所有的key
請循環輸出所有的value
請循環輸出所有的key和value
請在字典中添加一個鍵值對,"k4": "v4",輸出添加後的字典
請在修改字典中“k1”對應的值為“alex”,輸出修改後的字典
請在k3對應的值中追加一個元素44,輸出修改後的字典
請在k3對應的值的第1個位置插入個元素18,輸出修改後的字典
# 1 for i in dic.keys(): print(i) # 2 for j in dic.values(): print(j) # 3 for i,j in dic.items(): print(i,j) # 4 dic["k4"] = "v4" print(dic) # 5 dic["k1"] = "alex" print(dic) # 6 dic["k3"].append(44) print(dic) # 7 dic["k3"].insert(0,18) print(dic)
8、轉換
將字符串s = "alex"轉換成列表
將字符串s = "alex"轉換成元祖
將列表li = ["alex", "seven"]轉換成元組
將元祖tu = (‘Alex‘, "seven")轉換成列表
將列表li = ["alex", "seven"]轉換成字典且字典的key按照10開始向後遞增
# 1 s = "alex" s_list = list(s) print(s_list) # 2 s = "alex" s_tuple = tuple(s) print(s_tuple) # 3 li = ["alex", "seven"] li_tuple = tuple(li) print(li_tuple) # 4 tu = (‘Alex‘, "seven") tu_list = list(tu) print(tu_list) # 5 li = ["alex", "seven"] li_dict = {} for m,n in enumerate(li,10): li_dict[m] = n print(li_dict)
9、元素分類
有如下值集合[11,22,33,44,55,66,77,88,99,90],將所有大於66的值保存至字典的第一個key中,將小於66的值保存至第二個key的值中。
即:{‘k1‘:大於66的所有值, ‘k2‘:小於66的所有值}
li = [11,22,33,44,55,66,77,88,99,90] li.sort() # 排序 list1 = [] list2 = [] for i in li : if i < 66: list1.append(i) elif i > 66: list2.append(i) else: pass dic = {"k1": list1,"k2": list2} print(dic)
10、輸出商品列表,用戶輸入序號,顯示用戶選中的商品
商品li = ["手機", "電腦", ‘鼠標墊‘, ‘遊艇‘]
允許用戶添加商品
用戶輸入序號顯示內容
print("商品列表,用戶輸入序號,顯示用戶選中的商品".center(25,‘-‘)) li = ["手機", "電腦", ‘鼠標墊‘, ‘遊艇‘] for i,num in enumerate(li,1): print(i,num) # 添加商品 choice = input("y=yes,n=no] 是否添加商品:".rjust(20,‘-‘)) if choice == "y" or choice == "Y": good = input("需要添加的商品".rjust(20,‘-‘)) li.append(good) for i,num in enumerate(li,1): print(i,num) elif choice ==‘n‘ or choice == "N": pass else: print("請輸入正確的選項") choice_Item = input("[q=quit] 查看序號對應商品,按q退出!") if choice_Item.isdigit() and int(choice_Item) <= len(li): print(li[int(choice_Item)-1])
11、用戶交互顯示類似省市縣N級聯動的選擇
允許用戶增加內容
允許用戶選擇查看某一個級別內容
china = { ‘北京‘:{ ‘海澱‘:{}, ‘朝陽‘:{}, ‘東城‘:{} }, ‘湖北‘:{ ‘武漢‘:{}, ‘荊門‘:{}, ‘宜昌‘:{} } } current_layer = china # 當前層 layers = [] tag = True while tag: # 一級菜單 for k in current_layer: print(k) choice = input(">:").strip() # 二級菜單 if choice in current_layer: # 進入下一級菜單,保存當前菜單 layers.append(current_layer) # 二級菜單賦給當前層 current_layer = current_layer[choice] elif choice == "back": if len(layers) != 0: # pop刪除列表最後一個元素,並返回刪除後最後一個元素 current_layer = layers.pop() else: print("已經是最頂層目錄!") elif choice == "add": add_node = input("在當前目錄下添加節點:") current_layer[add_node] = {} elif choice == "exit": tag = False print("good bye!") else: continue
12、列舉布爾值是False的所有值
bool(0) bool(None) bool("") bool(()) bool([]) bool({}) 五種情況下為false
13、有兩個列表
l1 = [11,22,33]
l2 = [22,33,44]
獲取內容相同的元素列表
獲取l1中有,l2中沒有的元素列表
獲取l2中有,l3中沒有的元素列表
獲取l1和l2中內容都不同的元素
set1 = set(l1) set2 = set(l2) p1 = set1 & set2 print(p1) p2 = set1.difference(set2) print(p2) p3 = set2.difference(set1) print(p3) p4 = set1.union(set2).difference(set1 & set2) print(p4)
14、利用For循環和range輸出
For循環從小到大輸出1 - 100
for i in range(1,101):
print(i)
For循環從大到小輸出100 - 1
for i in range(100,0,-1):
print(i)
While循環從大到小輸出1 - 100
n = 100
while n > 0:
print(n)
n -= 1
While循環從小到到輸出100 - 1
n = 1
while n <=100:
print(n)
n += 1
15、利用for循環和range輸出9 * 9乘法表
#左下三角格式輸出九九乘法表 for i in range(1,10): for j in range(1,i+1): print("%d*%d=%2d" % (i,j,i*j),end=" ") print (" ")
16、求100以內的素數和。(編程題)
sum_prime = 0 for i in range(2,101): n = 0 for j in range(2,i-1): if i % j == 0: n = 1 break if n == 0: sum_prime += i print(sum_prime)
17、將[1,3,2,7,6,23,41,24,33,85,56]從小到大排序(冒泡法)(編程)
li = [1,3,2,7,6,23,41,24,33,85,56] for i in range(0,len(li)): for j in range(i+1,len(li)): if li[i] > li[j]: li[i], li[j] = li[j], li[i] print(li)
python作業02