Einzeilige Bedingungen

List Comprehensions sind großartig, aber es gibt noch eine weitere tolle Syntax in Python, um if-else-Bedingungen in einer einzigen Zeile zu handhaben. Stell dir vor, du möchtest ein Ergebnis von Excellent zuweisen, wenn der Score größer oder gleich 50 ist, und Average, wenn er unter 50 liegt. Dies kann in einer einzigen Zeile erledigt werden:
if score >= 50:
    result = 'Excellent'
else:
    result = 'Average'
result = 'Excellent' if score >= 50 else 'Average'
Die einzeiligen Bedingungen sind besonders nützlich in List Comprehensions. Sie können verwendet werden, um Listenelemente bedingt zu generieren – einen Wert unter einer Bedingung und einen anderen unter einer anderen Bedingung. Dasselbe Bewertungsprogramm kann ebenfalls in einer List Comprehension umgesetzt werden:
scores = [...]
results = ['Excellent' if s >= 50 else 'Average' for s in scores]
print(results)
Jedes Element in results wird entweder Excellent oder Average sein, abhängig vom Wert von s.
Beachte, dass dies anders ist als das Filtern in einer List Comprehension. Beim Filtern erscheint die if-Bedingung nach der for-Schleife. Hier erscheinen die if- und else-Anweisungen im Teil des generierten Elements.

Herausforderung

Bei einer einzelnen Zeile von Prüfungsergebnissen sollst du angeben, ob der Schüler die Prüfung nicht bestanden hat oder bestanden hat. Alle Ergebnisse sind durch ein Leerzeichen getrennt. Schüler fallen durch die Prüfung, wenn sie weniger als 40 Punkte erzielen, und bestehen ansonsten.
Die Eingabe enthält eine einzelne Zeile von Ergebnissen, getrennt durch ein Leerzeichen.
Das Programm soll eine einzelne Zeile ausgeben, in der für jeden Schüler FAIL ausgegeben wird, wenn er durchgefallen ist, und PASS, wenn er die Prüfung bestanden hat.
Versuche, das gesamte Programm in einer einzigen Zeile zu implementieren.
Eingabe
Ausgabe
30 80 90 34 66 100
FAIL PASS PASS FAIL PASS PASS
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue