繁体   English   中英

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

[英]How to print a string backwards using a for loop

我必须创建一个程序,让用户输入一个字符串然后,使用范围,程序向后输出相同的字符串。 我把它输入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

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

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

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

固定:

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

替代方案(没有for-loop):

print user[::-1]

这是因为您for user in range(...)for user in range(...) int覆盖字符串user for user in range(...)

也许你会更好:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM