簡體   English   中英

怎么用try,除了寫文件

[英]How to use try, except to write a file

我正在嘗試使用 try 和 except 編寫 function。 我創建了一個名為“file”的文件,其中包含所有學生的個人信息。 我想在輸入學生姓名時打印個人信息並將其寫入一個名為“new_file”的新文件中。 如果輸入的學生姓名不包含在“文件”中,我想打印“未找到姓名”。 由於這是一項任務,因此我需要使用 try 塊。 有沒有人可以幫忙? 以下是我的代碼。

在此處輸入圖像描述

find_info = input("Please input the student name that you want to search:")

def write_file():
    try:
        for student in student_list:
            if (find_info == student.name):
                print("Find Personal Information of:", student.name)
                with open("/Users/ada/Desktop/new_file.txt", "w") as new_file:
                    new_file.write("Name: " + student.name + ", Student_id: " + student.student_id \
                                   + ", College: " + student.college + ", Citizenship:" + 
                                   student.citizenship \
                                   + ", Phone_number:" + student.phone_number + ", Address:" 
                                   + student.address)
            print("\n")
            print("Student Personal Information Created")
            print("\n")
            break
    except:
        print("\n")
        print("Student Name Not Found")

您已經編寫了代碼來檢查學生姓名是否是您正在查找的內容,然后再對它進行任何操作,這是一種很好的做法,但如果您希望它拋出異常。 你必須讓它自己破壞或破壞它,在這種情況下,你的if (find_info == student.name):檢查它是否存在,但你永遠不會告訴它要做else: 我建議添加一個 else 語句,該語句將引發異常 [ raise NameError("Breaking my stuff!") ],然后您的except可以捕獲該異常。 本着家庭作業的精神,我將把確切的位置留給你。 :)

您的代碼沒有拋出異常,您可以刪除 try..exept,但由於您需要 try 和 except,我建議將您的 if 語句更改為assert (find_info == student.name) ,這將引發AssertionError如果子句不計算為True 另一種選擇是在 if 語句之后添加 else 語句並raise異常。 希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM