【问题标题】:Python New line in return from a function从函数返回的 Python 新行
【发布时间】:2016-02-05 01:02:21
【问题描述】:

我是 python 新手,遇到了以下问题。我试图使用 return 从函数中获取两行文本,但仍将“\n”作为文本获取(在 IDLE 3.5 中)。当我将“return”更改为“print”时,一切正常,但我需要“return”。

def myfunc(a):
    text1=["|"]
    i=int(a)
    mystr="abc|"*i+"\n"
    text1.append(mystr)
    text1=''.join(text1)
    b="0"
    text2=[b]
    for b in range(i):
        b+=1
        text2.append("{0:5d}".format(b))
    text1="".join((text1,"".join(text2)))
    return(text1)

结果:

>>> myfunc(4)
'|abc|abc|abc|abc|\n0    1    2    3    4'

但是

(...)
print(text1)
>>> myfunc(4)
abc|abc|abc|abc|
0    1    2    3    4

【问题讨论】:

  • 我认为您误解了它的工作原理。 return 为您提供字符串文字。它在两行(例如,如果您将其打印到文件对象或缓冲区等)。当显示在控制台中时,它并没有很好地“格式化”。
  • 试试print(myfunc(4))吧。
  • 这里没有问题。唯一的区别是,在一种情况下,该值被格式化为语法上有效的 Python 文字,而在另一种情况下,它实际打印到屏幕上。

标签: python function return line


【解决方案1】:

在交互式解释器中输入返回字符串的表达式时,您将看到该字符串的表示。这与打印字符串不同,后者会将字符串本身的字符直接写入终端。

该表示通常尝试以 Python 可接受的字符串文字格式显示字符串,即用引号括起来,特殊字符被转义,就像您在 \n 看到的那样。

【讨论】:

    猜你喜欢
    • 2023-03-11
    • 2013-12-03
    • 2018-04-03
    • 2018-05-15
    • 2019-10-14
    • 2021-08-15
    • 2015-09-30
    • 2012-03-26
    • 1970-01-01
    相关资源
    最近更新 更多