2012-07-30 77 views
-1
while True: 
    x = raw_input() 
    if x =="personal information": 
     print' Edward , Height: 5,10 , EYES: brown , STATE: IL TOWN: , SS:' 
    elif x =="journal": 
     name_of_file = raw_input("What is the name of the file: ") 
     completeName = "C:\\python\\" + name_of_file + ".txt" 
     file1 = open(completeName , "w") 
     toFile = raw_input("Write what you want into the field") 
     file1.write(toFile) 
     file1.close() 
else: 
break 

腳本不斷給我一個錯誤說break是在循環之外是縮進錯誤?休息是在循環外python

+1

你必須解決您的壓痕 – 2012-07-30 22:14:55

+2

還你會發現同樣的錯誤,你可能會後悔沒有把**開(completeName,「W」)**的事***嘗試/ catch OSError *** ...特別是,如果'completeName'是根據用戶輸入計算的...(只是說')***:)*** – BorrajaX 2012-07-30 22:19:43

回答

5

是的,看看你的帖子。您的else可能是爲了符合if語句的縮進級別。

else對於while報表做了完全不同的事情。

1

不,它不是一個識別錯誤。你通常會「跳出」循環。 while語句中的else部分不是循環結構。如果你這樣做

In [12]: if True: 
    ....: break 

SyntaxError: 'break' outside loop 
+0

這是一個縮進問題; OP顯然不打算使用'while:else:'結構,大多數python程序員從來沒有聽說過這個結構,這在這裏不會有用。 – geoffspear 2012-07-30 22:30:47