基于Python根据生日查询实现属相和对应年份的程序

介绍

这个Python程序接受用户输入的出生年月日,然后根据预定义的数据,计算出对应的生肖和农历年份。程序使用了列表、字符串操作和条件语句来实现功能,是一个简单而实用的日期处理示例。

环境配置

  • Python 版本:推荐 Python 3.x
  • 无需安装额外库,使用标准库中的 math 和内置函数即可。

项目分布

项目主要分为以下部分:

  1. 输入生日信息。
  2. 匹配生日信息与预定义的年份数据。
  3. 计算生肖和农历年份。
  4. 输出结果给用户。

详细代码

import math

# 定义数据
lunar = '申酉戌亥子丑寅卯辰巳午未'
zodiac = '猴鸡狗猪鼠牛虎兔龙蛇马羊'
ztime = ['1936(1.24)', '1937(2.11)', '1938(1.31)', '1939(2.19)', '1940(2.08)', '1941(1.27)', '1942(2.15)', '1943(2.05)', '1944(1.25)', '1945(2.13)', '1946(2.02)', '1947(1.22)', '1948(2.10)', '1949(1.29)', '1950(2.17)', '1951(2.06)', '1952(1.27)', '1953(2.14)', '1954(2.03)', '1955(1.24)', '1956(2.12)', '1957(1.31)', '1958(2.18)', '1959(2.08)', '1960(1.28)', '1961(2.15)', '1962(2.05)', '1963(1.25)', '1964(2.13)', '1965(2.02)', '1966(1.21)', '1967(2.09)', '1968(1.30)', '1969(2.17)', '1970(2.06)', '1971(1.27)', '1972(2.15)', '1973(2.03)', '1974(1.23)', '1975(2.11)', '1976(1.31)', '1977(2.18)', '1978(2.07)', '1979(1.28)', '1980(2.16)', '1981(2.05)', '1982(1.25)', '1983(2.13)', '1984(2.2)', '1985(2.20)', '1986(2.09)', '1987(1.29)', '1988(2.17)', '1989(2.06)', '1990(1.27)', '1991(2.15)', '1992(2.04)', '1993(1.23)', '1994(2.10)', '1995(1.31)', '1996(2.19)', '1997(2.07)', '1998(1.28)', '1999(2.16)', '2000(2.05)', '2001(1.24)', '2002(2.12)', '2003(2.01)', '2004(1.22)', '2005(2.09)', '2006(1.29)', '2007(2.18)', '2008(2.07)', '2009(1.26)', '2010(2.14)', '2011(2.03)', '2012(1.23)', '2013(2.10)', '2014(2.04)', '2015(2.19)', '2016(2.08)', '2017(1.28)', '2018(2.16)', '2019(2.05)', '2020(1.25)']
mdate = ''
shop = '100000056303'

# 用户输入生日
birth = input('请输入你的出生年月日,格式为:2001-02-21\n')
cbir = birth.split('-')
cyear = cbir[0]
cmonth = cbir[1]
cdate = cbir[2]

# 查找对应的农历年份和生肖
for item in ztime:
    if item[:4] == cyear:
        mdate = item[4:].strip(' ').strip('(').strip(')')

# 计算出生日的月份和日期组合
ctime = str(cmonth) + str(cdate)

# 获取当前年份对应的生肖和农历日期
ndate = mdate.split('.')
smonth = ndate[0]
sdate = ndate[1]
stime = str(smonth) + str(sdate)

# 判断生日在农历日期之前还是之后,确定正确的生肖
if int(ctime) < int(stime):
    cyear = int(cyear) - 1

rem = int(cyear) % 12

# 输出结果
print('要查询的属相是:' + zodiac[rem] + '\n属相对应的年份是:' + lunar[rem] + '年')

总结

这个程序通过用户输入的生日信息,计算出对应的生肖和农历年份,实现了基本的日期处理和字符串操作。代码简洁明了,利用了列表、字符串切片等基本Python功能,适合用作初学者练习日期处理和条件判断的示例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序熊.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值