编写程序,根据用户输入的星座名称,输出此星座的出生日期范围及对应的星座符号(如表12-1所示)。程序不完整,请完善代码fo = open("SunSign.csv","r", encoding='utf-8') ls = [] for (1) in fo: #以“行”为单位进行处理 line = line.replace("\n","") #去掉行末的换行符 ls. (2) (line.split(",")) #追加数据到ls列表 fo.close() while True: #无限循环 InputStr = input() #输入星座名称 InputStr.strip() #去掉开头和结尾的空白 flag = False #flag变量初始值为False if (3) : #输入exit,结束循环 break for line in ls: if InputStr == line[0]: #line[0]中内容是星座名称 #对输出结果进行格式化 print("{}座的生日位于{}-{}之间". (4) (chr(eval(line[3])),line[1],line[2])) flag = True #输入星座正确,flag为True if flag == (5) : print("输入星座名称有误!")
时间: 2024-02-10 17:11:28 浏览: 307
```python
fo = open("SunSign.csv","r", encoding='utf-8')
ls = []
for line in fo: #以“行”为单位进行处理
line = line.replace("\n","") #去掉行末的换行符
ls.append(line.split(",")) #追加数据到ls列表
fo.close()
while True: #无限循环
InputStr = input() #输入星座名称
InputStr = InputStr.strip() #去掉开头和结尾的空白
if InputStr == "exit": #输入exit,结束循环
break
flag = False #flag变量初始值为False
for line in ls:
if InputStr == line[0]: #line[0]中内容是星座名称
#对输出结果进行格式化
print("{}座的生日位于{}月{}日至{}月{}日之间,对应的星座符号为{}".format(InputStr, line[1], line[2], line[3], line[4], chr(eval(line[5]))))
flag = True #输入星座正确,flag为True
if flag == False:
print("输入星座名称有误!")
```
解释:
1. `for line in fo:` 遍历文件中的每一行数据,使用 `line` 变量表示当前行的数据。
2. `ls.append(line.split(","))` 将当前行的数据按照逗号分割成列表,然后追加到 `ls` 列表中。
3. `if InputStr == "exit":` 判断用户输入的字符串是否为 "exit",如果是,则退出循环。
4. `print("{}座的生日位于{}月{}日至{}月{}日之间,对应的星座符号为{}".format(InputStr, line[1], line[2], line[3], line[4], chr(eval(line[5]))))` 根据用户输入的星座名称,在 `ls` 列表中查找对应的数据,并将数据格式化输出。
5. `if flag == False:` 如果循环结束后,`flag` 变量的值仍为 `False`,则说明用户输入的星座名称有误,输出错误提示信息。
阅读全文