【问题标题】:Why is this Python loop running one too many times [closed]为什么这个 Python 循环运行了太多次 [关闭]
【发布时间】:2018-11-21 00:44:56
【问题描述】:

我想创建一个反向单词功能,我试过了:

def reversa(str):

    j=len(str)
    for i in str:
        j -=1
        print(str[j], end="")


print(reversa("Apple"))

但它不起作用。

【问题讨论】:

  • “反词功能”不够解释
  • 请解释一下...我们不是读心术者,我们是志愿者。你到底期待什么,你得到什么输出与你想要什么。
  • 我希望将 Apple 字向后打印到 elppA :)
  • 您可能不想打印reversa 的返回值,因为它甚至没有return 语句。它只能打印None
  • 首先 str是一个坏名字,它是builtin function第二 只返回字符串[::-1] 反转字符串

标签: python string loops reverse word


【解决方案1】:

嗯,这已经有现有的功能了:

print("Apple"[::-1])

还有:

print(''.join(reversed("Apple")))

您的代码不起作用,因为:

  • 因为没有return 并且只有打印,所以调用如下:reversa("Apple")

另外,最后还是 print() 就好了,比如(修正了一些东西):

def reversa(s):
    j=len(s)
    for i in s:
        j-=1
        print(str[j], end="")
    print()

print(reversa("Apple"))

如果我在你那里,我会做一个类似的函数:

def reversa(s):
    return ''.join([s[-i] for i in range(1,len(s)+1)])

可以这样称呼:

print(reversa('Apple'))

【讨论】:

  • 妈的,又打我了。
  • 我猜是错手了
  • 大声笑,哈哈,:-) :D
【解决方案2】:

您可能希望使用范围从最大索引位置向后递增

def reversal(str):
    for i in range(len(str) - 1, -1, -1):
        print(str[i], end="")

reversal("Apple")

【讨论】:

    【解决方案3】:

    循环不再运行一次。

    问题是您正在打印函数 reversa(即函数的返回值)。由于您没有使函数返回任何内容,因此在您的函数结束后将返回并打印 None 。

    你只需要调用函数而不打印:reversa("Apple")

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多