请编写程序,读入CSV文件中(const.csv)数据。根据用户输入的出生日期(格式为YYYYMMDD),输出对应星座名称。如果输入的格式有误,请输出“输入日期错误!”
时间: 2024-05-14 21:16:50 浏览: 156
好的,我可以帮你编写这个程序。以下是代码实现:
```python
import csv
def get_constellation(birth_date):
try:
birth_year = int(birth_date[:4])
birth_month = int(birth_date[4:6])
birth_day = int(birth_date[6:])
except ValueError:
return "输入日期错误!"
constellations = []
with open('const.csv', newline='') as csvfile:
reader = csv.reader(csvfile)
next(reader) # 跳过首行
for row in reader:
name, start_month, start_day, end_month, end_day = row
if ((birth_month == int(start_month) and birth_day >= int(start_day)) or
(birth_month == int(end_month) and birth_day <= int(end_day)) or
(int(start_month) < birth_month < int(end_month))):
constellations.append(name)
if constellations:
return constellations[0]
else:
return "输入日期错误!"
```
这个函数会读入名为 `const.csv` 的 CSV 文件,然后根据输入的出生日期计算对应的星座名称。如果输入的日期格式不正确,函数会返回错误提示。
请注意,这个函数假定 CSV 文件的格式为:
```
Constellation,StartMonth,StartDay,EndMonth,EndDay
<!-- 这是注释行 -->
Aries,03,21,04,19
Taurus,04,20,05,20
<!-- ... -->
```
这些数据为星座名称及其对应的起止日期。在这个例子中,我只列出了前两个星座的数据。如果你需要计算其他的星座,需要在 CSV 文件中添加更多的行。
你可以调用这个函数的方式如下:
```python
birth_date = input("请输入出生日期(格式为YYYYMMDD):")
constellation = get_constellation(birth_date)
print("您的星座是:", constellation)
```
阅读全文