Skip to content Skip to sidebar Skip to footer

How To Get User Input For Multiline Lines In Python 3?

I know that the regular input function can accept single lines, but as soon as you try to write a string paragraph and hit enter for the next line, it terminates. Is there a beginn

Solution 1:

A common way of doing this in programs is to have an "I'm done" string (e.g. a single period), and to keep reading in lines until the line read matches that string.

print("Enter as many lines of text as you want.")
print("When you're done, enter a single period on a line by itself.")

buffer = []
while True:
    print("> ", end="")
    line = input()
    if line == ".":
        break
    buffer.append(line)
multiline_string = "\n".join(buffer)

print("You entered...")
print()
print(multiline_string)

Solution 2:

You can do that using sys library

import sys
x = sys.stdin.read()

Solution 3:

def processString(x):
    print(x.replace('process','whatever'))

lines = ""
while True:
    if lines == "":
        lines = ""
        print("Enter string:")
    x = input()
    if x == "" and lines != "":
        processString(lines)
        break
    else:
        lines += x

# then hit enter once after multi-line string to process it

Solution 4:

import sys
s = sys.stdin.read()
# print(s) # It will print everything 
for line in s.splitlines(): # to read line by line
    print(line)

Solution 5:

[input() for i in range(int(input()))]

for n multiline user inputs, each index in the list will be a new line input from the user.


Post a Comment for "How To Get User Input For Multiline Lines In Python 3?"