1. 程式人生 > >Python練習題8(替換相同的字串並輸出):輸入兩個字母串,將兩個字母串都包含的字母用'_'替換後,輸出兩個字母串的剩餘部分 (不能為空串,區別大小寫,只能包含字母)

Python練習題8(替換相同的字串並輸出):輸入兩個字母串,將兩個字母串都包含的字母用'_'替換後,輸出兩個字母串的剩餘部分 (不能為空串,區別大小寫,只能包含字母)

方法一:檢查輸入是否為空串,迴圈字母串,相同的則替換,然後再用replace()方法去除,輸出想要的結果

 1 def str_replace(messages1,messages2):
 2     if messages1.strip() == '' or messages2.strip() == '' :     #檢驗輸入不能為空串 
 3         tips = "輸入字母串有空串,不合法"
 4         return tips 
 5     
 6     if not messages1.encode('UTF-8').strip().isalpha() or
not messages2.encode('UTF-8').strip().isalpha():#檢查輸入字串為字母(注:此處忽視了前後空格,但對字串中間空格判為不合法,若需要忽視中間空格,可以用replace方法) 7 warn = "輸入字母串不全是字母,請檢查" 8 return warn 9 10 for msg1 in messages1: #迴圈字母串messages1 11 if msg1 in messages2: #
判斷該字元在messages2中 12 messages1 = messages1.replace(msg1,'_') #將messages1中的重複字母替換為'_' 13 messages2 = messages2.replace(msg1,'_') #將messages2中的重複字母替換為'_' 14 15 print("第1個字母串替換後為:" + messages1) 16 print("第2個字母串替換後為:" + messages2) 17 18 str_output1 = messages1.replace('
_','') #去掉字串中的'_' 19 str_output2 = messages2.replace('_','') 20 21 '''另一種不用方法,不用replace() 22 con_list1 = [] 23 con_list2 = [] 24 for msg in messages1: #迴圈 25 if msg.isalpha(): 26 con_list1.append(msg) 27 str_output1 = ''.join(con_list1) #將列表轉為字串 28 29 for msg in messages2: 30 if msg.isalpha(): 31 con_list2.append(msg) 32 str_output2 = ''.join(con_list2)''' 33 34 result = "\n第一個字母串的剩餘部分為:\n{0}\n第二個字母串的剩餘部分為:\n{1}".format(str_output1,str_output2) 35 36 return result 37 38 str1 = input("請輸入字母串1:") 39 str2 = input("請輸入字母串2:") 40 print(str_replace(str1,str2))