2016-06-20 5 views
0

ファイルにデータを書き込んでいる間にEnterを押すと、ループを解除しようとしています。これはこれまで私が持っていたものです。私はまた、これは出力には、その権利実行したときにすることになっている方法である(例えば、出力は以下の通りです)...どちらかのループが実行される時間の数を制限するEnterを押したときにループが壊れる

def main(): 
    myfile = open('friends.txt','w') 
    friend = input('Enter first name of friend or Enter to quit') 
    age = input('Enter age (integer) of this friend') 

while friend != '': 

    for n in range(): 
     friend = input('Enter first name of friend or Enter to quit') 
     age = input('Enter age (integer) of this friend') 

     myfile.write(friend +'\n') 
     myfile.write(str(age) +'\n') 

    myfile.close() 
main() 

を望んでいません。

Enter first name of friend or Enter to quit Sally 
Enter age (integer) of this friend 20 
Enter first name of friend or Enter to quit Sam 
Enter age (integer) of this friend 24 
Enter first name of friend or Enter to quit 
File was created 
+1

'範囲のnの()' - > '例外TypeError:範囲は1つの引数を期待は、0 ' –

+1

を得たことはということですあなたのコードの字下げ、またはそれをひどく書き換えましたか?ひどくインデントされたPythonコードはナンセンスです – khelwood

答えて

0

あなたは、このようなrange()やインデントを使用してraw_inputがより良い選択されている可能性があり、文字列、のためinputを使用して、あなたのコード内のエラーのカップルを持っていました。

ループの先頭にwriteを置き、名前を尋ねた後、それが空であるかどうかをチェックし、空であればbreakであることを確認する必要があります。コード以下の通りです:

def main(): 
    myfile = open('friends.txt','w') 
    friend = raw_input('Enter first name of friend or Enter to quit') 
    age = int(raw_input('Enter age (integer) of this friend')) 

    while friend != '': 

     while True: 
      myfile.write(friend +'\n') 
      myfile.write(str(age) +'\n') 
      friend = raw_input('Enter first name of friend or Enter to quit') 
      if not friend: 
       break 
      age = int(raw_input('Enter age (integer) of this friend')) 

     print('File was created') 
     myfile.close() 
main() 
+0

Python 3を使用する場合、 'input'関数が適切です。 –

+1

OPは初心者のように思えましたが、いずれのバージョンでも動作するものを追加したかったので、「より良い選択であったかもしれません。 – Brian

+0

@Brianは初心者の方でもありがとうございました! – CzSzPzTz

1
def main(): 
    myfile = open('friends.txt','w') 

    while True: 
     friend = input('Enter first name of friend or Enter to quit: ') 
     if not friend: 
      myfile.close() 
      break 
     else: 
      age = input('Enter age (integer) of this friend: ') 
      myfile.write(friend +'\n') 
      myfile.write(str(age) +'\n') 



main() 

出力:

Enter first name of friend or Enter to quit: Mack 
Enter age (integer) of this friend: 11 
Enter first name of friend or Enter to quit: Steve 
Enter age (integer) of this friend: 11 
Enter first name of friend or Enter to quit: 

Process finished with exit code 0 
関連する問題