Python 中的多行用户输入
Multiple lines user Input in Python
要获取多行用户输入:
while
只要用户输入值,就使用循环进行迭代。- 在每次迭代中,将用户输入和换行符附加到列表中。
- 如果用户在没有输入值的情况下按下
Enter
,则跳出循环。
主程序
lines = [] while True: user_input = input() # 👇️ if user pressed Enter without a value, break out of loop if user_input == '': break else: lines.append(user_input + '\n') # 👇️ prints list of strings print(lines) # 👇️ join list into a string print(''.join(lines))
while
只要用户输入值,我们就使用循环进行迭代。
在每次迭代中,我们检查用户是否在
Enter
没有输入值的情况下按下退出while True
循环。这可以是任何其他条件,例如,您可能有一个停用词,例如done
or quit
。
break
语句跳出最内层的封闭或
for
循环while
。
如果用户键入一个值,我们使用该list.append()
方法将值和换行符附加到列表中。
list.append
()
方法将一个项目添加到列表的末尾。
或者,您可以使用该sys.stdin.readlines()
方法。
主程序
import sys # 👇️ multiline input using stdin.readlines() # 👇️ User must press Ctrl + D (Unix) or Ctrl + Z to exit print('Press CTRL + D (Unix) or CTRL + Z (Windows) to exit') user_input = sys.stdin.readlines() # 👇️ get list of lines print(user_input) # 👇️ join the list items into a string print(''.join(user_input))
stdin
用于交互式用户输入。
请注意,用户必须按
CTRL + D
(在 Unix 上)或在 Windows 上退出。 CTRL + Z
如果您最初不想将换行符附加到列表中的每个项目,请使用该str.join()
方法将列表项目连接到一个字符串中。
主程序
my_list = [] while True: user_input = input() # 👇️ if user pressed Enter without a value, break out of loop if user_input == '': break else: my_list.append(user_input) # 👇️ prints list of strings print(my_list) # 👇️ joins list of strings into a string my_str = '\n'.join(my_list) print(my_str)
我们没有将换行符 ( \n
) 附加到每个输入,而是使用该
str.join()
方法使用换行符分隔符加入列表。
str.join方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联。
主程序
my_list = ['a', 'b', 'c'] my_str = '\n'.join(my_list) # a # b # c print(my_str)
调用该方法的字符串用作元素之间的分隔符。