Seite 1 von 1

Anfänger Frage for schleife

Verfasst: Mittwoch 22. September 2010, 11:02
von USER67
Guten tag

ich hätte da eine peinliche frage als anfänger in sachen pyton.

wie würdet ihr diese struktur vereinfachen

Code: Alles auswählen


for i in korb:
  if "Apfel" in i: pass
  elif "Birne" in i: pass
  elif "Hund" in i: pass
  elif "Gans" in i: pass
  ...
  else: print i


ihr könnt vermutlich das problemchen sehen. denn wenn es mehrer elifs werden

Mfg
Udu

Re: Anfänger Frage for schleife

Verfasst: Mittwoch 22. September 2010, 11:12
von .robert
Hi,

also es kommt ein wenig darauf an, wie genau 'korb' und die 'i's darin aussehen, und was du an stelle des 'pass' einsetzten willst.
Du kannst dir ja mal das pseudo-switch-case-konstrukt anschauen: http://simonwillison.net/2004/may/7/switch/

Re: Anfänger Frage for schleife

Verfasst: Mittwoch 22. September 2010, 12:12
von USER67
Hallo,

ja also ich will nur diese inhalte des korbs abfragen und nur die, die nicht vorkommen darstellen lassen.

Code: Alles auswählen


korb = ["Udu hat einen Apfel", "Michael hat eine Banane", "Günther hat zwei Orangen"]

for i in korb:
  if "Apfel" in i: pass
  elif "Birne" in i: pass
  else: print i

ich denke das könnte man auch mit einer for-schleife oder?

Re: Anfänger Frage for schleife

Verfasst: Mittwoch 22. September 2010, 12:33
von BlackJack
Das ginge zum Beispiel so:

Code: Alles auswählen

korb = ['Udu hat einen Apfel',
        'Michael hat eine Banane',
        'Günther hat zwei Orangen']

for item in korb:
    if not any(x in item for x in ['Apfel', 'Birne']):
        print item

Re: Anfänger Frage for schleife

Verfasst: Mittwoch 22. September 2010, 12:36
von mkesper
Hmm, um das mal auf diesem einfachen Niveau zu halten, hier ein Problemfall:

Code: Alles auswählen

# -*- coding: utf-8 -*-

korb = ["Udu hat zwei Äpfel", "Michael hat eine Banane", "Günther hat zwei Orangen"]

for i in korb:
  if not "Apfel" in i:
      print "Apfel ist nicht enthalten in %s" % i

Re: Anfänger Frage for schleife

Verfasst: Mittwoch 22. September 2010, 13:11
von USER67
Hallo,

"any" methode hört sich gut an. sollte man kennen.

grossen dank für den tipp.

Mfg
Udo

Re: Anfänger Frage for schleife

Verfasst: Mittwoch 22. September 2010, 13:46
von .robert
um noch auf das Problem, auf welches mkesper hingewiesen hat, zu kommen: Ich würde dringend davon abraten, Informationen umgangssprachlich zu speichern!
Beim ein-lesen/-geben der Daten sollten diese entsprechend aufbereitet/geparsed/analysiert werden, nicht wenn du mit ihnen arbeiten willst. Du musst dir überlegen welche Informationen du brauchst, hier in den Beispiel halt den Namen des Besitzers, die Obstsorte und die Anzahl, und diese dann aus der Eingabe extrahieren und in einer passenden Datenstruktur speichern.

Mit dieser umgangssprachlichen Speicherung wirst du nur Ärger bekommen.

Re: Anfänger Frage for schleife

Verfasst: Mittwoch 22. September 2010, 15:09
von mkesper
Mit anderen Worten, ein Korb könnte z.B. Folgendes enthalten (Pseudoschreibweise):

Code: Alles auswählen

"Udu":"Apfel",2
"Michael":"Banane",1;"Orange",2
Oder gleich die Obstsorten durch IDs ersetzen.