_Phoebe__ 2022-03-13 01:13 采纳率: 96.9%
浏览 40
已结题

python逆序打印字符串问题有一点疑问

写一个程序,将英语句子中的单词颠倒过来(标点保留原位置)。
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")
  • 写回答

3条回答 默认 最新

  • π¢ 2022-03-13 11:22
    关注

    你这个出错的是第八行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)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月21日
  • 已采纳回答 3月13日
  • 创建了问题 3月13日

悬赏问题

  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗