(1) sys.stdin

python 中sys.stdin可以实现标准输入,输入默认为字符串格式,可以通过int(),float()进行强制转换。在输入一行数据时,会将数据末尾的“\n”获取到,因此在处理sys.stdin输入的数据时,应该首先用strip()处理掉数据末尾的换行符。
sys.stdin.readline()表示输入一行数据。
用sys.stdin输入多行数据代码如下:

import sys

n = sys.stdin.readline()

data = []
data.append(n)
data.append(int(n))

for line in sys.stdin:
    if line != "\n":#停止条件
        data.append(line.strip().split())
    else:
        break
print(data)

'''
输入数据:
5
12 23
45 56

结果如下:
['5\n', 5, ['12', '23'], ['45', '56']]
'''

(2)input()

input同样是python中标准输入的一种方式,输入的同样为字符串格式数据,与sys.stdin不同的是,input()不会捕捉到字符串末尾的换行符。
用input()实现从控制台输入多行数据代码如下:

data = []
n = input()

data.append(n)
data.append(int(n))

stopword = ''#停止条件

for line in iter(input,stopword):#iter()中第一个参数是可调用的,即可以像函数一样调用他,因此是input,而不是input()
    data.append(line.split())

print(data)

'''
输入数据:
5
12 23
12 23
12 32

输出结果:
['5', 5, ['12', '23'], ['12', '23'], ['12', '32']]
'''

需要注意的是:sys.stdin 和input虽然都能从控制台输入,但是sys.stdin会将输入字符串末尾的“\n"也捕获到,input()则不会捕获”\n“,因此在输入多行数据是时,两种方法的停止条件是不同的。