Accepting input till newline in python

Viewed 10302

I am a python beginner. I am trying to accept inputs from the user as long as he/she wishes. The program should stop accepting inputs when the enter key alone is pressed.

That is

25
65
69
32 
   #stop here since the enter key was pressed without any input

I came up with the following code of doing that....

a = []
while 1:

    b = input("->")
    if(len(b)>0):
        a.append(b)
    else:
        break

  1. Is there any other efficient 'pythonic' ways of doing this ?

  2. While this works perfectly with python 3.3 it doesnt work with python 2.7 (with input() replaced by the raw_input() function). The screen just stays dumb without any response. Why is that?

  3. Is there any inbuilt function with which i can convert strings back to integers!?

4 Answers

As a matter of code style, I always prefer loops without breaks. In my humble opinion the most human readable version would then be (Python 3):

a=[]
for line in iter(input, ''):
    a.append(line)
Related