返回函数时显示 sqrt
Displaying sqrt when returning a function
我只是在学习编码,所以我决定为自己制作一个项目,制作一个函数来找到抛物线的零点。我认为我遇到的问题实际上是打印出 sqrt
。
这是我收到的错误:
File "C:/Users/someb/AppData/Local/Programs/Python/Python37-32/Quadratic Formula Solver revised.py", line 10, in find_zero
return float(-b) + "+-" + float(math.sqrt(discriminant)) + "/" + float(2 * a)
TypeError: unsupported operand type(s) for +: 'float' and 'str'
这是我对代码的第五次修改,尝试了不同的方式,这原本应该显示两个不同的答案。
#Real Zero Finder QUadratic Formula
import math
def find_zero(a,b,c):
discriminant = (b ** 2 - 4 * a * c)
if discriminant < 0 :
return "No real Zeros"
elif discriminant == 0 :
return "Vertex is the Zero"
else:
#This is where the error is taking place
return float(-b) + "+-" + float(math.sqrt(discriminant)) + "/" + float(2 * a)
def disc(a,b,c):
return math.sqrt(b ** 2 - 4 * a * c)
问题出在return:
return float(-b) + "+-" + float(math.sqrt(discriminant)) + "/" + float(2 * a)
您正在尝试将 float
连接到 String
,而不是加号,请使用逗号:
return float(-b), " +- ", float(math.sqrt(discriminant)), " / ", float(2 * a)
如上所述,您不能添加字符串和浮点数。由于您似乎正在输出一条消息,我更愿意通过将浮点数转换为字符串来解决此问题,然后“+”将连接这些字符串。 returns 一个字符串,可能比返回多个值更有用。
return str(-b) + " +- " + str(math.sqrt(discriminant)) + " / " + str(2 * a)
我还取消了 float() 转换...我不认为他们在这里做任何事情。
您收到此错误是因为 Python 不知道如何将字符串添加到浮点数。您知道您正在尝试将浮点数连接到字符串,但 Python 不会。
在 Python 3.6+ 中打印多个内容的最简单方法是使用格式化字符串文字 (f-strings):https://docs.python.org/3.6/reference/lexical_analysis.html#f-strings
你在你的字符串前放一个 f
然后把你想要出现在花括号内的字符串 { }
.
return f'{-b} +- {math.sqrt(discriminant)} / {2 * a}'
我只是在学习编码,所以我决定为自己制作一个项目,制作一个函数来找到抛物线的零点。我认为我遇到的问题实际上是打印出 sqrt
。
这是我收到的错误:
File "C:/Users/someb/AppData/Local/Programs/Python/Python37-32/Quadratic Formula Solver revised.py", line 10, in find_zero
return float(-b) + "+-" + float(math.sqrt(discriminant)) + "/" + float(2 * a)
TypeError: unsupported operand type(s) for +: 'float' and 'str'
这是我对代码的第五次修改,尝试了不同的方式,这原本应该显示两个不同的答案。
#Real Zero Finder QUadratic Formula
import math
def find_zero(a,b,c):
discriminant = (b ** 2 - 4 * a * c)
if discriminant < 0 :
return "No real Zeros"
elif discriminant == 0 :
return "Vertex is the Zero"
else:
#This is where the error is taking place
return float(-b) + "+-" + float(math.sqrt(discriminant)) + "/" + float(2 * a)
def disc(a,b,c):
return math.sqrt(b ** 2 - 4 * a * c)
问题出在return:
return float(-b) + "+-" + float(math.sqrt(discriminant)) + "/" + float(2 * a)
您正在尝试将 float
连接到 String
,而不是加号,请使用逗号:
return float(-b), " +- ", float(math.sqrt(discriminant)), " / ", float(2 * a)
如上所述,您不能添加字符串和浮点数。由于您似乎正在输出一条消息,我更愿意通过将浮点数转换为字符串来解决此问题,然后“+”将连接这些字符串。 returns 一个字符串,可能比返回多个值更有用。
return str(-b) + " +- " + str(math.sqrt(discriminant)) + " / " + str(2 * a)
我还取消了 float() 转换...我不认为他们在这里做任何事情。
您收到此错误是因为 Python 不知道如何将字符串添加到浮点数。您知道您正在尝试将浮点数连接到字符串,但 Python 不会。
在 Python 3.6+ 中打印多个内容的最简单方法是使用格式化字符串文字 (f-strings):https://docs.python.org/3.6/reference/lexical_analysis.html#f-strings
你在你的字符串前放一个 f
然后把你想要出现在花括号内的字符串 { }
.
return f'{-b} +- {math.sqrt(discriminant)} / {2 * a}'