首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有函数的Python打印格式

问带有函数的Python打印格式
EN

Stack Overflow用户
提问于 2015-09-10 09:32:11
回答 3查看 73关注 0票数 0

我目前正在学习Python,并编写了这个基本函数。但是,输出在几行代码上,在“这里是一些数学:”之后没有给出答案。怎么啦?

谢谢

代码语言:javascript
复制
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

产出:

代码语言:javascript
复制
Here is some math:
Here is some math:
Here is some math:
60
11
6

编辑:为什么不打印?

产出:

代码语言:javascript
复制
Here is some math:
60
Here is some math:
11
Here is some math:
6
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-10 09:49:23

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

一旦函数的主体到达return语句,该函数的执行将结束,return语句将返回一个值到调用该函数的位置。所以当你这么做的时候

代码语言:javascript
复制
add = ink(1, 59)

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

然后,对其他变量(fad和bad)重复相同的操作,这就是为什么在看到任何数字之前,要打印三次打印的"Here is some math:"。直到稍后,您才使用以下方法打印实际结果:

代码语言:javascript
复制
print add
print fad
print bad

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

代码语言:javascript
复制
def ink(a, b):
    return a + b

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

代码语言:javascript
复制
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循环的内容):

代码语言:javascript
复制
for result in (add, fad, bad):
    print "Here's some math:", result
票数 2
EN

Stack Overflow用户

发布于 2015-09-10 09:35:47

当调用函数ink时,当它的返回值被赋值为

代码语言:javascript
复制
add = ink(1, 59)

结果值被打印在

代码语言:javascript
复制
print add

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

代码语言:javascript
复制
print ink(1, 59)

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

代码语言:javascript
复制
def ink(a, b):
    result = a + b
    print "Here is some math:"
    print result
    return result

总之,我相信你在这里写的只是一个例子。如果不用于调试,则不应从计算某些内容的函数中打印任何内容。如果是用于调试,那么整个消息应该包含在函数的正文中,而不是像那样被拆分。

票数 3
EN

Stack Overflow用户

发布于 2015-09-10 09:48:02

您必须对要打印的内容进行return:

代码语言:javascript
复制
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

输出:

代码语言:javascript
复制
Here is some math: 60
Here is some math: 11
Here is some math: 6
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32498124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档