Lösningsförslag

Kap 1.3 – Fyller 100 år

Ett exempel på hur övningen kan lösas med tydliga funktioner och ett samlat huvudflöde.

Uppgiften

  1. Fråga efter användarens namn och ålder.
  2. Beräkna vilket år personen fyller 100 år.
  3. Skriv ut ett personligt meddelande.

Lösningsförslag

from datetime import date


def get_name():
    return input("Vad heter du? ")


def get_age():
    return int(input("Hur gammal är du? "))


def calculate_year_turns_100(age):
    current_year = date.today().year
    years_left = 100 - age
    return current_year + years_left


def print_message(name, year):
    print(f"Hej {name}!")
    print(f"Du fyller 100 år under år {year}.")


def main():
    name = get_name()
    age = get_age()
    year = calculate_year_turns_100(age)
    print_message(name, year)


main()

Vad lösningen visar

  • get_name() ansvarar bara för att hämta namnet.
  • get_age() ansvarar bara för att hämta åldern och göra den till ett heltal.
  • calculate_year_turns_100() ansvarar bara för beräkningen.
  • print_message() ansvarar bara för utskriften.
  • main() samlar programmets huvudflöde.

Exempel på körning

Vad heter du? Anna
Hur gammal är du? 17
Hej Anna!
Du fyller 100 år under år 2109.

Obs: Årtalet i exemplet beror på vilket år programmet körs. Programmet hämtar aktuellt år med date.today().year.

Ladda ner lösningsförslaget: kap1-3-100-ar-losningsforslag.py

Tillbaka till kap 1.3