正在将垃圾值发送到函数,而不是实际参数。我的代码有什么问题?
def find_leap_years(given_year):
i=0
count=0
while(count<15):
print(given_year)
if(given_year%4==0)and(given_year%400==0):
if(given_year%100!=0):
list_of_leap_years[i]=given_year
i+=1
count+=1
given_year+=1
return list_of_leap_years
list_of_leap_years=find_leap_years(2000)
print(list_of_leap_years)
答案 0 :(得分:0)
list_of_leap_years
未在函数内部声明,因此它从外部范围获取值,例如,可能未定义。
答案 1 :(得分:0)
您的目标是这样吗?您的问题和代码不清楚您要实现的目标,但是如果这是您的目标,那么我可以解释一下我认为您的代码出了什么问题。
def find_leap_years(given_year):
list_of_leap_years = []
for i in range(given_year + 1):
if i%4 == 0:
if i%100 == 0:
if i%400 == 0:
list_of_leap_years.append(i)
else:
continue
else:
list_of_leap_years.append(i)
else:
continue
return list_of_leap_years
leap_years = find_leap_years(2000)
print(leap_years)
输出
(xenial)vash@localhost:~/python$ python3.7 leapyear.py
[0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72,
76, 80, 84, 88, 92, 96, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140,
144, 148, 152, 156, 160, 164, 168, 172, 176, 180, 184, 188, 192, 196, 204,
208, 212, 216, 220, 224, 228, 232, 236, 240, 244, 248, 252, 256, 260, 264,
268, 272, 276, 280, 284, 288, 292, 296, 304, 308, 312, 316, 320, 324, 328,
332, 336, 340, 344, 348, 352, 356, 360, 364, 368, 372, 376, 380, 384, 388,
392, 396, 400, 404, 408, 412, 416, 420, 424, 428, 432, 436, 440, 444, 448,
452, 456, 460, 464, 468, 472, 476, 480, 484, 488, 492, 496, 504, 508, 512,
516, 520, 524, 528, 532, 536, 540, 544, 548, 552, 556, 560, 564, 568, 572,
576, 580, 584, 588, 592, 596, 604, 608, 612, 616, 620, 624, 628, 632, 636,
640, 644, 648, 652, 656, 660, 664, 668, 672, 676, 680, 684, 688, 692, 696,
704, 708, 712, 716, 720, 724, 728, 732, 736, 740, 744, 748, 752, 756, 760,
764, 768, 772, 776, 780, 784, 788, 792, 796, 800, 804, 808, 812, 816, 820,
824, 828, 832, 836, 840, 844, 848, 852, 856, 860, 864, 868, 872, 876, 880,
884, 888, 892, 896, 904, 908, 912, 916, 920, 924, 928, 932, 936, 940, 944,
948, 952, 956, 960, 964, 968, 972, 976, 980, 984, 988, 992, 996, 1004, 1008,
1012, 1016, 1020, 1024, 1028, 1032, 1036, 1040, 1044, 1048, 1052, 1056, 1060,
1064, 1068, 1072, 1076, 1080, 1084, 1088, 1092, 1096, 1104, 1108, 1112, 1116,
1120, 1124, 1128, 1132, 1136, 1140, 1144, 1148, 1152, 1156, 1160, 1164, 1168,
1172, 1176, 1180, 1184, 1188, 1192, 1196, 1200, 1204, 1208, 1212, 1216, 1220,
1224, 1228, 1232, 1236, 1240, 1244, 1248, 1252, 1256, 1260, 1264, 1268, 1272,
1276, 1280, 1284, 1288, 1292, 1296, 1304, 1308, 1312, 1316, 1320, 1324, 1328,
1332, 1336, 1340, 1344, 1348, 1352, 1356, 1360, 1364, 1368, 1372, 1376, 1380,
1384, 1388, 1392, 1396, 1404, 1408, 1412, 1416, 1420, 1424, 1428, 1432, 1436,
1440, 1444, 1448, 1452, 1456, 1460, 1464, 1468, 1472, 1476, 1480, 1484, 1488,
1492, 1496, 1504, 1508, 1512, 1516, 1520, 1524, 1528, 1532, 1536, 1540, 1544,
1548, 1552, 1556, 1560, 1564, 1568, 1572, 1576, 1580, 1584, 1588, 1592, 1596,
1600, 1604, 1608, 1612, 1616, 1620, 1624, 1628, 1632, 1636, 1640, 1644, 1648,
1652, 1656, 1660, 1664, 1668, 1672, 1676, 1680, 1684, 1688, 1692, 1696, 1704,
1708, 1712, 1716, 1720, 1724, 1728, 1732, 1736, 1740, 1744, 1748, 1752, 1756,
1760, 1764, 1768, 1772, 1776, 1780, 1784, 1788, 1792, 1796, 1804, 1808, 1812,
1816, 1820, 1824, 1828, 1832, 1836, 1840, 1844, 1848, 1852, 1856, 1860, 1864,
1868, 1872, 1876, 1880, 1884, 1888, 1892, 1896, 1904, 1908, 1912, 1916, 1920,
1924, 1928, 1932, 1936, 1940, 1944, 1948, 1952, 1956, 1960, 1964, 1968, 1972,
1976, 1980, 1984, 1988, 1992, 1996, 2000]