做業易錯題
"""
4.請用代碼實現:
li = ["alex", "wusir", "taibai"]
利用下劃線將列表的每個元素拼接成字符串"alex_wusir_taibai"
"""
li = ["alex", "wusir", "taibai"]
# s = "" # "alex_wusir_taibai_" # ""+"alex"+"_ = "alex_" "alex_"+"wusir"+"_" "alex_wusir_" +"taibai"+"_"
# for i in li:
# s = s + i + "_"
# print(s[:-1])
# print("_".join(li)) # 拼接的符號.join(可迭代對象)
# 錯誤的示範
# print(str.join(li))
"""
9.利用for循環和range從100~10,倒序將全部的偶數添加到一個新列表中,而後在對列表的元素進行篩選,將能被4整除的數留下來。
"""
# lst = []
# for i in range(100,9,-2):
# lst.append(i)
#
# for j in lst:
# if j % 4 != 0:
# lst.remove(j)
# print(lst)
"""
10.利用for循環和range,將1-30的數字中能被3整除的數改爲* 依次添加到的列表當中
"""
# lst = []
# for i in range(1,31):
# if i % 3 == 0:
# lst.append("*")
# else:
# lst.append(i)
# print(lst)
"""
11.查找列表li中的元素,移除每一個元素的空格,並找出以"A"或者"a"開頭,
並以"c"結尾的全部元素,並添加到一個新列表中,最後循環打印這個新列表。
"""
# li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]
# lst = []
# for i in li:
# em = i.strip()
# if (em.startswith("A") or em.startswith("a")) and em.endswith("c"):
# lst.append(em)
# print(lst)
"""
12.開發敏感詞語過濾程序,提示用戶輸入評論內容,若是用戶輸入的內容中包含特殊的字符:
敏感詞列表 li = ["蒼老師", "東京熱", "武藤蘭", "波多野結衣"]
則將用戶輸入的內容中的敏感詞彙替換成等長度的*(蒼老師就替換***),
並添加到一個列表中;若是用戶輸入的內容沒有敏感詞彙,則直接添加到上述的列表中。
"""
li = ["蒼老師", "東京熱", "武藤蘭", "波多野結衣"]
# len()
# in
# if
# input()
# replace
# lst = []
# content = input("請輸入內容:") # "蒼老師真是厲害,教育了一代又一代,武藤蘭也是一個狠人啊"
# for i in li:
# if i in content:
# content = content.replace(i,len(i) * "*") # em = "蒼老師真是厲害,教育了一代又一代,***也是一個狠人啊"
# 有點坑
# lst.append(content)
# print(lst)
"""
13.有以下列表(選作題)
循環打印列表中的每一個元素,遇到列表則再循環打印出它裏面的元素。
我想要的結果是:
1
3
4
alex
3
7
8
taibai
5
ritian
"""
# li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
# for i in li:
# if type(i) == list:
# for em in i:
# if type(em) == str:
# print(em.lower())
# else:
# print(em)
# else:
# if type(i) == str:
# print(i.lower())
# else:
# print(i)
"""
14.用戶輸入一個數字,使用列表輸出這個數字內的斐波那契數列,以下列表:(選作題)
用戶輸入100 輸出[1,1,2,3,5,8,13,21,34,55,89]這個列表
"""
# lst = [1,1]
# num = input("請輸入數字:") # 10
# if num.isdecimal():
# new_num = int(num)
# while lst[-1] + lst[-2] <= new_num:
# lst.append(lst[-1]+lst[-2])
# print(lst)
# else:
# print("請輸數字!")
筆記總結
列表 -- list
有序,可變的,索引,
做用:存儲數據的,支持不少種數據類型
定義方式:
lst = [1,"alex","黑哥"]
增:
append 追加
insert 插入
extend 迭代添加
刪
del lst -- 刪除整個列表
del lst[1:2] -- 切片刪除
del lst[1:4:2] -- 步長刪除
pop
1.默認刪除最後一個
2.有返回值返回的是被刪除的元素
3.經過索引進行刪除
clear 清空列表
remove 經過元素進行刪除
改
lst[0] = 1
lst[1:2] ="qaaa" # 元素能夠超出切片的位數
lst[1:4:2] = "12" # 元素和位置一一對應,多也不行少也不行
查
for i in lst:
print(i)
列表的嵌套:
取值經過索引進行取值,一層一層的進行查找
2.元組 -- tuple
只能索引查看和for查看,不能進行增刪改
存儲一些重要的信息數據
元組是不可變的列表
3.range -- 範圍
python3:
range 是一個可迭代對象
python2:
xrange和python3中的range是類似的
range返回一個列表
range 是顧頭不顧尾
range(起始位置,終止位置) -- [起始位置:終止位置]
range(終止位置) -- [:終止位置]
range(起始位置,終止位置,步長) -- [起始位置:終止位置:步長]
for 和 range配合使用
面試題:
lst = []
for i in lst:
lst.append("alex")
print(lst) # 不會打印內容 由於lst是空的
lst = [1,2]
for i in lst:
lst.append("alex")
print(lst) # 循環打印lst中的內容 -- 此循環是死循環
lst = [1,2]
for i in lst:
lst.append("alex")
print(lst) # 死循環 -- 不會打印內容
lst = []
for i in range(5):
lst.append([])
print(lst) # [[],[],[],[],[]]
lst = [1,2]
lst[0] = lst
print(lst) # [[...],2]