我完成它后,我的程序出现了一些问题。我并没有真正看到它有多大的错误,但我得到一个错误,说"而#34;是语法错误。
pass1 = raw_input("Please enter a password(Must contain a number,at least 1 capital
letter and must be longer that 6 characters): ")
time.sleep(1)
pass2 = raw_input("Please re-enter your password: ")
updown = any(map(str(isupper, pass1))
while not pass1 or not pass1 == pass2 or not num_there(pass1) == True or len(pass1) < 6:
if updown == False:
print "\n Your password is not accepted!"
pass1 = raw_input("Please enter a password(Must contain a number,at least 1 capital letter and must be longer that 6 characters): ")
time.sleep(1)
pass2 = raw_input("Please re-enter your password: ")
else:
continue
else:
print "Password accepted!"
f.write(pass1)
答案 0 :(得分:4)
您缺少右括号:
updown = any(map(str(isupper, pass1))
# ^ ^ ^ ^^?
# \ \ \------------///
# \ ----------------//
# --------------------
通过添加缺少的第三个)
来解决问题:
updown = any(map(str(isupper, pass1)))
Python允许逻辑行隐式地跨越多个物理行,前提是您将表达式括在括号或括号或大括号中。
但这也意味着如果你缺少右括号,Python在下一行之前不会发现表达式存在问题。
所以,经验法则,如果你在Python中遇到一个没有立即理解的语法错误,请查看之前的行并计算括号。
但是,在这种情况下,您实际上添加了一个开头括号,您应该使用.
。试图使用的表达式应该是:
updown = any(map(str.isupper, pass1))