我的问题是错误消息只发生在我第二次调用函数之后 numLen,phoneMask=numberLen(3) TypeError:“NoneType”对象不可iterable
这是我的密码。 如果我在第一次运行脚本时键入正确的扩展名,例如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()
函数只返回用户第一次输入有效信息时调用方所期望的元组;否则,它递归地调用自身,并且不返回返回值,这使得函数在默认情况下返回None
,当调用方试图将其解包为序列时,会导致异常您应该更改以下两种情况:
收件人:
相关问题 更多 >
编程相关推荐