Skip to main content
 首页 » 编程设计

python之如何修改这段代码,使其以相反的顺序打印输入字符串

2025年05月04日13mayingbao

我有这段代码,但我不明白为什么它不以相反的顺序打印输入字符串。我已经指定它从字符串的最后一个字符打印到第一个字符 (-1,0,-1)。

string=str(input()) 
 
for i in range(-1,0,-1): 
    print(string[i],end="") 

请您参考如下方法:

range(-1, 0, -1) 为空。 -1 将导致 last 元素,因此范围无法工作,因为它不知道集合的长度(此处为字符串)。

因此,如果我们将 range(..) 转换为列表,我们将得到:

>>> list(range(-1, 0, -1)) 
[] 

因此您需要从 len(string)-1 开始,此外,由于第二个参数是独占,因此应该是 -1 .例如:

>>> string = 'foobar' 
>>> list(range(len(string)-1, -1, -1)) 
[5, 4, 3, 2, 1, 0] 

所以在你的情况下我们可以这样使用:

for i in range(<b>len(string)</b>-1, <b>-1</b>, -1): 
    print(string[i],end="")

另一种方法是使用reversed(..),或者对字符串进行切片:

for c in reversed(string): 
    print(c, end='') 

请注意,您最好先生成 完整的字符串,例如:

print(string[::-1]) 

或替代方案(但性能较差):

print(''.join(reversed(string))