def equation(a, b, c):
m = b * b - 4 * a * c
import math
if m >= 0:
x1 = (-b + math.sqrt(m)) / (2 * a)
x2 = (-b - math.sqrt(m)) / (2 * a)
return x1, x2
else:
return ("无解")
a, b, c = map(float, input().split())
print(equation(a, b, c))
这该怎么改,我的结果多了括号,并且只有一位小数
主要是函数类型和最后两行输出那一块是pta上给的不能改,我就不会在用float函数去修改结果有几位小数了
您可以在代码中使用round()函数,来将计算结果四舍五入到指定位数。如果您想要保留一位小数,可以使用round(x, 1),其中x是您要四舍五入的数字。您可以将round()函数用于计算出的 x1 和x2 的值,来去除多余的括号。
具体的代码
def equation(a, b, c):
# 计算判别式
m = b * b - 4 * a * c
import math
if m >= 0:
# 当判别式大于0时,说明方程有两个解
x1 = (-b + math.sqrt(m)) / (2 * a)
x2 = (-b - math.sqrt(m)) / (2 * a)
return round(x1, 1), round(x2, 1)
else:
# 当判别式小于0时,说明方程无解
return ("无解")
# 输入a,b,c的值
a, b, c = map(float, input().split())
# 输出计算结果
print(equation(a, b, c))
这个程序好像没有啥问题呀?
一位小数是因为结果真的只有一位,或是整数,您换个别的数字输入觉看出差别了。
至于括号,equation函数返回的x1,x2是个元组,当然会有括号,如果要使输出变得易读,可以适当修饰,比如:
result = equation(a, b, c)
if type(result) != str:
print('方程解得x1 = %s,x2 = %s' % (result[0],result[1]))
else:
print(result)
https://www.jb51.net/article/248253.htm
能把您的运行情况贴在下方吗?
不知道你这个问题是否已经解决, 如果还没有解决的话: