快速解决
直接使用 math 模块计算圆面积和周长,输入半径即可输出结果。
import math # 导入数学库
radius = 5 # 定义半径
area = math.pi * radius ** 2 # 计算面积 πr²
circumference = 2 * math.pi * radius # 计算周长 2πr
print(f"面积: {area:.2f}, 周长: {circumference:.2f}") # 格式化输出
常用方法
| 方法类型 | 使用频率 | 适用场景 | 优点 | 示例 |
|---|---|---|---|---|
| 基本函数计算 | ⭐⭐⭐⭐⭐ | 命令行工具 | 代码简洁 | def calculate_circle(r): |
| 类封装计算 | ⭐⭐⭐⭐ | 面向对象项目 | 便于扩展 | class CircleCalculator: |
| 图形化界面 | ⭐⭐⭐ | 交互式应用 | 可视化操作 | tkinter.Tk() |
| Web API 服务 | ⭐⭐ | 远程调用 | 支持多端 | Flask(__name__) |
| 批量数据处理 | ⭐⭐ | 科学计算 | 高效处理 | np.vectorize() |
| 异常处理版本 | ⭐ | 安全性要求高 | 输入校验 | try/except |
详细说明
基本函数实现
import math
def calculate_circle(radius):
area = math.pi * radius * radius # 面积公式
circumference = 2 * math.pi * radius # 周长公式
return area, circumference
result = calculate_circle(7)
print(f"面积: {result[0]:.2f}, 周长: {result[1]:.2f}")
类封装方式
import math
class Circle:
def __init__(self, radius):
self.radius = radius # 初始化半径属性
def area(self):
return math.pi * self.radius ** 2 # 面积方法
def circumference(self):
return 2 * math.pi * self.radius # 周长方法
circle = Circle(3.5)
print(f"面积: {circle.area():.2f}, 周长: {circle.circumference():.2f}")
图形化界面程序
import tkinter as tk
import math
def calculate():
radius = float(entry.get())
area = math.pi * radius ** 2
circumference = 2 * math.pi * radius
result.config(text=f"面积: {area:.2f}\n周长: {circumference:.2f}")
root = tk.Tk()
root.title("圆计算器") # 设置窗口标题
label = tk.Label(root, text="请输入半径:")
label.pack()
entry = tk.Entry(root)
entry.pack()
button = tk.Button(root, text="计算", command=calculate)
button.pack()
result = tk.Label(root, text="")
result.pack()
root.mainloop()
高级技巧
构建 Web API 服务
from flask import Flask, request, jsonify
import math
app = Flask(__name__)
@app.route('/calculate', methods=['POST'])
def api_calculate():
data = request.json
radius = data['radius']
area = math.pi * radius ** 2
circumference = 2 * math.pi * radius
return jsonify({
"area": round(area, 2),
"circumference": round(circumference, 2)
})
if __name__ == '__main__':
app.run(debug=True)
使用 NumPy 批量计算
import numpy as np
import math
radii = np.array([2, 3, 5.5]) # 创建半径数组
areas = np.pi * radii ** 2 # 向量化计算面积
circumferences = 2 * np.pi * radii # 向量化计算周长
print(f"面积: {areas}, 周长: {circumferences}")
常见问题
Q1: 输入非数字时程序会崩溃吗?
try:
radius = float(input("请输入半径: "))
# 计算逻辑
except ValueError:
print("请输入有效数字!") # 捕获类型错误
Q2: 如何提高圆周率精度?
from decimal import Decimal, getcontext
getcontext().prec = 50 # 设置精度为50位小数
area = Decimal(math.pi) * Decimal(radius) ** 2
Q3: 能否实现单位换算功能?
def convert_unit(value, from_unit, to_unit):
units = {'mm': 1, 'cm': 10, 'm': 1000}
return value * units[from_unit] / units[to_unit]
总结
通过 Python 的 math 模块和函数/类封装,可快速创建计算圆面积和周长的应用程序,并支持图形化界面和 Web 服务等扩展场景。