sys.stdin.readline() , input()的区别
首先 sys.stdin.readline() 和 input()都是以换行作为结束输入的标志,二者的区别就在于:
sys.stdin.readline()会将标准输入全部获取,包括末尾的'n',
input()会把‘n’忽略。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20import sys a = sys.stdin.readline() print(a, type(a)) b = input() print(a) print(b) print(len(a), len(b)) -1 2 3 # input,被sys.stdin.readline()读取. -1 2 3 # print(a, type(a)),显然换行符'n'被读取了.不然<class 'str'>和-1 2 3 应该在同一行输出. <class 'str'> -1 2 3 # input,被input()读取. -1 2 3 # print(a),‘n’被读取. -1 2 3 # print(b). 7 6 # print(len(a), len(b)),空格3 + 字符3 + 换行符1 = 7.
可以用sys.stdin.readline( ).strip( )去掉末尾的换行符。
sys.stdin.readline(),sys.stdin.readlines(),sys.stdin.read()的区别
显然之前的代码由于换行符作为输入结束,所以是单行输入。
如果想实现多行输入,需要用到while循环,用control+D结束输入。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15import sys lines = [] while True: line = sys.stdin.readline().strip() if not line: break lines.append(line) print(lines) # input, end input with control+D. -1 2 3 (control+D) # output ['-1', '2', '3']
而sys.stdin.readlines()可以一次性读取多行数据,输出是含有str的list,会读出换行符等。
同样的,control+D结束输入。
复制代码
1
2
3
4
5
6
7
8
9
10
11import sys lines = sys.stdin.readlines() # 去除换行符,output为['-1', '2', '3']. # lines = [line.strip() for line in lines] print(line) # input -1 2 3 # output ['-1n', '2n', '3n']
sys.stdin.read()也是多行读取,输出为str,不读换行符,换行符直接起作用。
最后用control+D结束输入,其实是输入了一个空字符‘’,也会被读出来。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16import sys lines = sys.stdin.read() print(lines, type(lines)) # input -1 2 3 # output -1 2 3 <class 'str'> # 补充 lines = lines.split('n') # output ['-1', '2', '3', ''] <class 'list'>
最后
以上就是爱撒娇西装最近收集整理的关于input怎么换行_Python,sys.stdin.readline()与input()的全部内容,更多相关input怎么换行_Python,sys内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复