python中输入输出处理

单行输入- input()

input将所有输入当做字符串str处理

# 单行最后没有'\n'
>>> message = input()
zhang zi wen 2020-09-30
>>> message
'zhang zi wen 2020-09-30'			# 不是 'zhang zi wen 2020-09-30\n'

多行输入- sys.stdin.readlines()

readlines()返回列表list, 每一行是一个字符串str:

import sys

lines = sys.stdin.readlines()
print(lines)

输入:

zhang zi wen
23
ok  
you 

输出:

# 最后一个输入没有'\n'
['zhang zi wen\n', '23\n', 'ok  \n', 'you']

或者将所有输入的行放在一个列表中:

import sys
list = []
# sys.stdin.readlines将所有行读取为一个list, 等效下面的形式
for line in sys.stdin:
	list.append(line.split())
print(list)

其他

  • sys.stdin.readlines()方法结束

Window系统: Ctrl + Z + Enter

Linux系统: Ctrl + D + Enter

  • split()方法默认的分隔符是空字符, 空格, 制表符tab回车\n.
>>> 'zzw '.split()
['zzw']
>>> 'zzw\n\n'.split()
['zzw']
>>> 'zzw'.split('w')
['zz', '']
>>> 'zzw  '.split(' ')
['zzw', '', '']
>>> 'zzw\n'.split('\n')
['zzw', '']
  • 类似地, strip() 方法去除的同样是 空格, 制表符回车\n.
>>> 'zzw'.split()
['zzw']
>>> 'zzw\n'.strip()
'zzw'
>>> 'zzw\n\n '.strip()
'zzw'
>>> ' \n zzw\n '.strip()
'zzw'
  • 我的常用写法
import sys
inputs = [line.split() for line in sys.stdin]

得到

>>> import sys
>>> [line.split() for line in sys.stdin]
5 19
1 10 20 30 50
[['5', '19'], ['1', '10', '20', '30', '50']]
  • 常用处理方法一: 空格隔开
3 4
9 8 10 8
7 9 10 8
9 10 8 7
处理方法
inputs = [int(line.split()) for line in sys.stdin.readlines()[1:]]
>>inputs
9 8 10 8
7 9 10 8
9 10 8 7
  • 常用处理方法二: 逗号隔开
3,4
9,8,10,8
7,9,10,8
9,10,8,7
处理方法
inputs = []
for line in sys.stdin:
	inputs.append([*map(lambda x: int(x.strip()), line.split(','))])
inputs = inputs[1:]
>> inputs
9 8 10 8
7 9 10 8
9 10 8 7
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值