我正在尝试获取列表中的数字,将其转换为整数,将每个数字翻倍,然后返回字符串。然后,我将其添加到一个空字符串以进行迭代,然后在字符串中添加每个索引。
def check(num):
num = str(num)
rightsum = 0
leftsum = 0
doublecard = ""
if len(num) % 2 == 0:
rightnums = num[1::2]
leftnums = num[0::2]
if len(num) % 2 != 0:
rightnums = num[0::2]
leftnums = num[1::2]
for i in rightnums:
rightsum += int(i)
for i in leftnums:
dubcard = int(i)
dubcard += int(i)*2
dubcard = str(dubcard)
doublecard += dubcard
for i in doublecard:
leftsum+=int(i)
total = rightsum + leftsum
if total % 10 == 0:
return True
else:
return False
Python没有变量声明,因此它必须弄清楚变量本身的范围。它是通过一个简单的规则来做到这一点的:如果在函数内部有对变量的赋值,则该变量被视为局部变量。因此,doublecard + = dubcard行隐含地使doublecard局部递增。但是尝试执行此行将尝试在分配局部变量doubleboard之前读取它的值,从而导致UnboundLocalError。如果doublecard是全局变量,则全局关键字会有所帮助。如果增量()是局部函数,而双卡是局部变量,则可以在Python 3.x中使用非局部。