数据类型之字符串练习
生活随笔
收集整理的這篇文章主要介紹了
数据类型之字符串练习
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第一題: 已知字符串 a = "aAsmr3idd4bgs7Dlsf9eAF",請將a字符串的大寫改為小寫,小寫改為大寫。
1 def handle_str(params,*arg,**args): #為了函數的健壯性,定義*arg,**args多余的參數傳到這里 2 result='' 3 if isinstance(params,str):#函數的健壯性,對輸入參數的類型做判斷 4 for each in params: 5 if each.isalpha(): 6 if each.isupper(): 7 result=result+each.lower() 8 else: 9 result=result+each.upper() 10 else: 11 result=result+each 12 return result 13 else: 14 return '該函數需要的是字符串類型的數據' 15 assert handle_str([1,2,3],5)=='該函數需要的是字符串類型的數據' 16 print handle_str([1,2,3],5) 17 assert handle_str('A12cD')=='a12Cd' 18 print handle_str('A12cD') 19 print handle_str(a)對自己定義的函數一定要清楚的明白函數輸入什么,輸出什么,為了健壯性,必要的類型檢查,異常捕獲不可缺少,
第二題:請將a字符串的數字取出,并輸出成一個新的字符串。
1 def get_int(params,*arg,**args): #*arg,**args接收多余的參數 2 result='' 3 if isinstance(params,str): #參數類型判斷 4 for each in params: 5 if each.isdigit(): 6 result=result+each 7 return result 8 else: 9 return '該函數需要的是字符串類型的數據' 10 assert get_int('a1b4c5d67',2,3,4,5)=='14567' 11 print get_int('a1b4c5d67',2,3,4,5) 12 assert get_int([1,2],[1,2],[1,2])=='該函數需要的是字符串類型的數據' 13 assert get_int(1,2,3)=='該函數需要的是字符串類型的數據' 14 print get_int(1,2,3) 15 print get_int(a)第三題:請統計a字符串出現的每個字母的出現次數(忽略大小寫,a與A是同一個字母),并輸出成一個字典。 例 {'a':4,'b':2}
?
1 def count_alp_times(params,*arg,**args):#定義*arg,**args接收多余的參數 2 dict_count={} 3 if isinstance(params,str): 4 for each in params: 5 if each.isalpha(): 6 loweach=each.lower()#把字符串中的字符都轉換為小寫 7 if loweach not in dict_count.keys():#判斷字符是否在字典的key中存在 8 dict_count[loweach]=1 9 else: 10 dict_count[loweach]+=1 11 return dict_count 12 else: 13 return '該函數需要的是字符串類型的數據' 14 print count_alp_times(a)第四題:請去除a字符串多次出現的字母,僅留最先出現的一個。例 'abcabb',經過去除后,輸出 'abc'
1 def no_repeat_str(params,*arg,**args): 2 str_list=[] 3 if isinstance(params,str): 4 for each in params: 5 if each not in str_list: 6 str_list.append(each) 7 return ''.join(str_list) 8 else: 9 return '該函數需要的是字符串類型的數據' 10 assert no_repeat_str('abcadeys')=='abcdeys' 11 print no_repeat_str('abcadeys')第五題:請將a字符串反轉并輸出。例:'abc'的反轉是'cba',a = "aAsmr3idd4bgs7Dlsf9eAF"
1 a = "aAsmr3idd4bgs7Dlsf9eAF" 2 list_a=list(a) #把字符串轉換為列表 3 list_a.reverse() #運用列表的翻轉函數 4 print ''.join(list_a)#再運用字符串的join函數第六題:去除a字符串內的數字后,請將該字符串里的單詞重新排序(a-z),并且重新輸出一個排序后的字符 串。(保留大小寫,a與A的順序關系為:A在a前面。例:AaBb)
1 def str_sorted(params,*arg,**args):#*,**接收多余的參數 2 result='' 3 if isinstance(params,str):#參數類型判斷 4 for each in params: 5 if each.isalpha(): 6 result=result+each 7 m=sorted(result) #運用sorted 對字符串從小到大排序 8 return ''.join(sorted(m,key=string.upper)) #運用sorted內置函數中的key關鍵字,對迭代對象的每一項隱式操作第七題:此時的單詞判斷,由'boy'改為四個,分別是 'boy','girl','bird','dirty',請判斷如上這4個字符串里的每個字母,是否都出現在a字符串里。
1 def find_alp_many(target,sourse): 2 for each in target: #遍歷傳入要查找的所有對象 3 if not isinstance(each,str):#判斷每一個要查找的對象的數據類型,過濾非字符串形式的 4 return 'not all items is string type' 5 else: 6 for eachalp in each: 7 if eachalp not in sourse:#每一項進行查找 8 return 'find %s not all alpha is in sourse'% each 9 else: 10 return 'all alpha in sourse' 11 a='abcdysogirdgtl' 12 assert find_alp_many(['boy','girl','bird','dirty'],a)=='all alpha in sourse' 13 print find_alp_many(['boy','girl','bird','dirty'],a)第八題:輸出a字符串出現頻率最高的字母
1 a = "aAsmr3idd4bgs7Dlsf9eAF" 2 dict_a={} 3 for each in a: 4 if each.isalpha(): 5 if each not in dict_a.keys(): 6 dict_a[each]=1 7 else: 8 dict_a[each]+=1 9 10 data=dict_a.items() 11 print sorted(data,key=lambda x:x[1],reverse=True)?
轉載于:https://www.cnblogs.com/zidonghuaqianxing/p/6245523.html
總結
以上是生活随笔為你收集整理的数据类型之字符串练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [已解决] java 增加 ALPN支持
- 下一篇: 关系数据库中,表中的每行就是一个对象