for else
阿新 • • 發佈:2019-02-17
程序 直接 bsp class odin else use pre ()
今天寫選課管理系統的時候,無意間用for else 寫登錄,發現個有趣的事(以下程序為實驗程序,只為說明本博客主題)
user = input(‘請輸入賬號‘) psw = input(‘請輸入密碼‘) with open(r‘..\db\userinfo‘,‘r‘,encoding=‘utf-8‘)as f: #f中有寫好的賬號和密碼 for i in f: u,p,i = i.strip().split(‘|‘) if u == user and p == psw:print(‘登陸成功‘)break else: print(‘登錄失敗‘)
這麽寫當循環登錄的時候,再判定到輸入賬戶之前會顯示n個‘登錄失敗‘
for i in f: u,p,i = i.strip().split(‘|‘) if u == user and p == psw: print(‘登陸成功‘) else:print(‘登錄失敗‘)
如果這麽寫,登錄成功後,還會顯示一個‘登錄失敗‘
根據官網說明,在for循環式,當可叠代對象叠代完且為空的時候會執行else
那麽只能在for中引入break,這樣就會直接跳出for,不去執行else
以下為改後正常運行的程序
for i in f: u,p,i = i.strip().split(‘|‘) if u == user and p == psw: print(‘登陸成功‘) breakelse: print(‘登錄失敗‘)
for else