我的程序出了问题,真的很烦我我一直在收到一个错误,我甚至不知道为什么你可以帮我吗?int没有len错误请帮助我吗?
我不断收到builtins.TypeError:类型“诠释”的对象没有LEN()错误
当它到达密码verfication阶段,我无法弄清楚的问题是什么..
#Program asking for a username, password and security pin
#Written by Cole Johnston
#19/08/13 -
#Declare/Initialize variables
sFirstName = "" #User's input of their first name (the minimum is 2 characters) (string)
sLastName = "" #User's input of their last name (the minimum is 4 characters) (string)
sPassword = "" #User's input of their password (it must have a minimum length of 6 characters and a maximum length of 10 characters. It must contain at least 2 numbers in the password, it is case sensitive)
iPinNo = 0 #User's chosen input of security pin (It must be 4 characters long and contain only numbers which are single digit and range between 0-9)
iCount = 0 #The amount of times the user enters an invalid username (integer)
sMessage = "" #Message for user (string)
iFirstNameCheck=0 #Checks first name
iLastNameCheck=0 #Checks last name
iPasswordCheck=0 #Checks password
iPinNoCheck=0 #Checks pin
sUserName = "" #Creates a username for the user (uses first and last name)
sPasswordVerification = "" #Checks the password is correct and same as the first one
def APFirstERROR():
print(("ERROR: Incorrect Attemps consisting of 3 \n\t Closing program"))
sys.ext
def APSecondERROR():
print (("ERROR: Incorrect Attemps consisting of 3 \n\t Closing program"))
sys.ext
def APThirdERROR():
print (("ERROR: Incorrect Attemps consisting of 3 \n\t Closing program"))
sys.ext
def APFourthERROR():
print (("ERROR: Incorrect Attemps consisting of 3 \n\t Closing program"))
sys.ext
#Ask for the users First name
while len(sFirstName) <2:
sFirstName=input("Could you please enter your first name: ")
if len(sFirstName) <2:
print("\tERROR: I'm sorry, you must enter a minumum of two characters")
FirstName = ""
iFirstNameCheck = iFirstNameCheck +1
print (iFirstNameCheck, "Incorrect attempt")
if iFirstNameCheck == 3:
APFirstERROR()
#Ask for the users Last name
while len(sLastName) <4:
sLastName = input("Could you please enter your last name: ")
if len(sLastName) <4 :
print ("\tERROR: I'm sorry, you must enter a minumum of four characters")
LastName = ""
iLastNameCheck = iLastNameCheck +1
print (iLastNameCheck, "Incorrect attempt")
if iLastNameCheck==3:
APSecondERROR()
sUsername = "Congratulations, your username will be " + sLastName[0:4] + sFirstName[0:1]
print (sUsername)
while sPassword is "":
sPassword=input("Could you please enter a password: ")
if len(sPassword) <6 or len(sPassword) >10 :
print("ERROR: I'm sorry, your password must be 6 characters or more but not exceeding 10 characters.\nPlease try again")
if sum(c.isdigit() for c in sPassword) <2:
print("Im sorry, your password does not contain enough numbers.\nThe requirements are a minimum of 2 numbers")
sPassword=""
iPasswordCheck=iPasswordCheck+1
print(iPasswordCheck, "Incorrect Attempt")
if iPasswordCheck ==3:
sPassword="Incorrect"
APErrorThird()
break
#Verify the password
while sPasswordVerification is "":
sPasswordVerification=input("Please enter your password a second time for verification: ")
if sPasswordVerification==sPassword:
print("That password is Accepted")
if not sPasswordVerification==sPassword:
sPasswordVerification=""
print ("I'm sorry, that password is: Not accepted")
a
#ASk user for pin creation
while len(iPinNo) <4:
iPinNo= input("Now could you please create a pin number. The requirements are that it must be only numbers (0-9). Must be 4 numbers long\n\tpin=?\t\n:")
if not re.match("^[1-9]*$", iPinNo):
print ("ERROR: I'm sorry but only numbers between 1-9 are allowed!")
if len (iPinNo) <4:
print ("I'm sorry, your pin number MUST be 4 characters.")
iPinNoCheck=iPinNoCheck+1
print (iPinNoCheck, "Incorrect Attempt")
if iPinNoCheck==3:
iPinNo ="Incorrect"
APErrorFourth()
#Display the Username, the Password and the Pin number
print ("Okay, " + (sFirstName) +" Your username is: ",sUsername)
print("And, Your password is: ",sPassword)
print ("Finally , Your Security pin is: ",iPinNo)
你应该考虑“初始化”的变量'None',然后用'测试,如果x不是无:'而不是0和空字符串初始化 – jedwards
之间的混合请将您的问题进一步本地化。当然,并不是所有的代码都与问题相关,而且您甚至没有指出错误发生在哪条线上,或者您尝试调试某些东西。 (例如,声明中变量的值失败了吗?不要要求我们在头脑中模拟您的代码。) – millimoose
另外:在'while'下嵌套'if'的三个级别相当糟糕。更重要的是,您可以清楚地知道函数,因为您正在将它们用于错误报告。 – millimoose