计算机2000年问题,又叫做“千年虫”、“电脑千禧年千年虫问题”或“千年危机”。缩写为“Y2K”。是指在某些使用了计算机程序的智能系统(包括计算机系统、自动控制芯片等)中,由于其中的年份只使用两位十进制数来表示,因此当系统进行(或涉及到)跨世纪的日期处理运算时(如多个日期之间的计算或比较等),就会出现错误的结果,进而引发各种各样的系统功能紊乱甚至崩溃。千年虫
在计算机中,”1998“会被表示为”98“、”2000“会被表示为”00“,因此当计算机时间踏入2000年时,计算机会将2000年解析为1900年。因此从根本上说千年虫是一种程序处理日期上的bug(计算机程序故障),而非病毒。
把列表里面的数据进行修改,然后升序排序后输出。
# coding :UTF_8
# 开发团队 :小白之家
# 开发人员 :机器人小白
# 开发时间 :2020/7/24 14:14
# 文件名称 :AC_6_1.py
# 开发工具 :PyCharm
# 解决”千年虫“问题
# 方法一 使用range函数
print('方法一:\n')
year = [89, 98, 00, 75, 68, 37, 58, 90]
for i in range(len(year)): # 把year列表里面的全部元素依次赋值给 i
if year[i] == 00:
year[i] = int(2000)
else:
year[i] = int(1900 + year[i])
print('当前序列输出的初始年份:', year)
year.sort(reverse=False) # 把列表进行升序排序
print('升序当前输出的初始年份:', year)
print('\n')
# 方法二 使用enumerate函数
print('方法二:\n')
year = [89, 98, 00, 75, 68, 37, 58, 90]
for index, value in enumerate(year): # 遍历列表元素索引与年份
if str(value) == '0': # 判断00的年份
year[index] = int(2000)
else:
year[index] = int('19' + str(value))
print('当前序列输出的初始年份:', year)
year.sort(reverse=False) # 把列表进行升序排序
print('升序当前输出的初始年份:', year)
在这里,我是使用range和enumerate函数来重新生成列表的。方法还有很多,比如使用正则表达式来匹配列表里面的值。