您好,登錄后才能下訂單哦!
這篇文章主要講解了“Python全棧字符串和列表怎么使用”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Python全棧字符串和列表怎么使用”吧!
字符串的格式化format
# (1)順序傳參 """{}是format中的占位符""" strvar = "{}向{}開(kāi)了一槍,飲蛋而亡".format("趙沈陽(yáng)","需保障") print(strvar) # (2)索引傳參 strvar = "{1}向{0}開(kāi)了一槍,飲蛋而亡".format("趙沈陽(yáng)","需保障") print(strvar) # (3)關(guān)鍵字傳參 strvar = "{who1}摸了{(lán)who2}一下,回頭一巴掌".format(who1="王偉",who2="馬春妮") strvar = "{who1}摸了{(lán)who2}一下,回頭一巴掌".format(who1="馬春妮",who2="王偉") print(strvar) # (4)容器類型數(shù)據(jù)(列表或元祖)傳參 # 方法一 strvar = "{0[0]}摸了{(lán)1[1]}一下,嘿嘿一笑,有戲".format(["趙蜂擁","趙世超","楊元濤"] , ("王雨涵","王同培")) print(strvar) # 方法二(推薦) strvar = "{group1[0]}摸了{(lán)group2[1]}一下,嘿嘿一笑,有戲".format(group1=["趙蜂擁","趙世超","楊元濤"] , group2 = ("王雨涵","王同培")) print(strvar) # 方法三(推薦) 注意一.如果該容器是字典,通過(guò)鍵取值時(shí),不需要加引號(hào) 注意二.通過(guò)下標(biāo)取值時(shí),不能使用負(fù)號(hào)(逆向索引) strvar = "{group1[zfy]}摸了{(lán)group2[-1]}一下,嘿嘿一笑,有戲".format(group1={"zfy":"趙蜂擁","zsc":"趙世超"} , group2 = ("王雨涵","王同培")) print(strvar)
format的填充符號(hào)的使用( ^ > < )
""" ^ 原字符串居中顯示 > 原字符串居右顯示 < 原字符串居左顯示 {who:*^10} * : 填充的符號(hào) ^ : 原字符串居中顯示 10: 原字符串長(zhǎng)度 + 填充符號(hào)的長(zhǎng)度 = 10 """ strvar = "{who:*^10}去長(zhǎng)春長(zhǎng)生醫(yī)藥公司,{do:>>10},感覺(jué){feel:!<10}".format(who="李亞峰",do="扎疫苗",feel="血槽被掏空") print(strvar) # (6)進(jìn)制轉(zhuǎn)換等特殊符號(hào)的使用( :d :f :s :, ) # :d 整型占位符 (強(qiáng)制要求類型是整型) strvar = "劉一峰昨天晚上買了{(lán):d}個(gè)花露水泡腳".format(9) print(strvar) # :3d 占3位,不夠三位拿空格來(lái)補(bǔ)位(原字符串居右) strvar = "劉一峰昨天晚上買了{(lán):3d}個(gè)花露水泡腳".format(9) print(strvar) strvar = "劉一峰昨天晚上買了{(lán):<3d}個(gè)花露水泡腳".format(9) print(strvar) strvar = "劉一峰昨天晚上買了{(lán):^3d}個(gè)花露水泡腳".format(9) print(strvar) # :f 浮點(diǎn)型占位符 (強(qiáng)制要求類型是浮點(diǎn)型) 默認(rèn)保留小數(shù)6位 strvar = "王雨涵畢業(yè)之后的薪資是{:f}".format(9.9) print(strvar) # :.2f 小數(shù)點(diǎn)后保留2位,存在四舍五入 strvar = "王雨涵畢業(yè)之后的薪資是{:.2f}".format(9.188888) print(strvar) # :s 字符串占位符 strvar = "{:s}".format("楊元濤真帥") print(strvar) # :, 金錢占位符 strvar = "{:,}".format(12345678) print(strvar) # 綜合案例 strvar = "{:s}開(kāi)工資{:.2f}元,買了{(lán):d}個(gè)蘭博基尼".format("孫堅(jiān)",300000.12345,10) print(strvar)
字符串的相關(guān)函數(shù)
# *capitalize 字符串首字母大寫 strvar = "how are you" res = strvar.capitalize() print(res) # *title 每個(gè)單詞的首字母大寫 strvar = "how old are you" res = strvar.title() print(res) # *upper 將所有字母變成大寫 strvar = "How Old Are You" res = strvar.upper() print(res) # *lower 將所有字母變成小寫 res = strvar.lower() print(res) # *swapcase 大小寫互換 strvar = "How old Are You" res = strvar.swapcase() print(res) # *len 計(jì)算字符串的長(zhǎng)度 strvar = "python32真熱" res = len(strvar) print(res) # *count 統(tǒng)計(jì)字符串中某個(gè)元素的數(shù)量 """count(字符,[開(kāi)始值,結(jié)束值])""" strvar = "真熱真熱呀" # res = strvar.count("真") # 2 # res = strvar.count("熱",2) # 1 # res = strvar.count("熱",2,3) # 只有真這個(gè)字符 沒(méi)有熱 print(res) # *find 查找某個(gè)字符串第一次出現(xiàn)的索引位置 (推薦) """find(字符,[開(kāi)始值,結(jié)束值])""" strvar = "To be or not to be that is a question" res = strvar.find("to") res = strvar.find("be",4) # 如果find 返回的是 -1 代表沒(méi)找到 res = strvar.find("be",4,10) # 4 ~ 9 print(res) # *index 與 find 功能相同 find找不到返回-1,index找不到數(shù)據(jù)直接報(bào)錯(cuò) """ res = strvar.index("be",4,10) print(res) """ # *startswith 判斷是否以某個(gè)字符或字符串為開(kāi)頭 """ startswith(字符,[開(kāi)始值,結(jié)束值]) endswith(字符,[開(kāi)始值,結(jié)束值]) """ strvar = "To be or not to be that is a question" res = strvar.startswith("To") res = strvar.startswith("To",10) print(res) # *endswith 判斷是否以某個(gè)字符或字符串結(jié)尾 res = strvar.endswith("question") res = strvar.endswith("is",-14,-11) # is print(res) # ### is系列 # *isupper 判斷字符串是否都是大寫字母 strvar = "HOW A YOU" res = strvar.isupper() print(res) # *islower 判斷字符串是否都是小寫字母 strvar = "asdf - as" res = strvar.islower() print(res) # *isdecimal 檢測(cè)字符串是否以數(shù)字組成 必須是純數(shù)字 strvar = "abcdefg" strvar = "2134234.123" strvar = "2134234" res = strvar.isdecimal() print(res) # *split 按某字符將字符串分割成列表(默認(rèn)字符是空格) *** strvar = "you can you up no can no bb" lst = strvar.split() strvar = "you#can#you#up#no#can#no#bb" lst = strvar.split("#") print(lst) # *join 按某字符將列表拼接成字符串(容器類型都可) *** lst = ['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb'] strvar = " ".join(lst) strvar = "#".join(lst) print(strvar) # *replace 把字符串的舊字符換成新字符 *** """字符串.replace('舊字符','新字符'[, 限制替換的次數(shù)])""" strvar = "范冰冰愛(ài)不愛(ài)我,愛(ài)我,不愛(ài)我,愛(ài)我,不愛(ài)我" res = strvar.replace("不愛(ài)我","愛(ài)我") # 選擇替換的次數(shù) res = strvar.replace("不愛(ài)我","愛(ài)我",1) print(res) # *strip 默認(rèn)去掉首尾兩邊的空白符 *** """空白符 空格 \n \t \r ... """ strvar = " 周潤(rùn)發(fā) " res = strvar.strip() print(strvar) print(res) # *center 填充字符串,原字符居中 (默認(rèn)填充空格) """center(字符長(zhǎng)度,填充符號(hào))""" strvar = "趙世超" res = strvar.center(10) # res = strvar.center(10,"*") print(res)
列表的相關(guān)操作
# ### 列表的相關(guān)操作 lst1 = ["孟凡偉","康與眾"] lst2 = ["康與眾","張宇"] # (1)列表的拼接 (同元組) res = lst1 + lst2 print(res) # (2)列表的重復(fù) (同元組) res = lst1 * 3 print(res) # (3)列表的切片 (同元組) """ 語(yǔ)法 => 列表[::] 完整格式:[開(kāi)始索引:結(jié)束索引:間隔值] (1)[開(kāi)始索引:] 從開(kāi)始索引截取到列表的最后 (2)[:結(jié)束索引] 從開(kāi)頭截取到結(jié)束索引之前(結(jié)束索引-1) (3)[開(kāi)始索引:結(jié)束索引] 從開(kāi)始索引截取到結(jié)束索引之前(結(jié)束索引-1) (4)[開(kāi)始索引:結(jié)束索引:間隔值] 從開(kāi)始索引截取到結(jié)束索引之前按照指定的間隔截取列表元素值 (5)[:]或[::] 截取所有列表 """ lst = ["孟凡偉","康與眾","張宇","趙沈陽(yáng)","需保障","梁新宇","沈思雨"] # (1)[開(kāi)始索引:] 從開(kāi)始索引截取到列表的最后 res =lst[2:] print(res) # (2)[:結(jié)束索引] 從開(kāi)頭截取到結(jié)束索引之前(結(jié)束索引-1) res =lst[:3] print(res) # (3)[開(kāi)始索引:結(jié)束索引] 從開(kāi)始索引截取到結(jié)束索引之前(結(jié)束索引-1) res = lst[3:5] print(res) # (4)[開(kāi)始索引:結(jié)束索引:間隔值] 從開(kāi)始索引截取到結(jié)束索引之前按照指定的間隔截取列表元素值 # 正向截取 res = lst[::5] print(res) # 0 5 10 # 逆向截取 res = lst[::-3] # -1 -4 -7 print(res) # (5)[:]或[::] 截取所有列表 res = lst[:] res = lst[::] print(res) # (4)列表的獲取 (同元組) # 0 1 2 lst = [10,20,30] # -3 -2 -1 print(lst[-1]) # (5)列表的修改 ( 可切片 ) lst = ["孟凡偉","康與眾","張宇","趙沈陽(yáng)","需保障","梁新宇","沈思雨"] # 改單個(gè)值 lst[1] = "陳璐" print(lst) # 1.改多個(gè)值 (如果使用切片進(jìn)行修改,要求數(shù)據(jù)必須是Iterable可迭代性數(shù)據(jù)) # lst[1:4] = ["孫悟空","豬八戒","白骨精"] lst[1:4] = "你好" print(lst) # 2.改多個(gè)值(帶有步長(zhǎng)) """帶有步長(zhǎng)的切片修改,切出幾個(gè)元素就修改幾個(gè)元素,數(shù)量要一致.""" lst = ["孟凡偉","康與眾","張宇","趙沈陽(yáng)","需保障","梁新宇","沈思雨"] """0 3 6 """ lst[::3] = "abc" # lst[::3] = "ab" error print(lst) # (6)列表的刪除 ( 可切片 ) lst = ["孟凡偉","康與眾","張宇","趙沈陽(yáng)","需保障","梁新宇","沈思雨"] # 1.一次刪一個(gè) # del lst[2] # print(lst) # 2.一次刪一堆 # del lst[1:-1] # print(lst) # 3.注意點(diǎn) res = lst[1:-1] del res # 刪除的是res這個(gè)變量 和 列表無(wú)關(guān) print(lst) # 額外的注意點(diǎn) tup = (1,2,3,4,[10,11,12]) print(tup[-1]) tup[-1][-1] = 13 print(tup)
列表相關(guān)的函數(shù)
# ### 列表相關(guān)的函數(shù) # 增 # append 向列表的末尾添加新的元素 lst = ["趙沈陽(yáng)"] lst.append("沈思雨") print(lst) # insert 在指定索引之前插入元素 lst = ['趙沈陽(yáng)', '沈思雨'] lst.insert(1,"王偉") print(lst) # extend 迭代追加所有元素 """迭代追加的數(shù)據(jù)是可迭代性數(shù)據(jù)(容器類型數(shù)據(jù),range對(duì)象,迭代器)""" lst = ['趙沈陽(yáng)', '沈思雨'] # tup = (1,2,3) # lst.extend(tup) # strvar = "abc" # lst.extend(strvar) lst.extend(range(3)) print(lst) # 刪 # 1.pop 通過(guò)指定索引刪除元素,若沒(méi)有索引移除最后那個(gè) (推薦) lst = ["曹靜怡","王志國(guó)","鄧鵬","合理"] # 不指定下標(biāo),默認(rèn)刪除最后一個(gè) res = lst.pop() print(res) print(lst) # 指定下標(biāo),刪除具體某個(gè)元素 res = lst.pop(1) print(res) print(lst) # 2.remove 通過(guò)給予的值來(lái)刪除,如果多個(gè)相同元素,默認(rèn)刪除第一個(gè) lst = ["曹靜怡","王志國(guó)","合理","鄧鵬","合理"] res = lst.remove("合理") print(res) print(lst) # 3.clear 清空列表 lst = ["曹靜怡","王志國(guó)","合理","鄧鵬","合理"] lst.clear() print(lst) # 改查 參考4.py # 列表的其他相關(guān)函數(shù) # index 獲取某個(gè)值在列表中的索引 lst = ["曹靜怡","王志國(guó)","合理","鄧鵬","合理","鄧鵬輝","鄧鵬藍(lán)","合理","鄧鵬綠"] res = lst.index("合理") res = lst.index("合理",3) res = lst.index("合理",3,6) # 3 4 5 # res = lst.index("合理大") error print(res) # count 計(jì)算某個(gè)元素出現(xiàn)的次數(shù) res = lst.count("合理") # 沒(méi)有范圍的概念 print(res) # sort 對(duì)列表排序 lst = [-90,-100,-1,90,78] # 從小到大進(jìn)行排序 lst.sort() # 從大到小進(jìn)行排序 lst.sort(reverse=True) print(lst) # 對(duì)字符串進(jìn)行排序(按照ascii編碼) lst = ["kobi","james","jordon","yaoming","yi"] lst.sort() print(lst) # 是否可以對(duì)中文排序(了解 無(wú)規(guī)律可循) lst = ["王文","蔡徐坤"] lst.sort() print(lst) # reverse 列表反轉(zhuǎn)操作 lst = [1,2,"a","蔡徐坤","易烊千璽"] lst.reverse() print(lst)
列表的深淺拷貝
# ### 列表的深淺拷貝 """ a = 100 b = a a = 200 print(b) lst1 = [1,2,3] lst2 = lst1 lst1.append(4) print(lst2) """ # 1.淺拷貝 import copy """模塊.方法() 同名模塊下的同名方法""" # 方法一 (推薦) """ lst1 = [1,2,3] lst2 = copy.copy(lst1) lst1.append(10) print(lst2) print(lst1) """ # 方法二 """ lst1 = [1,2,3] lst2 = lst1.copy() lst1.append(11) print(lst1) print(lst2) """ # 2.深拷貝 """把所有層級(jí)的容器元素都單獨(dú)拷貝一份,放到獨(dú)立的空間中""" """ # 現(xiàn)象 lst1 = [1,2,3,[4,5,6]] lst2 = copy.copy(lst1) lst1[-1].append(77) lst1.append(8888) print(lst2) print(lst1) """ import copy lst1 = [1,2,3,[4,5,6]] lst2 = copy.deepcopy(lst1) lst1[-1].append(999) print(lst2) print(lst1) # 其他容器的深拷貝 lst1 = (1,2,3,{"a":1,"b":[10,20]}) lst2 = copy.deepcopy(lst1) lst1[-1]["b"].append(30) print(lst1) print(lst2) """ 總結(jié): 淺拷貝: 只拷貝一級(jí)容器中的所有元素獨(dú)立出一個(gè)單獨(dú)的空間. 深拷貝: 把所有層級(jí)的容器中所有元素都單獨(dú)拷貝一份,形成獨(dú)立的空間 """ """ tuple 只有count index 兩個(gè)方法 使用同列表 """
:d 強(qiáng)制接收的數(shù)據(jù)為整型,如果不是整型則報(bào)錯(cuò) # 會(huì)報(bào)錯(cuò),因?yàn)?.5是小數(shù) strvar = "劉一峰昨天晚上買了%d個(gè)花露水泡腳".formar(9.5) print(strvar) # 不報(bào)錯(cuò),3.88會(huì)強(qiáng)轉(zhuǎn)成int類型為3 strvar = "劉一峰昨天晚上買了%d個(gè)花露水泡腳" % (3.88) print(strvar) isdecimal strvar = "123.34" res = strvar.isdecimal() print(res) 這個(gè)值是False,因?yàn)?會(huì)認(rèn)為不是一個(gè)數(shù)字 "123" 這個(gè)才會(huì)認(rèn)為是純數(shù)字
# ### 字符串相關(guān)練習(xí) 1.有變量name = "aleX leNb" 完成如下操作: 移除 name 變量對(duì)應(yīng)的值兩邊的空格,并輸出處理結(jié)果 1)移除name變量左邊的"al"并輸出處理結(jié)果 2)移除name變量右面的"Nb",并輸出處理結(jié)果 3)移除name變量開(kāi)頭的a與最后的"b",并輸出處理結(jié)果 4)判斷 name 變量是否以 "al" 開(kāi)頭,并輸出結(jié)果 5)判斷name變量是否以"Nb"結(jié)尾,并輸出結(jié)果 6)將 name 變量對(duì)應(yīng)的值中的 所有的"l" 替換為 "p",并輸出結(jié)果 7)將name變量對(duì)應(yīng)的值中的第一個(gè)"l"替換成"p",并輸出結(jié)果 8)將 name 變量對(duì)應(yīng)的值根據(jù) 所有的"l" 分割,并輸出結(jié)果。 name = "aleX leNb" res = name.split('l') print(res) 9)將name變量對(duì)應(yīng)的值根據(jù)第一個(gè)"l"分割,并輸出結(jié)果。 10)將 name 變量對(duì)應(yīng)的值變大寫,并輸出結(jié)果 11)將 name 變量對(duì)應(yīng)的值變小寫,并輸出結(jié)果 12)將name變量對(duì)應(yīng)的值首字母"a"大寫,并輸出結(jié)果 13)判斷name變量對(duì)應(yīng)的值字母"l"出現(xiàn)幾次,并輸出結(jié)果 14)如果判斷name變量對(duì)應(yīng)的值前四位"l"出現(xiàn)幾次,并輸出結(jié)果 15)從name變量對(duì)應(yīng)的值中找到"N"對(duì)應(yīng)的索引(如果找不到則報(bào)錯(cuò)),并輸出結(jié)果 16)從name變量對(duì)應(yīng)的值中找到"N"對(duì)應(yīng)的索引(如果找不到則返回-1)輸出結(jié)果 17)從name變量對(duì)應(yīng)的值中找到"X le"對(duì)應(yīng)的索引,并輸出結(jié)果 18)請(qǐng)輸出 name 變量對(duì)應(yīng)的值的第 2 個(gè)字符? 19)請(qǐng)輸出 name 變量對(duì)應(yīng)的值的前 3 個(gè)字符? 20)請(qǐng)輸出 name 變量對(duì)應(yīng)的值的后 2 個(gè)字符? 21)請(qǐng)輸出 name 變量對(duì)應(yīng)的值中 "e" 所在索引位置? 2.實(shí)現(xiàn)一個(gè)整數(shù)加法計(jì)算器(兩個(gè)數(shù)相加): 如:content = input("請(qǐng)輸入內(nèi)容:") 用戶輸入:5+9或3+ 9或5 + 6,然后進(jìn)行分割再進(jìn)行計(jì)算 3.升級(jí)題:實(shí)現(xiàn)一個(gè)整數(shù)加法計(jì)算器(多個(gè)數(shù)相加): 如:content = input("請(qǐng)輸入內(nèi)容:") 用戶輸入:5+9+6 +12+ 13,然后進(jìn)行分割再進(jìn)行計(jì)算。 4.計(jì)算用戶輸入的內(nèi)容中有幾個(gè)整數(shù)(以個(gè)位數(shù)為單位)。 如:content = input("請(qǐng)輸入內(nèi)容:") # 如fhdal234slfh98769fjdla 5.等待用戶輸入內(nèi)容,是否包含敏感字符? 如果存在敏感字符提示“存在敏感字符請(qǐng)重新輸入”,敏感字符:“粉嫩”、“鐵錘” 6.制作趣味模板程序需求:等待用戶輸入名字、地點(diǎn)、愛(ài)好 拼裝數(shù)據(jù)打印出:敬愛(ài)可親的xxx,最喜歡在xxx地方xxx
字符串相關(guān)練習(xí)答案:
# ### 字符串相關(guān)練習(xí) # 1.有變量name = "aleX leNb" 完成如下操作: name = "aleX leNb" # 移除 name 變量對(duì)應(yīng)的值兩邊的空格,并輸出處理結(jié)果 name.strip() # 1)移除name變量左邊的"al"并輸出處理結(jié)果 name.lstrip("al") # 2)移除name變量右面的"Nb",并輸出處理結(jié)果 name.rstrip("Nb") # 3)移除name變量開(kāi)頭的a與最后的"b",并輸出處理結(jié)果 print(name[1:-1]) # 4)判斷 name 變量是否以 "al" 開(kāi)頭,并輸出結(jié)果 res = name.startswith("al") print(res) # 5)判斷name變量是否以"Nb"結(jié)尾,并輸出結(jié)果 res = name.endswith("Nb") print(res) # 6)將 name 變量對(duì)應(yīng)的值中的 所有的"l" 替換為 "p",并輸出結(jié)果 res = name.replace("l","p") print(res) # 7)將name變量對(duì)應(yīng)的值中的第一個(gè)"l"替換成"p",并輸出結(jié)果 res = name.replace("l","p",1) print(res) # 8)將 name 變量對(duì)應(yīng)的值根據(jù) 所有的"l" 分割,并輸出結(jié)果。 res = name.split("l") print(res) # 9)將name變量對(duì)應(yīng)的值根據(jù)第一個(gè)"l"分割,并輸出結(jié)果。 # 字符串.split("分割的字符",分割的次數(shù)) # 從左向右 print(name.split("l",1)) strvar = "you-can-you-up" # 從右向左 print(strvar.rsplit("-",2)) # 10)將 name 變量對(duì)應(yīng)的值變大寫,并輸出結(jié)果 name.upper() # 11)將 name 變量對(duì)應(yīng)的值變小寫,并輸出結(jié)果 name.lower() # 12)將name變量對(duì)應(yīng)的值首字母"a"大寫,并輸出結(jié)果 print(name.capitalize()) # 13)判斷name變量對(duì)應(yīng)的值字母"l"出現(xiàn)幾次,并輸出結(jié)果 print(name.count("l")) # 14)如果判斷name變量對(duì)應(yīng)的值前四位"l"出現(xiàn)幾次,并輸出結(jié)果 print(name.count("l",0,4)) # 15)從name變量對(duì)應(yīng)的值中找到"N"對(duì)應(yīng)的索引(如果找不到則報(bào)錯(cuò)),并輸出結(jié)果 print(name.index("N")) # 16)從name變量對(duì)應(yīng)的值中找到"N"對(duì)應(yīng)的索引(如果找不到則返回-1)輸出結(jié)果 print(name.find("N")) # 17)從name變量對(duì)應(yīng)的值中找到"X le"對(duì)應(yīng)的索引,并輸出結(jié)果 print(name.find("X le")) # 18)請(qǐng)輸出 name 變量對(duì)應(yīng)的值的第 2 個(gè)字符? print(name[1] ) # 19)請(qǐng)輸出 name 變量對(duì)應(yīng)的值的前 3 個(gè)字符? print(name[:3]) # 20)請(qǐng)輸出 name 變量對(duì)應(yīng)的值的后 2 個(gè)字符? print(name[-2:]) # 21)請(qǐng)輸出 name 變量對(duì)應(yīng)的值中 "e" 所在索引位置? name = "aleX leNb" print(name.find("e")) print("<=====>") for i in range(len(name)): if name[i] == "e":print(i) # 2.實(shí)現(xiàn)一個(gè)整數(shù)加法計(jì)算器(兩個(gè)數(shù)相加): # 如:content = input("請(qǐng)輸入內(nèi)容:") 用戶輸入:5+9或3+ 9或5 + 6,然后進(jìn)行分割再進(jìn)行計(jì)算 """ content = input("請(qǐng)輸入內(nèi)容:") print(content) a,b = content.split("+") print( a,b ) print(float(a.strip()) + float(b.strip())) """ # 3.升級(jí)題:實(shí)現(xiàn)一個(gè)整數(shù)加法計(jì)算器(多個(gè)數(shù)相加): # 如:content = input("請(qǐng)輸入內(nèi)容:") 用戶輸入:5+9+6 +12+ 13,然后進(jìn)行分割再進(jìn)行計(jì)算。 """ content = input("請(qǐng)輸入內(nèi)容:") print(content) lst = content.split("+") print(lst) total = 0 for i in lst: total += float(i.strip()) print(total) """ # 4.計(jì)算用戶輸入的內(nèi)容中有幾個(gè)整數(shù). # 如:content = input("請(qǐng)輸入內(nèi)容:") # 如fhdal234slfh98769fjdla """ content = input("請(qǐng)輸入內(nèi)容:") total = 0 for i in content: if i.isdecimal(): total += 1 print(total) """ # 5.等待用戶輸入內(nèi)容,是否包含敏感字符? # 如果存在敏感字符提示“存在敏感字符請(qǐng)重新輸入”,敏感字符:“粉嫩”、“鐵錘” # 方法一 ''' lst = ["粉嫩","鐵錘"] while True: # 重置sign標(biāo)記 sign = False content = input("請(qǐng)輸入內(nèi)容:") # print(content) """ if content.find("粉嫩") == -1 and content.find("鐵錘") == -1: print("ok") else: print("not ok") """ # 小分鐵嫩錘 for i in lst: if i in content: # 把sign標(biāo)記設(shè)置成True sign = True break # 如果sign 這個(gè)標(biāo)記是True,敏感,否則不敏感; if sign == True: print("存在敏感字符請(qǐng)重新輸入") else: print("不存在敏感字符") break ''' print("<====>") # 方法二 (python特有) 額外的 """如果在循環(huán)時(shí),遇到break臨時(shí)終止了循環(huán),else這個(gè)分支不執(zhí)行的 只有在正常全部循環(huán)執(zhí)行了一遍之后,才會(huì)執(zhí)行else分支 """ """ for i in range(3): if i == 2: break else: print("ok") """ """ lst = ["粉嫩","鐵錘"] # 觸發(fā)break,不執(zhí)行else , 不觸發(fā)break , 執(zhí)行else while True: content = input("請(qǐng)輸入內(nèi)容:") for i in lst: # 但凡發(fā)現(xiàn)了敏感詞匯,直接break,就不會(huì)走else分支了 if i in content: print("是敏感詞匯,請(qǐng)重新輸入") # 終止內(nèi)層的for循環(huán) break else: print("不是敏感詞匯") # 終止外層while循環(huán) break """ # 6.制作趣味模板程序需求:等待用戶輸入名字、地點(diǎn)、愛(ài)好 # 拼裝數(shù)據(jù)打印出:敬愛(ài)可親的xxx,最喜歡在xxx地方xxx while True: name = input("請(qǐng)輸入姓名: 按q可以退出~") if name.upper() == "Q": print("歡迎老鐵下次來(lái)玩~") break place = input("請(qǐng)輸入地點(diǎn):") hobby = input("請(qǐng)輸入愛(ài)好:") print("敬愛(ài)可親的{},最喜歡在{}地方{}".format(name,place,hobby))
# ### 列表相關(guān)練習(xí) 1.li = ["alex", "WuSir", "xboy", "oldboy"] 1)列表中追加元素"seven",并輸出添加后的列表 2)請(qǐng)?jiān)诹斜淼牡?個(gè)位置插入元素"Tony",并輸出添加后的列表 3)請(qǐng)修改列表第2個(gè)位置的元素為"Kelly",并輸出修改后的列表 4)請(qǐng)將列表l2=[1,"a",3,4,"heart"]的每一個(gè)元素添加到列表li中,一行 代碼實(shí)現(xiàn),不允許循環(huán)添加。 5)請(qǐng)將字符串s = "qwert"的每一個(gè)元素添加到列表li中,一行代碼實(shí)現(xiàn),不允許循環(huán)添加。 6)請(qǐng)刪除列表中的元素"alex",并輸出添加后的列表 7)請(qǐng)刪除列表請(qǐng)刪除列表中的第2至4個(gè)元素,并輸出刪除元素后的列表 8)刪除列表中的第2個(gè)元素,并輸出刪除的元素和刪除元素后的列表 9)請(qǐng)將列表所有得元素反轉(zhuǎn),并輸出反轉(zhuǎn)后的列表 10)請(qǐng)計(jì)算出"alex"元素在列表li中出現(xiàn)的次數(shù),并輸出該次數(shù)。 2,寫代碼,有如下列表,利用切片實(shí)現(xiàn)每一個(gè)功能 li = [1, 3, 2, "a", 4, "b", 5,"c"] 1)通過(guò)對(duì)li列表的切片形成新的列表l1,l1 = [1,3,2] 2)通過(guò)對(duì)li列表的切片形成新的列表l2,l2 = ["a",4,"b"] 3)通過(guò)對(duì)li列表的切片形成新的列表l3,l3 = ["1,2,4,5] 4)通過(guò)對(duì)li列表的切片形成新的列表l4,l4 = [3,"a","b"] 5)通過(guò)對(duì)li列表的切片形成新的列表l5,l5 = ["c"] 6)通過(guò)對(duì)li列表的切片形成新的列表l6,l6 = ["b","a",3] 3,寫代碼,有如下列表,按照要求實(shí)現(xiàn)每一個(gè)功能。 lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"] 1)將列表lis中的"tt"變成大寫。 2)將列表中的數(shù)字3變成字符串"100"。 3)將列表中的字符串"1"變成數(shù)字101 4,li = ["alex", "eric", "rain"] 利用下劃線將列表的每一個(gè)元素拼接成字符串"alex_eric_rain" 5.利用for循環(huán)打印出下面列表的索引。 li = ["alex", "WuSir", "xboy", "oldboy"] 6.利用for循環(huán)和range 找出50以內(nèi)能被3整除的數(shù),并將這些數(shù)插入到一個(gè)新列表中。 7.利用for循環(huán)和range從100~10,倒序?qū)⑺械呐紨?shù)添加到一個(gè)新列表中,然后對(duì)列表的元素進(jìn)行篩選,將能被4整除的數(shù)留下來(lái) 8.查找列表li中的元素,移除每個(gè)元素的空格,并找出以"A"或者"a"開(kāi)頭,并以"c"結(jié)尾的所有元素,并添加到一個(gè)新列表中,最后循環(huán)打印這個(gè)新列表。 li = ["xboy ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"] 9.敏感詞列表 li = ["張三", "李四", "王二", "麻子"] 將用戶輸入的內(nèi)容中的敏感詞匯替換成等長(zhǎng)度的*(張三就替換***),并添加到一個(gè)列表中;如果用戶輸入的內(nèi)容沒(méi)有敏感詞匯,則直接添加到新列表中。 10.li = [1, 3, 4, "alex", [3, 7, “23aa”,8, "xboy"], 5,(‘a(chǎn)','b')] 循環(huán)打印列表中的每個(gè)元素,并轉(zhuǎn)化為小寫,遇到列表則再循環(huán)打印出它里面的元素。 11.tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44]) a.講述元組的特性 b.請(qǐng)問(wèn)tu變量中的第一個(gè)元素 "alex" 是否可被修改? c.請(qǐng)問(wèn)tu變量中的"k2"對(duì)應(yīng)的值是什么類型?是否可以被修改?如果可以,請(qǐng)?jiān)谄渲刑砑右粋€(gè)元素 "Seven" d.請(qǐng)問(wèn)tu變量中的"k3"對(duì)應(yīng)的值是什么類型?是否可以被修改?如果可以,請(qǐng)?jiān)谄渲刑砑右粋€(gè)元素 "Seven"
列表相關(guān)練習(xí)答案:
# ### 列表相關(guān)練習(xí) # 1.li = ["alex", "WuSir", "xboy", "oldboy"] li = ["alex", "WuSir", "xboy", "oldboy"] # 1)列表中追加元素"seven",并輸出添加后的列表 li.append("seven") # 2)請(qǐng)?jiān)诹斜淼牡?個(gè)位置插入元素"Tony",并輸出添加后的列表 li.insert(0,"Tony") # 3)請(qǐng)修改列表第2個(gè)位置的元素為"Kelly",并輸出修改后的列表 li[1] = "Kelly" # 4)請(qǐng)將列表l2=[1,"a",3,4,"heart"]的每一個(gè)元素添加到列表li中,一行 # 代碼實(shí)現(xiàn),不允許循環(huán)添加。 l2=[1,"a",3,4,"heart"] li.extend(l2) print(li) # 5)請(qǐng)將字符串s = "qwert"的每一個(gè)元素添加到列表li中,一行代碼實(shí)現(xiàn),不允許循環(huán)添加。 s = "qwert" li.extend(s) print(li) # 6)請(qǐng)刪除列表中的元素"Tony",并輸出添加后的列表 li.remove("Tony") print(li) # 7)請(qǐng)刪除列表中的第2至4個(gè)元素,并輸出刪除元素后的列表 # del li[1:4] # print(li) # 8)刪除列表中的第2個(gè)元素,并輸出刪除的元素和刪除元素后的列表 res = li.pop(1) print(res) print(li) # 9)請(qǐng)將列表所有得元素反轉(zhuǎn),并輸出反轉(zhuǎn)后的列表 li.reverse() print(li) # 10)請(qǐng)計(jì)算出"alex"元素在列表li中出現(xiàn)的次數(shù),并輸出該次數(shù)。 print(li.count("xboy")) # 2,寫代碼,有如下列表,利用切片實(shí)現(xiàn)每一個(gè)功能 li = [1, 3, 2, "a", 4, "b", 5,"c"] # 1)通過(guò)對(duì)li列表的切片形成新的列表l1,l1 = [1,3,2] print(li[:3]) # 2)通過(guò)對(duì)li列表的切片形成新的列表l2,l2 = ["a",4,"b"] print(li[3:6]) # 3)通過(guò)對(duì)li列表的切片形成新的列表l3,l3 = ["1,2,4,5] print(li[::2]) # 4)通過(guò)對(duì)li列表的切片形成新的列表l4,l4 = [3,"a","b"] print(li[1:-1:2]) # 5)通過(guò)對(duì)li列表的切片形成新的列表l5,l5 = ["c"] print(li[-1:]) # 6)通過(guò)對(duì)li列表的切片形成新的列表l6,l6 = ["b","a",3] print(li[-3::-2]) # 3,寫代碼,有如下列表,按照要求實(shí)現(xiàn)每一個(gè)功能。 lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"] # 1)將列表lis中的"tt"變成大寫。 print(lis[3][2][1][0].upper()) # 2)將列表中的數(shù)字3變成字符串"100"。 lis[3][2][1][1] = "100" # 3)將列表中的字符串"1"變成數(shù)字101 # lis[3][2][1][-1] = 101 # print(lis) lis[3][2][1].remove("1") # 先刪 lis[3][2][1].append(101) # 在增 print(lis) # 4, li = ["alex", "eric", "rain"] # 利用下劃線將列表的每一個(gè)元素拼接成字符串"alex_eric_rain" # 一 print("_".join(li)) # 二 strvar = "" for i in li: strvar += i + "_" print(strvar.rstrip("_")) # 5.利用for循環(huán)打印出下面列表的索引。 li = ["alex", "WuSir", "xboy", "oldboy"] # 一 for i in range(len(li)): print(i) # 二 for i in li: print(li.index(i)) # 6.利用for循環(huán)和range 找出50以內(nèi)能被3整除的數(shù),并將這些數(shù)插入到一個(gè)新列表中。 a = [] for i in range(50): if i % 3 == 0 : a.append(i) print(a) # 7.利用for循環(huán)和range從100~10,倒序?qū)⑺械呐紨?shù)添加到一個(gè)新列表中,然后對(duì)列表的元素進(jìn)行篩選,將能被4整除的數(shù)留下來(lái) a = [] for i in range(100,9,-2): if i % 4 == 0: a.append(i) print(a) # 8.查找列表li中的元素,移除每個(gè)元素的空格,并找出以"A"或者"a"開(kāi)頭,并以"c"結(jié)尾的所有元素,并添加到一個(gè)新列表中,最后循環(huán)打印這個(gè)新列表。 li = ["xboy ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"] lst2 = [] for j in li: if (j.strip().startswith("A") or j.strip().startswith("a")) and j.strip().endswith("c"): lst2.append(j.strip()) print(lst2) # 9.敏感詞列表 li = ["張三", "李四", "王二", "麻子"] # 將用戶輸入的內(nèi)容中的敏感詞匯替換成等長(zhǎng)度的*(張三就替換***),并添加到一個(gè)列表中;如果用戶輸入的內(nèi)容沒(méi)有敏感詞匯,則直接添加到新列表中。 li = ["張三", "李四", "王二", "麻子"] lst = [] """ while True: strvar = input("請(qǐng)輸入詞匯:") lst.append(strvar.replace("張三","***").replace("李四","***").replace("王二","***").replace("麻子","*****")) print(lst) """ """ while True: strvar = input("請(qǐng)輸入詞匯:") # 按q退出 if strvar.upper() == "Q": break # 過(guò)濾敏感詞匯 for i in li: if i in strvar: strvar = strvar.replace(i,len(i) * "*") # 把處理數(shù)據(jù)放到列表中 lst.append(strvar) print(lst) """ # 10. print("<====>") li = [1, 3, 4, "ALEx", [3, 7, "23AA",8, "XBoy"], 5,("A","b")] # 循環(huán)打印列表中的每個(gè)元素,并轉(zhuǎn)化為小寫,遇到列表則再循環(huán)打印出它里面的元素。 for i in li: # 判斷是否是字符串 if isinstance(i,str): print(i.lower()) # 判斷是否是Number elif isinstance(i,(int,bool,complex,float)): print(i) # 判斷是否是容器 elif isinstance(i,(list,tuple,set,dict)): for j in i: # 判斷容器中的元素是不是字符串 if isinstance(j,str): print(j.lower()) # 不是的話直接輸出即可 else: print(j) 11.tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44]) # a.講述元組的特性 可獲取 , 不可修改 , 有序 # b.請(qǐng)問(wèn)tu變量中的第一個(gè)元素 "alex" 是否可被修改? 不可以 # c.請(qǐng)問(wèn)tu變量中的"k2"對(duì)應(yīng)的值是什么類型?是否可以被修改?如果可以,請(qǐng)?jiān)谄渲刑砑右粋€(gè)元素 "Seven" 列表 能改 tu[1][2]["k2"].append("Seven") # d.請(qǐng)問(wèn)tu變量中的"k3"對(duì)應(yīng)的值是什么類型?是否可以被修改?如果可以,請(qǐng)?jiān)谄渲刑砑右粋€(gè)元素 "Seven" 元組,不行,
感謝各位的閱讀,以上就是“Python全棧字符串和列表怎么使用”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Python全棧字符串和列表怎么使用這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。