[Mit Kommentar] Löse Fizz Buzz (entspricht Paiza Rang C) mit Python

zunaechst

Ich habe Paizas Level-Up-Problem-Sammlung gelöst, aber ich hatte keine vorbildliche Antwort, also habe ich es selbst mit Erklärungen gemacht. Die Sprache ist Python3.

Problem

Paizas Skill-Check-Beispielproblem Fizz Buzz (entspricht Paiza-Rang C) https://paiza.jp/works/mondai/skillcheck_sample/fizz-buzz?language_uid=python3 Sie können paiza sofort kostenlos registrieren, daher empfehle ich Ihnen, sich vorerst zu registrieren.

Programmieren wir das folgende Problem!

Die ganze Zahl N wird als Eingabe angegeben.

Zeigen Sie die Ganzzahlen von 1 bis N in der Reihenfolge von 1 an.

Die Nummer, die Sie anzeigen möchten, lautet jedoch

・ Wenn es ein Vielfaches von 3 und ein Vielfaches von 5 ist, "Fizz Buzz" ・ Wenn es ein Vielfaches von 3 ist, "Fizz" ・ Wenn es ein Vielfaches von 5 ist, "Buzz"

Bitte zeigen Sie >> anstelle der Nummer an.

einzugebender Wert

Die Eingabe erfolgt im folgenden Format.

N

N ist eine ganze Zahl größer oder gleich 1 und kleiner oder gleich N.

Eingabewert Am Ende der letzten Zeile wird ein Zeilenumbruch eingefügt. Die Zeichenfolge wird von der Standardeingabe übergeben.

Erwartete Ausgabe

Beginnen Sie am Ende eine neue Zeile und fügen Sie keine zusätzlichen Zeichen oder Leerzeilen hinzu.

Bedingungen

In allen Testfällen sind folgende Bedingungen erfüllt.

・ 1 ≤ N ≤ 100 ・ N ist eine ganze Zahl

Eingabebeispiel 1

5

Ausgabebeispiel 1

1 2 Fizz 4 Buzz

Eingabebeispiel 2

20

Ausgabebeispiel 2

1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 Fizz Buzz 16 17 Fizz 19 Buzz

Kommentar

Eingabewert empfangen

Der Eingabewert ist ein ganzzahliger Wert von 0-100. Nach dem Empfang des Eingabewerts mit der Eingabefunktion ** Typkonvertierung ** vom str-Typ zum int-Typ mit der int-Funktion.

fizz-buzz_1.py


n = int(input())

Zahlen nacheinander anzeigen

Suchen Sie dann nach der Nummer, die Sie stattdessen anzeigen sollten. Dieses Mal verwenden wir die ** Bereichsfunktion **, da wir nur nach Ganzzahlen von 1 bis n suchen müssen. Zu diesem Zeitpunkt müssen Sie vorsichtig sein, wie Sie den ** Bereich ** der Bereichsfunktion angeben.

Wenn Sie zwei Argumente mit der Bereichsfunktion eingeben, lautet das erste Argument ~~ begin ~~ start und das zweite Argument ~~ end ~~ stop. Zu diesem Zeitpunkt enthält das Argument ~~ end ~~ stop nicht die Nummer selbst und gibt an, dass die vorherige Ganzzahl ausgegeben werden soll.

Mit anderen Worten ist die Ausgabe für "Bereich (1, 5)" 1,2,3,4 und ** 5 ist nicht enthalten. ** ** ** Wenn Sie 1,2,3,4,5 ausgeben möchten, müssen Sie range (1, 5 + 1) angeben.

range_sample.py


print(list(range(1,5)))    # [1,2,3,4]
print(list(range(1,6)))    # [1,2,3,4,5]

In diesem Fall möchten wir einen ganzzahligen Wert von 1 bis n, also übergeben Sie ** 1, n + 1 ** als Argument an die Bereichsfunktion. In Kombination mit der for-Anweisung sieht es so aus.

fizz-buzz_2.py


n = int(input())
for i in range(1, n+1):
    print(i)
    
"""
n =Um 5,
1
2
3
4
5
"""

Finde FizzBuzz

Bestimmen Sie als Nächstes die Zahlen, die in fizzBuzz konvertiert werden müssen. Verwenden Sie dazu% (einen algebraischen Operator, um den Rest zu finden).

Wenn n durch 3 geteilt wird und der Rest Null ist, ist n ein Vielfaches von 3. Wenn der Rest von n geteilt durch 5 Null ist, ist n ein Vielfaches von 5. Wenn der Rest von n geteilt durch 15 Null ist, ist n ein Vielfaches von 3 und ein Vielfaches von 5.

Ein Vielfaches von 3 und ein Vielfaches von 5 bedeutet ein Vielfaches von ** 15.

Dieses Mal wird die if-elif-Aussage zur Beurteilung herangezogen.

Zu diesem Zeitpunkt ist es notwendig, die ** Urteilsverordnung ** zu beachten. Bestimmen, ob ~~ n ein Vielfaches von 3 oder 5 ist, Wenn Sie es schreiben, bevor Sie beurteilen, ob es ein Vielfaches von 15 ist, funktioniert es nicht. ~~ Um festzustellen, ob> n ein Vielfaches von 3 oder 5 ist, Wenn Sie es schreiben, bevor Sie beurteilen, ob es ein Vielfaches von> 15 ist, müssen Sie ein wenig überlegen.

Es gibt eine Methode, auf die @shiracamus hinweist. Bitte überprüfen Sie sie im Kommentarbereich unten. Dieses Mal möchte ich es gemäß der Reihenfolge des Urteils lösen.

if_sample.py


#Schlechter Code
n = 15
if n%3 == 0:
    print("n ist ein Vielfaches von 3.")
elif n%5 == 0:
    print("n ist ein Vielfaches von 5.")
elif n%15 == 0:
    print("n ist ein Vielfaches von 3 und ein Vielfaches von 5.")
else:
    print("n ist weder ein Vielfaches von 3 noch ein Vielfaches von 5.")
    
#n ist ein Vielfaches von 3.

Wenn n ein Vielfaches von 15 ist, wird bestimmt, dass es ein Vielfaches von 3 oder 5 anstelle eines Vielfachen von 15 ist. Denken Sie daran, dass es in der Reihenfolge von oben verarbeitet wird.

Stellen Sie also zunächst fest, ob es sich um ein Vielfaches von 15 handelt. Danach funktioniert es gut zu bestimmen, ob es ein Vielfaches von 5 oder ein Vielfaches von 3 ist.

fizz-buzz_3.py


n = 15
if n%15 == 0:
    print("n ist ein Vielfaches von 3 und ein Vielfaches von 5.")
elif n%5 == 0:
    print("n ist ein Vielfaches von 5.")
elif n%3 == 0:
    print("n ist ein Vielfaches von 3.")
else:
    print("n ist weder ein Vielfaches von 3 noch ein Vielfaches von 5.")
    
#n ist ein Vielfaches von 3 und ein Vielfaches von 5.

Im Allgemeinen scheint es beim Schreiben einer if-elif-Anweisung oft gut zu funktionieren, wenn die engeren Bedingungen zuerst geschrieben werden.

Antwortcode

fizz-buzz.py


n = int(input())
for i in range(1, n+1):
    if i%15==0:
        print("Fizz Buzz")
    elif i%5==0:
        print("Buzz")
    elif i%3==0:
        print("Fizz")
    else:
        print(i)

Referenz

https://qiita.com/KoyanagiHitoshi/items/3286fbc65d56dd67737c

Schließlich

Ich werde im Detail erklären, wo ich in der Vergangenheit gefangen wurde. Es war vielleicht ein Kreisverkehr und schwer zu verstehen, aber Fühlen Sie sich frei zu kommentieren, wenn Sie irgendwelche Bedenken haben.

Recommended Posts

[Mit Kommentar] Löse Fizz Buzz (entspricht Paiza Rang C) mit Python
Löse Fizz Buzz (entspricht Paiza Rang C) in Python
Lösen Sie die Wortanzahl (entspricht Paiza Rang C) in Python
Löse Addition (entspricht Paiza Rang D) in Python
Löse die Multiplikation (entspricht Paiza Rang D) in Python
Lösen der Nummernsortierung (entspricht Paiza Rang D) in Python
Löse die Inselsuche (entspricht Paiza Rang S) mit Python
Löse Charakter-Übereinstimmungen (entspricht Paiza-Rang D) in Python
Löse mod7 Wahrsagerei (entspricht Paiza Rang S) in Python
Löse den kleinsten Wert in Python (entspricht Paiza Rang D)
Fordern Sie Fizz Buzz heraus! Probleme mit Python in 5 Mustern (nur jetzt bis zu 398)
Fizz Buzz in Python
Fizz Buzz in Python
Löse ABC163 A ~ C mit Python
Versuchen wir es mit Fizz Buzz mit Python
Ich habe Fizz Buzz in Python geschrieben
Löse ABC168 A ~ C mit Python
Löse ABC036 A ~ C mit Python
So verpacken Sie C in Python
Löse ABC162 A ~ C mit Python
Löse ABC167 A ~ C mit Python
Löse ABC158 A ~ C mit Python
Löse ABC037 A ~ C mit Python
Ich möchte APG4b mit Python lösen (nur 4.01 und 4.04 in Kapitel 4)
Löse ABC175 A, B, C mit Python
Ich wollte ABC160 mit Python lösen
So arbeiten Sie mit BigQuery in Python
Ich wollte ABC159 mit Python lösen
So betreiben Sie die Zeitstempelstation in Python
Ich wollte ABC172 mit Python lösen
Verwendung der C-Bibliothek in Python
Lösen mit Ruby, Perl, Java und Python AtCoder ARC 086 C Hash-Sortierung
[REAPER] Wie man Reascript mit Python spielt
So generieren Sie eine Sequenz in Python und C ++
Ich wollte den NOMURA Contest 2020 mit Python lösen
Konvertieren Sie PDFs mit Python in Massenbilder
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen
Melden Sie sich mit Selenium Python bei Yahoo Business an
Wie man tkinter mit Python in Pyenv benutzt
Ich möchte APG4b mit Python lösen (Kapitel 2)
Geben Sie Notizen zu Python-Skripten ein, um das PyTorch-Modell in C ++ mit libtorch auszuführen
[Für Anfänger von Wettkampfprofis] Ich habe versucht, 40 AOJ "ITP I" -Fragen mit Python zu lösen
So konvertieren / wiederherstellen Sie einen String mit [] in Python
Versuchen Sie, das Programmier-Herausforderungsbuch mit Python3 zu lösen
Versuchen Sie, ein Python-Modul in C-Sprache zu erstellen
So führen Sie eine Hash-Berechnung mit Salt in Python durch
Versuchen Sie, das Problem der Zuweisung von Schulungsärzten mit Python zu lösen
So führen Sie Tests zusammen mit Python unittest aus
Ich habe versucht, Soma Cube mit Python zu lösen
Versuchen Sie, Python mit pybind11 in ein C ++ - Programm einzubetten
Konvertieren Sie das Bild in .zip mit Python in PDF
Super Primer für Python-Erste Schritte mit Python3.5 in 3 Minuten
Ich war süchtig danach, 2020 mit Selen (+ Python) zu kratzen
Ich möchte mit einem Roboter in Python arbeiten.
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Löse den Atcoder ABC176 (A, B, C, E) in Python
Um das Äquivalent von Rubys ObjectSpace._id2ref in Python zu tun
Ich habe versucht, AOJs Integer-Theorie mit Python zu lösen
Löse ABC168D in Python
Löse ABC167-D mit Python
Löse AtCoder 167 mit Python