習題練習
阿新 • • 發佈:2018-04-09
變量 用戶 num ack str spl lac 進行 註意
1.實現一個整數加法計算器(倆個數相加)
如: content = input("請輸入內容:")
如用戶輸入:5+9或者5 + 9 ,然後進行分割再進行計算
content = input("請輸入內容:").strip().split("+") num = int(content[0]) + int(content[1]) print(num)
擴展多個數相加
content = input("請輸入內容:").strip().split("+") count = 0 for i in content: #循環 count = count + int(i)#進行自加 print(count)
2.計算用戶輸入的內容中有幾個整數.
如 content = input("請輸入內容") gghguhy123hgygyguy
content = input("請輸入內容") count = 0 for i in content: if i.isalnum(): count += 1 print(count)
擴展: 將123看成是一個整體,比如輸入的是123,識別成是一個整體,返回1而不是返回3.
待定
3.查找列表li中的元素,移除每個元素的空格,並找出以"A"或者"a"
開頭,並以"c"結尾的所有元素,並添加到一個新列表中,最後循環打印這個新列表
方法一: 用字符串操縱方法startswith,endswith
li = ["taibai ", "alexC", "AbC", "egon", "Rittian", "Wusir", " aqc"] s = [] for i in li: i = i.strip() if (i.startswith("A") or i.startswith("a")) and i.endswith("c"): s.append(i) for j in s: print(s)
返回:[‘aqc‘] 先將列表循環,然後去除空格,判斷每次循環i這個字符串是不是以什麽開頭和結尾,註意or與and同時出現存在優先級的問題,所以需要將前面的or部分
括起來,滿足條件的就添加到空列表s裏面,然後打印出來.
方法二:將單個字符串提出來,用索引判斷.
l1 = [] for i in li: i = i.strip() if i[0].upper() == "A" and i[-1] == "c": l1.append(i) print(l1)
返回:[‘aqc‘] 同樣的循環,當i循環到某一個列表內的字符串時,用索引判斷,str的前面和後面是不是A和c,滿足條件就添加到列表l1中.
4.列表嵌套,打印列表裏的每一個元素.
li = [1, 2, 3, ["alex", "wusir", "老男孩"], 4] for i in li: #循環整個大的列表 if type(i) == list:#當i等於列表的時候 for j in i: # print(j) else: print(i)
返回:
1
2
3
alex
wusir
老男孩
4
要求用for循環加上range寫
li = [1, 2, 3, ["alex", "wusir", "老男孩"], 4] for index in range(len(li)): if type(li[index]) == list: for i in range(len(li[index])): print(li[index][i]) else: print(li[index])
5.開發敏感詞語過濾程序,提示用戶輸入評論內容,如果用戶輸入的內容中包含特殊的字符:敏感詞列表 li = ["蒼老師","東京熱",”武藤蘭”,”波多野結衣”]
則將用戶輸入的內容中的敏感詞匯替換成***,並添加到一個列表中;如果用戶輸入的內容沒有敏感詞匯,則直接添加到上述的列表中
思路:循環的是敏感詞匯列表.i分別是li裏的每一個元素,
如果敏感詞匯在ret輸入的評論裏面
就將他替換
替換了之後
添加到一個新的列表裏
打印列表
li = ["蒼老師", "東京熱", "武藤蘭", "波多野結衣"] li1 = [] ret = input("請輸入評論內容:") for i in li: if i in ret: ret = ret.replace(i, "*" * len(i)) li1.append(ret) print(li1)
#i的值循環出來就是列表裏的敏感詞匯,題目是要將敏感詞匯替換成為*號,用replace(old.new.n/次數),正常情況下寫成這樣replace(i,"*"),但是這樣只替換了
一次,到下次循環就沒有被替換,所以需要加上替換的次數,想如果是次數,不可能直接寫n吧,所以就可以用i的長度,意思是說,如果輸入的敏感詞匯與li中的詞匯長度
想符合,就將全部替換成*.
ret = ret.replace(i, "*" * len(i)) ,這裏的變量名ret,如果變成其他名a,如果是a,當i等於蒼老師時,被替換了的賦值給a,當i等於東京熱的時候,也被
替換掉了,賦值給a,但第二次替換的時候是先替換,然後把值賦給a,相當於將前面一次a已經替換成***的覆蓋了,覆蓋了就等於沒有被替換,所以需要將每次替換的*
保存在ret裏面,下次循環的時候就不會再替換,而且還被保存了,所有當整個輸入敏感詞匯下來,就全部被替換掉.
習題練習