python十二星座
时间: 2024-12-30 08:21:41 浏览: 7
### Python与十二星座相关项目的实现
对于构建一个基于Python的十二星座查询工具,可以利用已有的数据结构来存储和处理信息。下面是一个改进版本的例子,该例子不仅展示了如何创建字典,还提供了一个更友好的用户交互界面用于查询特定星座的信息。
#### 创建并打印关联字典
为了将名字与其对应的星座相匹配,应当逐个配对而不是整个序列作为键值[^1]:
```python
name_tuple = ('绮梦', '冷罗衣', '香凝', '黛兰')
sign_list = ['水瓶座', '射手座', '双鱼座', '双子座']
dictionary = dict(zip(name_tuple, sign_list))
print(dictionary)
```
这段代码会输出如下结果:
```plaintext
{'绮梦': '水瓶座', '冷罗衣': '射手座', '香凝': '双鱼座', '黛兰': '双子座'}
```
#### 构建十二星座查询功能
接下来展示的是一个简单的命令行应用程序,它可以从CSV文件读取星座信息,并允许用户通过输入编号来查找对应星座的具体日期范围[^2]:
```python
def load_constellations(file_path='PY301-SunSign.csv'):
with open(file_path, 'r') as file:
lines = file.readlines()
constellations = {}
for line in lines:
data = line.strip().split(',')
number, name, start_date, end_date, symbol = data[:5]
constellations[number] = {
"name": name,
"symbol": symbol,
"start_month": int(start_date[:-2]),
"start_day": int(start_date[-2:]),
"end_month": int(end_date[:-2]),
"end_day": int(end_date[-2:])
}
return constellations
def get_constellation_info():
constellations = load_constellations()
while True:
try:
choice = input('请输入星座序号(例如,5):')
if not (0 < int(choice) <= len(constellations)):
raise ValueError
constellation = constellations[str(int(choice))]
print(f"{constellation['name']} ({constellation['symbol']}) 的生日是在 "
f"{constellation['start_month']:02d}月{constellation['start_day']:02d}日 至 "
f"{constellation['end_month']:02d}月{constellation['end_day']:02d}日之间.")
break
except Exception as e:
print("输入星座序号有误!")
get_constellation_info()
```
此程序首先加载来自`PY301-SunSign.csv`的数据到内存中的字典里;接着进入无限循环等待有效输入直到成功为止。如果用户提供有效的整数,则显示相应的星座详情;否则提示错误消息让用户重新尝试。
阅读全文