Python版本 3.6
第五章的題好少啊。。。 5.1
# -*- coding: utf-8 -*-s=input('請輸入字串:')s=s.split()#切片print('其中單詞總數有:',len(s))
這是最基礎的,基於內建函數split()的切片
如果要分割多個空格,以及逗號,點號什麼的,可以用re模組的Regex來判斷
# -*- coding: utf-8 -*-import res=input('請輸入字串:')s=re.split('\W+',s)#切片print('其中單詞總數有:',len(s))
其中’\W+’作為逸出字元表達任意長度(盡量長)的非單詞(a~z A~Z 1~9)字元,有興趣的同學可以自行上網尋找,這裡不做過多說明
5.2
# -*- coding: utf-8 -*-s1=['e','b','e','a','h','c','d','b','h','e']print(s1)#利用集合不重複的特性快速得到結果s2=list(set(s1))s2.sort(key=s1.index)print(s2)#遍曆s2=[]for i in s1: if i not in s2: s2.append(i)print(s2)#簡寫遍曆s2=[][s2.append(i) for i in s1 if i not in s2]print(s2)
這道題通過看書和看教程,我學會了兩種方法,第一種完全就是用函數,第二種則是自己寫演算法, 不過可以用列表解析運算式來簡化過程。
5.3
書上給出的提示那麼多了,我就偷懶少寫幾個
# -*- coding: utf-8 -*-#這題裡面要求真的多。。。元素個數,最大值,最小值,和,平均值s=[9,7,8,3,2,1,55,6]s2=[]n=len(s)#元素個數'''smax=s[0]smin=s[0]su=0for i in range(0,len(s)): if smax<s[i]:smax=s[i] if smin>s[i]:smin=s[i] su+=s[i]av=su/len(s)'''#同下smax=max(s)#最大值smin=min(s)#最小值su=sum(s)av=su/len(s)print('最大值為:%d\n最小值為:%d\n元素之和為:%d\n平均值為:%f\n'%(smax,smin,su,av))
結果如下:
5.4
# -*- coding: utf-8 -*-s=[9,7,8,3,2,1,5,6]print('原列表:',s)for i in range(0,len(s)): if s[i]%2==0: s[i]**=2print('處理後:',s)
列表解析運算式不管用了,不開心
5.5
# -*- coding: utf-8 -*-s=input('請輸入一個字串:')s1=[]for i in range(0,len(s)): s1.append(ord(s[i]))print(s1)
可算是用上append()方法了
啊