多行返回语句

2024-04-26 10:19:16 发布

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

已经搜索了互联网试图找出这一点,但没有运气。据我所知,您通常只有一个返回语句,但我的问题是,我需要在返回语句中有换行符,以便测试返回“true”。我试过的是犯错误,可能只是新手犯的错误。下面是我当前的函数,没有尝试换行。

def game(word, con):
   return (word + str('!')
   word + str(',') + word + str(phrase1)

换行符(\n)应该在返回语句中起作用吗?这不在我的测试范围内。


Tags: 函数gametruereturndef错误互联网语句
3条回答

首先-使用str()将多个字符串转换为字符串。这不是必要的。

第二,代码中没有任何东西可以在正在构建的字符串中插入换行符。仅仅在字符串中间有一个换行符并不能添加换行符,您需要显式地这样做。

我想你要做的是这样的:

def game(word, con):
    return (word + '!' + '\n' +
        word + ',' + word + str(phrase1))

我将在对str(phrase1)的调用中离开,因为我不知道什么是短语1—如果它已经是一个字符串,或者有一个.__str__()方法,就不需要这个了。

我假设您要构建的字符串跨越这两行,所以我在末尾添加了缺少的括号。

在python中,打开paren会导致后续行被视为同一行的一部分,直到关闭paren为止。

所以你可以:

def game(word, con):
    return (word + str('!') +
            word + str(',') +
            word + str(phrase1))

但在这种情况下我不建议这样做。我提到它是因为它在语法上是有效的,你可以在其他地方使用它。

您还可以使用反斜杠:

def game(word, con):
    return word + '!' + \
           word + ',' + \
           word + str(phrase)
    # Removed the redundant str('!'), since '!' is a string literal we don't need to convert it

或者,在这种情况下,我的建议是使用格式化字符串。

def game(word, con):
    return "{word}!{word},{word}{phrase1}".format(
        word=word, phrase1=phrase1")

这看起来在功能上等同于你的工作,但我真的不知道。后者是我在这种情况下会做的。

如果要在字符串中换行,则可以在需要时将“\n”用作字符串文字。

def break_line():
    return "line\nbreak"

您可以在return语句中拆分一行,但是您忘记了结尾的括号,还需要用另一个运算符将其分隔(在本例中,是+

更改:

def game(word, con):
   return (word + str('!')
   word + str(',') + word + str(phrase1)

致:

def game(word, con):
   return (word + str('!') + # <--- plus sign
   word + str(',') + word + str(phrase1))
#                                       ^ Note the extra parenthesis

注意,在'!'','上调用str()是没有意义的。它们已经是弦了。

相关问题 更多 >