1. 写一个函数,保证传入的三个边长数值能构成一个(任意两个边相加大于第三边)三角形, # 并且输出该三角形是 # 等边三角形(三边相等),等腰三角形(有两边相等),直角三角形(两短边平方相加等于长边平方)还是普通三角形
def triangle(x, y, z):
if x + y > z and x + z > y and y + z > x: # 判断是否是三角形
side = sorted([x, y, z])
print("该三边可以组成三角形 长边为:{} 短边为:{} {}".format(side[2], side[0], side[1]))
if x == y == z:
print("是一个等边三角形")
return {'side': side, 'type': 3}
# 3 -> 等边三角形
elif x == y or x == z or y == z:
print("是一个等腰三角形")
return {'side': side, 'type': 2}
# 2 -> 等腰三角形
elif side[0]**2 + side[1]**2 == side[2]**2:
print("是一个直角三角形")
return {'side': side, 'type': 1}
# 1 -> 直角三角形
else:
print("是一个普通三角形")
return {'side': side, 'type': 4}
# 4 -> 普通三角形
else:
print("该三边不可以组成三角形!")
return {'side': [x, y, z], 'type': 0}
# 0 -> 不是三角形
x = float(input("X:"))
y = float(input("Y:"))
z = float(input("Z:"))
triangle(x,y,z)
2.在第一题拿到的三角形类型和三边求三角形面积
def triangle_area(triangle):
if triangle.get('side') == None:
print("该三角形三边数据不存在!")
return
if triangle.get('type', 0) == 0:
print("该三角形,三边不可以组成三角形!")
return
elif triangle['type'] == 3:
return triangle['side'][0]**2 * 3**0.5 / 4
elif triangle['type'] == 1:
return triangle['side'][0] * triangle['side'][1] / 2
else:
p = (triangle['side'][0] + triangle['side'][1] + triangle['side'][2]) / 2
temp = p * (p - triangle['side'][0]) * (p - triangle['side'][1]) * (p - triangle['side'][2])
return temp**0.5
# print(round(triangle_area(triangle(3,4,5)),4))
3.?自己写一个函数,对传入的多个参数进行累乘计算
def reduce(*args):
result = 1
for i in args:
result *= i # result = result * i
return result
print(reduce(2,32,6,7,89,2))
4.写一个函数,对传入的列表进行在指定位置添加另一个列表的值
? ?补充 isinstance(x, list) 可以判断x是不是list类型
# a = 1
# print(isinstance(a, float))
def in_extend(a, b, i):
if not isinstance(a, list) or not isinstance(b, list):
print("请确保传入的是列表!")
return
lis_len = len(a)
if -1 > i or i > lis_len:
print("index超出列表索引范围!")
return
if i == lis_len:
return a + b
else:
return a[:i] + b + a[i:]
x = [1, 24, 5]
# 0 1 2
y = [0, 0, 0]
# print(a[1:])
# print(a[:1] + b + a[1:])
# print(in_extend(x, y, 2))
5.计算传入的列表的最大值、最小值和平均值,并以字典的方式返回;
def in_extend(lis):
if not isinstance(lis, list):
print("请确保传入的是列表!")
return
list_max = max(lis)
list_min = min(lis)
list_arg = sum(lis)/len(lis)
return {"最大值":list_max, "最小值":list_min, "平均值":list_arg}
a = [1, 0, 10, 0, 24, 5]
print(in_extend(a))
# a = "1"
# print(isinstance(a, str))
|