【问题标题】:How to print a string backwards using a for loop如何使用 for 循环向后打印字符串
【发布时间】:2014-10-24 03:12:58
【问题描述】:

我必须创建一个程序,让用户输入一个字符串,然后使用范围,程序向后输出相同的字符串。我将它输入python,但它给我一个错误,在第4行,它说'int' object has no attribute '__getitem__'。 有人可以帮我纠正吗? (使用范围)

user=raw_input("Please enter a string: ")
user1=len(user)-1
for user in range(user1,-1,-1):
    user2=user[user1]
    print user2

【问题讨论】:

    标签: python for-loop range reverse


    【解决方案1】:

    我认为您有一个错误,因为您一直使用相同的词来描述非常不同的数据类型。我会使用更具描述性的命名方案:

    user = raw_input("Please enter a string: ")
    user_length = len(user)
    for string_index in range(user_length - 1, -1, -1):
        character = user[string_index]
        print(character)
    

    例如,如果用户输入是foo,它会输出:

    o
    o
    f
    

    【讨论】:

      【解决方案2】:

      你正在用你的for循环覆盖用户字符串,通过改变for循环变量来修复它

      修复:

      for ind in range(user1,-1,-1):
          user2 = user[ind]
          print (user2)
      

      替代方案(没有 for 循环):

      print user[::-1]
      

      【讨论】:

        【解决方案3】:

        这是因为您在 for user in range(...) 行中用 int 覆盖了字符串 user

        也许你会更好:

        user=raw_input("Please enter a string: ")
        for user1 in range(len(user)-1,-1,-1):
            user2=user[user1]
            print user2
        

        【讨论】:

          【解决方案4】:

          您的 user 已在您的 for 循环中被覆盖。拿这个(使用范围)

          user=raw_input("Please enter a string: ")
          print ''.join([user[i] for i in range(len(user)-1, -1, -1)])
          

          【讨论】:

            【解决方案5】:

            Python 3 解决方案:

            user=input("Please enter a string: ")
            for ind in range(1,len(user)+1):
                char = user[-ind]
                print(char)
            

            另外一个非for循环的解决方案是:

            ''.join(reversed(user))
            

            【讨论】:

              猜你喜欢
              • 2020-05-22
              • 2014-02-17
              • 2011-05-18
              • 1970-01-01
              • 1970-01-01
              • 2013-01-11
              • 1970-01-01
              • 2011-09-07
              • 2021-04-25
              相关资源
              最近更新 更多