猿问

如何从用户那里获取多行输入

我想编写一个程序,获取多个行输入并逐行处理它。为什么没有像raw_inputPython 3 那样的函数?


input不允许用户将换行符(Enter)分隔开,而是仅打印第一行。


可以将其存储在变量中,甚至可以将其读取到列表中吗?


牧羊人nacy
浏览 513回答 3
3回答

守着星空守着你

在Python 3.x中raw_input(),Python 2.x的input()功能已被替换。但是,在两种情况下,您都无法输入多行字符串,为此,您需要从用户行中逐行获取输入,然后.join()使用来输入它们\n,或者您也可以采用多种行并使用+由运算符分隔的行将它们连接起来\n要从用户那里获得多行输入,您可以像这样:no_of_lines = 5lines = ""for i in xrange(5):    lines+=input()+"\n"print lines要么lines = []while True:    line = input()    if line:        lines.append(line)    else:        breaktext = '\n'.join(lines)

慕尼黑5688855

raw_input 可以正确处理EOF,因此我们可以编写一个循环,进行读取,直到收到用户的EOF(Ctrl-D):Python 3print("Enter/Paste your content. Ctrl-D or Ctrl-Z ( windows ) to save it.")contents = []while True:    try:        line = input()    except EOFError:        break    contents.append(line)Python 2print "Enter/Paste your content. Ctrl-D or Ctrl-Z ( windows ) to save it."contents = []while True:    try:        line = raw_input("")    except EOFError:        break    contents.append(line)

料青山看我应如是

input(prompt) 基本上相当于def input(prompt):    print(prompt, end='', file=sys.stderr)    return sys.stdin.readline()sys.stdin如果愿意,您可以直接阅读。lines = sys.stdin.readlines()lines = [line for line in sys.stdin]five_lines = list(itertools.islice(sys.stdin, 5))前两个要求以某种方式结束输入,方法是到达文件末尾,或者通过用户键入Control-D(或Windows中的Control-Z)来指示结束。在从文件或从终端/键盘读取了五行之后,最后一行将返回。
随时随地看视频慕课网APP

相关分类

Python
我要回答