• 1
    Eingabe und Ausgabe
    • Aufgaben
  • 2
    Bedingungen
    • Aufgaben
  • 3
    For-Schleife
    • Aufgaben
  • 4
    Zeichenketten
    • Aufgaben
  • 5
    While-Schleife
    • Aufgaben
  • 6
    Listen
    • Aufgaben
  • 7
    2D-Arrays
    • Aufgaben
  • 8
    Wörterbücher
    • Aufgaben
  • 9
    Mengen
    • Aufgaben
  • 10
    Funktionen und Rekursion
    • Aufgaben
  • к

Lektion 4. Lines

Schwierigkeit:

Aufgabe«Video»

💻 Python

Sie haben sich entschieden, einen sehr langen Stream anzusehen, eine Vorlesung aufzuzeichnen oder ein Spiel durchzuspielen. Der Player zeigt die Zeit an, die Sie bereits gesehen haben, sowie die Gesamtdauer des Videos. Ihre Aufgabe — Schreiben Sie ein Programm, das bestimmt, welchen Anteil des gesamten Videos Sie bereits gesehen haben, und geben Sie diesen Anteil als gekürzten Bruch aus.

Wenn Sie beispielsweise 2 Stunden und 20 Minuten gesehen haben, entspricht dies 1/3 des gesamten Videos.

Das Programm soll zwei Zeilen als Eingabe erhalten, die die Zeit im Format "HH:MM:SS" darstellen: die erste Zeile — die gesehene Zeit, die zweite — die Gesamtdauer. Anschließend muss das Programm den Anteil in Form einer Liste von zwei Zahlen berechnen und ausgeben   [Zähler, Nenner]   und die Ausgabe mit einer verständlichen Textnachricht begleiten.

Wichtige Einschränkung:   Zum Finden des größten gemeinsamen Teilers und zum Kürzen des Bruchs dürfen keine eingebauten Funktionen aus Bibliotheken verwendet werden (z. B. aus der Bibliothek   math ). Sie müssen den Suchalgorithmus selbstständig mit einer   for -Schleife implementieren.

 

Eingabeformat

Betrachtungszeit (Zeichenkette im Format "HH:MM:SS")
Gesamtdauer des Videos (Zeichenkette im Format "HH:MM:SS")

Ausgabeformat

Vereinfachter Bruch (eine Liste von zwei ganzen Zahlen)
Erläuternde Nachricht (Zeile)

Beispiel

Eingabe

02:20:00
07:00:00

Ausgabe

Du hast 1/3 des gesamten Videos angesehen.

Hinweis

There will be no clue here, decide for yourself!

main.py
Test 1
Test 2
Test 3
Test 4
Test 5
Test 6
Test 7
Test 8
Test 9
Test 10
Entwicklerlösung
# Функция для преобразования времени в секунды
def time_to_seconds(time_str):
    # Разделяем строку времени на часы, минуты, секунды
    hours, minutes, seconds = map(int, time_str.split(':'))
    # Преобразуем все в секунды
    total_seconds = hours * 3600 + minutes * 60 + seconds
    return total_seconds

# Функция для нахождения наибольшего общего делителя (НОД)
def find_gcd(a, b):
    # Используем алгоритм Евклида
    while b != 0:
        a, b = b, a % b
    return a

# Считываем время просмотра и общее время
watched_time = input()
total_time = input()

# Преобразуем время в секунды
watched_seconds = time_to_seconds(watched_time)
total_seconds = time_to_seconds(total_time)

# Вычисляем долю просмотренного времени в виде дроби
numerator = watched_seconds
denominator = total_seconds

# Находим НОД для сокращения дроби
gcd = find_gcd(numerator, denominator)

# Сокращаем дробь
numerator //= gcd
denominator //= gcd

# Выводим результат
print(f"Вы просмотрели {numerator}/{denominator} всего видео.")

🎉 Glückwunsch! 🎉

Du hast die Aufgabe hervorragend gelöst! Es war schwierig, aber du hast die Lösung gefunden. Du bist dem Meister einen Schritt näher! Mach weiter so.

AD

Werbung

red-snake blue-snake green-snake

Führe deinen Code aus...

KI-Assistent

Hallo! Ich bin dein Programmier-Assistent. Stelle mir beliebige Fragen zu Python — ich erkläre Funktionen, Methoden und helfe dir bei der aktuellen Aufgabe!