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

 


 

posted @ 2017-04-23 00:42  koliverpool  阅读(1323)  评论(0编辑  收藏  举报