15

已经搜索了互联网试图解决这个问题,但没有运气。据我所知,您通常只有一个 return 语句,但我的问题是我的 return 语句中需要换行,以便测试返回“true”。我尝试过的是抛出错误,可能只是一个菜鸟错误。我当前没有尝试换行的功能如下。

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

换行符 (\n) 是否应该在 return 语句中工作?它不在我的测试范围内。

4

4 回答 4

25

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

所以你可以这样做:

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")

看起来它在功能上与您在您的设备中所做的相同,但我真的不知道。后者是我在这种情况下要做的。

如果您想在 STRING 中换行,那么您可以在任何需要的地方使用“\n”作为字符串文字。

def break_line():
    return "line\nbreak"
于 2013-09-01T06:38:20.613 回答
4

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

改变:

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()and'!'','没有意义的。它们已经是字符串。

于 2013-09-01T06:30:13.433 回答
1

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

其次 - 您的代码中没有任何内容可以在您正在构建的字符串中插入换行符。只是在字符串中间有一个换行符不会添加换行符,您需要明确地这样做。

我认为你想要做的是这样的:

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

str(phrase1)因为我不知道短语 1 是什么,所以我要离开了- 如果它已经是一个 string ,或者有一个.__str__()不需要的方法。

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

于 2013-09-01T06:37:27.193 回答
0

简单易懂的代码

def sentence():
    return print('ankit \nkalauni is\n the\n new\n learner\n in\n programming')
sentence()

输出 :
ankit
kalauni
是 编程


学习者

在python中返回多行的简单方法

于 2020-10-16T08:25:14.923 回答