1. 键盘输入三角形三条边长,计算其面积。
p=a+b+c2p=\frac{a+b+c}{2}p=2a+b+c
S=p(p−a)(p−b)(p−c)S = \sqrt{p(p-a)(p-b)(p-c)}S=p(p−a)(p−b)(p−c)
import math
a = float(input('边长a:'))
b = float(input('边长b:'))
c = float(input('边长c:'))
if a + b > c and b + c > a and a + c > b:
p = (a + b + c)/ 2
# s = math.sqrt(p * (p - a) * (p - b) * (p - c))
s = (p * (p - a) * (p - b) * (p - c)) ** 0.5
print('三角形面积:', s)
else:
print('不能构成三角形')
边长a:3
边长b:4
边长c:5
三角形面积: 6.0
2. 输入一元二次方程的系数a,b,c,如果有实数解,输出其实数解。如果没有实数解,输出其虚数解。
x=−b±b2−4ac2ax=\frac{-b±\sqrt{b^2-4ac}}{2a}x=2a−b±b2−4ac
import math
a = float(input('a:'))
b = float(input('b:'))
c = float(input('c:'))
deta = b * b - 4 * a * c
g = (deta)**0.5
x1 = (-b + g)/ (2 * a)
x2 = (-b - g)/ (2 * a)
print('x1=', x1)
print('x2=', x2)
a:3
b:4
c:5
x1= (-0.6666666666666666+1.1055415967851332j)
x2= (-0.6666666666666666-1.1055415967851332j)
本次收获
import cmath
a = float(input('a:'))
b = float(input('b:'))
a = cmath.sqrt(a)
b = (b) ** 0.5
# c = math.sqrt(-1) # math.sqrt()此函数不能开根号负数
print(a, type(a))
print(b, type(b))
a:9
b:9
(3+0j) <class ‘complex’>
3.0 <class ‘float’>
a:-16
b:-16
4j <class ‘complex’>
(2.4492935982947064e-16+4j) <class ‘complex’>
cmath.sqrt() 是直接求得值的复数形式。
() ** 0.5 正数正常开根号,结果是float形。负数开根号直接得出对应复数。
而math.sqrt() 不能对复数使用
:- ) : - )