
法1:观察日期格式
- 月份可能是一位数也可能是两位数,但是日期一定是两位数。
序号,星座,开始月日,结束月日,Unicode
1,水瓶座,120,218,9810
2,双鱼座,219,320,9811
3,白羊座,321,419,9800
4,金牛座,420,520,9801
5,双子座,521,621,9802
6,巨蟹座,622,722,9803
7,狮子座,723,822,9804
8,处女座,823,922,9805
9,天秤座,923,1023,9806
10,天蝎座,1024,1122,9807
11,射手座,1123,1221,9808
12,魔蝎座,1222,119,9809
fo = open("PY301-SunSign.csv", 'r',encoding='UTF-8')
ls = []
for line in fo.readlines():
ls.append(line.replace("\n", '').split(','))
sall = input('请输入星座序号(例如,5 10):')
while sall != '':
lsNum = sall.split()
for s in lsNum:
for i in range(len(ls)):
if s == ls[i][0]:
print("{}({})的生日是{}月{}日至{}月{}日之间".format(ls[i][1],ls[i][4],ls[i][2][:-2],ls[i][2][-2:],ls[i][3][:-2],ls[i][3][-2:]))
sall = input('请输入星座序号(例如,5 10):')
法2:通过分支结构判断生日位数
- 此法仅做参考,过于繁琐,这也是缺乏思考的代价。相较于上面的代码而言,这个代码太繁琐了。
f = open('PY301-SunSign.csv','r',encoding='utf8')
lines = f.readlines()
numbers = input('请输入星座序号(例如,5 10):')
for num in numbers.split():
for line in lines:
line = line.strip().split(',')
if num == line[0]:
start_m = []
start_d = []
end_m = []
end_d = []
if len(line[2]) == 3 and len(line[3]) == 3:
start_m = line[2][:1]
start_d = line[2][1:]
end_m = line[3][:1]
end_d = line[3][1:]
elif len(line[2]) == 3 and len(line[3]) == 4:
start_m = line[2][:1]
start_d = line[2][1:]
end_m = line[3][:2]
end_d = line[3][2:]
elif len(line[2]) == 4 and len(line[3]) == 3:
start_m = line[2][:2]
start_d = line[2][2:]
end_m = line[3][:1]
end_d = line[3][1:]
else:
start_m = line[2][:2]
start_d = line[2][2:]
end_m = line[3][:2]
end_d = line[3][2:]
print("{}({})的生日是{}月{}日至{}月{}日之间".format(line[1],line[-1],start_m,start_d,end_m,end_d))
numbers = input('请输入星座序号(例如,5 10):')
第三题参考代码
fo = open("PY301-SunSign.csv", 'r',encoding='UTF-8')
ls = []
for line in fo.readlines():
ls.append(line.replace("\n", '').split(','))
sall = input('请输入星座序号(例如,5 10):')
while sall != '':
lsNum = sall.split()
for s in lsNum:
if 1 <= int(s) <=12:
for i in range(len(ls)):
if s == ls[i][0]:
print("{}({})的生日是{}月{}日至{}月{}日之间".format(ls[i][1],ls[i][4],ls[i][2][:-2],ls[i][2][-2:],ls[i][3][:-2],ls[i][3][-2:]))
else:
print("输入星座序号有误!")
sall = input('请输入星座序号(例如,5 10):')