如何用for循环反向打印字符串

4 投票
5 回答
10022 浏览
提问于 2025-04-29 09:48

我需要写一个程序,让用户输入一个字符串,然后程序利用范围(range)把这个字符串反向输出。我在Python中输入了这个代码,但在第四行出现了一个错误,提示说 '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
暂无标签

5 个回答

0

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))
0

你的 user 在循环中被覆盖了。试试这个方法(使用范围)

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

你在用循环的方式覆盖了用户的字符串,解决这个问题的方法是更改循环中的变量。

解决方案:

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

另一种方法(不使用循环):

print user[::-1]
0

这是因为你在这一行 for user in range(...) 中把字符串 user 替换成了一个整数。

也许你可以试试下面的写法:

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

我觉得你有个错误,因为你一直用同样的词来描述非常不同的数据类型。我建议使用更具描述性的命名方式:

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

撰写回答