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

Python学习-流程图、分支与循环(branch and loop)

十、流程图

1、流程图(Flowchart)

流程图是一种用于表示算法或代码流程的框图组合,它以不同类型的框框代表不同种类的程序步骤,每两个步骤之间以箭头连接起来。
好处:
1)代码的指导文档
2)有助于规划高效率的程序结构
3)便于与他人交流
在这里插入图片描述
流程图的思维是至上往下走的,线性逻辑的思维模式。

2、函数(function)

函数就是对一段代码进行封装。

3、思维导图(Mind Map)

思维导图又叫心智图,是表达发散性思维的有效的图形思维工具,它简单却又极其有效,是一种革命性的思维工具。

十一、分支与循环(branch and loop)

1、分支结构 - if语句

Python的分支结构由if语句来实现的,有5种语法:
1)判断一个条件,如果这个条件成立,就执行其包含的某条语句或某个代码块。包含的语句使用缩进,缩进决定了从属关系。

if condition:statement(s)

举例:

if 3<5:print("我在里面")print("我也在里面")
print("我在外面")

2)判断一个条件:
如果条件成立,就执行其包含的某条语句或某个代码块
如果条件不成立,就执行另外的某条语句或某个代码块

if condition:statement(s)
else:statement(s)

举例:

if "小甲鱼" == "小姐姐":print("小甲鱼是小姐姐!")
else:print("小甲鱼不是小姐姐!")

3)判断多个条件:
如果第1个条件不成立,则继续判断第2个条件,如果第2个条件还不成立,则接着判断第3个条件……

if condition1:statement(s)
elif condition2:statement(s)
elif condition3:statement(s)
……

举例:

score = input("请输入你的分数:")
score = int(score)if 0<= score < 60:print("D")
elif 60<= score < 80:print("C")
elif 80<= score < 90:print("B")
elif 90<= score < 100:print("A")
elif score == 100:print("S")

4)多条件else:
第4种是在第3种的情况下添加一个else,表面上面所有的条件均不成立的情况下,执行某条语句或某个代码块。

if condition1:statement(s)
elif condition2:statement(s)
elif condition3:statement(s)
……
else:statement(s)

举例:

score = input("请输入你的分数:")
score = int(score)if 0<= score < 60:print("D")
elif 60<= score < 80:print("C")
elif 80<= score < 90:print("B")
elif 90<= score < 100:print("A")
elif score == 100:print("S")
else:print("请输入 0~100 之间的分值!")

5)条件表达式
条件成立时执行的语句 if condition else 条件不成立时执行的语句
举例:
正常表达式:

age = 16
if age < 18:print("抱歉,未满18岁禁止访问。")
else:print("欢迎您来~")

条件表达式:

age = 16
print("抱歉,未满18岁禁止访问。")  if age < 18 else print("欢迎您来~")

案例4的条件表达式:

score = 66
level = ('D' if 0<= score <60 else'C' if 60<= score <80 else'B' if 80<= score <90 else'A' if 90<= score <100 else'S' if  score == 100 else"请输入 0~100 之间的分值!")
print(level)

2、分支结构的嵌套

举例:

age = 18
isMale = True
if age <18 :print("抱歉,未满18岁禁止访问。")
else:if isMale:print("任君选购!")else:print("抱歉,本店商品可能不适合小公举哦")

3、循环结构

(1)while循环
只要条件成立,其包含的某条语句或某个语句块就会一直被执行。

while condition:statement(s)

举例:

love = "yes"
while love == "yes":love = input("今天你还爱我吗?")

(2)for循环
下面可以看到,第5部分

(3)退出死循环
1)break
2)continue:
continue也会跳出循环体,但只是跳出本轮循环,它还会回到循环体的条件判断位置,然后继续下一轮的循环。
举例:

i = 0
while i < 10:i += 1if i % 2 == 0:continueprint(i)1
3
5
7
9

3)break和continue的区别
在这里插入图片描述

4)else
当循环的条件不再为真的时候,便会执行else语句的内容。
举例:

i = 1
while i < 5:print("循环内,i的值是", i)i += 1
elseprint("循环外,i的值是", i)

4、循环结构的嵌套

无论是break语句还是continue语句,它们只能作用于一层循环体。

day = 1
hour = 1
while day <= 7:while hour <= 8:print("今天我一定要坚持学习8小时!")hour += 1if hour >1:breakday += 1今天我一定要坚持学习8小时!
今天我一定要坚持学习8小时!
今天我一定要坚持学习8小时!
今天我一定要坚持学习8小时!
今天我一定要坚持学习8小时!
今天我一定要坚持学习8小时!
今天我一定要坚持学习8小时!

九九乘法表

i = 1
while i <= 9:j = 1while j <= i:print(j,"*",i,"=",j * i,end=" ")j += 1print()i += 1

在这里插入图片描述

5、for循环

for 变量 in 可迭代对象 :

   statement(s)

可迭代对象指元素能够被单独提取出来的对象,比如字符串。
举例:for循环每次从字符串Love里面提取出一个字符,并赋值给变量each,循环体内只有一个语句,将each变量值打印出来。

for each in "Love":print(each)L
o
v
e
举例用while来实现:
i = 0
while i < len("Love"):print("Love"[i])i += 1L
o
v
e

6、range生成数值序列,参数只能是整型。

range(stop)
range(start, stop)
range(start, stop, step)

举例:

for i in range(10):print(i)0
1
2
3
4
5
6
7
8
9for i in range(5,10):print(i)5
6
7
8
9for i in range(5,10,2):print(i)5
7
9

举例:从0加到100万的和

i =1
sum = 0
while i <= 1000000:sum += ii += 1print(sum)500000500000sum = 0
for i in range(1000001):sum += i
print(sum)
500000500000

举例:查看10以内的素数

for n in range(2,10):for x in range(2,n):if n % x ==0:print(n,"=",x,"*",n // x)breakelse:print(n,"是一个素数")2 是一个素数
3 是一个素数
4 = 2 * 2
5 是一个素数
6 = 2 * 3
7 是一个素数
8 = 2 * 4
9 = 3 * 3

相关文章:

Python学习-流程图、分支与循环(branch and loop)

十、流程图 1、流程图&#xff08;Flowchart&#xff09; 流程图是一种用于表示算法或代码流程的框图组合&#xff0c;它以不同类型的框框代表不同种类的程序步骤&#xff0c;每两个步骤之间以箭头连接起来。 好处&#xff1a; 1&#xff09;代码的指导文档 2&#xff09;有助…...

Python Flask Web 框架学习笔记+完整项目

Flask是一个轻量级的基于Python的web框架。 我们建议使用最新版本的 Python。Flask 支持 Python 3.8 及更高版本。 官网&#xff1a;欢迎使用 Flask — Flask 文档 &#xff08;3.0.x&#xff09; (palletsprojects.com) RESTFul API&#xff1a;Python Flask高级编程之REST…...

XML Map 端口进阶篇——常用关键字和格式化器详解

XML Map 端口是用于在不同XML之间建立关系映射的工具&#xff0c;允许通过拖拽操作实现源XML和目标 XML之间的数据字段映射&#xff0c;除此之外&#xff0c;XML Map 端口还提供了其它丰富多彩的功能&#xff0c;使用户能够更加灵活和高效的处理XML 数据映射任务&#xff0c;让…...

排序算法之——直接插入排序

直接插入排序——以升序排列为例 1.1基本思想1.2动态图示感知1.3静态图示详解1.4代码实现1.5时间复杂度1.5.1最好情况1.5.2最差情况 1.6空间复杂度1.7稳定性1.7.1一个小问题 1.1基本思想 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中&#xff0c;直…...

突出最强算法模型——回归算法 !!

文章目录 1、特征工程的重要性 2、缺失值和异常值的处理 &#xff08;1&#xff09;处理缺失值 &#xff08;2&#xff09;处理异常值 3、回归模型的诊断 &#xff08;1&#xff09;残差分析 &#xff08;2&#xff09;检查回归假设 &#xff08;3&#xff09;Cooks 距离 4、学…...

云数据库 Redis 性能深度评测(阿里云、华为云、腾讯云、百度智能云)

在当今的云服务市场中&#xff0c;阿里云、腾讯云、华为云和百度智能云都是领先的云服务提供商&#xff0c;他们都提供了全套的云数据库服务&#xff0c;其中 Redis属于RDS 之后第二被广泛应用的服务&#xff0c;本次测试旨在深入比较这四家云服务巨头在Redis云数据库性能方面的…...

Android---Retrofit实现网络请求:Java 版

简介 在 Android 开发中&#xff0c;网络请求是一个极为关键的部分。Retrofit 作为一个强大的网络请求库&#xff0c;能够简化开发流程&#xff0c;提供高效的网络请求能力。 Retrofit 是一个建立在 OkHttp 基础之上的网络请求库&#xff0c;能够将我们定义的 Java 接口转化为…...

使用静态CRLSP配置MPLS TE隧道

正文共&#xff1a;1591 字 13 图&#xff0c;预估阅读时间&#xff1a;4 分钟 静态CRLSP&#xff08;Constraint-based Routed Label Switched Paths&#xff0c;基于约束路由的LSP&#xff09;是指在报文经过的每一跳设备上&#xff08;包括Ingress、Transit和Egress&#xf…...

gentoo安装笔记

最近比较闲&#xff0c;所以挑战一下自己&#xff0c;在自己的台式电脑上安装gentoo 下面记录了我亲自安装的步骤&#xff0c;作为以后我再次安装时参考所用。 整体步骤 一般来将一个linux发行版的安装步骤其实大体上都差不多&#xff0c;基本分为一下几步&#xff1a; 1. …...

Git如何使用 五分钟快速入门

Git如何使用 五分钟快速入门 Git是一个分布式版本控制系统&#xff0c;它可以帮助开发人员跟踪和管理项目的代码变更。与传统的集中式版本控制系统&#xff08;如SVN&#xff09;不同&#xff0c;Git允许开发人员在本地存储完整的代码仓库&#xff0c;并且可以独立地进行代码修…...

FreeRTOS学习笔记——(FreeRTOS临界段代码保护及调度器挂起与恢复)

这里写目录标题 1&#xff0c;临界段代码保护简介&#xff08;熟悉&#xff09;2&#xff0c;临界段代码保护函数介绍&#xff08;掌握&#xff09;3&#xff0c;任务调度器的挂起和恢复&#xff08;熟悉&#xff09; 1&#xff0c;临界段代码保护简介&#xff08;熟悉&#xf…...

箱形理论在交易策略中的实战应用与优化

箱形理论&#xff0c;简单来说&#xff0c;就是将价格波动分成一段一段的方框&#xff0c;研究这些方框的高点和低点&#xff0c;来推测价格的趋势。 在上升行情中&#xff0c;价格每突破新高价后&#xff0c;由于群众惧高心理&#xff0c;可能会回跌一段&#xff0c;然后再上升…...

MinIO 和 Apache Tika:文本提取模式

Tl;dr: 在这篇文章中&#xff0c;我们将使用 MinIO Bucket Notifications 和 Apache Tika 进行文档文本提取&#xff0c;这是大型语言模型训练和检索增强生成 LLM和RAG 等关键下游任务的核心。 前提 假设我想构建一个文本数据集&#xff0c;然后我可以用它来微调 LLM.为了做…...

c编译器学习05:与chibicc类似的minilisp编译器(待续)

minilisp项目介绍 项目地址&#xff1a;https://github.com/rui314/minilisp 作者也是rui314&#xff0c;commits也是按照模块开发提交的。 minilisp只有一个代码文件&#xff1a;https://github.com/rui314/minilisp/blob/master/minilisp.c 加注释也只有996行。 代码结构&a…...

手撕qsort函数

前言 本篇主要讲解的是qsort函数细节以及运用实例。 紧跟我的脚步一起手撕qsort函数吧~ 欢迎关注​​个人主页&#xff1a;逸狼 更多优质内容&#xff1a; 拿捏c语言指针&#xff08;上&#xff09; 拿捏c语言指针&#xff08;中&#xff09; 拿捏c语言指针&#xff08;下&…...

项目在linux上的简单部署

本文章只介绍项目的简单部署&#xff0c;暂时没有Docker部署。 项目部署有两种方式&#xff0c;一种是直接命令部署&#xff0c;第二种是用脚本&#xff0c;脚本本身也是将命令进行封装来执行。 命令 项目通过maven打包&#xff0c;启动命令&#xff1a; # 启动命令 nohup …...

MySQL安装教程(详细版)

今天分享的是Win10系统下MySQL的安装教程&#xff0c;打开MySQL官网&#xff0c;按步骤走呀~ 宝们安装MySQL后&#xff0c;需要简单回顾一下关系型数据库的介绍与历史&#xff08;History of DataBase&#xff09; 和 常见关系型数据库产品介绍 呀&#xff0c;后面就会进入正式…...

Linux platform tree下的单总线驱动程序设计(DHT11)

目录 概述 1 认识DHT11 1.1 DHT11特性 1.2 DHT11数据格式 1.3 DHT11与MCU通信 1.4 DHT11信号解析 1.4.1 起始信号 1.4.2 解析信号0 1.4.3 解析信号1 2 驱动开发 2.1 硬件接口 2.2 更新设备树 2.2.1 添加驱动节点 2.2.2 编译.dts 2.2.3 更新板卡中的.dtb 2.3 驱…...

自研爬虫框架的经验总结(理论及方法)

背景&#xff1a; 由于业务需要&#xff0c;承接一部分的数据采集工作。目前市场内的一些通用框架不太适合。故而进行了自研。 对比自研和目前成熟的框架&#xff0c;自研更灵活适配&#xff0c;可以自己组装核心方法&#xff1b;后者对于新场景的适配需要对框架本身有较高的理…...

配置基于 AWS CRT 的 HTTP 客户端

基于 AWS CRT 的 HTTP 客户端包括同步 AwsCrtHttpClient 和异步 AwsCrtAsyncHttpClient。基于 AWS CRT 的 HTTP 客户端具有以下 HTTP 客户端优势&#xff1a; 更快的 SDK 启动时间 更小的内存占用空间 降低的延迟时间 连接运行状况管理 DNS 负载均衡 SDK 中基于 AWS CRT …...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...