古代航海人为了方便在航海时辨别方位和观测天象,将散布在天上的星星运用想象力将它们连接起来,有一半是在古时候已命名,另一半是近代开始命名的。两千多年前古希腊的天文学家希巴克斯命名十二星座,依次为白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、魔蝎座、水瓶座和双鱼座。二维数据存储CSV文件(SunSign.csv),内容如下: 星座,开始月日,结束月日,Unicode 水瓶座,120,218,9810 双鱼座,219,320,9811 白羊座,321,419,9800 金牛座,420,520,9801 双子座,521,621,9802 巨蟹座,622,722,9803 狮子座,723,822,9804 处女座,823,922,9805 天秤座,923,1023,9806 天蝎座,1024,1122,9807 射手座,1123,1221,9808 魔蝎座,1222,119,9809 请编写程序,读入CSV文件中数据,循环获得用户输入,直至用户输入 "exit" 退出。根据用户输入的星座名称,输出此星座的出生日期范围及对应字符形式。如果输入的星座名称有误,请输出“输入星座名称有误!”。
时间: 2023-08-10 07:04:56 浏览: 758
可以使用Python的csv模块读取CSV文件中的数据,然后使用循环和条件语句实现用户输入和输出。
以下是实现此功能的代码示例:
```python
import csv
# 读取CSV文件
with open('SunSign.csv', newline='') as csvfile:
reader = csv.reader(csvfile)
# 跳过表头
next(reader)
# 将星座数据存储为字典
signs = {}
for row in reader:
sign_name, start_date, end_date, unicode_value = row
signs[sign_name] = (start_date, end_date, chr(int(unicode_value, 16)))
# 循环获取用户输入
while True:
sign_name = input("请输入星座名称(输入 exit 退出):")
if sign_name == "exit":
break
elif sign_name in signs:
start_date, end_date, sign_symbol = signs[sign_name]
print(f"{sign_name}的出生日期范围为{start_date}到{end_date},对应字符为{sign_symbol}")
else:
print("输入星座名称有误!")
```
代码中首先使用csv模块读取CSV文件中的数据,并将星座数据存储为字典。然后使用循环和条件语句实现用户输入和输出,直至用户输入 "exit" 退出。如果输入的星座名称有误,输出“输入星座名称有误!”。
阅读全文