AzLearn

تمرين إعادة البناء

محوّل درجات الحرارة

أعد كتابة أداة Python صغيرة لتحويل درجات الحرارة بين Celsius وFahrenheit وKelvin.

python ~10 دقيقة مبتدئ
أعد بناء الكود Rebuild

هذا هو الكود. اكتبه بنفسك.

الكود المرجعي
import argparse


def to_celsius(value: float, unit: str) -> float:
    if unit == "c":
        return value
    if unit == "f":
        return (value - 32) * 5 / 9
    if unit == "k":
        return value - 273.15
    raise ValueError(f"Unknown unit: {unit}")


def from_celsius(value: float, unit: str) -> float:
    if unit == "c":
        return value
    if unit == "f":
        return value * 9 / 5 + 32
    if unit == "k":
        return value + 273.15
    raise ValueError(f"Unknown unit: {unit}")


def convert_temperature(value: float, from_unit: str, to_unit: str) -> float:
    celsius = to_celsius(value, from_unit.lower())
    return from_celsius(celsius, to_unit.lower())


def main() -> None:
    parser = argparse.ArgumentParser(description="Convert C, F, and K temperatures.")
    parser.add_argument("value", type=float)
    parser.add_argument("from_unit", choices=["c", "f", "k"])
    parser.add_argument("to_unit", choices=["c", "f", "k"])
    args = parser.parse_args()

    result = convert_temperature(args.value, args.from_unit, args.to_unit)
    print(f"{args.value:.2f}°{args.from_unit.upper()} = {result:.2f}°{args.to_unit.upper()}")


if __name__ == "__main__":
    main()
اكتب هنا