作为一个代码小白,刷题是一件如攀登珠峰一样困难的事情
找对登山装备就不是一件简单的事情
关于牛客网上代码题的逐行读取数据的方式,居然也困扰了我很久
终于在善良同窗的帮助下弄清楚了“套路”
在这里分享一下,不是给“熟手”看的,只不过是想拯救一下和我一样小白的“登山者”

以python为例,其他语言请参考原理自行 触类旁通

牛客网官方不靠谱指北:

小白要有自知之明,这不适合你,原理更重要

lines = []
while True:line = sys.stdin.readline().strip()if line == '':breaklines.append(line.split(','))

牛客网帮助:

https://www.nowcoder.com/discuss/276
私人靠谱指南:
原理:

刷题网站的后台给出的输入是一个含有多行数据的input文件,直接用sys.stdin.readlines()去逐行读取数据即可,具体操作如下:

import sys
lines = sys.stdin.readlines()

此时lines中已经包括了所有一行一行的数据,后续操作按需从中取即可,例如:

for line in lines:print(line)

如果第一行给出的是样例数目,需要提前读取,则可以用readline()代替 readlines() 只读取一行,而后面再用 readlines() 读取剩余行时,python是会自动从第二行开始读取的:

n = sys.stdin.readline()
lines = sys.stdin.readlines()
*注意:因为在后台给出的文件中是会有EOF的,所以readlines()知道什么时候该停止读取,但如果在本地调试时,直接在terminal中交互输入的话,由于没有EOF,readlines()就会无限地读取

最好的解决方法是:在本地调试时,也用input文件来给出输入,也不需要每次调试都输入一次:

file = open('input.in')
sys.stdin = file
lines = sys.stdin.readlines()

如果一定要倔强地采取交互地输入的话,可以增加一个判断,如果某一行输入的第一个字符就是换行符的话,就认为数据的输入结束了,跳出循环:

for line in sys.stdin:    if line[0] == '\n':        break    print(line)

好吧,其实真的很简单,但是没弄明白之前就是觉得很混乱
但是万事开头难,不能忽视这一步艰辛的开始!

关于牛客网代码题 数据读取问题的 小白指南相关推荐

  1. verilog牛客网刷题代码汇总

    verilog牛客网刷题代码汇总 作者:安静到无声 个人主页 作者简介:人工智能和硬件设计博士生.CSDN与阿里云开发者博客专家,多项比赛获奖者,发表SCI论文多篇. Thanks♪(・ω・)ノ 如果 ...

  2. Python 牛客网编程题输入用例问题

    Python 牛客网编程题的输入用例 前言 切入正题 输入字符串 输入整数 输入列表 后记 前言 在牛客网刷题的时候,发现明明在python本地编译器能够轻松解决的输入用例问题,到牛客网在线编译就得好 ...

  3. 牛客网 刷题前的准备工作(输入 输出 如何接收?)

    牛客网 刷题前的准备工作 牛客网 刷题前的准备工作 1. 数据读取接受问题 2.牛客刷题前的准备: 2.1. 弄清楚输入输出的行数关系 3.代码怎么写 3.1. 在牛客上测试自己的模板代码,是否能正确 ...

  4. 牛客网sql题库(1-30题)—— 个人答案与过程解析

    本篇博客分享一下我在牛客网sql题库刷题时,自己敲出来的结果.结果均通过了牛客网的结果验证. 具体的题目就不放在博客中了,感兴趣可以自行去搜索牛客网,找到sql题库在线编程 每道题下面都有我自己写的题 ...

  5. 牛客网-SQL题库笔记

    牛客网-SQL题库笔记 01.最晚入职员工的所有信息 02.查找入职员工时间排名倒数第三的员工所有信息 03.查找各个部门当前领导当前薪水详情以及其对应部门编号 04.查找所有已经分配部门的员工的la ...

  6. 牛客网错题集(2021-08-31)

    牛客错题集2 暑假回来的一次刷题,结果不是很理想. 1.在 main() 方法中给出的整型数组,如果将其写到一个文件中,需要( ). 2.给定代码: 3.第三行将输出什么? 4.关于下面的程序,说法正 ...

  7. 牛客网刷题之SQL篇:非技术快速入门39T

    导航 前序 一.简单的关键字练习 1-10 二.知识点复习之 ==运算符== 1.算数运算符 2.比较运算符 3.逻辑运算符 4.位运算符 三.10-28T 0.简单题总结 1. SQL18 ==分组 ...

  8. 牛客网错题整理--C++篇1

    牛客网错题整理--C++篇1 1.下列程序的运行结果是PP 10003,请为横线处选择合适的程序(): #include<stdio.h>#include<string.h>s ...

  9. 牛客网基础题-有容乃大

    牛客网基础题-有容乃大 确定不同数据类型在内存中占多少字节 思路: Java的基本数据类型有8种,分别是:boolean,char,byte,short,int,long,float,double.j ...

最新文章

  1. python安装后怎么配置环境变量_Python安装与环境变量的配置
  2. storm能不能测试wadl_达尔优牧马人A960暴风Storm体验:轻而不飘,精准击打
  3. 调用外部程序处理文件_Python使用内置方法、模块调用外部命令
  4. 解析:区块链的本质是伴随信息社会产生的一种新型生产关系
  5. java链表的输出_Java输出链表倒数第k个节点
  6. 荣耀双十一开门红:斩获多品类销量及销售额冠军
  7. 数据库开源 | 200人中英文混说数据库开放申请
  8. mysqldump只导出数据或者只导出表结构
  9. java 企业 网站源码 后台 springmvc SSM 前台 静态化 代码生成器
  10. 计算机硬盘使用寿命,固态硬盘怎么测剩余寿命?SSD固态硬盘使用寿命检测方法...
  11. 遥控器鼠标模式切换 android 4.4
  12. 《Linux 命令行大全》
  13. H3C无线ap基本配置套路
  14. Scala基础语法学习
  15. VVC帧内预测(六)MIP
  16. 当Androidstudio添加权限后仍然报错java.lang.SecurityException: Permission Denial
  17. jdk版本升级、技术选型
  18. udt4 VS udt gateway
  19. MATLAB(1)基础知识
  20. 关于Centos安装后无法联网的解决方案(命令行模式)

热门文章

  1. 购买了域名就能用了么?
  2. 星历表(DE406+Testeph.f)整理兼求教
  3. 光模块/BOSA的基础介绍
  4. 集成电路模拟版图入门-版图基础学习笔记(二)
  5. 常用计算机设备教案,计算机基础教案
  6. Visual Studio Code(VS code) python代码无法进行变量和函数跳转
  7. 软件工程顶级会议中的自动修复工具——JFIX [ISSTA 2017]
  8. 磁盘分区克隆:操作系统迁移工具更换硬盘怎么操作?
  9. 【转载】基于ENVI bandmath的地表温度反演
  10. html注释的爱情故事,才女李清照的爱情故事:才下眉头,却上心头