这是一个作业,用了好久写出来的,写完后,感觉我的思维方式不适合学编程。。。
#字符串按单词反转(必须保留所有空格)
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))