为什么在执行此代码时我会得到“ hi”?
谢谢!
def b():
print("hi")
def c():
return True
if b() == 'hi':
print("Done")
答案 0 :(得分:4)
您将打印到控制台与返回值混淆了。如果您未从函数中返回任何内容,则该函数将隐式返回None
,因此它永远不等于'hi'
。您的b()
确实会打印-并且不会返回其'hi'
def b():
print("hi") # maybe uncomment it if you do not want to print it here
return "hi" # fix like this (which makes not much sense but well :o)
def c():
return True
if b() == 'hi':
print("Done")
您可以像这样测试它:
def test():
pass
print(test())
输出:
None
更多读数:
fib
-CodeBlock示例下面的段落-告诉您有关None
的信息)还有一件更重要的事情要读:How to debug small programs (#1)-它为您提供有关如何自行修复代码以及如何通过调试发现错误的提示。
答案 1 :(得分:1)
基本上,您在说的是if b()
,它运行b()函数并显示“ hi”等于“ hi”,显示“ done”,但是由于您的函数显示“ hi”,而不是返回“ hi”,它永远不会等于true。
尝试一下:
def b():
return "hi"
def c():
return True
if b() == 'hi':
print("Done")