原題地址: 明明的隨機數 在不同的一些刷題代碼網站和給定的不同題目中,對於給定變數輸入的規則可能會有不同,一般來講,最常見的輸入方法來源於sys.stdin方法 例如這道簡單的題: 1.輸入描述:輸入多行,先輸入隨機整數的個數,再輸入相應個數的整數 2.輸出描述:返回多行,處理後的結果 3.處理要求 ...
原題地址:
在不同的一些刷題代碼網站和給定的不同題目中,對於給定變數輸入的規則可能會有不同,一般來講,最常見的輸入方法來源於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