字串反轉(按單詞正序輸出),保留並列印所有空格。
阿新 • • 發佈:2018-12-26
這是一個作業,用了好久寫出來的,寫完後,感覺我的思維方式不適合學程式設計。。。
#字串按單詞反轉(必須保留所有空格) a='Jane love China!'#把字串存入列表 #a=input('請輸入字串(用引號引起來,,,):') li=list()#用來存放空格所在位置的列表 n=-1 for i in a:#遍歷字串 # print i b=i.isspace()#判斷i是不是空格 if b==True: n=a.index(' ',n+1)#從上一次搜尋結果開始 #print n li.append(n)#將空格位置索引加入列表 li.append(len(a))#將總的字元數加入列表 print li#列印空格位置 le_li=len(li) n=0 while n<le_li: print a[li[le_li-n-2]+1:li[le_li-n-1]],#打印出每個單詞(有一個問題,就是標點符號算在單詞內了) if n<le_li-1: print a[li[n]], #(列印空格,位置是除li最後一個元素的元素) n+=1 if n==le_li: print a[0:li[le_li-n]]#列印最前面的單詞
老師寫的:
def resverse(str_list,start,end): while start<end: str_list[start],str_list[end]=str_list[end],str_list[start] start=start+1 end=end-1 setence='I love China!' str_list=list(setence) i=0 while i<len(str_list): if str_list[i]!=' ': start=i end=start+1 while (end<len(str_list)) and (str_list[end]!=' '): end+=1 resverse(str_list,start,end-1) i=end else: i+=1 str_list.reverse() print(' '.join(str_list))