全局变量 python,不运行



我尝试在python 3.6中运行此代码

def Arrange(num):
global sec
sec=0
def Digit(nmb):
return nmb%10
def WithoutTheLastDigit(nmb2):
return nmb2//10
def IsEven(even):
if even%2==0:
return True
else:
return False
def AddDigit(number,dig):
number=number*10+dig
while num>0:
Digit(num)
if IsEven(Digit(num))==True:
sec=sec+AddDigit(sec,Digit(num))
WithoutTheLastDigit(num)
print(sec)

它显示此错误:

>>>安排(500( 回溯(最近一次调用(: 文件 ",第 1 行,在 安排(500( 文件"C:\用户\Yair\桌面\hw3.py",第 56 行,在排列中 sec=sec+addDigit(sec,Digit(num(( 类型错误: + 不支持的操作数类型:"int"和"NoneType">

您的问题是函数AddDigit()返回None

def AddDigit(number,dig):
number=number*10+dig
# this return None by default. mussing `return number`
while num>0:
Digit(num)
if IsEven(Digit(num))==True:
sec=sec+AddDigit(sec,Digit(num))  # This is 0 + None
WithoutTheLastDigit(num)

请注意,代码可以通过一些事情大大简化。我没有改变逻辑,所以你可能会在这里遇到一些错误。

def Digit(number):
return number % 10
def WithoutTheLastDigit(number):
return number // 10
def IsEven(number):
return number % 2 == 0:
def AddDigit(number, digit):
return number*10 + digit
while number > 0:
digit = Digit(number)
if IsEven(digit):
sec += AddDigit(sec, digit)
print(sec)

最新更新