用python完成下面编程,这是一个编程编写程序,使用eval(input())按字典格式输入图形名和面积的字典。 计算最大、最小、平均面积并输出,面积保留2位小数; 查找所有低于平均面积的图形,按列表的形式打印出图形名称,如果没有满足要求的图形,则输出"无满足要求的图形",提示列表输出时可采用 print("{}的面积低于平均面积".format(列表))语句 需检查输入面积的合法性(面积为数值型且非负)。 输入格式: 按输入样例,输入一个包含图形名、面积的字典 输出格式: 按输出样例格式输出,如果输入面积是不合法的,则输出:“Wrong Format”
时间: 2024-02-06 20:10:06 浏览: 60
以下是代码实现:
```python
import statistics
def calculate_area(dic):
area_list = []
invalid_input = False
for shape, area in dic.items():
if isinstance(area, (int, float)) and area >= 0:
area_list.append(area)
else:
invalid_input = True
break
if invalid_input:
print("Wrong Format")
else:
max_area = max(area_list)
min_area = min(area_list)
avg_area = statistics.mean(area_list)
print("Max Area: {:.2f}".format(max_area))
print("Min Area: {:.2f}".format(min_area))
print("Average Area: {:.2f}".format(avg_area))
below_avg = [shape for shape, area in dic.items() if area < avg_area]
if below_avg:
print("{}的面积低于平均面积".format(below_avg))
else:
print("无满足要求的图形")
input_dic = eval(input())
calculate_area(input_dic)
```
我们可以使用 `statistics` 模块中的 `mean` 函数来计算平均值,同时使用列表解析式来生成低于平均面积的图形名称列表。
注意,在输入字典的时候,我们使用 `eval(input())` 将输入的字符串当作 Python 代码进行执行。这种方式存在一定的安全隐患,因此在实际生产环境中,应该使用更为安全的数据输入方式,例如 JSON 格式或者 XML 格式。
阅读全文