如何用for循环反向打印字符串
我需要写一个程序,让用户输入一个字符串,然后程序利用范围(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