Python实现圆形面积与周长计算
任务要求
1.数学公式:
- 周长公式:C = 2πr
- 面积公式:S = πr^2
2.输入规范:支持纯数字或带"cm"单位的输入(如5或10cm)
3.输出精度:结果保留两位小数并标注单位
任务实现
方法一:基础算法(直接运算)
import math
radius = float(input("输入半径: ").strip('cmCM'))
circumference = 2 * math.pi * radius
area = math.pi * radius ** 2
print(f"周长: {circumference:.2f}cm")
print(f"面积: {area:.2f}cm^2")
说明:
- 使用strip()去除单位字符,兼容带单位输入
- math.pi调用精确圆周率常数
- f-string格式控制保留两位小数
方法二:函数封装法(带异常处理)
import math
def calc_circle(radius):
try:
r = float(str(radius).strip('cmCM'))
return (2*math.pi*r, math.pi*r**2)
except ValueError:
return "输入无效"
user_input = input("输入半径: ")
c, a = calc_circle(user_input)
print(f"周长: {c:.2f}cm\n面积: {a:.2f}cm^2")
说明:
- 通过try-except捕获非法输入
- 函数返回元组实现计算逻辑封装
- 计算结果解包赋值
方法三:类封装法(面向对象)
import math
class Circle:
def __init__(self, radius):
self.radius = float(str(radius).strip('cmCM'))
@property
def circumference(self):
return 2 * math.pi * self.radius
@property
def area(self):
return math.pi * self.radius ** 2
# 使用示例
circle = Circle(input("输入半径: "))
print(f"周长: {circle.circumference:.2f}cm")
print(f"面积: {circle.area:.2f}cm^2")
说明:
- 类属性初始化时统一处理输入
- @property装饰器实现动态计算
- 支持后续扩展体积计算等三维特性
运行结果
从键盘上输入字符串“5CM”。
输入半径: 5CM
周长: 31.42cm
面积: 78.54cm^2
进程已结束,退出代码为 0