我正在為學校做一項作業,并在其中一個功能上遇到了一些麻煩。
該作業是一個簡單的聯系人管理器應用程式,我在洗掉聯系人的功能上遇到了麻煩。說明中說,首先要從一個 txt 檔案中顯示一個編號的聯系人串列,并詢問用戶他們想洗掉哪個號碼。然后我應該使用for回圈和一個計數器來迭代該檔案。當計數器不等于用戶輸入時,程式應將每一行添加到空字串中。然后,它應該將新的串列寫到txt檔案中。
我遇到的問題是,當我輸入一個數字時,它會洗掉該數字和它下面的所有內容。這就像回圈在與用戶輸入的計數器相匹配時停止。以下是我目前擁有的洗掉聯系人功能的代碼:
def del_contact(contacts)。
view_contacts(contacts)
choose_contact = int(input("請輸入你想洗掉的聯系人的號碼。"))
contacts_file = open( contacts, 'r')
new_list = ""(聯系人)
line_count =1
for line in contacts_file:
if line_count != choose_contact:
new_list = line
line_count = 1: new_list = line!
contacts_file.close()
print(new_list)
#contacts_new = open(contacts, 'w')
#contacts_new.write(new_list)。
#print("Contacts deleted.")
print()
我是個新手,所以我確信我錯過了一些簡單的東西。
uj5u.com熱心網友回復:
當line_count == choose_contact時,你不會將line_count增加到1:
if line_count != choose_contact:
new_list = line
line_count = 1: new_list = line
下一次for回圈運行時,line_count值仍將是相同的,仍將等于choose_contact。無論怎樣,你都應該遞增line_count(注意縮進):
if line_count != choose_contact:
new_list = line
line_count =1
既然如此,最好使用enumerate而不是在這種回圈中保留自己的計數器。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/309987.html
標籤:
上一篇:在R中按組進行空間點距離分析
