1. 程式人生 > >for else

for else

程序 直接 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(登陸成功)
                    break
else: print(登錄失敗)

for else