失去迴圈標記的Python,我這樣實現跳出外層迴圈

2021-09-27 11:11:58 字數 4236 閱讀 9609

朋友圈的學問

對於剛剛過去的教師節,大家是否發現了點什麼...凡是哪個混的風生水起,都喜歡在朋友圈裡面感謝一下母校,緬懷一番師生情。那混的不好的,比如我這種苦逼it搬磚民工,在教師節的朋友圈說說是什麼樣的呢?哈哈....

教師節的朋友圈

孟子曾說窮則獨善其身,達則兼善天下。意思是不得志的時候就要管好自己的道德修養,得志的時候就要努力讓天下人都能得到好處。所以貧窮的我就用苦蕎籽慶祝這個節日,為什麼說慶祝?只能說,這年頭,誰還沒個教師資格證了,跟誰倆呢!

呵呵噠不完美的python

自從各類python大火,感覺天上地下哪兒都有python的一席之地,python功夫好啊...但python有些細節上缺少其他語言的便利。今天我們就來舉幾個例子。

跳出外層迴圈

public class outerloop }}

system.out.println("over!");

}}output:01

2over!

我們通過定義標籤,在遇到break continue等關鍵字時,可以控制指定的迴圈層,然而python沒有標籤的概念,那麼python該如何實現這種功能呢?

python迴圈跳出

為了方便大家理解,我們來舉乙個臭不要臉的例子吧!

加入小張、我、小李三個人經常一起吃飯,吃飯就涉及付賬了,如果aa那大家都能接受,如果乙個人請客,那他倆付錢我當然願意,如果是我付錢那我吃完了就趕緊尿遁...好了,有這個前提,我們開始寫**吧。

定義函式實現

對於多層迴圈,在python中,也許最易於理解的方式就是通過函式return來實現了。但這裡要注意乙個問題,函式的return會跳出所有迴圈,對於兩層以上的迴圈不適用...

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

# @author : 王翔

# @wechat : king_uranus

# @date : 2019/9/11 0:03

# @software : pycharm

# @version :python 3.7.3

# @file : outerloop.py

import random

people = ['zhang', 'me', 'li']

payments = ['aa', 'stand_treat']

def dine_together():

# 為了避免一成不變的套路,我們新增兩個列表隨機

random.shuffle(payments)

print(payments)

random.shuffle(people)

print(people)

for payment in payments:

for person in people:

if payment == 'stand_treat':

if person == 'me':

print("居然我請客,趕緊尿遁...")

people.remove('me')

schlemiel = random.choice(people)

print("倒霉孩子{}請客".format(schlemiel))

# 當遇到我請客,直接結束外層迴圈,函式返回...

return

else:

print("今天{}請客".format(person))

else:

print('今天吃飯{},等下{}付錢,大家記得把錢給它...'

.format(payment, person))

dine_together()

output:

['stand_treat', 'aa']

['zhang', 'li', 'me']

今天zhang請客

今天li請客

居然我請客,趕緊尿遁...

倒霉孩子li請客

標記變數實現

我們可以通過定義變數值來進行判斷是否退出迴圈,操作如下:

import random

people = ['zhang', 'me', 'li']

payments = ['aa', 'stand_treat']

# 為了避免一成不變的套路,我們新增兩個列表隨機

random.shuffle(payments)

print(payments)

random.shuffle(people)

print(people)

runaway = false

for payment in payments:

for person in people:

if payment == 'stand_treat':

if person == 'me':

print("居然我請客,趕緊尿遁...")

people.remove('me')

schlemiel = random.choice(people)

print("倒霉孩子{}請客".format(schlemiel))

# 修改標記變數

runaway = true

# 當遇到我請客,直接結束外層迴圈,函式返回...

break

else:

print("今天{}請客".format(person))

else:

print('今天吃飯{},等下{}付錢,大家記得把錢給它...'

.format(payment, person))

# 判斷標記變數

if runaway:

break

output:

['stand_treat', 'aa']

['li', 'me', 'zhang']

今天li請客

居然我請客,趕緊尿遁...

倒霉孩子zhang請客

for else實現

for…else…的執行邏輯是當for迴圈正常執行結束就會執行其else語句,如果中途break的話,就不會執行else中的內容

有失必有得,雖然python沒有迴圈標記,卻多出了乙個for else的操作,幫助我們實現需求。

import random

people = ['zhang', 'me', 'li']

payments = ['aa', 'stand_treat']

# 為了避免一成不變的套路,我們新增兩個列表隨機

random.shuffle(payments)

print(payments)

random.shuffle(people)

print(people)

for payment in payments:

for person in people:

if payment == 'stand_treat':

if person == 'me':

print("居然我請客,趕緊尿遁...")

people.remove('me')

schlemiel = random.choice(people)

print("倒霉孩子{}請客".format(schlemiel))

# 當遇到我請客,直接結束外層迴圈,函式返回...

break

else:

print("今天{}請客".format(person))

else:

print('今天吃飯{},等下{}付錢,大家記得把錢給它...'

.format(payment, person))

else:

# 未出現break操作,執行else,通過continue繼續操作

continue

# 出現break操作,跳過else,直接外層break,結束外層迴圈

清風python

我是如何失去團隊掌控的?

我是乙個不合格的技術總監,在過去的快三個月裡。我帶著從40多個人的研發團隊 包含需求 開發 測試 裡抽調出20多個人去為公司開疆拓土。在這快三個月中,我們一起奮戰奮鬥拼搏。在過程中,我通宵時間超過半個月,乾到凌晨4 5點的日子數不勝數,乾到凌晨1 2點日子更是習以為常。整個團隊絕大多數人近乎兩個月沒...

我是如何失去團隊掌控的?

我是乙個不合格的技術總監,在過去的快三個月裡。我帶著從40多個人的研發團隊 包含需求 開發 測試 裡抽調出20多個人去為公司開疆拓土。在這快三個月中,我們一起奮戰奮鬥拼搏。在過程中,我通宵時間超過半個月,乾到凌晨4 5點的日子數不勝數,乾到凌晨1 2點日子更是習以為常。整個團隊絕大多數人近乎兩個月沒...

我這稀爛的語文

也許只有失業了才會真的有正確的態度重新審視工作的方向。嘗試了乙個人維護乙個完全由多個完全不同價值觀業餘選手指導的專案,我才開始明白,想做好專案,需要有絕對話語權的人存在乙個包容的心態。語言和語文顯然是不同的,語文是在某一語言下的傳統共識中事物進行描述對情感進行表達 語言卻是在完成自然事物和事件進行標...