我正在做作业,任务是用函数math.pi
中给定的数字四舍五入pi(d=0)
。因此,如果输入pi(2),该函数将返回3.14。如果在函数中输入超过15,它将打印“小数太多”,并返回math.pi。我的问题是我的函数现在返回math.pi
和一个“无值”
我尝试了不同的方法,包括不同的if语句和完全删除打印语句。这样可以解决问题,但是我不会回答我的任务
import math
def pi(d=0):
if d<=15:
return round((math.pi), d)
if d>15:
return math.pi, print('Too many decimals!')
我希望if d>15
的输出为Too many decimals!, 3.141592653589793
答案 0 :(得分:0)
表达式
print('Too many decimals!')
可以打印'Too many decimals!'
,但其值为None
。那是
return x, print('foo')
将返回元组(x, None)
,其副作用是将'foo'
输出到控制台。您可以直接返回字符串本身:
return math.pi, 'Too many decimals!'
答案 1 :(得分:0)
return math.pi, print('Too many decimals!')
return语句始终返回一个值;在这种情况下,因为您在两个值之间使用逗号,所以它返回两个元素的 tuple 。
让我们重写该行,尽管它仍然做同样的事情:
result = (math.pi, print('Too many decimals!'))
return result
因此,在这里我们看到元组的第一个元素是math.pi,第二个元素是返回值None
的任意值print('小数太多!')。
相反,这就是您的意思:
print('Too many decimals!')
return math.pi