要求使用函数计算面积周长
这是运行截图
import math
def isT(a,b,c):
if a>b+c or b>a+c or c>a+b:
return False
return True
def tP(a=6.0,b=6.0,c=6.0):
return a+b+c
def tS(a=6.0,b=6.0,c=6.0):
p=(a+b+c)/2
return math.sqrt(p*(p-a)*(p-b)*(p-c))
aIn=input("默认情况:边长为6的等边三角形\n是否选择默认情况? (Y或y/N或n):")
if aIn=="Y" or aIn=="y":
print("面积={:.2f}\n周长={:.2f}".format(tS(),tP()))
elif aIn=="N" or aIn=="n":
aIn=input("请输入三角形的三个边长(逗号分隔):")
aArr = aIn.split(',')
aNumArr=[float(aArr[0]),float(aArr[1]),float(aArr[2])]
if isT(aNumArr[0], aNumArr[1], aNumArr[2]):
print("面积={:.2f}\n周长={:.2f}".format(tS(aNumArr[0], aNumArr[1], aNumArr[2]),tP(aNumArr[0], aNumArr[1], aNumArr[2])))
else:
print("无法构成三角形!")
else :
print("你的选择有误")
from math import *
print("666")
m = input("Y/n")
def f(x,y,z):
if x+y>z and y+z>x and x+z>y:
c = (x+y+z)/2
s = sqrt(c*(c-x)*(c-y)*(c-z))
return [2*c,s]
else:
print("wrong")
if m.lower() == "y":
print(15.59)
print(18)
elif m.lower() == "n":
a = input("length").split(",")
a = list(map(lambda x:eval(x),a))
b = f(a[0],a[1],a[2])
print(b[0],b[1])
else:
print("wrong")
代码顺序有问题,你可以把a, b,c = eval().. print(f(a,b,c))
这两行和def f(x, y, z)整个函数换个位置
你可以把代码复制出来