Seite 1 von 1

print-Funktion mit if-Statement

Verfasst: Dienstag 7. Februar 2012, 20:07
von pixewakb
Ich weiß, dass es mal eine Möglichkeit gab eine print()-Anweisung mit einer if-Anweisung zu koppeln. Es sah etwa so aus:

Code: Alles auswählen

print("XXX", end="." if X = 8: end = "!")
Wahrscheinlich ganz anders. Jedenfalls möchte ich erreichen, dass am Ende ein Punkt steht, statt einem Komma, wenn in einer Liste das letzte Element erreicht wird.

Code: Alles auswählen

for x in ergebnisse:
    print(x, end=", ")
Ich möchte eben haben, dass beim letzten x ein Punkt gesetzt wird.

Re: print-Funktion mit if-Statement

Verfasst: Dienstag 7. Februar 2012, 20:14
von EyDu
Hallo,

das hat nichts mit dem print zu tun, es ist ein ganz allgemeines Statement. Verwenden kannst du es in der Form

Code: Alles auswählen

FALLS_TRUE if BEDINGUNG else FALLS_FALSE
Sebastian

Re: print-Funktion mit if-Statement

Verfasst: Dienstag 7. Februar 2012, 20:18
von problembär
Super, und wie prüft er nun, daß es das letzte Element der Liste ist?

Ich nehm' dafür bekanntlich das "Anti-Pattern", hier unter 2.x:

Code: Alles auswählen

#!/usr/bin/env python
# coding: iso-8859-1

ergebnisse = ("a", "b", "c", "d", "e")

a = ""
for i in range(len(ergebnisse)):
    a += ergebnisse[i]
    if i == len(ergebnisse) - 1:
        a += "."
    else:
        a += ", "
print a
So, und nun mach' mal ohne. :lol:

Re: print-Funktion mit if-Statement

Verfasst: Dienstag 7. Februar 2012, 20:25
von EyDu
Man hätte vielleicht zu Ende lesen sollen ^^

@pixewakb: Ist in ``ergebnisse`` immer etwas enthalten (ansonsten gibt es nur eine Zeile mit einem Punkt), dann könntest du einfach folgendes machen:

Code: Alles auswählen

print(", ".join(ergebnisse, end=".\n")
Sollten in ergebnisse keine Strings enthalten sein, kannst du das noch ein wenig erweitern:

Code: Alles auswählen

print(", ".join(map(str, ergebnisse)), end=".\n")

Re: print-Funktion mit if-Statement

Verfasst: Dienstag 7. Februar 2012, 20:26
von deets
Oh. Mein. Gott. Aber wer sich beständig weigert, python zu lernen... Produziert halt sowas.

So würde ich das machen:

print(", ".join(ergebnisse) + ".")

Edit: EyDu war schneller ;)

Re: print-Funktion mit if-Statement

Verfasst: Dienstag 7. Februar 2012, 20:34
von cofi
@pixewakb: Du verwendest die ``print``-_Funktion_ (Python3 oder Python2 + __future__-Import).

deeds verwendet das ``print``-_Statement_ (ueberfluessigerweise mit Klammern) -- zumindest nehme ich das mal an.

Bei letzterem gibt es kein `end` Argument.

Weil ich schon beim Kritisieren bin: Bei EyDu fehlt ein `)` nach dem 2. Komma.

Re: print-Funktion mit if-Statement

Verfasst: Dienstag 7. Februar 2012, 20:48
von EyDu
cofi hat geschrieben:Weil ich schon beim Kritisieren bin: Bei EyDu fehlt ein `)` nach dem 2. Komma.
Du meinst natürlich vor dem zweiten Komma. Wo wir schon dabei sind ... :twisted:

Re: print-Funktion mit if-Statement

Verfasst: Dienstag 7. Februar 2012, 20:49
von deets
@cofi

Wie kommst du darauf, dass ich das Statement verwende?

Re: print-Funktion mit if-Statement

Verfasst: Dienstag 7. Februar 2012, 22:03
von cofi
@deets
Du verwendest nicht das `end`-Argument, sondern machst das manuell ;)

@EyDu
Oh .. das is jetzt aber peinlich :/

Re: print-Funktion mit if-Statement

Verfasst: Mittwoch 8. Februar 2012, 03:25
von gkuhl
cofi hat geschrieben:Bei EyDu fehlt ein `)` nach dem 2. Komma.
Und ich dachte gerade, ein "end" Argument wäre durchaus ein schönes Gimmick für die "join" Methode.