【问题标题】:Use the return() function and not have a newline [closed]使用 return() 函数并且没有换行符[关闭]
【发布时间】:2014-06-20 15:46:41
【问题描述】:

在我的 python 程序中,函数内有函数,我注意到在前一个函数结束的位置和第一个函数开始的位置之间存在不同数量的线。

输出:

end of previous function


start of first function

但是,如果不使用 return() 语句,则在函数末尾打印“None”。

有没有办法让程序在函数结束后只打印一行,或者这是python不可避免的一部分?

(可能与this有关,但你不能用这个作为回报我不认为)

示例代码:

def function1():
    ...stuff

def function2():
    function1()
    ....morestuff

while True:
    function2()

这将返回 2 行“无”。如果 return("") 被添加到每个函数的末尾,则只有空格,新行也是如此。有没有办法拥有一定数量的线条,或者完全摆脱它们?

实际代码示例:

def stop():
    print("stop")

def login():
    print("login")

def list():
    print("list")

def runscript():
    answer=raw_input("input")
    if answer == "stop":
        print(stop())
    elif answer == "login":
        print(login())
    elif answer == "list":
        print(list())

while True:
    print(runscript())

这将返回“无”以及指定的输出。如果在每个函数的末尾添加一个 return(""),它仍然会输出不同的行

【问题讨论】:

  • return() 不是函数。这是一个声明。
  • 什么?您需要显示更多信息。 None 仅在您实际打印函数结果时才会打印。如果您不想打印任何内容,请不要调用 print!
  • 你的问题不清楚,考虑提供一个简短的代码示例
  • 而函数的默认返回值None。如果您没有返回任何不同的内容,则会返回 None。如果你不想打印None不要打印返回值
  • 我不想要换行符。有什么办法可以不换行吗?

标签: python python-2.5


【解决方案1】:

由于 runscript 中的打印语句,您将收到 None。删除它们:

def runscript():
    answer=raw_input("input")
    if answer == "stop":
        stop()
    elif answer == "login":
        login()
    elif answer == "list":
        list()

顺便说一句,您可能想在输入后添加一个空格:raw_input("input ")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 2018-09-13
    相关资源
    最近更新 更多