简体   繁体   中英

How to read input line by line, instead of by spacing

I'm trying to read a large number of user inputs line by line instead of by spacing.

code:

keyword = (input("\n Please enter the keywords "))
keywords = keyword.split(" ")

words:

a

abandon

ability

able

abortion

The input function ends by pressing enter or moving to a new line, so you have to define how you want to finish instead.

If you're looking for a way to enter 5 words like you did in your example, this should be enough:

print("\n Please enter the keywords ")
keywords = [input() for i in range(5)]

You can change range(5) to range(3000) or any other number that you wish.

If you would like in input an infinite amount of words until some special keyword is entered (like "quit") you can do this:

print("\n Please enter the keywords ")
keywords = []
while True:
    k = input()
    if k == 'quit':
        break
    else:
        keywords.append(k)

You may want to read from the sys.stdin , for example:

import sys

it = iter(sys.stdin)
while True:
  print(next(it))

Here you have a live example

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM