续阶段学习完Python3小白内容后。对之前学习到的计算方法结合数字运用实际加以汇总,共学习小白共享与交流。
二次方程
说到方程便容易想到鸡兔同笼,众多穿越剧里边都可以看到的桥段。Python中是正经的运用了二次方程。示例:
# Filename : test.py
# author by : www.runoob.com
# 二次方程式 ax**2 + bx + c = 0
# a、b、c 用户提供,为实数,a ≠ 0
# 导入 cmath(复杂数学运算) 模块
import cmath
a = float(input('输入 a: '))
b = float(input('输入 b: '))
c = float(input('输入 c: '))
# 计算
d = (b**2) - (4*a*c)
# 两种求解方式
sol1 = (-b-cmath.sqrt(d))/(2*a)
sol2 = (-b+cmath.sqrt(d))/(2*a)
print('结果为 {0} 和 {1}'.format(sol1,sol2))
见网友学习到的一个比较完整的一元二次方程判断,实数根,复数根,提醒用户输入数字类数据。示例:
unicodedata.numeric(s)
return True
except (TypeError, ValueError):
pass
return False
def panduan(xx):
if is_number(xx)==True:
return xx
else:
while is_number(xx)==False:
print('不是数字,请再次输入')
cc =input("请输入第一个数:")
if is_number(cc)==True:
break
return ccprint('此程序用于计算一元二次方程解,请依次输入三个数')
zz=input("是否要开始计算:yes/no——:")
while zz =='yes':
a=float(panduan(input("请输入第一个数:")))
b=float(panduan(input("请输入第二个数:")))
c=float(panduan(input("请输入第三个数:")))
mx(a,b,c)
zz = input("是否还要继续计算:yes/no——:")
print('感谢使用。' ,end="")
计算三角形的面积
求得三角形的面积,假设先判断是否构成三角形或合法,然后再跟进输入的三边数值计算面积。示例:
import math
# 可以不导入模块,像例子那样写 x**0.5
while True:
print("请先输入三角形的三边长a,b,c")
try:
# 输入字符串会非法,提示重新输入
a = float(input("请输入边长a:"))
b = float(input("请输入变成b:"))
c = float(input("请输入边长c:"))
except ValueError:
print("您输入的不是一个数字无法计算三角形面积,请重新输入正确的数字")
else:
# 判断三边的边长能否构成一个三角形
if a+b > c and a+c > b and b+c > a:
p = (a + b + c)/2
s = math.sqrt(p*(p-a)*(p-b)*(p-c))
print("三角形的面积为:{0:.3f}".format(s))
else:
print("输入的三边构不成三角形")
也可以这样:
import math
judge = True
while judge:
a,b,c = sorted(eval(input('请输入三边长【以逗号隔开】:'))) # 给三边排序,避免后面的分类
if a > 0 and b > 0 and c > 0:
if c < b + a: # 因为sorted的结果是 a>b>c,所以只需一个判断就可
p = (a + b + c)/2
S = math.sqrt(p*(p - a)*(p - b)*(p - c))
print('三角形的面积是:%.3f'%S)
judge = False
else:
print('三边不能构成三角形,请重新输入三个正数,用逗号隔开')
print() # 上下两次循环隔开,没那么密集,下同
else: # 可以排除其他误输入类型
print('输入有误,请输入三个正数,用逗号隔开。')
print()
continue