反向字符串Python

2024-06-12 19:52:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从用户那里得到输入,然后像这样打印字符串:
输入:

hello


输出:

o
ol
oll
olle
olleh

这是我的代码:

s = input()
for i in range(len(s) - 2, -1, -1):
    print(s[:i:-1])

我收到的输出是:

o
ol
oll
olle

我总是错过最后一个角色。我试过许多不同的切片方法。我错过了什么?你知道吗


Tags: 字符串代码用户in角色helloforinput
3条回答

要反转整个字符串,必须使用s[::-1]省略第一个值。 因为这不适合您的迭代,所以您必须使用以下内容:

s = input()

for i in range(len(s) - 2, -1, -1):
  print(s[:i:-1])

print(s[::-1])

必须首先获取子字符串,然后将其反转:

s = "hello"
for i in range(len(s)-1, -1, -1):
    print(s[i:][::-1])

或:

s = "hello"
for i, _ in enumerate(s):
    print(s[i:][::-1])

或者反转单词并得到子字符串:

s = "hello"
for i, _ in enumerate(s):
    print(s[::-1][:i+1])

最简单的方法也许是从-1向后迭代:

s = 'hello'
for i in range(1, len(s)+1):
    print(s[-1: -i-1: -1])

hello
o
ol
oll
olle
olleh

按照这种方式,您将按顺序进行切片:

  • s[-1: -2: -1]
  • s[-1: -3: -1],。。。你知道吗
  • s[-1: -len(s)-1: -1]

相关问题 更多 >