python可能的缩进错误?不知道出了什么问题?

时间:2014-10-29 22:20:22

标签: python syntax-error

我完成它后,我的程序出现了一些问题。我并没有真正看到它有多大的错误,但我得到一个错误,说"而#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)

1 个答案:

答案 0 :(得分:4)

您缺少右括号:

updown = any(map(str(isupper, pass1))
#           ^   ^   ^              ^^?
#            \   \   \------------///
#             \   ----------------//
#              --------------------

通过添加缺少的第三个)来解决问题:

updown = any(map(str(isupper, pass1)))

Python允许逻辑行隐式地跨越多个物理行,前提是您将表达式括在括号或括号或大括号中。

但这也意味着如果你缺少右括号,Python在下一行之前不会发现表达式存在问题。

所以,经验法则,如果你在Python中遇到一个没有立即理解的语法错误,请查看之前的行并计算括号。

但是,在这种情况下,您实际上添加了一个开头括号,您应该使用.。试图使用的表达式应该是:

updown = any(map(str.isupper, pass1))