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
Is there any other efficient 'pythonic' ways of doing this ?
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?
Is there any inbuilt function with which i can convert strings back to integers!?
Your approach is mostly fine. You could write it like this:
a = []
prompt = "-> "
line = input(prompt)
while line:
a.append(int(line))
line = input(prompt)
print(a)
NB: I have not included any error handling.
As to your other question(s):
raw_input()
should work similarly in Python 2.7int()
-- Coerves the given argument to an integer. It will fail with a TypeError
if it can't.For a Python 2.x version just swap input()
for raw_input()
.
Just for the sake of education purposes, you could also write it in a Functional Style like this:
def read_input(prompt):
x = input(prompt)
while x:
yield x
x = input(prompt)
xs = list(map(int, read_input("-> ")))
print(xs)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With