【问题标题】:Python - String Reverse, Print After Every ChangePython - 字符串反转,每次更改后打印
【发布时间】:2017-11-06 04:43:34
【问题描述】:

我需要用户输入一些文本,稍后这个文本应该被反转。 但是在倒车的时候,每一步都需要打印,我真的不知道是怎么做的,怎么倒车的。

如果用户输入 - 堆栈,最后我需要得到kcats,但在我还需要打印所有步骤之前,例如如果它从第一个和最后一个字母开始,第一步应该像 - @ 987654322@ 并继续这样。

我有某种代码:

input_string = input("\n Please Enter Text To Reverse - ")
for i in input_string:
    print(input_string[::-1])

它做了一个反向,但我不能一步一步打印出来。有什么帮助吗?

【问题讨论】:

  • 你在使用切片时不能打印每一步反转input_string[::-1]你需要制作自己的函数并在每个所需的步骤上添加打印语句

标签: python string input reverse


【解决方案1】:

你可以试试这个。

   input_string = input("\n Please Enter Text To Reverse - ")
   i_string = input_string.split(" ")
   length = len(i_string)

   for i in range(len(i_string)-1,-1,-1):
      print(i_string[i])
   print(i_string[::-1])

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    这应该可以正常工作:

    txt = "hello world"
    l = len(txt)
    for n in range(1, l//2+1):
        print txt[-n:][::-1] + txt[n:-n] + txt[:n][::-1] # reversed end + middle + reversed start
    

    你也可以使用这个(但我觉得它不太可读):

    print txt[l-1:-n-1:-1] + txt[n:-n] + txt[n-1:None:-1]
    

    【讨论】:

    • 字符串不可变:无法按照您建议的方式进行反转
    • @ReblochonMasque 这个代码在这里工作得很好,所以不确定你的意思。我没有改变任何字符串......只是按照 OP 的要求打印所有“步骤”。
    • 您的代码说明了字符串元素对的交换。字符串不能这样。
    • 好吧,那又怎样?我在 OP 的问题中没有提到任何事情必须就地发生(正如你所说,这是不可能的)。
    • 其实在我的情况下效果很好,我已经试过了。
    【解决方案3】:

    如果你想打印每一步,那么你可以使用递归方法:

    递归之美:

    string_='stack'
    
    def recursion_reverse(string_1):
        if not string_1:
            return ""
        else:
            front_part=recursion_reverse(string_1[1:])
            back_part=string_1[0]
            print(front_part+back_part + string_[:-len(string_1)])
    
    
        return front_part+back_part[0]
    
    print(recursion_reverse(string_))
    

    输出:

    kstac
    kcsta
    kcast
    kcats
    kcats
    kcats
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-18
      • 2016-08-29
      • 1970-01-01
      • 1970-01-01
      • 2018-11-23
      • 2020-07-25
      • 2021-10-31
      • 1970-01-01
      相关资源
      最近更新 更多