##(1)利用for循环
mylist = [12,'zf','dgd','dgd',12]
print(mylist)
sss = sorted(mylist)
print(sss)
last = mylist[-1]
for i in range(len(mylist)-1, -1, -1):
if last == mylist[i]:
del mylist[i]
else:
last = mylist[i]
print(mylist) ## ==> [12, 'zf', 'dgd']
## (2)利用集合
aa = list(set(mylist))
print(aa) ## ==> ['zf', 12, 'dgd']
解决方案:
要验证EAN-13条形码的正确性,可以按照以下步骤:
1.检查条形码长度是否为13位,如果不是,则无法验证。
2.将前12个数字分别与编码规则进行计算得出编码后的二进制,然后将这12位二进制的每一位相加,得到一个奇数位和(odd)和一个偶数位和(even)。
3.将odd和even相加,得到总和sum。
4.用10减去sum的个位数,得到结果checkcode。
5.将得到的checkcode与原条形码的最后一位数字进行比较,如果相同,则条形码正确。
代码实现:
def validate_ean13(barcode):
if len(barcode) != 13:
return False
#计算奇数位和、偶数位和
odd, even = 0, 0
for i in range(12):
if i % 2 == 0:
odd += int(barcode[i])
else:
even += int(barcode[i])
#计算校验码
sum = odd * 1 + even * 3
checkcode = (10 - sum % 10) % 10
return checkcode == int(barcode[-1])
以上代码实现了一个验证EAN-13条形码的函数validate_ean13,接受一个字符串类型的barcode参数(长度为13),返回一个布尔值表示该条形码是否正确。步骤2-4在函数内部实现。如果最后一位数字不是校验码,则返回False。