给出二维数据存储 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-07-27 11:14:42 浏览: 97
好的,我可以帮您实现这个功能。以下是 Python 代码实现:
```python
import csv
# 读取 CSV 文件
with open('SunSign.csv', 'r') as file:
reader = csv.reader(file)
# 跳过第一行
next(reader)
# 将 CSV 数据存储到字典中
data = {row[0]: (row[1], row[2], chr(int(row[3]))) for row in reader}
# 循环获得用户输入
while True:
sign = input("请输入星座名称:")
if sign == "exit":
break
# 查找对应星座的出生日期范围及对应字符形式
if sign in data:
start_date, end_date, unicode_char = data[sign]
print(f"{sign}的出生日期范围为{start_date}到{end_date},对应的字符形式为{unicode_char}")
else:
print("输入星座名称有误!")
```
这段代码会先读取 CSV 文件,并将数据存储到字典中。然后进入循环,等待用户输入星座名称。如果用户输入“exit”,则退出循环。如果用户输入的星座名称在字典中存在,则输出对应的出生日期范围及字符形式。如果不存在,则输出“输入星座名称有误!”。
相关问题
给出二维数据存储 CSV 文件(SunSign.csv)请编写程序,读入 CSV 文件中数据,循环获得用户输入,直至用户输入 "exit" 退出。根据用户输入的星座名称,输出此星座的出生日期范围及对应字符形式。如果输入的星座名称有误,请输出“输入星座名称有误!”。
可以使用Python内置的csv模块来读取CSV文件中的数据,然后将数据存储到一个字典中,其中星座名称作为字典的键,出生日期范围及对应字符形式作为字典的值。然后使用循环获取用户输入的星座名称,并在字典中查找对应的值并输出。
下面是示例代码:
```python
import csv
# 读取CSV文件中的数据
data = {}
with open('SunSign.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
data[row[0]] = {'date_range': row[1], 'character': row[2]}
# 循环获得用户输入
while True:
s = input("请输入星座名称(输入exit退出):")
if s == "exit":
break
elif s in data:
print("{}的出生日期范围为{},性格特点为{}".format(s, data[s]['date_range'], data[s]['character']))
else:
print("输入星座名称有误!")
```
注意,要根据实际情况修改CSV文件的路径和编码方式。此外,如果CSV文件中有表头,可以在读取数据时跳过第一行,例如:
```python
reader = csv.reader(f)
next(reader) # 跳过第一行表头
for row in reader:
...
```
请在Begin和End中进行程序编写,不允许修改程序结构,不允许删除修改已存在的代码。 二千多年前希腊的天文学家希巴克斯命名十二星座,它们是水瓶座、双鱼座、白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、魔蝎座。 给出一个CSv文件(在考生文件夹%PATH%下PY301-Sunsign.csv).内容示例如下: 序号,星座,开始月日,结束月日,Unicode 1,水瓶座,120,218,9810 2,双鱼座,219,320,9811 3,白羊座,321,419,9800 4,金牛座
Begin
```
import csv
# 定义星座字典
sunsign_dict = {'水瓶座': 'Aquarius',
'双鱼座': 'Pisces',
'白羊座': 'Aries',
'金牛座': 'Taurus',
'双子座': 'Gemini',
'巨蟹座': 'Cancer',
'狮子座': 'Leo',
'处女座': 'Virgo',
'天秤座': 'Libra',
'天蝎座': 'Scorpio',
'射手座': 'Sagittarius',
'魔蝎座': 'Ophiuchus'}
# 读取CSV文件
with open('%PATH%/PY301-Sunsign.csv', newline='') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(sunsign_dict[row['星座']], row['开始月日'], row['结束月日'])
```
End
在以上代码中,我们定义了一个星座字典,将中文星座名称对应到英文名称。然后在读取CSV文件时,将每一行的中文星座名称转换为英文名称并输出。请注意,这里的文件路径需要根据实际情况进行替换,%PATH%表示考生文件夹的路径。