欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python全棧之字符串和列表相關(guān)操作

 更新時(shí)間:2021年12月01日 16:07:18   作者:熬夜泡枸杞  
這篇文章主要為大家介紹了Python字符串和列表相關(guān)操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

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

1.1 format格式化

字符串的格式化format

# (1)順序傳參
"""{}是format中的占位符"""
strvar = "{}向{}開了一槍,飲蛋而亡".format("趙沈陽","需保障")
print(strvar)
# (2)索引傳參
strvar = "{1}向{0}開了一槍,飲蛋而亡".format("趙沈陽","需保障")
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)
# 方法三(推薦) 注意一.如果該容器是字典,通過鍵取值時(shí),不需要加引號(hào)  注意二.通過下標(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},感覺{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位,不夠三位拿空格來補(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}開工資{:.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(字符,[開始值,結(jié)束值])"""
strvar = "真熱真熱呀"
# res = strvar.count("真")     # 2
# res = strvar.count("熱",2)   # 1
# res = strvar.count("熱",2,3) # 只有真這個(gè)字符 沒有熱
print(res)
# *find 查找某個(gè)字符串第一次出現(xiàn)的索引位置  (推薦)
"""find(字符,[開始值,結(jié)束值])"""
strvar = "To be or not to be that is a question"
res = strvar.find("to")
res = strvar.find("be",4)
# 如果find 返回的是 -1 代表沒找到
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è)字符或字符串為開頭 
"""
startswith(字符,[開始值,結(jié)束值])
endswith(字符,[開始值,結(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 = "范冰冰愛不愛我,愛我,不愛我,愛我,不愛我"
res = strvar.replace("不愛我","愛我")
# 選擇替換的次數(shù)
res = strvar.replace("不愛我","愛我",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)列表的切片   (同元組)
"""
語法 => 列表[::]  完整格式:[開始索引:結(jié)束索引:間隔值]
	(1)[開始索引:]  從開始索引截取到列表的最后
	(2)[:結(jié)束索引]  從開頭截取到結(jié)束索引之前(結(jié)束索引-1)
	(3)[開始索引:結(jié)束索引]  從開始索引截取到結(jié)束索引之前(結(jié)束索引-1)
	(4)[開始索引:結(jié)束索引:間隔值]  從開始索引截取到結(jié)束索引之前按照指定的間隔截取列表元素值
	(5)[:]或[::]  截取所有列表
"""
lst = ["孟凡偉","康與眾","張宇","趙沈陽","需保障","梁新宇","沈思雨"]
# (1)[開始索引:]  從開始索引截取到列表的最后
res =lst[2:]
print(res)
# (2)[:結(jié)束索引]  從開頭截取到結(jié)束索引之前(結(jié)束索引-1)
res =lst[:3]
print(res)
# (3)[開始索引:結(jié)束索引]  從開始索引截取到結(jié)束索引之前(結(jié)束索引-1)
res = lst[3:5]
print(res)
# (4)[開始索引:結(jié)束索引:間隔值]  從開始索引截取到結(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 = ["孟凡偉","康與眾","張宇","趙沈陽","需保障","梁新宇","沈思雨"]
# 改單個(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 = ["孟凡偉","康與眾","張宇","趙沈陽","需保障","梁新宇","沈思雨"]
"""0 3 6 """
lst[::3] = "abc"
# lst[::3] = "ab" error
print(lst)
# (6)列表的刪除   ( 可切片 )
lst = ["孟凡偉","康與眾","張宇","趙沈陽","需保障","梁新宇","沈思雨"]
# 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è)變量 和 列表無關(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 = ["趙沈陽"]
lst.append("沈思雨")
print(lst)
# insert 在指定索引之前插入元素
lst = ['趙沈陽', '沈思雨']
lst.insert(1,"王偉")
print(lst)
# extend 迭代追加所有元素
"""迭代追加的數(shù)據(jù)是可迭代性數(shù)據(jù)(容器類型數(shù)據(jù),range對(duì)象,迭代器)"""
lst = ['趙沈陽', '沈思雨']
# tup = (1,2,3)
# lst.extend(tup)
# strvar = "abc"
# lst.extend(strvar)
lst.extend(range(3))
print(lst)
# 刪
# 1.pop 通過指定索引刪除元素,若沒有索引移除最后那個(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 通過給予的值來刪除,如果多個(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("合理") # 沒有范圍的概念
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ì)中文排序(了解 無規(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è)方法 使用同列表
"""

請(qǐng)?zhí)砑訄D片描述

請(qǐng)?zhí)砑訄D片描述

小提示:

: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í)問題:

# ### 字符串相關(guān)練習(xí)
1.有變量name = "aleX leNb" 完成如下操作:
移除 name 變量對(duì)應(yīng)的值兩邊的空格,并輸出處理結(jié)果
1)移除name變量左邊的"al"并輸出處理結(jié)果
2)移除name變量右面的"Nb",并輸出處理結(jié)果
3)移除name變量開頭的a與最后的"b",并輸出處理結(jié)果
4)判斷 name 變量是否以 "al" 開頭,并輸出結(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)、愛好
拼裝數(shù)據(jù)打印出:敬愛可親的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變量開頭的a與最后的"b",并輸出處理結(jié)果
print(name[1:-1])
# 4)判斷 name 變量是否以 "al" 開頭,并輸出結(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)、愛好
# 拼裝數(shù)據(jù)打印出:敬愛可親的xxx,最喜歡在xxx地方xxx
while True:	
	name = input("請(qǐng)輸入姓名:  按q可以退出~")
	if name.upper() == "Q":
		print("歡迎老鐵下次來玩~")
		break
	place = input("請(qǐng)輸入地點(diǎn):")
	hobby = input("請(qǐng)輸入愛好:")
	print("敬愛可親的{},最喜歡在{}地方{}".format(name,place,hobby))

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

# ### 列表相關(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)通過對(duì)li列表的切片形成新的列表l1,l1 = [1,3,2]
2)通過對(duì)li列表的切片形成新的列表l2,l2 = ["a",4,"b"]
3)通過對(duì)li列表的切片形成新的列表l3,l3 = ["1,2,4,5]
4)通過對(duì)li列表的切片形成新的列表l4,l4 = [3,"a","b"]
5)通過對(duì)li列表的切片形成新的列表l5,l5 = ["c"]
6)通過對(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ù)留下來
8.查找列表li中的元素,移除每個(gè)元素的空格,并找出以"A"或者"a"開頭,并以"c"結(jié)尾的所有元素,并添加到一個(gè)新列表中,最后循環(huán)打印這個(gè)新列表。
li = ["xboy ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", "  aqc"]
9.敏感詞列表 li = ["張三", "李四", "王二", "麻子"]
將用戶輸入的內(nèi)容中的敏感詞匯替換成等長(zhǎng)度的*(張三就替換***),并添加到一個(gè)列表中;如果用戶輸入的內(nè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)問tu變量中的第一個(gè)元素 "alex" 是否可被修改?
c.請(qǐng)問tu變量中的"k2"對(duì)應(yīng)的值是什么類型?是否可以被修改?如果可以,請(qǐng)?jiān)谄渲刑砑右粋€(gè)元素 "Seven"
d.請(qǐng)問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)通過對(duì)li列表的切片形成新的列表l1,l1 = [1,3,2]
print(li[:3])
# 2)通過對(duì)li列表的切片形成新的列表l2,l2 = ["a",4,"b"]
print(li[3:6])
# 3)通過對(duì)li列表的切片形成新的列表l3,l3 = ["1,2,4,5]
print(li[::2])
# 4)通過對(duì)li列表的切片形成新的列表l4,l4 = [3,"a","b"]
print(li[1:-1:2])
# 5)通過對(duì)li列表的切片形成新的列表l5,l5 = ["c"]
print(li[-1:])
# 6)通過對(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ù)留下來
a = []
for i in range(100,9,-2):
	if i % 4 == 0:
		a.append(i)	
print(a)

# 8.查找列表li中的元素,移除每個(gè)元素的空格,并找出以"A"或者"a"開頭,并以"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)容沒有敏感詞匯,則直接添加到新列表中。
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
	# 過濾敏感詞匯
	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)問tu變量中的第一個(gè)元素 "alex" 是否可被修改? 不可以
# c.請(qǐng)問tu變量中的"k2"對(duì)應(yīng)的值是什么類型?是否可以被修改?如果可以,請(qǐng)?jiān)谄渲刑砑右粋€(gè)元素 "Seven"
列表 能改 tu[1][2]["k2"].append("Seven")
# d.請(qǐng)問tu變量中的"k3"對(duì)應(yīng)的值是什么類型?是否可以被修改?如果可以,請(qǐng)?jiān)谄渲刑砑右粋€(gè)元素 "Seven"
元組,不行,

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • 使用selenium和pyquery爬取京東商品列表過程解析

    使用selenium和pyquery爬取京東商品列表過程解析

    這篇文章主要介紹了使用selenium和pyquery爬取京東商品列表過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 基于Python函數(shù)和變量名解析

    基于Python函數(shù)和變量名解析

    今天小編就為大家分享一篇基于Python函數(shù)和變量名解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 詳解python函數(shù)傳參是傳值還是傳引用

    詳解python函數(shù)傳參是傳值還是傳引用

    本篇文章主要介紹了詳解python函數(shù)傳參是傳值還是傳引用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • python?列表常用方法超詳細(xì)梳理總結(jié)

    python?列表常用方法超詳細(xì)梳理總結(jié)

    這篇文章主要為大家介紹了Python中列表的幾個(gè)常用方法總結(jié),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python列表有一定幫助,需要的可以參考一下
    2022-03-03
  • python+mongodb數(shù)據(jù)抓取詳細(xì)介紹

    python+mongodb數(shù)據(jù)抓取詳細(xì)介紹

    這篇文章主要介紹了python+mongodb數(shù)據(jù)抓取詳細(xì)介紹,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • pycharm實(shí)現(xiàn)設(shè)置自動(dòng)的參數(shù)注釋標(biāo)識(shí)

    pycharm實(shí)現(xiàn)設(shè)置自動(dòng)的參數(shù)注釋標(biāo)識(shí)

    這篇文章主要介紹了pycharm實(shí)現(xiàn)設(shè)置自動(dòng)的參數(shù)注釋標(biāo)識(shí),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Python MD5加密實(shí)例詳解

    Python MD5加密實(shí)例詳解

    這篇文章主要介紹了Python MD5加密實(shí)例詳解的相關(guān)資料,這里提供實(shí)現(xiàn)方法及實(shí)例,需要的朋友可以參考下
    2017-08-08
  • Python中sys.stdout方法的語法示例詳解

    Python中sys.stdout方法的語法示例詳解

    Python中sys 模塊中的一個(gè)方法是stdout ,它使用其參數(shù)直接顯示在控制臺(tái)窗口上,print() 方法,它有相同的行為,首先轉(zhuǎn)換為sys.stdout() 方法,然后在控制臺(tái)顯示結(jié)果,本文給大家介紹Python sys.stdout方法的語法,感興趣的朋友一起看看吧
    2023-09-09
  • Python endswith()函數(shù)的具體使用

    Python endswith()函數(shù)的具體使用

    本文主要介紹了Python endswith()函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • scrapy在python爬蟲中搭建出錯(cuò)的解決方法

    scrapy在python爬蟲中搭建出錯(cuò)的解決方法

    在本篇文章里小編給大家整理了一篇關(guān)于scrapy在python爬蟲中搭建出錯(cuò)的解決方法,有需要的朋友們可以學(xué)習(xí)參考下。
    2020-11-11

最新評(píng)論