Xrin
Xrin

Reputation: 87

Storing multiple inputs in one variable

I have a while loop, which will keep asking a user to input words until they type stop. The input is stored in a variable called sentence. My question is how do I store multiple inputs into one variable.

My current code is

stop = "stop"   
sentence = []
while sentence != stop:
    sentence = input("Enter a word: ")
    sentence = sentence
    print(sentence)

I don't understand how I would keep storing variables from one input and print out all the variable stored separated by commas/spaces etc

Upvotes: 1

Views: 13405

Answers (5)

John Gordon
John Gordon

Reputation: 33351

You probably want something like this:

sentence = []

while True:
    word = input("Enter a word: ")
    if word == "stop":
        break
    sentence.append(word)

print " ".join(sentence) + "."

Upvotes: 0

bgporter
bgporter

Reputation: 36564

stop = "stop"
# okay --- 'sentence' is a list. Good start.   
sentence = []
while sentence != stop:
    # ...but now you've replaced the list 'sentence' with the word that was just input
    # NOTE that in Python versions < 3, you should use raw_input below.
    sentence = input("Enter a word: ")
    # ...and this does nothing.
    sentence = sentence
    print(sentence)

Works better if you do something like this:

stop = "stop"   
sentence = []
# create a new variable that just contains the most recent word.
word = ''
while word != stop:
    word = input("Enter a word: ")
    # stick the new word onto the end of the list
    sentence.append(word)
    print(sentence)
# ...and convert the list of words into a single string, each word
# separated by a space.
print " ".join(sentence)

...or to re-design a bit to omit the 'stop', something like:

stop = "stop"   
sentence = []
while True:
    word = input("Enter a word: ")
    if word == stop:
        # exit the loop
        break
    sentence.append(word)

# ...and convert the list of words into a single string, each word
# separated by a space.
print " ".join(sentence)

Upvotes: 1

idjaw
idjaw

Reputation: 26600

One of your problems is that you are constantly writing over your sentence variable.

What you want to do is make use of the list append method. Documentation on lists:

https://docs.python.org/3/tutorial/datastructures.html

Example:

a = []
a.append(1)
a.append(2)
a.append(3)
print(a)
[1, 2, 3]

Next, you are looking to end your code if the user enters "stop". So what you should do is check in your loop if "stop" was written, and make use of Python's break, to break out of the loop.

What this means is that you should change your loop to loop indefinitely until you get that stop, using while True.

Your code can now simply look like this:

sentence = []
while True:
    entry = input("Enter a word: ")
    if entry == "stop":
        break
    sentence.append(entry)
    print(sentence)

Upvotes: 0

Yash Mehrotra
Yash Mehrotra

Reputation: 3140

Its pretty simple

stop = "stop"   
sentence = []
all = ""
while sentence != stop:
    sentence = input("Enter a word: ")
    all += sentence + ","
    print(all)

Upvotes: 0

Nathaniel Ford
Nathaniel Ford

Reputation: 21249

All you need to do is append() your new variables to the array:

>>> a = []
>>> for x in range(5):
...     a.append("Hello!")
... 
>>> a
['Hello!', 'Hello!', 'Hello!', 'Hello!', 'Hello!']

At the end, if you need everything in a single variable you can use join():

>>> ",".join(a)
'Hello!,Hello!,Hello!,Hello!,Hello!'

Upvotes: 1

Related Questions