python程序接收用户输入的方法(含一次输入多行数据)

1. input

        只能接受一行用户的输入,以回车作为输入结束的标志。

        如果需要输入多行,则可以使用循环来要求用户多次录入

        

n = int(input("请输入行数:"))

lst = []

for i in range(n):

    s = input("请输入第%d行:" % (i + 1))

    lst.append(s)

print(lst)
s = ""

while True:

    line = input("请输入一行:")

    if line:

        s += line + "\n"

    else:

    break

print(s)

2. sys.stdin.readlines()

        1. 首先,导入sys模块。

        2. 然后,使用sys.stdin.readlines()函数,获取用户输入的文本。

        这个方法可以一次录入用户输入的多行数据

        需要注意的是,使用sys.stdin.readlines()函数时,用户必须在输入完成后按下Ctrl+D键才能结束输入。如果是光标所在行进行Ctrl+D的操作,改行数据不会被读取到,所以要注意输入的最后一行回车后在操作Ctrl_D。

        并且,改行还有一个问题,如果后面还有input等需要用户录入的数据,会报错:EOFError: EOF when reading a line,网上的解释是因为执行了Ctri+D但是没有用户录入,我怀疑是Ctrl+D对后面的input造成了影响,但是还没有好的解决方法,期待后面解决吧。

下面是例子:

if __name__ == '__main__':
    print('show')
    systemName = input('录入来源系统!')
    thisPath = input('录入本机保存地址!')
    print('录入对象清单!以ctrl+d作为结束。')
    objList = sys.stdin.readlines()  # ctrl+d结束输入

        

    for i in objList:#注意行最后欧带着回车符\n
            print(i)

你可能感兴趣的:(python,开发语言)