写一个程序,将英语句子中的单词颠倒过来(标点保留原位置)。
Input: I like Beijing. I am student, I am girl.
Output: Beijing like I. girl am I, student am I.
问题在代码中标注了 谢谢大家
str1=input()
str1=str1.replace(","," ")
str1=str1.replace("."," ")
str1=str1.split(" ")
str1.reverse()
for i in range(len(str1)):
print(str[i],end=" ")#逐个反向打印 报错了而且我不知道怎么保存原来的标点位置
print("\n")
你这个出错的是第八行str应该是想写str1,要实现目标功能的话参考如下:
txt = input("输入英文句子")
posterior = txt #未逆序部分
result = '' #先建立最后输出的字符串
for chr in txt: #遍历输入
if chr in ',.': #遇到标点符号
index = posterior.index(chr) #检索该标点符号在未逆序部分的索引
forepart = posterior[:index] #切片获取该标点符号之前的内容进行逆序,注意这里不包含标点符号
forepart = forepart.split()
forepart.reverse()
revcontent= " ".join(forepart) + chr #看上一条注释,所以这里要加上标点符号
result += revcontent
posterior = posterior[index+1:] #切片获取该标点符号后面的内容作为未逆序部分
print(result)
那一行应该是str1[i],不是str[i]
第八行改成 print(str1[i],end=" ")
可以先遍历一遍字符串记录标点符号的下标,然后分段逆序输出,每段结束输出相应的标点符号。