Python之解决”千年虫“问题篇

计算机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函数来重新生成列表的。方法还有很多,比如使用正则表达式来匹配列表里面的值。

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值