2014-10-29 28 views
-1

只要我完成它,我的程序就會出現一些問題。我真的沒有看到太多的錯誤,但我得到一個錯誤,說「while」是一個語法錯誤。python可能的縮進錯誤?不知道出了什麼問題?

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

'while'前的行上沒有足夠的關閉零部件。 – 2014-10-29 22:21:31

+0

更改'任何(地圖(str(isupper,pass1))''任何(地圖(str(isupper,pass1)))' – inspectorG4dget 2014-10-29 22:22:08

回答

4

你缺少一個右括號:加入

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

解決的問題是缺少第三)

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

Python允許邏輯線隱含跨越多個物理線路,前提是將括號或括號括起來。

但是這也意味着如果你錯過了右括號,Python直到下一行纔會發現表達式有問題。

因此,經驗法則,如果您在Python中遇到語法錯誤並不能立即使用,請在之前查看行並計算括號。

但是,在這種情況下,您實際上在您應該使用.的地方添加了一個開括號。試圖使用的表達應該是:

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

但是現在我得到一個錯誤說isupper沒有定義? – user3054652 2014-11-01 14:26:52

+0

@ user3054652:很可能因爲你打算使用'any(map(str.isupper,pass1))'而不是? – 2014-11-01 14:27:52

相關問題