| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
各位大神:在网上看到一段代码 输入年份 自动计算天干地支。 
myyear = input('请输入年份:') 
myyear = int(myyear) 
tiangan_list =['甲','乙','丙','丁','戊','己','庚','辛','壬','癸'] 
dizhi_list =['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥'] 
shengxiao_list =['鼠','牛','虎','兔','龙','蛇','马','羊','猴','鸡','狗','猪'] 
for i in range(myyear,myyear+12): 
    tiangan =tiangan_list[(i-3) % 10-1] 
    dizhi=dizhi_list[(i-3) % 12-1] 
    shengxiao = shengxiao_list[(i % 12)-3-1] 
    tgdz =tiangan+dizhi 
    print(i,tgdz,shengxiao,sep=' ') 
 
请问 
 
 tiangan =tiangan_list[(i-3) % 10-1]  这句代码中  为什么i-3? 
 shengxiao = shengxiao_list[(i % 12)-3-1]  这句代码 为啥i%12后 还要减去3 ? 
不懂。 
请各位指教
之所以减3,是因为公元元年并不是甲子年,公元4年才是甲子年,所以在把公元年份转为天干地支纪年的时候要先减3。 
先减3再求余,和先求余再减3结果是一样的。也就是说   (i % 12)-3  和  (i-3 )% 12  结果是一样的。 
 
 
 |   
 
 
 
 |