python跳出多重迴圈的方法

来源:https://www.cnblogs.com/djdjdj123/archive/2019/11/18/11885606.html
-Advertisement-
Play Games

方法1:自定義異常 方法2:將迴圈封裝為函數,return 方法3:用for...else...語句 方法3解釋: (1)break能跳出某一重迴圈(該重迴圈的本次及剩餘次數都不再執行),但並不能跳出該重迴圈的其他外重迴圈。 例如,最內第3重迴圈break之後,程式返回第2重迴圈繼續執行第2重的下一 ...


方法1:自定義異常

# -*- coding:utf-8 -*-
"""
功能:python跳出迴圈
"""
# 方法1:自定義異常
class Getoutofloop(Exception):
    pass
try:
    for i in range(5):
        for j in range(5):
             if i == j == 2:
                  raise Getoutofloop()
             else:
                   print i, '----', j
except Getoutofloop:
      pass

方法2:將迴圈封裝為函數,return

# -*- coding:utf-8 -*-
"""
功能:python跳出迴圈
"""
# 方法2:封裝為函數,return
def test():
     for i in range(5):
          for j in range(5):
               if i == j == 2:
                    return
               else:
                     print i, '----', j
test()        

方法3:用for...else...語句

# -*- coding:utf-8 -*-

"""
功能:python跳出迴圈
"""
# 方法2:for...else...用法,用於跳出指定迴圈層

# -*- coding:utf-8 -*-

"""
功能:python跳出迴圈
"""
# 方法2:for...else...用法,用於跳出指定迴圈層

for i in range(5):
    for j in range(5):
        for k in range(5):
            if i == j == k == 3:
                break
            else:    
                print i, '----', j, '----', k
        else:        # else1
            continue
        break        # break1
    else:            # else2
        continue
    break            # break2

方法3解釋:
(1)break能跳出某一重迴圈(該重迴圈的本次及剩餘次數都不再執行),但並不能跳出該重迴圈的其他外重迴圈。

例如,最內第3重迴圈break之後,程式返回第2重迴圈繼續執行第2重的下一次,然後第3重迴圈將再次執行。

(2)continue是跳過某一重迴圈的某一次,但該重迴圈的剩餘次數會繼續執行。

(3)for...else:其中else塊中的語句將在for迴圈完整執行過之後才會被執行,如果for迴圈被break,則else塊將不會被執行。

(4)方法3中,當第3重迴圈滿足i == j == k ==3時,第3重迴圈被break,則併列的else1將跳過,執行break1,導致第2重迴圈

被終止,則else2被跳過,執行break2,導致第1重迴圈被終止。

最終實現跳出整個迴圈。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 目錄: 一、列表推導式 二、生成器表達式 三、集合生成器 四、生成器面試題 五、解耦簡單介紹 六、函數遞歸相關 一、列表推導式 需求:將[1,3,5]中的每個元素平方 正常思路: 1 new_list = [] 2 for i in [1,3,5]: 3 new_list.append(i*i) 4 ...
  • 本文收錄在Python從入門到精通系列文章系列 1. 瞭解面對對象編程 活在當下的程式員應該都聽過"面向對象編程"一詞,也經常有人問能不能用一句話解釋下什麼是"面向對象編程",我們先來看看比較正式的說法。 "把一組數據結構和處理它們的方法組成對象(object),把相同行為的對象歸納為類(class ...
  • 概述結構體是將零個或多個任意類型的變數,組合在一起的聚合數據類型,也可以看做是數據的集合。聲明結構體 //demo_11.go package main import ( "fmt" ) type Person struct { Name string Age int } func main() { ...
  • 一、記憶體管理機制 先看一段代碼: 1 <?php 2 //記憶體管理機制 3 var_dump(memory_get_usage());//獲取記憶體方法,加上true返回實際記憶體,不加則返回表現記憶體 4 $a = "laruence"; 5 var_dump(memory_get_usage()); ...
  • 根據不同的許可權,在菜單欄顯示不同的功能,只對菜單進行了限制,若對路由也進行限制,可以根據菜單的例子,請自行完善,開發。下麵請認真學習一下laravel的RBAC設計 1、建表(用戶表、角色表、許可權表、用戶角色表、角色許可權表) 1 CREATE TABLE IF NOT EXISTS mr_role ...
  • 微信支付企業付款到零錢功能應用廣泛,比如微信紅包獎勵,業務結算等。通過企業向個人付款,付款資金將直接進入用戶微信零錢。 一 開通條件 ​ 付款資金 企業付款到零錢資金使用商戶號餘額資金。 根據商戶號的賬戶開通情況,實際出款賬戶有做區別: ◆ 預設情況下,企業付款到零錢使用商戶號基本戶(或餘額賬戶)餘 ...
  • 場景 EasyCode是基於IntelliJ IDEA開發的代碼生成插件,支持自定義任意模板(Java,html,js,xml)。只要是與資料庫相關的代碼都可以通過自定義模板來生成。支持資料庫類型與java類型映射關係配置。支持同時生成生成多張表的代碼。每張表有獨立的配置信息。完全的個性化定義,規則 ...
  • 創建main.py文件並粘貼下麵代碼 點擊右鍵運行Debug 'main'後,下方的Debug視窗會出現ImportError: No module named 'bottle'這樣的提示,提示導入bottle包出錯 所以我們需要先安裝這兩個包,cmd,輸入pip install bottle 回車 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 推薦一款基於.NET 8、WPF、Prism.DryIoc、MVVM設計模式、Blazor以及MySQL資料庫構建的企業級工作流系統的WPF客戶端框架-AIStudio.Wpf.AClient 6.0。 項目介紹 框架採用了 Prism 框架來實現 MVVM 模式,不僅簡化了 MVVM 的典型 ...
  • 先看一下效果吧: 我們直接通過改造一下原版的TreeView來實現上面這個效果 我們先創建一個普通的TreeView 代碼很簡單: <TreeView> <TreeViewItem Header="人事部"/> <TreeViewItem Header="技術部"> <TreeViewItem He ...
  • 1. 生成式 AI 簡介 https://imp.i384100.net/LXYmq3 2. Python 語言 https://imp.i384100.net/5gmXXo 3. 統計和 R https://youtu.be/ANMuuq502rE?si=hw9GT6JVzMhRvBbF 4. 數 ...
  • 本文為大家介紹下.NET解壓/壓縮zip文件。雖然解壓縮不是啥核心技術,但壓縮性能以及進度處理還是需要關註下,針對使用較多的zip開源組件驗證,給大家提供個技術選型參考 之前在《.NET WebSocket高併發通信阻塞問題 - 唐宋元明清2188 - 博客園 (cnblogs.com)》講過,團隊 ...
  • 之前寫過兩篇關於Roslyn源生成器生成源代碼的用例,今天使用Roslyn的代碼修複器CodeFixProvider實現一個cs文件頭部註釋的功能, 代碼修複器會同時涉及到CodeFixProvider和DiagnosticAnalyzer, 實現FileHeaderAnalyzer 首先我們知道修 ...
  • 在軟體行業,經常會聽到一句話“文不如表,表不如圖”說明瞭圖形在軟體應用中的重要性。同樣在WPF開發中,為了程式美觀或者業務需要,經常會用到各種個樣的圖形。今天以一些簡單的小例子,簡述WPF開發中幾何圖形(Geometry)相關內容,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 在 C# 中使用 RabbitMQ 通過簡訊發送重置後的密碼到用戶的手機號上,你可以按照以下步驟進行 1.安裝 RabbitMQ 客戶端庫 首先,確保你已經安裝了 RabbitMQ 客戶端庫。你可以通過 NuGet 包管理器來安裝: dotnet add package RabbitMQ.Clien ...
  • 1.下載 Protocol Buffers 編譯器(protoc) 前往 Protocol Buffers GitHub Releases 頁面。在 "Assets" 下找到適合您系統的壓縮文件,通常為 protoc-{version}-win32.zip 或 protoc-{version}-wi ...
  • 簡介 在現代微服務架構中,服務發現(Service Discovery)是一項關鍵功能。它允許微服務動態地找到彼此,而無需依賴硬編碼的地址。以前如果你搜 .NET Service Discovery,大概率會搜到一大堆 Eureka,Consul 等的文章。現在微軟為我們帶來了一個官方的包:Micr ...
  • ZY樹洞 前言 ZY樹洞是一個基於.NET Core開發的簡單的評論系統,主要用於大家分享自己心中的感悟、經驗、心得、想法等。 好了,不賣關子了,這個項目其實是上班無聊的時候寫的,為什麼要寫這個項目呢?因為我單純的想吐槽一下工作中的不滿而已。 項目介紹 項目很簡單,主要功能就是提供一個簡單的評論系統 ...