1. 程式人生 > 其它 >Python學習之解決“千年蟲”問題

Python學習之解決“千年蟲”問題

技術標籤:python

Python學習之解決“千年蟲”問題
千年蟲事件是指在某些使用了計算機程式的智慧系統(包括計算機系統、自動控制晶片等)中,由於其中的年份只使用兩位十進位制數來表示,因此當系統進行(或涉及到)跨世紀的日期處理運 算時(如多個日期之間的計算或比較等),就會出現錯誤的結果,進而引發各種各樣的系統功 能紊亂甚至崩潰。因此從根本上說千年蟲是一種程式處理日期上的bug(計算機程式故障),而非病毒。如記錄年份時,1998被表示為98、2000被表示為00,但跨入2000年後,計算機會把2000年解釋為1900年,造成各種系統功能的紊亂。
下面的序列儲存了8名1900年後出生人員的出生年份,為了避免出現千年蟲問題,請編寫一個小程式,把目前的序列中存在千年蟲問題的資料進行修改,然後升序輸出修改後的序列。

當前序列:89、98、00、76、68、37、58、90
參考輸出序列:1937、1958、1968、1976、1989、1990、1998、2000

year = [89,98,00,76,68,37,58,90]        #原有年份列表
for index,value in enumerate(year):     #遍歷列表年份索引與年份
    if str(value) !='0':                #判斷非0年份
        year[index] = int('19'+str(value))
    else:
        year[index] = int('200'+str
(value)) #判斷2000年 year.sort() #升序排列 print(year) #列印修改後的年份

結果為:[1937, 1958, 1968, 1976, 1989, 1990, 1998, 2000]