Python 带函数的打印格式

Python printing format with functions

目前正在学习Python,已经写出了这个基本功能。然而,输出是多行的,并且在 "Here is some math:" 之后不显示答案。怎么了?

谢谢

def ink(a, b):
    print "Here is some math:"
    return a + b        
add = ink(1, 59)    
fad = ink(2, 9)    
bad = ink(4, 2)     
print add    
print fad    
print bad

输出:

Here is some math:
Here is some math:
Here is some math:
60
11
6

编辑: 为什么不打印

输出:

Here is some math:
60
Here is some math:
11
Here is some math:
6

函数 ink 在被调用时打印 Here is some math:,当它的 return 值被分配到

add = ink(1, 59)

并将结果值打印在

print add

为了实现你想要的,你必须做

print ink(1, 59)

编辑:更好,如果它用于调试:

def ink(a, b):
    result = a + b
    print "Here is some math:"
    print result
    return result

无论如何,我相信你在这里写的只是一个例子。如果不是出于调试目的,则不应从计算某些内容的函数中打印任何内容。如果是为了调试,那么整个消息应该包含在一个函数体中,而不是那样拆分。

您必须return您要打印的内容:

def ink(a, b):
    return "Here is some math: {}".format(a + b)
add = ink(1, 59)
fad = ink(2, 9)
bad = ink(4, 2) 

print add
print fad
print bad

输出:

Here is some math: 60
Here is some math: 11
Here is some math: 6

无论何时调用一个函数,它的主体都会立即执行。 因此,当您调用 add = ink(1, 59) 时,会执行包含 print 语句的 ink 函数体。 因此它打印出 "Here is some math:".

一旦函数体到达return语句,函数的执行将结束,return语句returns一个值到函数被调用的地方。 所以当你这样做时:

add = ink(1, 59)

resultink(1, 59) 返回,然后存储到 add,但 result 尚未打印。

然后对其他变量(fadbad)重复相同的操作,这就是为什么在看到任何数字之前打印了三次 "Here is some math:"。 只有稍后您使用以下命令打印实际结果:

print add
print fad
print bad

您应该做的是让函数只计算结果:

def ink(a, b):
    return a + b

通常您希望在函数之外(或在主函数中)进行打印和输入:

add = ink(1, 59)
fad = ink(2, 9)
bad = ink(4, 2)

print "Here's some math:", add
print "Here's some math:", fad
print "Here's some math:", bad

虽然重复的代码通常被认为是不好的,所以你可以在这里使用 for 循环(如果你不知道 for 循环是如何工作的,你应该更多地研究它们):

for result in (add, fad, bad):
    print "Here's some math:", result