第三章 10.11.12上机实践
import math
输入三条边
a = float(input("请输入三角形的边A: "))
b = float(input("请输入三角形的边B: "))
c = float(input("请输入三角形的边C: "))
判断是否能构成三角形
if a > 0 and b > 0 and c > 0 and a + b > c and a + c > b and b + c > a:
# 计算周长
perimeter = a + b + c
# 计算半周长
h = perimeter / 2
# 海伦公式计算面积
area = math.sqrt(h * (h - a) * (h - b) * (h - c))
# 保留一位小数输出
print(f"三角形的三边分别为: a={a:.1f}, b={b:.1f}, c={c:.1f}")
print(f"三角形的周长 = {perimeter:.1f}, 面积 = {area:.1f}")
else:
print(“无法构成三角形!”)
请输入三角形的边A: 3
请输入三角形的边B: 4
请输入三角形的边C: 5
三角形的三边分别为: a=3.0, b=4.0, c=5.0
三角形的周长 = 12.0, 面积 = 6.0
import math
x = float(input("请输入x: "))
方法一:单分支语句
y1 = 0
if x >= 0:
y1 = (x**2 - 3 * x) / (x + 1) + 2 * math.pi + math.sin(x)
if x < 0:
y1 = math.log(-5 * x) + 6 * math.sqrt(abs(x)) + math.exp(4) - (x + 1)**3
方法二:双分支结构
if x >= 0:
y2 = (x**2 - 3 * x) / (x + 1) + 2 * math.pi + math.sin(x)
else:
y2 = math.log(-5 * x) + 6 * math.sqrt(abs(x)) + math.exp(4) - (x + 1)**3
方法三:条件运算语句
y3 = ((x**2 - 3 * x) / (x + 1) + 2 * math.pi + math.sin(x)) if x >= 0 else \
(math.log(-5 * x) + 6 * math.sqrt(abs(x)) + math.exp(4) - (x + 1)**3)
print(f"请输入x: {x:.0f}")
print(f"方法一: x = {x:.1f}, y = {y1}")
print(f"方法二: x = {x:.1f}, y = {y2}")
print(f"方法三: x = {x:.1f}, y = {y3}")
请输入x: -1
请输入x: -1
方法一: x = -1.0, y = 46.34793812414429
方法二: x = -1.0, y = 46.34793812414429
方法三: x = -1.0, y = 46.34793812414429
import math
a = float(input("请输入系数a: "))
b = float(input("请输入系数b: "))
c = float(input("请输入系数c: "))
情况1: a=0且b=0
if a == 0 and b == 0:
print(“此方程无解!”)
情况2: a=0且b≠0,一元一次方程
elif a == 0 and b != 0:
x = -c / b
print(f"此方程有一个实根: {x:.1f}")
else:
# 一元二次方程,计算判别式
delta = b**2 - 4 * a * c
if delta == 0:
# 情况3: 两个相等实根
x = -b / (2 * a)
print(f"此方程有两个相等实根: {x:.1f}")
elif delta > 0:
# 情况4: 两个不等实根
x1 = (-b + math.sqrt(delta)) / (2 * a)
x2 = (-b - math.sqrt(delta)) / (2 * a)
print(f"此方程有两个不等实根: {x1:.1f} 和 {x2:.1f}")
else:
# 情况5: 两个共轭复根
realPart = -b / (2 * a)
imagPart = math.sqrt(-delta) / (2 * a)
print(f"此方程有两个不等虚根: {realPart:.1f}+{imagPart:.1f}i 和 {realPart:.1f}-{imagPart:.1f}i")
请输入系数a: 0
请输入系数b: 0
请输入系数c: 6
此方程无解!
请输入系数a: 1
请输入系数b: -2
请输入系数c: 1
此方程有两个相等实根: 1.0
