Python刷题-使用stdin进展输入输出-随机数组去重排序
Python刷题-使用stdin进行输入输出-随机数组去重排序
原题地址:
在不同的一些刷题代码网站和给定的不同题目中,对于给定变量输入的规则可能会有不同,一般来讲,最常见的输入方法来源于sys.stdin方法
例如这道简单的题:
1.输入描述:输入多行,先输入随机整数的个数,再输入相应个数的整数
2.输出描述:返回多行,处理后的结果
3.处理要求:要求将输入的随机整数组进行去重复,并且按照从低到高的顺序排序,将排序后的结果输出出来。
首先来看输入,对于输入来讲,输入数字的总长度取决于第一个输入数,因此应该先获取第一个输入,确定了接下来输入的长度之后,再继续获取输入
import sys var1=int(sys.stdin.readline())
即将第一次输入的结果记录到var1中
接下来准备将后面的输入存储到var2中,例如var1=11,即后面需要输入11个变量,如果要通过一个for循环来实现的话,即需要循环11次才能结束输入:
这里的方法是先初始化var2为空,然后没接受一次输入,将输入结果append到var2中,循环结束即完成var2的输入获取:
var2=[] for i in range(var1): line=int(sys.stdin.readline().strip())#strip()可以去掉每次输入line后的换行符,例如这次输入的10,则实际print line结果为10\n var2.append(line)
对于每一次循环,line都会被更新为新的输入并append到var2中,完成循环即完成输入。strip()则是为了去掉换行符。
完成变量的存储,这道题的解决方法如下:
v=list(set(var2)) #利用set()的方法对var2进行去重 v.sort()#对去重的结果v进行排序
v就是我们需要输出的结果,不过注意到这里的输出要求,我们依然可以用for循环进行输出,即:
for i in v: print i
将以上所有过程结合起来,嵌套在while True:try:....except:break当中:
import sys while True: try: var1=int(sys.stdin.readline().strip()) var2=[] for i in range(var1): line=int(sys.stdin.readline().strip()) var2.append(line) v=list(set(var2)) v.sort() for i in v: print i except: break