1. 程式人生 > >python作業02

python作業02

span put git 下劃線 退出 追加 enc item 2個

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