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

news2025/3/1 18:19:29

十、流程图

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 += 1
     if i % 2 == 0:
             continue
     print(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 += 1
        if hour >1:
            break
    day += 1
 
今天我一定要坚持学习8小时!
今天我一定要坚持学习8小时!
今天我一定要坚持学习8小时!
今天我一定要坚持学习8小时!
今天我一定要坚持学习8小时!
今天我一定要坚持学习8小时!
今天我一定要坚持学习8小时!

九九乘法表

i = 1
while i <= 9:
    j = 1
    while j <= i:
        print(j,"*",i,"=",j * i,end=" ")
        j += 1
    print()
    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 += 1
 
    
L
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
9
 
for i in range(5,10):
    print(i)
 
    
5
6
7
8
9
 
for i in range(5,10,2):
    print(i)
 
    
5
7
9

举例:从0加到100万的和

i =1
sum = 0
while i <= 1000000:
    sum += i
    i += 1
    
print(sum)
 
500000500000
 
sum = 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)
            break
    else:
            print(n,"是一个素数")
 
            
2 是一个素数
3 是一个素数
4 = 2 * 2
5 是一个素数
6 = 2 * 3
7 是一个素数
8 = 2 * 4
9 = 3 * 3

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

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

相关文章

电脑恢复删除数据的原理和方法

在恢复数据的时候&#xff0c;很多人都会问&#xff0c;为什么删除的数据还能恢复&#xff1f;本篇和大家一起了解下硬盘上数据的存储方式&#xff0c;文件被删除的时候具体发生了什么&#xff0c;帮助大家理解数据恢复的基本原理。最后还会分享一个好用的数据恢复工具并附上图…

Reactive到Spring WebFlux的来龙去脉

感谢下述博客作者提供的干货。本文只是做一个整理&#xff0c;归纳&#xff0c;以供自己或者他人学习之用。 一文弄懂 Spring WebFlux 的来龙去脉 - 知乎概述本文将通过对 Reactive 以及相关概念的解释引出 Spring-WebFlux&#xff0c;并通过一些示例向读者解释 基于 Spring-W…

C# 使用RestSharp封装一个常用的http请求方法

Nuget安装RestSharp版本&#xff0c;不同版本之间的区别有很大&#xff0c;当前这个写法基于以下版本 public class APIHelper{private readonly string baseUrl ConfigurationManager.AppSettings["connectionString"].ToString(); /// <summary>/// http请…

ELK入门(二)- springboot整合ES

springboot整合elasticsearch 引用依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http…

基于情感分析的网上图书推荐系统

项目&#xff1a;基于情感分析的网上图书推荐系统 摘 要 基于网络爬虫的数据可视化服务系统是一种能自动从网络上收集信息的工具&#xff0c;可根据用户的需求定向采集特定数据信息的工具&#xff0c;本项目通过研究爬取网上商品评论信息实现商品评论的情感分析系统功能。对于…

Android13 针对low memory killer内存调优

引入概念 在旧版本的安卓系统中&#xff0c;当触发lmk&#xff08;low memory killer&#xff09;的时候一般认为就是内存不足导致&#xff0c;但是随着安卓版本的增加lmk的判断标准已经不仅仅是内存剩余大小&#xff0c;io&#xff0c;cpu同样会做评判&#xff0c;从而保证设备…

Java之获取Nginx代理之后的客户端IP

Java之获取Nginx代理之后的客户端IP Nginx代理接口之后&#xff0c;后台获取的IP地址都是127.0.0.1&#xff0c;解决办法是需要配置Nginx搭配后台获取的方法&#xff0c;获得设备的真实地址。我们想要获取的就是nginx代理日志中的这个IP nginx配置 首先在nginx代理的对应lo…

【NI-DAQmx入门】构建应用程序案例2(经典界面配置、流盘)(建议大家学习)

此范例展示了DAQ常规的一个简单界面设计案例&#xff0c;仅是学习使用。 范例包含以下LabVIEW编程常用知识&#xff1a;UI设计、窗口缩放、子面板、启动画面、自定义控件、选项卡控件、表格、对话框&#xff0c;光标、状态更新、运行时菜单等等。 支持界面跳转配置DAQ通道&…

Android Studio自定义region模板

问题 有些文件&#xff0c;AS自带的Surround With不提示region&#xff0c;于是就可以自定义模板进行region 设置模板 菜单 Preferences | Editor | Live Templates 检查是否生效 1.选中代码 2.快捷键 cmd opt T 3.选择刚才自定义的模板

ArcGIS中查看栅格影像最大值最小值的位置

如果只是想大概获取栅格影像中最大值最小值的位置进行查看&#xff0c;可以不用编写程序获取具体的行列信息&#xff0c;只需要利用分类工具即可。 假设有一幅灰度影像数据&#xff0c;如下图所示。 想要查看最大值2116的大概位置在哪里&#xff0c;可以右击选择图层属性&…

postgresql 文件结构(一) 数据库、表对应的文件

1、问题 甲方要求提供数据库数据量大小&#xff0c;由于各个业务数据库共用一个postgres&#xff0c;因此想把每个数据库占用的空间都统计一下。 2、查找物理存储文件目录 如下图所示&#xff0c;可以查询表、库的物理存储文件名称 -- 查询表对应的文件 select oid,relname…

大数据 - Spark系列《八》- 闭包引用

Spark系列文章&#xff1a; 大数据 - Spark系列《一》- 从Hadoop到Spark&#xff1a;大数据计算引擎的演进-CSDN博客 大数据 - Spark系列《二》- 关于Spark在Idea中的一些常用配置-CSDN博客 大数据 - Spark系列《三》- 加载各种数据源创建RDD-CSDN博客 大数据 - Spark系列《…

spring-security 过滤器

spring-security过滤器 版本信息过滤器配置过滤器配置相关类图过滤器加载过程创建 HttpSecurity Bean 对象创建过滤器 过滤器作用ExceptionTranslationFilter 自定义过滤器 本章介绍 spring-security 过滤器配置类 HttpSecurity&#xff0c;过滤器加载过程&#xff0c;自定义过…

如何进行 Github 第三方登录详细讲解 (Java 版本)

如何进行 Github 第三方登录详细讲解 &#xff08;Java 版本&#xff09; 文章目录 如何进行 Github 第三方登录详细讲解 &#xff08;Java 版本&#xff09;创建一个 Github 应用定义一个跳转按钮&#xff0c;进行 Github 的授权通过授权拿到一个随机的 code通过 code 进行后端…

【MySQL】Navicat/SQLyog连接Ubuntu中的数据库(MySQL)

&#x1f3e1;浩泽学编程&#xff1a;个人主页 &#x1f525; 推荐专栏&#xff1a;《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》 &#x1f6f8;学无止境&#xff0c;不骄不躁&#xff0c;知行合一 文章目录 前言一、安装…

消息队列-RabbitMQ:发布确认—发布确认逻辑和发布确认的策略

九、发布确认 1、发布确认逻辑 生产者将信道设置成 confirm 模式&#xff0c;一旦信道进入 confirm 模式&#xff0c;所有在该信道上面发布的消息都将会被指派一个唯一的 ID (从 1 开始)&#xff0c;一旦消息被投递到所有匹配的队列之后&#xff0c;broker 就会发送一个确认给…

Input Output模型

一、I/O介绍 I/O在计算机中指Input/Output&#xff0c; IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数)&#xff0c;是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量&#xff0c;一般以每秒处理的I/O请求数量为单位&#xff0c;I/O…

ETL、ELT区别以及如何正确运用

一、 浅谈ETL、ELT ETL与ELT的概念 ETL (Extract, Transform, Load) 是一种数据集成过程&#xff0c;通常用于将数据从一个或多个源系统抽取出来&#xff0c;经过清洗、转换等处理后&#xff0c;加载到目标数据存储中。这种方法适用于需要对数据进行加工和整合后再加载到目标…

react实现转盘抽奖功能

看这个文章不错&#xff0c;借鉴 这个博主 的内容 样式是背景图片直接&#xff0c;没有设置。需要的话应该是 #bg { width: 650px; height: 600px; margin: 0 auto; background: url(turntable-bg.jpg) no-repeat; position: relative; } img[src^"pointer"] {positi…

redis的搭建 RabbitMq搭建

官网 Download | Redis wget https://github.com/redis/redis/archive/7.2.4.tar.gz 编译安装 yum install gcc g tar -zxvf redis-7.2.4.tar.gz -C /usr/localcd /usr/local/redis make && make install 常见报错 zmalloc.h:50:10: fatal error: jemalloc/jemal…