在Python中反向打印列表

问题描述 投票:0回答:3

您好(这是我在网站上的第一个问题,如果我没有遵守规则,我们深表歉意。)下面是我编写的两个代码(使用for循环),以打印用户输入的字符串的反序。一种代码给我一个错误,而另一种则正常。我不明白为什么。为什么函数“范围”似乎有所不同?感谢有人可以帮助我理解逻辑-非常感谢

代码1:这给了我错误:

string = input('Enter a Word ')
length = len(string)
reverse = []

for i in string:
    x=string [-1-i]
    reverse.append(x)

print (reverse)

*输入Word Python


TypeError追溯(最近一次通话)在45为我的字符串:----> 6 x =字符串[-1-i]7反向附加(x)8TypeError:-:“ int”和“ str”

不支持的操作数类型

代码2:可以正常工作

string = input('Enter a Word ')
length = len (string)
reverse = []

for i in range(length):
    x=string [-1-i]
    reverse.append(x)

print (reverse)

*输入Word Python

['n','o','h','t','y','P'] *

loops for-loop range palindrome
3个回答
0
投票

[使用for i in stringi将采用字符串中每个字符的值,例如如果输入为“ Hello”,则为'H''e''l''l''o'

[当您调用string[-1-i]时,Python试图从数字中减去一个字符串,这就是为什么会出现错误unsupported operand type(s) for -: 'int' and 'str'


0
投票

您正在执行的第一个循环是为您的字符串创建一个foreach循环,因此您的“ i”基本上是一个字符。您知道还有一个名为“ reverse()”的功能吗?


0
投票

您可以轻松进行reverse功能-

def reverse(word = ""):
  return word if len(word) < 2 else reverse(word[1::]) + word[0]

myword = "bookkeepper"

print(myword+reverse(myword))
# bookkeepperreppeekkoob
© www.soinside.com 2019 - 2024. All rights reserved.