Nach meiner Einschätzung lässt sich das so gar nicht übertragen.
Der Java-Code liefert in der Tat 200+i.
Ich verstehe das so, dass i++ zwar eigentlich eine Zuweisung ist, aber offensichtlich auch als Ausdruck geduldet wird, dann aber ohne vorherige Inkrementierung.
Dem Java i++ entspricht in Python ein i+=1.
Das ist ebenfalls eine Zuweisung, und zwar NUR eine Zuweisung.
Baut man das in den Code ein, funktioniert es nicht:
Code: Alles auswählen
>>> i=100
>>> print "%i +i" %(i+(i+=1))
File "<stdin>", line 1
print "%i +i" %(i+(i+=1))
^
SyntaxError: invalid syntax
Die Variante mit dem %(i+(i+1)) trifft es sicher nicht, denn erstens kommt etwas anderes dabei heraus und zweitens könnte man es genau so ja auch in Java machen:
Wobei die inneren Klammern in beiden Sprachen überflüssig sind und in beiden Fällen "201+i" ausgegeben wird.
Edit: Eben ist mir noch etwas eingefallen.
Java kennt ja sowohl ein i++ als auch ein ++i, wobei im letzteren Fall ZUERST inkrementiert und dann ausgewertet wird, im ersteren Fall genau umgekehrt.
Evtl. ging es bei dem Code des OP genau darum, diesen Unterschied wahrzunehmen und zu verstehen. Ersetzt man nämlich im Java-Code das i++ durch ++i, dann wird "201+i" ausgegeben.