赞
踩
sys.stdin.readline()
可以实现标准输入,其默认输入的格式是字符串,如果是int,float类型则需要强制转换。sys.stdin.readline()
每次读出一行内容,所以,读取时占用内存小,比较适合大文件,该方法返回一个字符串对象;sys.stdin.readline()
会读取末尾'\n'
,加.strip()
,去掉回车符,同时去掉前后的空格。read([size])
从文件当前位置起读取size个字节,若无参数size,则表示读取至文件结束为止,它范围为字符串对象。readlines()
读取整个文件所有行,保存在一个列表(list)变量中,每行作为一个元素,但读取大文件会比较占内存>>> import sys
#输入一个字符(串)
>>> str=sys.stdin.readline()
abc
>>> print(len(str))
4
>>> str=sys.stdin.readline().strip()
>abc
>>> print(len(str))
3
#输入一个数
>>> num=sys.stdin.readline().strip()
921
>>> print(len(num))
3
>>> import sys >>> num=sys.stdin.readline() 1 2 3 >>> print(len(num)) 6 >>> type(num) <class 'str'> >>> num=sys.stdin.readline().strip() 1 2 3 >>> print(len(num)) 5 >>> print(num) 1 2 3 >>> num=sys.stdin.readline().split() 1 2 3 >>> print(len(num)) 3 >>> print(num) ['1','2','3'] >>> type(num) <class 'list'> >>> a,b,c=sys.stdin.readline().split() 1 2 3 >>> print(a) 1 >>> print(len(a)) 1 >>> type(a) <class 'str'> #转换为int类型 >>> num=[int(n) for n in sys.stdin.readline().split()] 1 2 3 >>> print(num) [1,2,3] >>> a,b,c=[int(n) for n in sys.stdin.readline().split()] 1 2 3 >>> a 1 >>> num=map(int,sys.stdin.readline().split()) 1 2 3 >>> print(num) <map object at 0x000000D6BEFE89E8> >>> num=list(num) >>> print(num) [1,2,3]
>>> import sys #已知行数n,一行有任意个字符字符串都可以 #示例1 >>> seq[] >>> for i in range(n): ... line=sys.stdin.readline().strip() ... value=list(map(int,line.split())) ... seq+=value ... 1 2 3 2 4 >>> print(seq) [1,2,3,2,4] #示例2 >>> ans=[] >>> for i in range(n): ... line=list(map(int,sys.stdin.readline().split())) ... ans.append(line) ... 1 2 3 2 4 >>> print(ans) [[1,2,3],[2,4]]
#示例1 >>> seq=[] >>> while 1: ... line=sys.stdin.readline().strip() #line此时是字符串列表,并已去掉前后空格、回车符 ... if line: ... line=list(map(int,line.split())) ... else: ... break ... seq.append(line) ... print(seq) #示例2 >>> lines=sys.stdin.readlines() 3 2 3 3 5 1 4 7 8 9 ^Z >>> print(lines) ['3\n','2 3\n','3 5\n','1 4\n','7 8 9\n'] >>> n=lines[0].split() >>> print(n) 2 >>> seq=[] >>> for line in lines[1:-1]: ... if not line.split(): ... continue ... l=list(map(int,line.split())) ... seq.append(l) >>> print(seq) [[2,3],[3,5],[1,4]] >>> ab=list(map(int,lines[-1]).split())) >>> print(ab) [7,8,9] #示例3 >>> seq=[] >>> for line in sys.stdin: ... nums=line.split() ... if int(nums[0])==0: ... break ... else: ... seq.append(list(map(int,line.split()))) ... 2 3 3 5 0 >>> print(seq) [[2,3],[3,5]]
>>> s = input()#一个字符
abc
>>> num=int(input())#一个数字
23
>>> print(s,num)
abc 23
>>> nums = [int(i) for i in input().split()]
11 15 18 21
>>> print(nums)
[11,15,18,21]
两行读取要在一行读取的基础上再进行一些操作。这里举个例子,假设第一行输入数组长度,第二行输入数组,那么读入操作分两步,首先获得数组长度,然后获取数组。
>>> s = input()
>>> if s != "":
... length = int(s)
... nums = [int(i) for i in input().split()]
... print(length, nums)
>>> data = []
>>> length = int(input())
>>> n = 0
>>> while n < length:
... s = input()
... if s != "":
... temp = [i for i in s.split()]
... data.append(temp)
... n = n + 1
... else:
... break
>>> print(data)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。