【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())】相关推荐

  1. python3 sys.stdin.readline input 区别

    sys.stdin.readline( )会将标准输入全部获取,包括末尾的'\n', input()会把'\n'忽略 import sys a=sys.stdin.readline() b=input ...

  2. pythonstdin_python 笔试输入:sys.stdin.readline和input

    ①:输入一行数据并输 出两种方法 # 输入一行数据并输出 import sys # 方法一: str1 = input() print('input 输入:',str1,'len=',len(str1 ...

  3. Python ACM模式

    Python ACM模式 告诉了有多少组数据 多组输入数据,但没指定多少组 输入一个整数告诉有多少组数据,再输入每组数据的具体值 多组数据,并告诉遇到怎么样的数据时结束(例如0 0) 多组数据,每组数 ...

  4. python中sys.stdout、sys.stdin

    如果需要更好的控制输出,而print不能满足需求,sys.stdout,sys.stdin,sys.stderr就是你需要的. 1. sys.stdout与print: 在python中调用print ...

  5. python 中的 sys.stdin ,sys.stdout 和sys.stderr

    文档解释: File objects used by the interpreter for standard input, output and errors: stdin is used for ...

  6. python基础之 序列化,os,sys,random,hashlib

    1.序列化 什么是序列化? 是将对象的状态信息转化为可以存储或传输的过程. 简单来说序列化就是一种用来处理对象流的机制.所谓对象流也就是将对象的 内容进行流化,流的概念这里不用多说(就是I/O).我们 ...

  7. 【华为机考】ACM输入输出(中等+)

    1. 购物单 from collections import defaultdictn, m = map(int, input().split()) # primary记录主件的集合,key为物品id ...

  8. Python的sys.stdout、sys.stdin重定向

    Python的sys.stdout.sys.stdin重定向 转自:http://www.cnblogs.com/turtle-fly/p/3280519.html 本文环境:Python 2.7 使 ...

  9. python input sys.stdin

    import sys a=sys.stdin.readline() # 包含了换行符,一般都要使用strip b=input() # 不包含换行符`\n` print(len(a),len(b)) # ...

最新文章

  1. 7714天,王小川正式卸任搜狗CEO!用一瞬间定格永恒
  2. CSS3盒模型box-sizing属性详解,布局更方便
  3. leetcode37. 解数独(hashmap+回溯)
  4. C++多重继承师生类复盘
  5. centos7 python3 sqlserver,centos7中python3环境支持s
  6. java secondtotime_Java中的LocalTime toSecondOfDay()方法
  7. python中read函数解释_Python内置函数解释教程,readwill(非常详细的代码演示截图),详解,看,了,就,会,很...
  8. 几个小技巧提升导图使用逼格
  9. 阿里云Linux服务器Tomcat9.0的安装及配置
  10. 百度云盘不限速下载大文件(2021-11亲测有效)
  11. python3 模拟键盘_python3 模拟鼠标和键盘操作
  12. Oracle drop table
  13. 没思路?教你3招轻松搞定电商Banner排版
  14. 创建数据库表提示Working outside of application context.
  15. failover.mysql_物理standby的Failover
  16. QT for Android 修改图标与名称
  17. 未将对象引用设置到对象的实例 解决办法
  18. 太阳直射点纬度计算公式_高中地理——每日讲1题(太阳直射点、太阳高度角、二十四节气)...
  19. elementui分页隐藏最后一页
  20. linux的echo连接字符串输出,echo命令 – 输出字符串或提取She

热门文章

  1. 终结盗号密码生命的技术方案
  2. Nuget 401 Unauthorized 错误
  3. 耳机长时间佩戴选哪种、五款不入耳佩戴骨传导耳机排名
  4. Virtualbox 如何安装增强功能,加载VBoxGuestAdditions光盘映像文件
  5. 【华为OD机试 2023 B卷 | 100分】 统计射击比赛成绩(C++ Java JavaScript )
  6. Neo4j CQL(函数、索引、约束)、备份恢复、优化
  7. mysql fetch语句_SQL Fetch语句
  8. yolov4 网络结构解析
  9. 周鸿祎称搭不上ChatGPT企业会被淘汰;马斯克会议现场解雇推特高级工程师;同时应聘十几个工作靠裁员补偿年入千万 | EA周报...
  10. 原道N70双擎EZ系列刷机包