Python字符串反转程序

3
这是一个简单的字符串反转程序: 当我输入一个字符串,比如 'hello',输出结果为 'olle'。 最后一个字符没有被显示出来。
    word=raw_input('Enter any word:')
    l=len(word)
    n=l-1
    reverse=""
    while True:
          n-=1
          if n>=1 or n==0:
             get=word[n]
             reverse=str(reverse)
             reverse=reverse+get
             continue
          elif n!=0:
             print('\n The word:',reverse)
             break
4个回答

5

这是一个简单的程序,用于反转字符串:

print word[::-1]

1
虽然这并不是一个技术性的答案,但我会点赞以示它提供了一些乐趣。 - glenatron
我不会说这不是一个答案.. :) - 88dax

5

我看你的问题似乎是你正在这样做:

n=l-1
reverse=""
while True:
      n-=1

这意味着在你执行任何操作之前,你要从n中减去两倍,这意味着你要在反转单词之前删除单词的第一个字母。
尝试删除这些行中的第一个。

n=l-1 是从字符串长度中减去一。 因为对于 'hello','o' 将在第4个位置,而字符串的长度为5。 所以它会导致 超出范围异常 - 88dax
是的,但是在你从单词中取出任何字母之前,你在循环内部再次进行相同的操作,这就是为什么反转字符串的第一个字母是单词的第二个字母的原因。 - glenatron

1
>>> ''.join(reversed('hello'))
'olleh'

如果你要离开原帖的方法(从而偏离实际问题),@eumiro的str[::-1]更加高效。 - OJFord

0
你的问题在于你在循环开始时减少了n而不是在结束时。话虽如此,有更短更Pythonic的方法来做到这一点。也许可以尝试使用: word[::-1]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接