Ich hatte die Gelegenheit, Python-Anfängern die Grundlagen beizubringen, und ich ließ sie dies tun, um mich an den Einschlussausdruck im Fizzbuzz-Problem zu gewöhnen. Diesmal habe ich beschlossen, es von 1 bis 30 zu versuchen. Die Umgebung ist Python 3.5.0
gewöhnliche
fizzbuzz.py
for n in range(1, 31):
if n % 3 == 0 and n % 5 == 0:
print("FizzBuzz")
elif n % 3 == 0:
print("Fizz")
elif n % 5 == 0:
print("Buzz")
else:
print(n)
Beispiel für eine einzeilige Bindung (3 und 5 sind ärgerlich, setzen Sie sie also auf 15)
fizzbuzz2.py
["FizzBuzz" if n % 15 == 0 else "Fizz" if n % 3 == 0 else "Buzz" if n % 5 == 0 else n for n in range(1,31)]
Dies ist etwas verbessert, da nur eine Liste erstellt und nicht angezeigt wird
fizzbuzz3.py
print("\n".join(["FizzBuzz" if n % 15 == 0 else "Fizz" if n % 3 == 0 else "Buzz" if n % 5 == 0 else str(n) for n in range(1,31)]))
Die Länge einer Zeile ignoriert PEP8 so weit wie möglich. Wenn der Einschluss tatsächlich lang wird, sollten Sie die Zeile entsprechend unterbrechen.
FizzBuzz ist auch mit der Beschreibung in Shiracamus 'Kommentar möglich. Es ist sehr knifflig, aber es fühlt sich wie Pythons einzigartiger Schreibstil an. Wenn Sie das also auch sehen können
Recommended Posts