Python 如何在另一个公式中使用一个公式的结果?
如何将一个函数的结果转换为另一个函数Python 如何在另一个公式中使用一个公式的结果?,python,function,math,return,formula,Python,Function,Math,Return,Formula,如何将一个函数的结果转换为另一个函数 list = [1, 1, 1, 1] def margin(): a = 0 b = 1.2 c = 1 for i in list: if i == 1: x = a + b - c return x # x = 0.2 def calc(): for i in list: formula = 2 + margin()
list = [1, 1, 1, 1]
def margin():
a = 0
b = 1.2
c = 1
for i in list:
if i == 1:
x = a + b - c
return x # x = 0.2
def calc():
for i in list:
formula = 2 + margin()
print(formula)
calc()
# 2.2 2.2 2.2 2.2
我希望程序能够计算:
'''
2 + 0.2 = 2.2
2.2 + 0.2 = 2.4
2.4 + 0.2 = 2.6
2.6 + 0.2 = 2.8
giving result 2.2 2.4 2.6 2.8
'''
解决方案
规划良好做法
list
)x
内部margin
函数)calc
和margin
函数中,列表中的第一个元素是唯一使用的元素)list
)x
内部margin
函数)calc
和margin
函数中,列表中的第一个元素是唯一使用的元素)“如何在另一个公式中使用一个公式的结果?”,不是这里的问题。这样做是正确的,顺便说一句,您不应该使用
list
作为变量名,因为这会隐藏内置的list
类型。这不会导致此代码出现问题,但可能会导致产生神秘错误消息的错误。您的margin
函数有点奇怪。现在还不清楚你为什么要重复这个列表。函数仅在列表中遇到1时返回数值,否则返回None
,如果尝试在算术表达式中使用None
,您将得到TypeError
“如何在另一个公式中使用一个公式的结果?”,这不是这里的问题。这样做是正确的,顺便说一句,您不应该使用list
作为变量名,因为这会隐藏内置的list
类型。这不会导致此代码出现问题,但可能会导致产生神秘错误消息的错误。您的margin
函数有点奇怪。现在还不清楚你为什么要重复这个列表。函数仅在列表中遇到1时返回数值,否则返回None
,如果您尝试在算术表达式中使用None
,您将得到TypeError
。感谢您的打字和打印格式@ChristianKönig谢谢您,我是python新手,我会记住您的建议,你能解释一下最后一部分是:print({.1f}).format(format(formula)),能不能用一种我能很容易理解的更简单的方法来打印它。那部分实际上是@ChristianKönig的编辑,但我可以解释print()
是一个接受多种类型变量并将其发送到控制台的函数。我和你一样使用print(formula)
,但这会打印一个float
“{.1f}”。格式(公式)
将浮点
转换为只打印一个十进制数字的str
,而另一个版本可以打印更多的十进制数字,因为浮点
不是精确的十进制表示形式,2.2
可以存储为2.19999999
或2.2000001
。总而言之,这一部分强制打印一个小数点。谢谢你的打字错误和打印格式@ChristianKönignog谢谢你,Adiro,我是python新手,我会记住你的建议,你能解释一下最后一部分吗:打印(“{.1f}”。格式(公式)),有没有可能用一种我能理解的更简单的方法来打印这篇文章。这部分实际上是@ChristianKönig的编辑,但我可以解释print()
是一个接受多种类型变量并将其发送到控制台的函数。我和你一样使用print(formula)
,但这会打印一个float
“{.1f}”。格式(公式)
将浮点
转换为只打印一个十进制数字的str
,而另一个版本可以打印更多的十进制数字,因为浮点
不是精确的十进制表示形式,2.2
可以存储为2.19999999
或2.2000001
。总之,这一部分强制打印一个小数。
def margin(element, a=0, b=1.2, c=1, default_margin=0):
if element == 1:
return a + b - c
else:
return default_margin
def calc(elements, start_value=2):
formula = start_value
for i in elements:
formula += margin(i)
print("{:.1f}".format(formula))
elements = [1, 1, 1, 1]
calc(elements) # 2.2 2.4 2.6 2.8