【python ACM 输入输出的处理:sys.stdin.readline().strip().split())】
【python & ACM 输入输出的处理:sys.stdin.readline().strip().split())】
一、输入处理
按行读取数据
- readline() 会返回一个字符串;
- 如果指定了一个非负数的参数readline(size) ,则返回指定大小的字节数,包括 “\n” 字符。
示例:
import sys
line1 = sys.stdin.readline(3)#读三个字符
line2 = sys.stdin.readline()#读一行
print(line1)
print(type(line1))
print(line2)# 若给定输入为: beautiful# 输出结果:
bea
<class 'str'>
beautiful
- strip() 只能用于移除字符串 开头和结尾 指定的字符(一般是默认为空格或换行符)或字符序列
示例:
a = ' 8dajia8hao8 '
b = a.strip()#移除字符串 开头和结尾 的空格或换行符
c = b.strip('8')#移除字符串 开头和结尾 的指定的字符'8'
d = b.strip('o8')#移除字符串 开头和结尾 的指定的字符序列'o8'
print(b)
print(c)
print(d)
# 结果为:
# 8dajia8hao8
# dajia8hao
# dajia8ha
- split() 默认分割所有的空字符,包括空格、换行(\n)、制表符(\t)等,返回分割后的字符串列表。
示例:
s = "I love you"
print(s.split())#以空格为分隔符
print(s.split('0'))#以o为分隔符
print(s.split('o',1))#以o为分隔符,分成2个
print(s.split('y'))#以y为分隔符
# 运行结果:
['I', 'love', 'you']
['I l', 've y', 'u']
['I l', 've you']
['I love ', 'ou']
获取输入的单行数据
- 字符串
输入:'abdc'import sys
line = sys.stdin.readline()
#print(line) #结果为 'abdc'###### 或者
n = input()
#print(n) #结果为 'abdc'
- 单个数字
输入: 5
n=int(input())
#print(n) #结果为 5import sys
n = int(sys.stdin.readline())
#print(n) #结果为 5
- 注意:sys.stdin.readline()和 int(sys.stdin.readline())的区别
sys.stdin.readline()
<class 'str'>
int(sys.stdin.readline())
<class 'int'>
获取输入的单行多个数据
- 两个数值
输入 : 5 6
import sys
x, y = map(int, sys.stdin.readline().strip().split())
#print(x,y) #结果为 5 6
# 或者
x, y = map(int, input().split())
#print(x,y) #结果为 5 6
- 单行多个数值
单行输入:2 3 6 4 8 9
import sys
data = list(map(int,sys.stdin.readline().strip().split()))
print(data)
# print(data) #结果为 [2, 3, 6, 4, 8, 9]## 或者
data=list(map(int,input().split(" ")))
print(data)
#print(data) #结果为 [2, 3, 6, 4, 8, 9]
map函数的原型是map(function, iterable, …),它的返回结果是一个列表。
- 参数function传的是一个函数名,可以是python内置的,也可以是自定义的。
- 参数iterable传的是一个可以迭代的对象,例如列表,元组,字符串这样的。
- python中的map函数是python中的内置函数,map函数会根据提供的函数对指定序列做映射,map函数的第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表:其实就是对可迭代的对象中的每一个元素调用function函数并将函数处理的结果转为列表返回。
- 在蓝桥杯的杯赛中经常要使用这个函数对输入的数据转换为int类型的数据:a,b = map(int, input().split())
获取输入的多行多个数据
- 第一行表示将会有多少行数据,下面各个行有单个数据
# 输入 '''35 7 9'''
# 方法1
n = int(input())
data = []
for i in range(n):b = int(input())data.append(b)
print(data)
#print(data) #结果为 [5, 7, 9]# 方法2
import sys
n = int(input())
data = []
for i in range(n):b = int(sys.stdin.readline().strip())data.append(b)
#print(data) #结果为 [5, 7, 9]
- 第一行表示将会有多少行数据,下面各个行有多个数据(数字)
'''
输入:35 3 44 6 67 5 9
'''
# 方法1
n = int(input())
data = []
for i in range(n):b = list(map(int,input().split()))data.append(b)
print(data)
#print(data) #结果为[[5, 3 ,4], [4,6, 6], [7, 5,9] ]# 方法2
import sys
n = int(input())#strip()方法只能用于移除字符串 开头和结尾 指定的字符(默认为空格或换行符)或字符序列
data = []
for i in range(n): b = list(map(int,sys.stdin.readline().strip().split()))data.append(b)
print(data)
#print(data) #结果为[[5, 3 ,4], [4,6, 6], [7, 5,9] ]
- 第一行表示将会有多少行数据,下面各个行有单个数据(字符串)
'''输入:3ILOVEYOU
'''
import sys
n = int(input())
data = []for i in range(n):line = sys.stdin.readline().strip()if line == r'': # 等价于 if not line:breakdata.append(line)
print(data)
print(" ".join(data))#print(data) # 结果为['I', 'LOVE', 'YOU']
#print(" ".join(data)) #结果为: I LOVE YOU
二、输出处理
- [‘1’,‘2’,‘3’,‘4’] 这样的格式要求变成1 2 3 4 5
a= ['1','2','3','4']
print(''.join(a)) #引号里没空格,结果为 1234
print(' '.join(a)) #引号里有空格,结果为 1 2 3 4
print(','.join(a)) #引号里有空格,结果为 1,2,3,4
- 或者循环输出
a= ['1','2','3','4']
for i in range(len(a)):print(a[i],end=' ')
#输出: 1 2 3 4
re:
https://ac.nowcoder.com/acm/contest/5652#question
python3 牛客网:OJ在线编程常见输入输出练习(ACM模式)https://blog.51cto.com/u_15485092/5028923
c++ 牛客网:OJ在线编程常见输入输出练习(ACM模式)
https://blog.csdn.net/Fuel_Ming/article/details/109401148
【python ACM 输入输出的处理:sys.stdin.readline().strip().split())】相关推荐
- python3 sys.stdin.readline input 区别
sys.stdin.readline( )会将标准输入全部获取,包括末尾的'\n', input()会把'\n'忽略 import sys a=sys.stdin.readline() b=input ...
- pythonstdin_python 笔试输入:sys.stdin.readline和input
①:输入一行数据并输 出两种方法 # 输入一行数据并输出 import sys # 方法一: str1 = input() print('input 输入:',str1,'len=',len(str1 ...
- Python ACM模式
Python ACM模式 告诉了有多少组数据 多组输入数据,但没指定多少组 输入一个整数告诉有多少组数据,再输入每组数据的具体值 多组数据,并告诉遇到怎么样的数据时结束(例如0 0) 多组数据,每组数 ...
- python中sys.stdout、sys.stdin
如果需要更好的控制输出,而print不能满足需求,sys.stdout,sys.stdin,sys.stderr就是你需要的. 1. sys.stdout与print: 在python中调用print ...
- python 中的 sys.stdin ,sys.stdout 和sys.stderr
文档解释: File objects used by the interpreter for standard input, output and errors: stdin is used for ...
- python基础之 序列化,os,sys,random,hashlib
1.序列化 什么是序列化? 是将对象的状态信息转化为可以存储或传输的过程. 简单来说序列化就是一种用来处理对象流的机制.所谓对象流也就是将对象的 内容进行流化,流的概念这里不用多说(就是I/O).我们 ...
- 【华为机考】ACM输入输出(中等+)
1. 购物单 from collections import defaultdictn, m = map(int, input().split()) # primary记录主件的集合,key为物品id ...
- Python的sys.stdout、sys.stdin重定向
Python的sys.stdout.sys.stdin重定向 转自:http://www.cnblogs.com/turtle-fly/p/3280519.html 本文环境:Python 2.7 使 ...
- python input sys.stdin
import sys a=sys.stdin.readline() # 包含了换行符,一般都要使用strip b=input() # 不包含换行符`\n` print(len(a),len(b)) # ...
最新文章
- 7714天,王小川正式卸任搜狗CEO!用一瞬间定格永恒
- CSS3盒模型box-sizing属性详解,布局更方便
- leetcode37. 解数独(hashmap+回溯)
- C++多重继承师生类复盘
- centos7 python3 sqlserver,centos7中python3环境支持s
- java secondtotime_Java中的LocalTime toSecondOfDay()方法
- python中read函数解释_Python内置函数解释教程,readwill(非常详细的代码演示截图),详解,看,了,就,会,很...
- 几个小技巧提升导图使用逼格
- 阿里云Linux服务器Tomcat9.0的安装及配置
- 百度云盘不限速下载大文件(2021-11亲测有效)
- python3 模拟键盘_python3 模拟鼠标和键盘操作
- Oracle drop table
- 没思路?教你3招轻松搞定电商Banner排版
- 创建数据库表提示Working outside of application context.
- failover.mysql_物理standby的Failover
- QT for Android 修改图标与名称
- 未将对象引用设置到对象的实例 解决办法
- 太阳直射点纬度计算公式_高中地理——每日讲1题(太阳直射点、太阳高度角、二十四节气)...
- elementui分页隐藏最后一页
- linux的echo连接字符串输出,echo命令 – 输出字符串或提取She
热门文章
- 终结盗号密码生命的技术方案
- Nuget 401 Unauthorized 错误
- 耳机长时间佩戴选哪种、五款不入耳佩戴骨传导耳机排名
- Virtualbox 如何安装增强功能,加载VBoxGuestAdditions光盘映像文件
- 【华为OD机试 2023 B卷 | 100分】 统计射击比赛成绩(C++ Java JavaScript )
- Neo4j CQL(函数、索引、约束)、备份恢复、优化
- mysql fetch语句_SQL Fetch语句
- yolov4 网络结构解析
- 周鸿祎称搭不上ChatGPT企业会被淘汰;马斯克会议现场解雇推特高级工程师;同时应聘十几个工作靠裁员补偿年入千万 | EA周报...
- 原道N70双擎EZ系列刷机包