鱼C论坛

 找回密码
 立即注册
查看: 2138|回复: 1

[已解决]【新手课题】求以下该如何实现?

[复制链接]
发表于 2020-10-27 14:31:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
千年虫问题:
“千年虫”问题,也称计算机2000年问题,或“千年危机”,是指某些计算机程序在设计时只采用两位十进制数记录年份的最后两位,
如1998年被表示为“98”、2000年表示为“00”,因此当时时间跨入2000年时,计算机计时系统会将2000年解释为1900年,造成各种
各样的系统功能紊乱,甚至发生灾难性的后果。因此从根本上说千年虫是一种程序处理日期上的bug,而非病毒。
为了解决2000年问题,世界各国投入了大量的人力,物力,据统计耗资超过6000亿美元,这是人类有史以来最昂贵的救灾行动。
下面的序列保存了10名1920-2000年出生人员的出生年份,为了避免出现千年虫问题,请编写一个小程序,把序列信息中存在千
年虫问题的数据进行提取修改,然后按年龄从高到底输出。
人员序列信息:【45,89,1998,00,75,33,1968,37,1958,90】
输出参考:【1933,1937,1945,1958,1968,1975,1989,1990,1998,2000】

怎么将上面的人员系列信息内的值遍历修改后再填入新的列表中?
下面是我写的代码,只能遍历判断修改然后一个个输出,求大神指导
year_now = (45,89,1998,00,75,33,1968,37,1958,90)
for year in year_now:
    if year >= 1920 :
        print(year)
    else:
        if year == 33:
            print(1933)
        elif year == 37:
            print(1937)
        elif year == 45:
            print(1945)
        elif year == 75:
            print(1975)
        elif year == 89:
            print(1989)
        elif year == 90:
            print(1990)
        else:
            print(2000)
最佳答案
2020-10-27 15:34:01
year_now = (45,89,1998,00,75,33,1968,37,1958,90)
year = []
for each in year_now:
    if each >= 1920:
        year.append(each)
    elif each <= 20:
        year.append(2000 + each)
    else:
        year.append(1900 + each)
year.sort()
print(year)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-27 15:34:01 | 显示全部楼层    本楼为最佳答案   
year_now = (45,89,1998,00,75,33,1968,37,1958,90)
year = []
for each in year_now:
    if each >= 1920:
        year.append(each)
    elif each <= 20:
        year.append(2000 + each)
    else:
        year.append(1900 + each)
year.sort()
print(year)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 04:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表