当前位置: 首页 > news >正文

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')

相关文章:

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

流程控制有三种方法&#xff1a;分支、循环、跳出 流程的控制通过布尔值来实现&#xff0c;分支和循环都需要对一定的条件进行判断&#xff0c;根据判断结果&#xff08;布尔值&#xff09;决定下一步要做什么 布尔值通过比较运算符、逻辑运算符来进行判断是True还是False 不…...

【Qt- C++ Qml 交互】

Qt编程指南 VX&#xff1a;hao541022348 ■ 将C对象注册到 QML中&#xff0c;在QML使用C对象■ C对象注册到元对象系统■ Q_INVOKABLE 宏定义是将C 的 函数&#xff08;方法&#xff09;声明为元对象系统可调用的函数■ 演示步骤 ■ 将 C类注册到 QML&#xff0c;并在QML声明一…...

ubuntu 20.04 自由切换 python 的版本

问题描述 当前 ubuntu 20.04 默认安装了多个 python 的版本&#xff0c;执行 python 时&#xff0c;默认版本是 Python 2.7.18 zhangszzhangsz:~$ python Python 2.7.18 (default, Jul 1 2022, 12:27:04) [GCC 9.4.0] on linux2 Type "help", "copyright&quo…...

程序性能优化全能手册

本文聊一个程序员都会关注的问题&#xff1a;性能。 当大家谈到“性能”时&#xff0c;你首先想到的会是什么&#xff1f; 是每次请求需要多长时间才能返回&#xff1f; 是每秒钟能够处理多少次请求&#xff1f; 还是程序的CPU和内存使用率高不高&#xff1f; 这些问题基本上…...

LiveSIPB流媒体国网B接口功能-国网B接口服务安装使用说明

LiveSIPB 国网B接口服务安装使用说明 1、服务说明1.1、安装包说明1.2、国网B接口信令服务1.3、国网B接口流媒体服务1.4、配置信令服务(LiveCMS)1.5、配置流媒体服务(LiveSMS) 2、服务运行2.1、Windows2.2、Linux 3、配置设备接入3.1、海康STATE_GRID接入示例 4、平台使用4.1、管…...

利用小红书笔记详情API:为内容运营提供强大的支持

利用小红书笔记详情API&#xff0c;内容运营者可以获得对小红书平台上的笔记内容的深入洞察&#xff0c;从而为其运营工作提供强大的支持。以下是该API如何支持内容运营的几个关键方面&#xff1a; 获取笔记内容与数据&#xff1a; API允许内容运营者直接获取小红书平台上的笔记…...

地理空间分析1——入门Python地理空间分析

写在开头 地理空间分析是一门涉及地球表面数据处理和解释的科学&#xff0c;通过对地理现象的研究&#xff0c;我们可以更深入地了解地球各个角落的关系。Python作为一种功能强大的编程语言&#xff0c;在地理空间分析领域展现了强大的潜力。本文将带您深入了解入门级别的Pyth…...

哈尔滨爆火的背后有什么值得我们学习的,2024普通人如何创业/2024风口行业

这个冬天&#xff0c;“南方小土豆”带火东北冰雪游。“冰城”黑龙江哈尔滨的文旅市场异常火爆&#xff0c;元旦假期3天&#xff0c;哈尔滨市累计接待游客304.79万人次&#xff0c;实现旅游总收入59.14亿元。旅游总收入达到历史峰值。哈尔滨旅游怎么就爆火了&#xff1f;背后究…...

element中Tree 树形控件实现多选、展开折叠、全选全不选、父子联动、默认展开、默认选中、默认禁用、自定义节点内容、可拖拽节点、手风琴模式

目录 1.代码实现2. 效果图3. 使用到的部分属性说明4. 更多属性配置查看element官网 1.代码实现 <template><div class"TreePage"><el-checkboxv-model"menuExpand"change"handleCheckedTreeExpand($event, menu)">展开/折叠&l…...

数据结构OJ实验15-插入排序与交换排序

A. DS内排—直插排序 题目描述 给定一组数据&#xff0c;使用直插排序完成数据的升序排序。 --程序要求-- 若使用C只能include一个头文件iostream&#xff1b;若使用C语言只能include一个头文件stdio 程序中若include多过一个头文件&#xff0c;不看代码&#xff0c;作0分…...

鹿目标检测数据集VOC格式500张

鹿&#xff0c;一种优雅而神秘的哺乳动物&#xff0c;以其优美的外形和独特的生态习性而备受人们的喜爱。 鹿的体型通常中等&#xff0c;四肢细长&#xff0c;身体线条流畅。它们的头部较小&#xff0c;耳朵大而直立&#xff0c;眼睛明亮有神。鹿的毛色因品种而异&#xff0c;…...

静态网页设计——电影推荐网(HTML+CSS+JavaScript)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 感谢大佬的视频&#xff1a; https://www.bilibili.com/video/BV1NK411x7oK/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术&#xff1a;HTMLCSSJS&#xff08;…...

ARM CCA机密计算架构软件栈简介

本博客描述了Arm机密计算架构(Arm CCA)的固件和软件组件。 在这篇博客中,您将学到如何: 列出组成Arm CCA软件栈的组件集了解Arm CCA引入新软件组件的原因了解监视器和领域管理监视器(RMM)的角色了解如何创建和管理领域1.1 开始之前 我们假设您熟悉AArch64异常模型、AAr…...

C#编程-使用集合

使用集合 您学习了如何使用数组来有效地存储和操作相似类型额数据。但是,以下限制于数组的使用相关联: 您必须在声明时定义数组的大小。您必须编写代码以对数组执行标准操作,如排序。让我们思考一个示例。假设您想要存储在组织工作的五个雇员的姓名。您可以使用以下语句来声…...

linux 设备模型之设备

在最低层, Linux 系统中的每个设备由一个 struct device 代表: struct device { struct device *parent; struct kobject kobj; char bus_id[BUS_ID_SIZE]; struct bus_type *bus; struct device_driver *driver; void *driver_data; void (*release)(struct device *dev); /* …...

电源滤波可采用 RC、LC、π 型滤波。电源滤波建议优选磁珠,然后才是电感。同时电阻、电感和磁珠必须考虑其电阻产生的压降。

电源滤波是为了减少电源中的噪声和干扰,确保电子设备正常工作。RC、LC、π 型滤波是常用的电源滤波器结构,其选择主要取决于需要滤波的频率范围和所需的滤波效果。 RC滤波器是由电阻和电容组成,适用于高频噪声的滤波。当电流通过电容时,电容会阻止高频噪声信号的通过,起到…...

STM32通用定时器-输入捕获-脉冲计数

一、知识点 编码器   两相编码器&#xff08;正交编码器&#xff09;&#xff1a;两相编码器由 A 相和 B 相组成&#xff0c;相位差为 90 度。当旋转方向为顺时针时&#xff0c;A 相先变化&#xff0c;然后 B 相变化&#xff1b;当旋转方向为逆时针时&#xff0c;B 相先变化…...

Flutter GetX 之 路由管理

路由管理是插件GetX常用功能之一&#xff0c;为什么说之一呢&#xff1f;因为GetX的功能远不止路由管理这么简单。 GetX的重要功能如下&#xff1a; 1、路由管理2、状态管理3、国际化4、主题5、GetUtil工具6、dialog 弹框7、snackbar 其实上面功能介绍的还是不够详细&#xff…...

基于单片机的农田灌溉系统(论文+源码)

1.系统设计 本系统主要实现如下目标&#xff1a; 1&#xff0e;可以实时监测土壤湿度&#xff1b; 2&#xff0e;土壤湿度太低时&#xff0c;进行浇水操作&#xff1b; 3&#xff0e;可以按键设置湿度的触发阈值&#xff1b; 4. 可以实现远程操控 5&#xff0e;可以实现手…...

分布式缓存 -- 基础

负载均衡 Ribbon 服务间通信的负载均衡工具&#xff0c;提供完善的超时重试机制 客户端的负载均衡器&#xff1a;在客户端将各个服务的信息拿到&#xff0c;在客户端本地做到请求的均衡分配 Ribbon 提供 LoadBalanced 注解&#xff0c;外搭配RestTemplate来做客户端的负载均衡…...

云计算复习笔记--期末

1、云计算的定义和本质&#xff1a; 云计算是一种按使用量付费的模式。云计算是分布式计算的一种。通过计算机网络&#xff08;多指因特网&#xff09;形成的计算能力极强的系统&#xff0c;可存储、集合相关资源并可按需配置&#xff0c;向用户提供个性化服务。 2、云计算服…...

【WPF.NET开发】WPF中的焦点

本文内容 键盘焦点逻辑焦点键盘导航以编程方式导航焦点焦点事件 在 WPF 中&#xff0c;有两个与焦点有关的主要概念&#xff1a;键盘焦点和逻辑焦点。 键盘焦点指接收键盘输入的元素&#xff0c;而逻辑焦点指焦点范围中具有焦点的元素。 本概述详细介绍了这些概念。 对于创建…...

【计算机设计大赛作品】豆瓣电影数据挖掘可视化—信息可视化赛道获奖项目深入剖析【可视化项目案例-22】

文章目录 一.【计算机设计大赛作品】豆瓣电影数据挖掘可视化—信息可视化赛道获奖项目深入剖析【可视化项目案例-22】1.1 项目主题:豆瓣电影二.代码剖析2.1 项目效果展示2.2 服务端代码剖析2.3 数据分析2.4 数据评分三.寄语四.本案例完整源码下载一.【计算机设计大赛作品】豆瓣…...

VS2019启动编辑并继续不起作用(.NET)

直接上方案 1)请确保您取消选中工具>选项>调试>常规下的选项&#xff1a;使用托管兼容模式和要求源文件与原始版本完全匹配。如下图&#xff1a; 2)请先取消选中编辑并继续选项&#xff0c;然后关闭您的旧解决方案&#xff0c;删除解决方案文件夹中的.vs隐藏文件夹&a…...

FFmpeg处理音视频的常用API及一般流程

FFmpeg是一个开源的音视频处理库&#xff0c;提供了丰富的API用于音视频的编解码、转码、过滤、播放等操作。 一、使用FFmpeg API解码涉及到的函数及一般流程如下&#xff1a; 1. av_register_all(): 注册所有的编解码器和格式。 av_register_all(); 2. avformat_open_inpu…...

Kotlin协程学习之-01

由于协程需要支持挂起、恢复、因此对于挂起点的状态保存就显得机器关键。类似的&#xff0c;线程会因为CPU调度权的切换而被中断&#xff0c;它的中断状态会保存在调用栈当中&#xff0c;因而协程的实现也按照是否开辟相应的调用栈存在以下两种类型&#xff1a; 有栈协程&…...

214.【2023年华为OD机试真题(C卷)】测试用例执行计划(排序题-JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-测试用例执行计划二.解题思路三.题解代码Pytho…...

数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字

分析&#xff1a; 我们知道 1-100的整数 i 中&#xff0c;9会出现在十位和个位上&#xff0c;数9出现的次数可以通过以下来实现&#xff1a; 个位是9 // i % 10得到整数 i 个位上的数十位是9 // i / 10得到整数 i 除了个位数的数字 这也是做这道题之后&#xff0c;我们需要…...

07. HTTP接口请求重试怎么处理?

目录 1、前言 2、实现方式 2.1、循环重试 2.2、递归重试 2.3、Spring Retry 2.4、Resilience4j 2.5、http请求网络工具内置重试方式 2.6、自定义重试工具 2.7、并发框架异步重试 2.8、消息队列 3、小结 1、前言 HTTP接口请求重试是指在请求失败时&#xff0c;再次发…...

分割数组的最大差值 - 华为OD统一考试

分割数组的最大差值 - 华为OD统一考试 OD统一考试 分值: 100分 题解: Java / Python / C++ 题目描述 给定一个由若干整数组成的数组nums ,可以在数组内的任意位置进行分割,将该数组分割成两个非空子数组(即左数组和右数组),分别对子数组求和得到两个值.计算这两个值的差值…...

ai做网站 如何切图/sem外包

/* author:咔咔 wechat:fangkangfk */ <view classmoney wx:if"{{sum }}">应付&#xff1a;0元</view> <view classmoney wx:if"{{sum ! }}">应付&#xff1a;{{sum}}元</view>...

wordpress 整站下载/互联网域名交易中心

针对新手来说&#xff0c;神经网络和深度学习这两个概念总是处于一种似懂非懂的朦胧状态&#xff0c;今天就彻底搞懂它们的区别。 首先&#xff0c;我觉得二者的关系可以用下面这张图来表示 引用邱锡鹏教授编写的《神经网络与深度学习》一书中的一句话“神经网络天然不是深度学…...

网站域名icp备案/优秀网站网页设计分析

《车市后观察》是车市物语旗下自媒体&#xff0c;提供及时全面的汽车销售、维修与服务资讯。日前&#xff0c;快狗打车已经回应了工信部关于App侵害用户权益行为违规的通报&#xff0c;并按要求整改并提交审核。此前&#xff0c;工信部通报了2020年第五批侵害用户权益行为的APP…...

九一人才网招聘网官方网站/南昌搜索引擎优化

---恢复内容开始--- 10&#xff0e;3二重积分的换元积分法 在一元函数定积分的计算中&#xff0c;我们常常进行换元&#xff0c;以达删繁就简的目的&#xff0c;当然&#xff0c;二重积分也有换元积分的问题。 首先让我们回顾一下前面曾讨论的一个事实。 设换元函数 &#xff0…...

信访局网站模版/关键词seo公司真实推荐

解决办法&#xff1a;为当前的eclipse安装Java EE开发插件 1.点击菜单栏的 Help -> Install New Software&#xff1a; 安装向导被打开。在安装向导的窗口, 点击”Work With”下拉&#xff0c;根据你的eclipse版本名选择&#xff1a; Note: If you do not see above site …...

建设个网站要多少钱/app拉新推广怎么做

文章目录 前言I、为UITableView添加UISwipeGestureRecognizer手势1.1 addGestureRecognize1.2 delegate的实现1.3 标题按钮切换时 ,刷新表格数据1.4 HeadLineView 标题按钮II 、右划返回的事件与scrollView滚动事件冲突的解决方案前言 为UITableView添加UISwipeGestureRecogni…...