Christian Selmer: > Jochen Schulz schrieb: > > > >Man *darf* nicht. Bsp: > > > >def make_foo(bar): > > if bar < 99: > > print '%s is small' % bar > > else: > > i = 100 > > while i < bar: > > print '%s is larger than %s' % (bar, i) > > i += 100 > > pass > > > vielleicht bin ich zu müde, jedenfalls stehe ich auf dem Schlauch. Mir > fällt an deinem Programm auf, dass falls bar 99 oder 100 beträgt, nichts > ausgegeben wird.
Yup, off-by-one.
> Ansonsten sind nach meinen bescheidenen Kenntnissen die
> Aussagen
> 255 > 100 und
> 255 > 200
> doch korrekt.
> Was ist daran Unsinn?
Unsinn ist, daß die Funktion nichts Sinnvollesn tut. Ich hab nur grad
irgendeinen lauffähigen Quatsch hingeschrieben, um die Syntax zu zeigen.
> Was hat das denn mit Klammern zu tun? (kenne python
> ebenfalls nicht)
In Java (C ähnlich) macht man doch
if foo {
bar;
} else {
baz;
}
Analog für Schleifen. Die Einrückung ist hier optional, dh der Compiler
besteht nicht darauf. In Python macht man stattdessen:
if foo:
bar
else:
baz
Da eine ordentliche Einrückung sowieso für jeden Programmierer Pflicht
sein sollte, wurde sie gleich zum Syntaxelement gemacht und die dann
redundanten Klammern weggelassen. Außerdem fallen die Semikola weg - das
Zeilenende ist das Ende einer Anweisung, wenn die Zeile nicht mit einem
'\' endet.
J.
--
I no longer believe my life will be long, happy, interesting or fulfilled
[Agree] [Disagree]
<http://www.slowlydownward.com/NODATA/data_enter2.html>
signature.asc
Description: Digital signature

