【发布时间】:2021-01-05 18:09:27
【问题描述】:
我写了一个检查数据是否正确的函数。 要求如下:
byr-(出生年份) - 四位数字;至少 1920 年,最多 2002 年。
iyr(发行年份)- 四位数字;至少 2010 年,最多 2020 年。
eyr(到期年份)- 四位数字;至少 2020 年,最多 2030 年。
def check_byr_iyr_eyr(line):
statement = True
if line[:3] == "byr":
if (len(line[line.index(':')+1:]) != 4 or
1920 > int(line[line.index(':')+1:]) > 2002 ):
statement = False
elif line[:3] == "iyr":
if (len(line[line.index(':')+1:]) != 4 or
2010 > int(line[line.index(':')+1:]) > 2020 ):
statement = False
elif line[:3] == "eyr":
if (len(line[line.index(':')+1:]) != 4 or
2020 > int(line[line.index(':')+1:]) > 2030 ):
statement = False
return statement
list = ['byr:1919', 'iyr:2010', 'eyr:2021', 'iyr:2019', 'iyr:1933',
'byr:1946', 'iyr:1919', 'eyr:2005']
for i in list:
print(check_byr_iyr_eyr(i))
'''
expected result:
False
True
True
True
False
True
False
False
'''
并且检查提供的样本的结果应该类似于多行注释“预期结果”,但不幸的是结果始终为 True。
我不知道我做错了什么 - 条件对我来说似乎很好......
【问题讨论】:
标签: python function if-statement