编写一个程序,用于根据用户输入的命令行参数数量来计算长方形、正方形、三角形的面积。如果输入的参数为一个、二个、三个则它们应分别对应正方形、长方形、三角形,如果没有参数,则通过异常处理方法显示错误消息。
时间: 2023-04-24 15:02:17 浏览: 162
CommandLineParser:一个用于解析命令行参数的库。 基于.NET Core的C#语言编写
以下是一个用Python编写的程序,用于根据用户输入的命令行参数数量来计算长方形、正方形、三角形的面积。如果输入的参数为一个、二个、三个则它们应分别对应正方形、长方形、三角形,如果没有参数,则通过异常处理方法显示错误消息。
```python
import sys
import math
def calculate_area(args):
if len(args) == :
raise ValueError("请输入参数")
elif len(args) == 1:
side = float(args[])
area = side ** 2
print("正方形的面积为:", area)
elif len(args) == 2:
length = float(args[])
width = float(args[1])
area = length * width
print("长方形的面积为:", area)
elif len(args) == 3:
a = float(args[])
b = float(args[1])
c = float(args[2])
p = (a + b + c) / 2
area = math.sqrt(p * (p - a) * (p - b) * (p - c))
print("三角形的面积为:", area)
else:
raise ValueError("参数数量不正确")
try:
calculate_area(sys.argv[1:])
except ValueError as e:
print("错误:", e)
```
该程序首先检查命令行参数的数量,如果没有参数,则引发一个ValueError异常,显示错误消息“请输入参数”。如果参数数量为1,则将参数解析为正方形的边长,计算正方形的面积并输出。如果参数数量为2,则将参数解析为长方形的长度和宽度,计算长方形的面积并输出。如果参数数量为3,则将参数解析为三角形的三边长,使用海伦公式计算三角形的面积并输出。如果参数数量不正确,则引发一个ValueError异常,显示错误消息“参数数量不正确”。
该程序使用了Python的sys模块和math模块。sys.argv是一个字符串列表,包含了命令行参数。sys.argv[]是程序本身的名称,sys.argv[1:]是命令行参数的列表。math.sqrt()函数用于计算平方根。
阅读全文