总结一下刷题时的输入输出 | 您所在的位置:网站首页 › python多行输入输出程序 › 总结一下刷题时的输入输出 |
之前做题在leetcode上,所有的题都不需要管输入输出的问题,leetcode会把数据处理好,自己只管算法部分就可以了。直到上次做华为机试题,被狠狠地教育了一番,才意识到自己从没有在意过python的输入输出。谨以此篇几年自己的年轻。老甘龙:蠢!!!目前的总结可能不到位,但会慢慢丰富。python的输入总共有3中形式,分别为input()、sys.stdin.readline()、sys.stdin.readlines(),不管是哪种方法,都可以对任何形式的输入进行处理。前两种一次只能读取一行,后面的可以直接读取多行(感觉用于文件之类的会好很多),3种的返回值均为string类型的。也就是说,即使你输入的数据是int类型的,他也会把得到的数字转化为字符串。这就需要我们自己对数据进行处理得到我们想要的数据基本类型。数据的处理通常依赖于strip()方法和split()方法。strip():去掉字符串首尾的指定字符,默认为换行符和空格。split():以某个字串或者字符拆分已有的字符串,默认情况以空格拆分。 下面的代码在csdn上看到的,自己做了一点点改变。https://blog.csdn.net/K52hz/article/details/105566011 input()1.1 读取一行输入 line = list(map(int, input().strip().split()))1.2 读取多行输入(指定行数) 第一行为给定输入的大小,比如n行数,用n,m接收输入的大小 用list接收下面输入的矩阵 n, m = map(int, input().strip().split()) lit = [] for i in range(n): lis.append(limap(int, input().strip().split()))1.3 读取多行输入(不指定行数) lis = [] while True: line = input().strip() if line == '': break lines = list(map(int, line.split())) lis.append(lines)sys.stdin.readline()需要导入内置模块sys:import sys 2.1 读取一行 line = list(map(int, sys.stdin.readline().strip().split()))2.2 读取多行 lis = [] while True: line = sys.stdin.readline().strip() if line == '': break lis.append(list(map(int, line.split())))3.3 一次性读取多行放在一个list中,每一行为list的一个元素(这种没搜到解释,不知道对不对) lines = sys.stdin.read().splitline() |
CopyRight 2018-2019 实验室设备网 版权所有 |