Python学习笔记(四)流程控制方法

流程控制有三种方法:分支、循环、跳出

流程的控制通过布尔值来实现,分支和循环都需要对一定的条件进行判断,根据判断结果(布尔值)决定下一步要做什么
布尔值通过比较运算符、逻辑运算符来进行判断是True还是False

不需要判断直接得到True——数字1,非空数据类型与结构,如非空list,非空string,非空set等
不需要判断直接得到False——数字0,空数据类型与结构

分支

分支是根据条件,让有些代码可以被执行或不被执行
分支关键字有:if、else、elif、pass

#if
var = 123
if var == '111':  #条件不满足print('123123123')   #条件不满足,不会执行
print('over')    #if外的语句,输出over
#over#else二选一:条件不满足则执行,条件满足则不执行,else和if都只能出现一次
var = 123
if var == '111':  #条件不满足print('123123123')   #条件不满足,不会执行
else:print('ws')  #条件不满足,可以满足else,输出ws
print('over')    #if外的语句,输出over
#ws
#over#elif:多分支,但要注意条件必须递增
var = 68
if var >= 80:print('优秀')
elif var >= 70:print('良好')
elif var >= 60:print('及格')
else:print('不及格')
print('over')
#及格
#over#分支嵌套
dict1 = {'ws':'1111','xhy':'2222'} #创建一个包含密码的字典
name = input('username:')
if name in dict1.keys(): #判断输入的username是否在字典的key中pwd = input('password:')  if pwd == dict1[name]: #判断输入的password是否是字典中username的key对应的valueprint('success')  #成功输出successelse:print('error') #失败输出error
else:print('no such username')#pass占位语句,保证语法结果的完整性,不然会报错,最后再对pass部分进行修改
dict1 = {'ws':'1111','xhy':'2222'} 
name = input('username:')
if name in dict1.keys(): pwd = input('password:')  if pwd == dict1[name]: pass #满足条件则 跳过这部分,什么都不执行else:print('error')
else:print('no such username')#三目运算符————简化分支结构的写法 -只能提供二选一
var = int(input('soure:'))
print('good' if var >= 60 else 'bad') #"真" if 条件判断 else "假"
#good
等同于:
if var >= 60:print('good')
else:print('bad')

循环

让某些代码重复执行
关键字包括for、while

# while循环
list1 = [] #给列表添加元素
i = 1
while i <= 10: #判断条件list1.append(i)i += 1
print(list1)
#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]#for循环,一般而言是对序列、字符串等对象进行遍历操作时使用for
#for循环不需要指定退出条件
list1=[1,2,3,4,5]
for i in list1:     #按顺序访问序列print(f'{i}')   #输出这个i,次数为序列的元素数i += 1
#for对字符串进行操作
str='wsxhy'
for i in str:print(f'{i}') #依次输出#for解包:
#如果遍历的序列每一项元素都包含若干个子元素
#在循环时可以设置固定数量变量来接受
var=[(1,2,3),(4,5,6),(7,8,9),(10,11,12)]
for v1,v2,v3 in var:print(f'{v1},{v2},{v3}')
#1,2,3
#4,5,6
#7,8,9
#10,11,12#for封包
var=[(1,2,3),(4,5,6),(7,8,9),(10,11,12)]
for i in var:print(i) #直接得到元组
#(1, 2, 3)
#(4, 5, 6)
#(7, 8, 9)
#(10, 11, 12)#读取字典
dict1={'ws':1,'xhy':'qwe','esq':'12w'}
for i in dict1.items():print(f'{i}')  #分组读出key和value
#('ws', 1)
#('xhy', 'qwe')
#('esq', '12w')#循环嵌套循环,先执行里层循环,再执行外层循环
a = 0
while a <= 10:for i in range(3):print(i)       #先执行a += 1   #跑完了i的循环,才会跑这条命令#列表推导式——通过循环快速生成列表
list1=[i for i in range(1,21)]
print(list1)
#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
等同于
list1 = []
i = 1
while i <= 20:list1.append(i)i += 1
print(list1)
#步长为2
list1=[i*2 for i in range(1,21)]
#结合三目运算符,挑选偶数(i % 2 ==0)
list1=[i for i in range(1,21) if i % 2 == 0]

跳出

跳出循环的方法,有break与continue

#break跳出循环
i =1
list1 = []
while i <= 20:if i == 5: break  #遇到break则直接跳出循环list1.append(i)i += 1
print(list1)
#[1, 2, 3, 4]#continue跳过当前循环,最好用在for中,用在while会容易出问题
list1 = []
for i in range(1,8): #在for中没有自增概念if i == 5:continue  #在i=5的时候不执行这次循环list1.append(i)
print(list1)
#[1, 2, 3, 4, 6, 7]#for else——for跑完后执行else语句,如果break了则不执行
#即两个要么都执行,要么都不执行
for i in range(1,10):pass
else:pass
#找不到则提示error
user_list={'ws':'1','xhy':'2','qwe':3}
name =input('name:')
for i in user_list:if i == name:break
else:print('error')
#如果不使用这种方法,则需要单独定义一个变量来存储布尔值,来为后面判断依据
name = input('name:')
find=''
for i in user_list:if i == name:find = Truebreakfind = False
if find is False:print('error')# while else——返回True时else不被执行,返回False则执行else
#即只执行一个
while True:pass
else:    #False则执行pass
#练习
users=[{'ws':'ws111'},{'xhy':'xhy111'},{'qwe':'qwe111'}]
#判断用户输入是否存在
#如果有,则输入密码,检测密码是否正确
#正确则登录成功name=input('username:')
for v1 in users:  #对这个列表进行解包,解包为三个单独的字典if name in v1.keys(): #判断有无用户名password=input('password:')if password in v1.values(): #判断输入的密码是否为字典对应key的valueprint('login successful')breakelse:print('password incorrect')break
else:print('no such username')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/591867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3全局属性app.config.globalProperties

文章目录 一、概念二、实践2.1、定义2.2、使用 三、最后 一、概念 一个用于注册能够被应用内所有组件实例访问到的全局属性的对象。点击【前往】访问官网 二、实践 2.1、定义 在main.ts文件中设置app.config.globalPropertie import {createApp} from vue import ElementPl…

python中使用socket服务发送接收图像

python中使用socket服务发送接收图像的代码&#xff0c;可在服务器端中插入模型推理代码进行推理返回结果。 服务器端 # -*-coding:utf-8-*- import os.path import socket import structdef deal_image(sock, addr):print(connection, addr)while True:# 计算文件信息大小fil…

会声会影2023渲染闪退怎么办

​ 会声会影2023是一款功能强大&#xff0c;操作简单的视频剪辑软件。在使用会声会影剪辑视频后&#xff0c;我们要对视频进行渲染&#xff0c;有时会出现渲染到一半闪退&#xff0c;或是帧不可读的问题&#xff0c;那么遇到这些情况我们该怎么办呢&#xff1f;下面将为大家介绍…

基于Django/springboot的个性化电影推荐系统设计与实现-协同过滤技术

项目设计目的&#xff1a; 本项目旨在开发一个基于Django框架的协同过滤电影推荐系统&#xff0c;通过分析用户的历史行为和喜好&#xff0c;为用户提供个性化的电影推荐。通过该系统&#xff0c;用户可以发现新的电影作品&#xff0c;提高用户对电影的满意度和粘性。 功能需求…

ssm基于冲突动态监测算法的健身房预约系统的设计与实现论文

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装健身房预约系统软件来发挥其高效地信息处理的作用&#xff…

攻防世界easyphp解题

攻防世界easyphp解题 <?php highlight_file(__FILE__); $key1 0; $key2 0;$a $_GET[a]; $b $_GET[b];if(isset($a) && intval($a) > 6000000 && strlen($a) < 3){if(isset($b) && 8b184b substr(md5($b),-6,6)){$key1 1;}else{die(&q…

PAT 乙级 1043 输出PATest

解题思路&#xff1a;对于c来说hash函数求出各个符号的数量&#xff0c;不为0时就输出即可&#xff0c;python利用字符串count函数就可以了。 c语言代码如下: #include<stdio.h> int output_c(char c,int *count) {if(*count!0){putchar(c);(*count)--;}return 1; } int…

Jenkins基础教程

目录 第一章、快速了解Jenkins1.1&#xff09;Jenkins中一些概念介绍1.2&#xff09;Jenkins和maven用途上的区别1.3&#xff09;为什么使用Jenkins1.4&#xff09;学习过程中的疑问 第二章、安装Jenkins2.1&#xff09;安装之前的准备2.2&#xff09;Windows中Jenkins下载安装…

出版实务 | 校对

文章目录 校对校对工作校异同与校是非校样的方式和种类毛校样初校样二校样三校样付印样付印清样 校对人员 校对的方法对校法读校本校法他校法理校法 校对的工序毛校初校二校三校通读核红誊样文字技术整理对片 校对的制度 校对 校对工作 校对工作是文字性、知识性的创造性劳动…

面向对象(类和对象,对象内存图,成员变量和局部变量,封装,构造方法)

1. 类和对象 1.1 类和对象的理解 客观存在的事物皆为对象 &#xff0c;所以我们也常常说万物皆对象。 类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的抽象类是对象的数据类型&#xff0c;类是具有相同属性和行为的一组对象的集合简单理解&#xff1a;类就是对…

2走近chatGPT 走向AGI 机器学习 chatGPT研发过程主要步骤 收到一个问题后的处理步骤

目标&#xff1a;走向AGI 我们不想写代码了&#xff0c;想让机器能自己&#xff08;输入&#xff09;听到、看到、摸到、闻到、理解并&#xff08;输出&#xff09;做到、说出来、画出来、表现出来&#xff0c;适应新东西完成复杂的任务不再需要人类干预&#xff0c;这就是AGI…

计算机网络(1)

计算机网络&#xff08;1&#xff09; 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 计算机网络和因特网&#xff08;1&#xff09;因特网概念解读服务常见的服务 协议网络边缘特点强调 网络核心特点强调 小程一言 我的计算机网络专栏&#xff0c;是自己在计算机网络…

Python模拟技巧实现自动抽屉登录和自动点赞

目录 一、引言 二、准备工作 三、自动抽屉登录 四、自动点赞 五、注意事项 六、案例分析 七、总结 一、引言 随着互联网的普及&#xff0c;人们越来越依赖于各种在线平台进行社交互动和信息获取。在这些平台上&#xff0c;用户需要登录才能享受各种服务&#xff0c;同时…

【DevOps】搭建 项目管理软件 禅道

文章目录 1、简介2、环境要求3、搭建部署环境3.1. 安装Apache服务3.2. 安装PHP环境&#xff08;以php7.0为例 &#xff09;3.3. 安装MySQL服务 4、搭建禅道4.1、下载解压4.2、 配置4.2.1、 启动4.2.2、自启动4.2.3、确认是否开机启动 5、成功安装 1、简介 禅道是国产开源项目管…

Halcon底帽运算bottom_hat

Halcon底帽运算 底帽运算的原理是用原始的二值图像减去闭运算的图像。闭运算的目的是对某些局部区域进行“填补”&#xff0c;如填空洞、使分离的边缘相连接等。而底帽运算正是用来提取这些用于填补的区域的。图&#xff08;a&#xff09;为从二值图像中提取出的亮的区域&…

解决 Nginx 反向代理中的 DNS 解析问题:从挑战到突破20231228

引言 在使用 Nginx 作为反向代理服务器时&#xff0c;我们可能会遇到各种配置和网络问题。最近&#xff0c;我遇到了一个有趣的挑战&#xff1a;Nginx 在反向代理配置中无法解析特定的域名&#xff0c;导致 502 错误。这个问题的解决过程不仅揭示了 Nginx 的一个不太为人知的功…

目标检测-One Stage-SSD

文章目录 前言一、SSD的网络结构和流程二、SSD的创新点总结 前言 根据前文目标检测-One Stage-YOLOv1可以看出YOLOv1的主要缺点是&#xff1a; 每个格子针对目标框的回归是不加限制的&#xff0c;导致目标的定位并不是很精准和Faster RCNN等先进Two Stage算法相比&#xff0c…

(NeRF学习)NeRFStudio安装win11

参考&#xff1a; 【深度学习】【三维重建】windows11环境配置tiny-cuda-nn详细教程nerfstudio介绍及在windows上的配置、使用NeRFStudio官网githubRuntimeError: PytorchStreamReader failed reading zip archive: failed finding central directory原因及解决 目录 requireme…

计算机毕业设计 基于SSM的果蔬作物疾病防治系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

理解SQL中not in 与null值的真实含义

A not in B的原理是拿A表值与B表值做是否不等的比较, 也就是a ! b. 在sql中, null是缺失未知值而不是空值。 当你判断任意值a ! null时, 官方说, “You cannot use arithmetic comparison operators such as , <, or <> to test for NULL”, 任何与null值的对比都将返…