宝安建网站的公司,wordpress关闭手机访问,异地网站建设公司,家乡网站建设可行性分析不完美的Python
自从各类Python大火#xff0c;感觉天上地下哪儿都有Python的一席之地#xff0c;Python功夫好啊…但python有些细节上缺少其他语言的便利。今天我们就来举几个例子。
跳出外层循环
大家都知道#xff0c;在Java中存在标签的概念#xff0c;当我们存在多层循…不完美的Python
自从各类Python大火感觉天上地下哪儿都有Python的一席之地Python功夫好啊…但python有些细节上缺少其他语言的便利。今天我们就来举几个例子。
跳出外层循环
大家都知道在Java中存在标签的概念当我们存在多层循环时Java可以使用标签控制指定的循环层。举个小栗子
public class OuterLoop {
public static void main(String[] args) {
outer:
for (int i 0; i 5; i) {
inner:
for (int j 0; j 5; j) {
System.out.println(j);
if (j 2) {
break outer;
}
}
}
System.out.println(over!);
}
}
output:
0
1
2
over!
我们通过定义标签在遇到break continue等关键字时可以控制指定的循环层然而Python没有标签的概念那么Python该如何实现这种功能呢
Python循环跳出
为了方便大家理解我们来举一个臭不要脸的例子吧
加入小张、我、小李三个人经常一起吃饭吃饭就涉及付账了如果AA那大家都能接受如果一个人请客那他俩付钱我当然愿意如果是我付钱那我吃完了就赶紧尿遁…好了有这个前提我们开始写代码吧。
定义函数实现
对于多层循环在Python中也许最易于理解的方式就是通过函数return来实现了。但这里要注意一个问题函数的return会跳出所有循环对于两层以上的循环不适用…
# -*- coding: utf-8 -*-
# Author : 王翔
# WeChat : King_Uranus
# 公众号 : 清风Python
# 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结束外层循环
break
The End
OK,今天的内容就到这里如果觉得内容对你有所帮助欢迎点赞。
期待你关注我的公众号 清风Python如果觉得不错希望能动动手指转发给你身边的朋友们。
更多精彩内容请滑至顶部点击右上角关注小宅哦~