溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python全棧字符串和列表怎么使用

發(fā)布時(shí)間:2021-12-03 12:34:41 來(lái)源:億速云 閱讀:278 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要講解了“Python全棧字符串和列表怎么使用”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Python全棧字符串和列表怎么使用”吧!

    1. format格式化_填充符號(hào)使用

    1.1 format格式化

    字符串的格式化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)

    1.2 format的填充符號(hào)的使用

    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)

    2. 字符串相關(guān)的方法

    字符串的相關(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)

    3. 列表的相關(guān)操作

    列表的相關(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)

    4. 列表的相關(guān)函數(shù)

    列表相關(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)

    5. 深淺拷貝

    列表的深淺拷貝

    # ### 列表的深淺拷貝
    """
    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è)方法 使用同列表
    """

    Python全棧字符串和列表怎么使用

    Python全棧字符串和列表怎么使用

    小提示:

    :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ù)字

    6. 小練習(xí)

    (1)字符串相關(guān)練習(xí)問(wèn)題:

    # ### 字符串相關(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))

    (2)列表相關(guān)練習(xí)問(wèn)題:

    # ### 列表相關(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)注!

    向AI問(wèn)一下細(xì)節(jié)

    免責(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)容。

    AI