【发布时间】:2018-08-06 00:16:33
【问题描述】:
我的问题是错误消息仅在我第二次调用该函数后发生 numLen, phoneMask = numberLen(3) TypeError: 'NoneType' 对象不可迭代
这是我的代码。 如果我在第一次运行脚本时输入了正确的扩展名,例如 71023,则没有问题。 如果我第一次输入了错误的扩展名,第二次输入了正确的扩展名,它会返回 typeerror 消息,我可以看到 numberlen(i) 没有返回。
提前谢谢你。
import sys
def numAssign(t):
maskList = ['02694406XX', '02693710XX']
extList = ['706XX', '710XX']
i = 0
while i < len(extList) :
if t != extList[i] :
i = i + 1
else :
return True, maskList[i]
print('''The extension you entered is not in the indial range.''')
return False, ' '
def numberLen(i):
t = input('Please enter the extnsion : ')
T = len(t)
isNum = t.isdecimal()
patternConvert = t[0:3] + 'XX'
if T == 5 and isNum == True :
valid, mask = numAssign(patternConvert)
print(mask)
print(i)
if valid == True:
print(numAssign(patternConvert))
return True, mask
else :
if i == 0 :
print('''The number you entered was not valid.
It has to be 5 digits.''')
else :
print('Please try again')
print(i)
numberLen(i-1)
else :
if i == 0 :
print('Your entering is invalid, we will terminiate the programe')
exit()
else :
numberLen(i-1)
if __name__ == '__main__':
numLen, phoneMask = numberLen(3)
print(phoneMask)enter code here
【问题讨论】:
-
跟踪的完整错误是什么?
-
而
numberLen并不总是返回任何东西;事实上,在大多数情况下它什么都不返回。在它不返回的情况下,numLen, phoneMask = numberLen(3)将导致该错误。
标签: python