2017-12-25 11 views
-1

名前と番号を入力するように要求するコードが必要ですが、最大値は3です。名前が空白のテキストファイルに書き込まれます2または3制限付きのユーザープロンプト入力でファイルを書き込む

name = True 
while name: 
    if name == "done entering": 
     name = False 
     break 
    else: 
     name = True 
     firstName1 = input("Enter your first Name: ") 
     lastName1 = input("Enter your last Name here: ") 
     studentID1 = input("Enter your id number: ") 
     firstName2 = input("Enter your first Name: ") 
     lastName2 = input("Enter your last Name here: ") 
     studentID2 = input("Enter your id number: ") 
     firstName3 = input("Enter your first Name: ") 
     lastName3 = input("Enter your last Name here: ") 
     studentID3 = input("Enter your id number: ") 
     break 

inFile = open("studentInfo.txt", 'a') 
inFile.write("Name: " + firstName1 + " " + lastName1) 
inFile.write("\nStudentID: " + studentID1) 
inFile.write("Name: " + firstName2 + " " + lastName2) 
inFile.write("\nStudentID: " + studentID2) 
inFile.write("Name: " + firstName3 + " " + lastName3) 
inFile.write("\nStudentID: " + studentID3) 
inFile.close() 
print("\nDone! Data is saved in file: studentInfo.txt") 

私は私の最初のコード貼り付け、コピーして、それは一種の作品が、私はPythonインタプリタでそれを実行するたびに、「最初の名前を入力します」と私はできるようにするには、「Y」があります2つの名前だけを入力すると、3が必要です。また、どのように短くすることもできます... TY

答えて

0

"最初の名前を入力"動作の前に "y"を再現できません。お使いの環境でおそらく コピー&ペーストの問題です。

3つ未満のエントリを入力するには、3に制限する必要があります。 は3未満です。これは、リストを使用するような異なるデータ処理が必要な場合があります。

3つのエントリグループを格納するリストを作成します。リストには長さがあるので、while文としてリストの長さを としてください。ループは3つのグループ のエントリの後に終了します。

ファーストネームの項目が空の場合はループから外れ、それ以上の文字が入力されていないことを意味します( )。他の項目が空であればループを続行し、ユーザーはグループをやり直すことができます。 各ループの最後にリストの項目を追加します。 これらのブレークまたはコンティニューの条件は、必要に応じて変更できます。

ループが終了すると、リストが空の場合は何もしないでスクリプトを終了します。

forループを使用してファイルを書き込むことができます。フォーマットされた文字列を使用すると、 グループは1つのグループとして記述できます。書式設定により、さらに整列などが可能です。

studentInfo = [] 

while len(studentInfo) < 3: 
    firstName = input("Enter your first Name: ") 
    if firstName == '': 
     break 
    lastName = input("Enter your last Name here: ") 
    if firstName == '': 
     continue 
    studentID = input("Enter your id number: ") 
    if studentID == '': 
     continue 

    studentInfo.append([firstName, lastName, studentID]) 
    print() 

if not studentInfo: 
    exit() 

fileName = "studentInfo.txt" 

inFile = open(fileName, 'a') 
for firstName, lastName, studentID in studentInfo: 
    inFile.write("Name: {} {}\n" 
       "StudentID: {}\n" 
       .format(firstName, lastName, studentID) 
       ) 
inFile.close() 

print("Done! Data is saved in file: " + fileName) 
関連する問題