-3
print'Personal information, journal and more to come'

while True:

    x = raw_input()
    if x =="personal information": 
         print' Edward , Height: 5,10 , EYES: brown , STATE: IL TOWN:  , SS:'
    elif x =="journal":
       print'would you like  you open a journal or create a new one? open or create'
if x =='createfile':
           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()
elif x =='openfile':
       print'what file would you like to open' 
       y = raw_input()
       read = open(y , 'r')
       name = read.readline()
       print (name)
       break

プログラムを実行しようとするたびに、ブレークがループから外れていると表示され続けますが、他にどこにブレークを配置できるかわかりません。また、ループの最後にブレークを配置する場所を覚えておく良い方法は何ですか?

4

3 に答える 3

5

率直に言うと、あなたbreak はループの外にあります。while ループ内にない if ステートメントがあります。

ウェイif x =='createfile': はインデントされており、while ループの実行後に実行されます。

コードがすべてループ内に含まれるように、コードを再インデントする必要があると思います。ここではより適切と思われるため、も変更しifました。elif

print 'Personal information, journal and more to come'

while True:

    x = raw_input()
    if x =="personal information": 
         print' Edward , Height: 5,10 , EYES: brown , STATE: IL TOWN:  , SS:'
    elif x =="journal":
         print'would you like  you open a journal or create a new one? open or create'
    elif x =='createfile':
         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()
    elif x =='openfile':
         print'what file would you like to open' 
         y = raw_input()
         read = open(y , 'r')
         name = read.readline()
         print (name)
         break
于 2012-08-02T19:01:57.323 に答える
0

ステートメントは、ループの外側にあるステートメントのbreak一部です。Python は空白に敏感です。すべてのandステートメントをループ内にインデントする必要があります。ifelififelif

于 2012-08-02T19:01:04.923 に答える
0

インデントが間違っています。while ループから抜け出そうとしているようですが、while ループは

if x == 'createfile'

声明。

if ステートメントと elif ステートメントの両方のインデントを修正して、while ループ内に収まるようにする必要があります。そうすれば、break ステートメントが機能します。

于 2012-08-02T19:01:08.957 に答える