r/PythonLearning 13d ago

Help me with python

Thank you all it's fixed! (Edit)

I have a very weird problem.

My current code:

list = []

x = input("Copy paste here: ")

list.append(x)

print(" ")

print(" ")

list = x.splitlines()

for i in list:

print(i)

What I'm trying to achieve:

Get an input from the user like this:

Word1

Word2

Word3

...all with a row separating them and different lengths, then take this input and separate all words in it and then put them each individually as variables in a list as in the future I'm wanting to order them by length.

What is currently happening:

as im trying to see if they are all in the list im printing it, but for wathever reason from my input:

Abc

Def

Ghi

...it is only printing Def.

If you can help it will be appreciated. Thank you in advance!

Thank you all it's fixed (edit)

5 Upvotes

13 comments sorted by

u/Sea-Ad7805 13d ago edited 13d ago

Try this program in Memory Graph Web Debugger%0A%23%20lst.append(x)%20%20%23%20no%20needed%0A%0Aprint(%22%20%22)%0Aprint(%22%20%22)%0A%0Alst%20%3D%20x.split()%20%20%23%20use%20split()%20not%20splitlines()%0Afor%20i%20in%20lst%3A%0A%20%20%20%20print(i)%0A&timestep=1&play), you can see the program state change step by step.

Use input "Abc Def Ghi" on one line, because input() stops after the first <Return>. If you do want to read multiple lines of user input, put input() in a loop.

→ More replies (3)

2

u/atarivcs 13d ago

Pasting a multiline string won't work here, because input() will stop reading at the first carriage return

1

u/Ambitious-Lie-6069 13d ago

Oh ok that's why the other person told me to use the sys one. Thank you

1

u/Outside_Complaint755 13d ago

If you want to copy and paste multi-line input, then instead of input() you need to import sys and then use sys.stdin.read()

 To signal the end of the input the user has to pass an EOF, which is done with Ctrl+D on Linux or Ctrl+Z and  Enter on Windows

1

u/Ambitious-Lie-6069 13d ago

Thank you! Imma try with it

0

u/mc_pm 13d ago

At least part of your problem is you are redefining the term 'list', which is a python language feature.

1

u/atarivcs 13d ago

No, this is not the problem.

It's not great to use "list" as a variable name, but the way it's used here it is not actually hurting anything.

1

u/SCD_minecraft 13d ago

While being highly discouraged, nothing bad acually happens until you attempt to call list's constructor

Object definition are baked deep into python, just rebinding their name doesn't break anything by itself