思路

通过对12求余数,我们可以穷尽12生肖的重复循环,得到最早的那次从0000-0012年的生肖迭代,余数就是第一个循环的生肖下标。

  1. zodiac = "鼠牛虎兔龙蛇马羊猴鸡狗猪"
  2. year = int(input("输入年份:"))
  3. res = year % 12
  4. print(res) #4
  5. print(zodiac[res]) #龙

结果是“龙”并不是我们想要的,因为公元元年的开始并不是鼠年
2020年是鼠
通过推算
2020 % 12 = 4
知在公元0004年是鼠年

两种方式解决
下标减4

  1. print(zodiac[res - 4])

调换字符串顺序

  1. zodiac = "猴鸡狗猪鼠牛虎兔龙蛇马羊"

image.png

全部程序

  1. zodiac = "鼠牛虎兔龙蛇马羊猴鸡狗猪"
  2. year = int(input("输入年份:"))
  3. res = year % 12
  4. print(res) #4
  5. print(zodiac[res]) #龙