Alex Rivera | Logout

Assignment Condition in Python While Loop

Asked 2011-10-15T22:12:39.833
45

In C, one can do

while( (i=a) != b ) { }

but in Python, it appears, one cannot.

while (i = sys.stdin.read(1)) != "\n":

generates

    while (i = sys.stdin.read(1)) != "\n":
         ^
SyntaxError: invalid syntax

(the ^ should be on the =)

Is there a workaround?

Edit
Report

1 Answer

3

Personally I like imm's and Marks answers using break, but you could also do:

a = None
def set_a(x):
    global a
    a = x
    return a

while set_a(sys.stdin.read(1)) != '\n':
    print('yo')

though I wouldn't recommend it.

answered 2011-10-15T22:17:28.653

Your Answer