input怎么换行_Python,sys.stdin.readline()与input()


sys.stdin.readline() , input()的区别

首先 sys.stdin.readline() 和 input()都是以换行作为结束输入的标志,二者的区别就在于:

sys.stdin.readline()会将标准输入全部获取,包括末尾的'n',

input()会把‘n’忽略。

import 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结束输入。

import 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结束输入。

import 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结束输入,其实是输入了一个空字符‘’,也会被读出来。

import 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'>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值