Pętla while. Pomoc w zadaniu. Python

Odpowiedz Nowy wątek
2020-03-17 15:35

Rejestracja: 9 miesięcy temu

Ostatnio: 2 tygodnie temu

0

Zadanie:
W toalecie Air Force One, system rozpoznawania twarzy identyfikuje wejście prezydenta Donalda T. i uruchamia funkcję odtwarzania amerykańskiego hymnu. Program pobiera kolejne nuty hymnu, zakodowane jako liczby całkowite z pliku za pomocą funkcji get_note() i odtwarza je poprzez funkcję play(), do której jako argument przekazuje wartość nuty. Jeżeli funkcja get_note() zwraca wartość 0 (zero) oznacza to koniec danych w pliku.
API:
get_note() - funkcja zwraca wartość całkowitą, reprezentującą określoną nutę. Wartość 0 oznacza koniec pliku.
play( x ) - funkcja odtwarza nutę o wartości całkowitej x.
Zmodyfikuj ciało funkcji play_anthem() w taki sposób, aby odtworzyła cały hymn. Zwróć uwagę, aby hymn został odtworzony od pierwszej do ostatniej nuty. Nie wywołuj funkcji play() dla wartości 0, gdyż powoduje to przenikliwy pisk, którego prezydent nie znosi!

Kod napisany przeze mnie nie działa poprawnie. Pewnie nie dostrzegam czegoś. Proszę o pomoc.

Mój kod:

def play_anthem():
        while get_note() != 0:
            play( get_note() )
edytowany 3x, ostatnio: cerrato, 2020-03-17 17:05

Pozostało 580 znaków

sig
2020-03-17 17:29
sig

Rejestracja: 8 lat temu

Ostatnio: 4 godziny temu

0

Będziesz potrzebował dodatkowej zmiennej, bo sprawdzasz nieparzyste nuty a odtwarzasz parzyste. To będzie coś takiego, nie testowane

note = get_note()
def play_anthem():
        while note != 0:
            play( note )
            note = get_note()
edytowany 2x, ostatnio: sig, 2020-03-17 17:30
Dziękuję bardzo! Działa :D Miłego wieczoru ;) - Mefju08 2020-03-17 17:42

Pozostało 580 znaków

2020-03-18 10:56

Rejestracja: 13 lat temu

Ostatnio: 21 godzin temu

0

W pythonie 3.8 powinno zadziałać:

def play_anthem():
    while note := get_note():
        play( note )
edytowany 1x, ostatnio: artur_waw, 2020-03-18 10:56

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0