我目前正在学习Python,并编写了这个基本函数。但是,输出在几行代码上,在“这里是一些数学:”之后没有给出答案。怎么啦?
谢谢
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发布于 2015-09-10 09:49:23
每当您调用一个函数时,它的主体就会立即执行。因此,当您调用add = ink(1, 59)时,将执行ink函数的主体,其中包含一个print语句。因此,它打印出"Here is some math:"。
一旦函数的主体到达return语句,该函数的执行将结束,return语句将返回一个值到调用该函数的位置。所以当你这么做的时候
add = ink(1, 59)result由ink(1, 59)返回,然后存储到add,但result尚未打印。
然后,对其他变量(fad和bad)重复相同的操作,这就是为什么在看到任何数字之前,要打印三次打印的"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发布于 2015-09-10 09:35:47
当调用函数ink时,当它的返回值被赋值为
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总之,我相信你在这里写的只是一个例子。如果不用于调试,则不应从计算某些内容的函数中打印任何内容。如果是用于调试,那么整个消息应该包含在函数的正文中,而不是像那样被拆分。
发布于 2015-09-10 09:48:02
您必须对要打印的内容进行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: 6https://stackoverflow.com/questions/32498124
复制相似问题