Tire Size Calculator

Parse tire size codes (e.g. 205/55R16) and calculate sidewall height, total diameter, circumference, and revolutions per mile.

TireSizeCalculator.formatTitle

TireSizeCalculator.formatDesc

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

์ฝ”๋“œ ๊ตฌํ˜„

import re

def parse_tire(code: str) -> dict | None:
    m = re.match(r'^(\d{3})/(\d{2})([RDB])(\d{1,2}(?:\.\d)?)$', code.strip().upper())
    if not m:
        return None
    width_mm = int(m.group(1))
    aspect_ratio = int(m.group(2))
    construction = m.group(3)
    rim_inches = float(m.group(4))

    sidewall_mm = width_mm * aspect_ratio / 100
    total_diameter_mm = rim_inches * 25.4 + 2 * sidewall_mm
    circumference_mm = total_diameter_mm * 3.14159265
    revs_per_mile = 1609344 / circumference_mm
    revs_per_km = 1000000 / circumference_mm

    return {
        "width_mm": width_mm,
        "aspect_ratio": aspect_ratio,
        "construction": construction,
        "rim_inches": rim_inches,
        "sidewall_mm": round(sidewall_mm, 1),
        "total_diameter_mm": round(total_diameter_mm, 1),
        "total_diameter_inches": round(total_diameter_mm / 25.4, 2),
        "circumference_mm": round(circumference_mm, 1),
        "revs_per_mile": round(revs_per_mile, 1),
        "revs_per_km": round(revs_per_km, 1),
    }

result = parse_tire("205/55R16")
for k, v in result.items():
    print(f"{k}: {v}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.