for循環是一種遍歷列表的有效方式,但在for循環中不應修改列表,否則將導致Python難以跟蹤其中元素。要在遍歷列表的同時對其進行修改,可使用while循環。通過將while循環同列表和字典結合起來使用,可收集、存儲并組織大量輸入,供以后查看和顯示。
假設有一個列表,其中包含新注冊但還未驗證的網站用戶;驗證這些用戶后,如何將他們移到另一個已驗證用戶列表中呢?一種辦法是使用一個while循環,在驗證用戶的同時將其從未驗證用戶列表中提取出來,再將其加入到另一個已驗證用戶列表中。
大大的圖
我的圖
我們首先創建了一個未驗證用戶列表unconfirmed_users,其中包含麗麗、小明和大胖,還創建了一個空列表confirmed_users,用于存儲已驗證的用戶。while循環將不斷運行,直到列表unconfirmed_users變成空的。在這個循環中,函數pop()以每次一個的方式從列表unconfirmed_users末尾刪除未驗證的用戶,并把刪除值賦值到變量current_user。將驗證用戶以首字母大寫的形式打印出來。把變量current_user值以append()方式加入到列表confirmed_users末尾。
完善了已驗證用戶列表confirmed_users之后,用for循環把里面的值打印出來。
這里面有一個有意思的事情是title(),upper(),lower()這樣的函數奈何不了漢字。漢字不像字母,沒有大小寫。比如,把title()改成lower()結果還是不變
用戶驗證以后就是用戶登錄,簡化起見,只使用用戶名登錄。用戶輸入用戶名,用if語句與列表中已驗證的用戶名進行比較,如果一致,則歡迎用戶登錄。如果不一致,請用戶重新檢查用戶名
好像隨機輸入的中文變量不能與列表中元素進行比較,這個程序無論我怎么輸入中文,都執行的else語句。而且我試了一下讓程序自行輸出中文,會亂碼
但是如果把整個程序改成英文的,就那非常通暢的執行