(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“,因此在输入多行数据是时,两种方法的停止条件是不同的。