写在前面:
长夜路漫漫,感谢每个愿意帮助其他Programmer的人,感恩!
由于设置了多重循环嵌套,在从列表遍历提取要素是出现列表遍历循环结束后,循环继续对列表中最后一个元素进行遍历的错误,下面详细叙述:
原程序:
month_list = ['01', '03', '05', '07', '08', '10', '12']
element_list = ['CAPE', 'CPE', 'DPT', 'SSP', 'TCC', 'TCW', 'TEM', 'TPE']
for element in element_list:
for month in month_list:
month_list = month # 错误点:这里将从month_list中取到的元素又重新赋值给month_list
for j in range(1, 32, 1):
if j < 10:
day = month + '0' + str(j)
filename = element + day
print(day)
print(month)
print(filename)
else:
day = month + str(j)
filename = element + day
print(day)
print(month)
print(filename)
在上面的代码中,错误点的地方可以看到,为了获取month_list中的元素,多此一举的将从month_list中获取的元素又赋值给了month_list自己本身,这就导致列表遍历循环至最后一个元素'12'的时候,循环结束,month_list被赋值为'12',这就导致当继续进行下一个大循环的时候,遍历month_list时,要素变成了'12'中的'1'和'2'。
结果:
CAPE1228
1229
12
CAPE1229
1230
12
CAPE1230
1231
12
CAPE1231
101
1
CPE101
102
1
CPE102
103
1
错误点:
mon = '12'
for m in mon:
print(m)
输出:
1
2
原程序更改后:(把错误点去掉即可)
month_list = ['01', '03', '05', '07', '08', '10', '12']
element_list = ['CAPE', 'CPE', 'DPT', 'SSP', 'TCC', 'TCW', 'TEM', 'TPE']
for element in element_list:
for month in month_list:
for j in range(1, 32, 1):
if j < 10:
day = month + '0' + str(j)
filename = element + day
print(day)
print(month)
print(filename)
else:
day = month + str(j)
filename = element + day
print(day)
print(month)
print(filename)
感谢你能看到这!