[Python-de] Zuweisungen bei if?
Thomas Rachel
nutznetz-0c1b6768-bfa9-48d5-a470-7603bd3aa915 at spamschutz.glglgl.de
Di Apr 10 09:26:24 CEST 2012
Am 10.04.2012 08:17 schrieb Ulli Horlacher:
> Ich versuche gerade ein paar Perl-Scripte nach Python umzusetzen und
> wundere mich, dass Python bei bestimmten Konstrukten ziemlich umstaendlich
> ist (oder ich die Syntax nicht verstehe). Beispiel:
>
> Perl:
>
> if (@ARGV and $ARGV[0] =~ /(\w+)/) { print "$1\n" }
>
> Python:
>
> if len(sys.argv)>1:
> m = re.match(r".*?(\w+)",sys.argv[1])
> if m: print m.group(1)
BTW: (s.u.)
>
> Mein erster Ansatz
>
> if len(sys.argv)>1 and m = re.match(r".*?(\w+)",sys.argv[1]): print m.group(1)
>
> erbrachte einen syntax error: Zuweisungen sind bei if nicht zulaessig?!
Nein, diese beiden sind strikt getrennt. AFAICT kannst Du nur mit zwei
Ebene arbeiten, wie Du schriebst.
Aber Deine RE ist zu kompliziert. Wenn Du re.search() statt re.match()
verwendest, kannst Du das .*? weglassen:
m = re.search(r"(\w+)", sys.argv[1])
Thomas
Mehr Informationen über die Mailingliste python-de