Python程序设计 流程控制

  • 1. if判断语句

       if 语句是最简单的选择结构。如果满足条件就执行设定好的操作,不满足条件就执行其他其他操作。

1.1 判断的定义

  • 如果 条件满足,才能做某件事情,

  • 如果 条件不满足,就做另外一件事情,或者什么也不做

判断语句又被称为 “分支语句”

1.2 if 判断

  • 语法
  1. 冒号和缩进是一种语法,一个tab键相当于四个空格,然而在if条件语句满足条件下,后面的英文冒号后,直接enter键,会自动缩进,不需要手动缩进,感觉很nice
  2. 赋值满足条件,则 print 执行下一步
  3. 赋值不满足条件,则跳过,如果只有一条,则输出内容无;如果有2条,则跳过第一条,执行第二条,即else

    if...else... 语句,当 if 的条件为 True 时执行 if 下的语句块,否则执行 else 下语句块。

if 要判断的条件:条件成立时,要做的事情……
else:条件不成立时,要做的事情……
  • 注意

 if else 语句以及各自的缩进部分共同是一个 完整的代码块

"""
经过一个红绿灯,如果是红灯就立马停车,如果是绿灯就继续前行
"""light = "红灯"## if 语句以及缩进部分的代码也是一个完整的代码块0
if light == "红灯":print("立马停车")## else 语句以及缩进部分的代码是一个完整的代码块
else:print("继续前行")

1.3 if 多条件判断

  • 在开发中,使用 if 可以 判断条件

  • 使用 else 可以处理 条件不成立 的情况

  • 但是,如果希望 再增加一些条件条件不同,需要执行的代码也不同 时,就可以使用 elif

  • 语法格式如下:

if 条件1:条件1满足执行的代码……
elif 条件2:条件2满足时,执行的代码……
elif 条件3:条件3满足时,执行的代码……
else:以上条件都不满足时,执行的代码……
light = "红灯"if light == "红灯":print("立马停车")elif light == "黄灯":print("立马停车")else:print("继续前行")
  • 注意
  1. elifelse 都必须和 if 联合使用,而不能单独使用

  2. 可以将 ifelif else 以及各自缩进的代码,看成一个完整的代码块

     elif 的应用场景是:同时 判断 多个条件,所有的条件是 平级

1.4 if 的嵌套

在开发中,使用 if 进行条件判断,如果希望 在条件成立的执行语句中 再 增加条件判断,就可以使用 if 的嵌套

if 的嵌套 的应用场景就是:在之前条件满足的前提下,再增加额外的判断

if 的嵌套 的语法格式,除了缩进之外 和之前的没有区别

语法格式如下:

if 条件 1:条件 1 满足执行的代码……if 条件 1 基础上的条件 2:条件 2 满足时,执行的代码……    # 条件 2 不满足的处理else:条件 2 不满足时,执行的代码## 条件 1 不满足的处理
else:条件1 不满足时,执行的代码……
"""
微博信息采集与推送流程注册账号后先采集姓名,然后再采集用户的兴趣,最后给用户推送可能感兴趣的内容
"""
sex = int(input("请输入你的性别:"))if sex == "男":print("给你推荐男生可能喜欢的话题")hobby = int(input("请输入你的兴趣:"))# 推荐男频小说的类别if hobby == '小说':print('给你推荐小说相关的话题')elif hobby == '科技':print('给你推荐科技相关的话题')else:print('给你推荐大部分男生喜欢的内容')
elif sex == "女":print("给你推荐女生可能喜欢的话题")elif sex == "保密":print('随便推送内容')else:print("其他情况")

1.5 例子

比较两个数字大小,并按顺序输出

使用 input 输入两个数,根据其大小先后输出

  1. 输入两个数

  2. 判断大小

  3. 输出大的数字

a = input("请输入a:")
b = input("请输入b:")
max_number = 0if a > b:max_number = a
else:max_number = bprint(max_number)

2. while 循环

while是计算机的一种基本循环模式。当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环。while语句的一般表达式为:while(表达式){循环体}。

循环的作用就是让 指定的代码 重复的执行

while 循环最常用的应用场景就是 让执行的代码 按照 指定的次数 重复 执行

2.1 死循环

由于程序员的原因,忘记 在循环内部 修改循环的判断条件,导致循环持续执行,程序无法终止!

2.2 循环计算

  • 打印小星星

        在控制台连续输出五行 *,每一行星号的数量依次递增

*
**
***
****
*****

使用字符串 * 打印

# 1. 定义一个计数器变量,从数字1开始,循环会比较方便
row = 1while row <= 5:print("*" * row)row += 1
  • 循环打印小星星

假设 Python 没有提供 字符串的 * 操作 拼接字符串

在控制台连续输出五行 *,每一行星号的数量依次递增

*
**
***
****
*****
  • 开发步骤
  1. 完成 5 行内容的简单输出

  2. 分析每行内部的 * 应该如何处理?

每行显示的星星和当前所在的行数是一致的

嵌套一个小的循环,专门处理每一行中 的星星显示

row = 1while row <= 5:# 假设 python 没有提供字符串 * 操作# 在循环内部,再增加一个循环,实现每一行的 星星 打印col = 1while col <= row:print("*", end="")col += 1# 每一行星号输出完成后,再增加一个换行print("")row += 1
  • 九九乘法表

需求 输出 九九乘法表,格式如下:

1 * 1 = 1	
1 * 2 = 2	2 * 2 = 4	
1 * 3 = 3	2 * 3 = 6	3 * 3 = 9	
1 * 4 = 4	2 * 4 = 8	3 * 4 = 12	4 * 4 = 16	
1 * 5 = 5	2 * 5 = 10	3 * 5 = 15	4 * 5 = 20	5 * 5 = 25	
1 * 6 = 6	2 * 6 = 12	3 * 6 = 18	4 * 6 = 24	5 * 6 = 30	6 * 6 = 36	
1 * 7 = 7	2 * 7 = 14	3 * 7 = 21	4 * 7 = 28	5 * 7 = 35	6 * 7 = 42	7 * 7 = 49	
1 * 8 = 8	2 * 8 = 16	3 * 8 = 24	4 * 8 = 32	5 * 8 = 40	6 * 8 = 48	7 * 8 = 56	8 * 8 = 64	
1 * 9 = 9	2 * 9 = 18	3 * 9 = 27	4 * 9 = 36	5 * 9 = 45	6 * 9 = 54	7 * 9 = 63	8 * 9 = 72	9 * 9 = 81
  • 开发步骤
  • 打印 9 行小星星
*
**
***
****
*****
******
*******
********
*********
  • 将每一个 * 替换成对应的行与列相乘
# 定义起始行
row = 1# 最大打印 9 行
while row <= 9:# 定义起始列col = 1# 最大打印 row 列while col <= row:# end = "",表示输出结束后,不换行# "\t" 可以在控制台输出一个制表符,协助在输出文本时对齐print("%d * %d = %d" % (col, row, row * col), end="\t")# 列数 + 1col += 1# 一行打印完成的换行print("")# 行数 + 1row += 1

 

3. for 遍历

3.1 for 语句

在计算机科学里,遍历的一种,指的是按照某种规则,不重复地访问某个对象的所有内容的过程。

  • 语法
for item in 'hello world !':print(item)
  • for i in range(10)
In [15]: for i in range(10):...:     print(i)...:
0
1
2
...
  • range

range() 函数可创建一个整数列表,一般用在 for 循环中。

函数语法:

range(start, stop[, step])

参数说明:

  • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);

  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5

  • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

In [18]: list(range(10))
Out[18]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]In [21]: tuple(range(10))
Out[21]: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

3.2 for遍历可迭代对象

for可以迭代所有可迭代对象(字符串、列表、元组、集合、字典)

for num in list(range(1000)):print(num)

案例:用 for 迭代获取所有水仙花数

for num in range(1000):print(num)

案例:用for循环实现九九乘法表

for row in range(1, 10):for col in range(1, row + 1):print("%d * %d = %d" % (col, row, row * col), end="\t")print()

4. break 和 continue

breakcontinue 是专门在循环中使用的关键字

break 某一条件满足时,退出循环,不再执行后续重复的代码

continue 某一条件满足时,不执行后续重复的代码

break continue 只针对 当前所在循环 有效

4.1 break

从内部中断循环,在循环过程中,如果 某一个条件满足后,不再希望 循环继续执行,可以使用 break 退出循环

例:登录账号

循环一直输入账号密码,输入成功之后跳出循环

while True:password = input("请输入密码")if password == '123456':# 当满足条件时 中断循环print('密码输入正确,跳出循环')break# 重复执行的代码print("输入的密码错误,请重新输入")

4.2 continue

中断本次循环的后面部分

在循环过程中,如果某一个条件满足后,不希望执行循环代码,但是又不希望退出循环,可以使用 continue

也就是:在整个循环中,只有某些条件,不需要执行循环代码,而其他条件都需要执行

while True:password = input("请输入密码")if password == '123456':# 当满足条件时 终止后续的操作print('密码输入正确,终止后续的操作')continueprint("输入的密码错误,请重新输入")

需要注意:使用 continue 时,条件处理部分的代码,需要特别注意,不小心会出现 死循环

continue 只针对当前所在循环有效

5. 三元表达式

程序设计中,往往有一些巧妙的程序语言,能够使得程序看起来简练干净:

a = input("请输入a:")
b = input("请输入b:")
max_number = 0if a > b:max_number = a
else:max_number = bprint(max_number)"""三元表达式"""
max_number = a if a > b else b
print(max_number)

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

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

相关文章

java框架面试篇

Spring框架 spring Bean线程安全问题 Scope注解 我们可以在bean的类上加Scope注解来声明这个Bean是单个实例还是多个实例。在默认情况下Bean是单个实例的&#xff0c;此时的注解中的属性默认为Scope("singleton")&#xff0c;Scope("prototype")则是一…

dfs专题(记忆化搜索)P1141 01迷宫——洛谷(题解)

题目描述 有一个仅由数字 00 与 11 组成的 &#xfffd;&#xfffd;nn 格迷宫。若你位于一格 00 上&#xff0c;那么你可以移动到相邻 44 格中的某一格 11 上&#xff0c;同样若你位于一格 11 上&#xff0c;那么你可以移动到相邻 44 格中的某一格 00 上。 你的任务是&#…

一、图像读取显示

读取和显示函数主要为&#xff1a;imread()和imshow()函数 imread函数&#xff0c;im是image的缩写&#xff0c;read就是读入一张图片 同理&#xff0c;imshow也是一样的 C中读入的图片是按照矩阵&#xff08;Matrix&#xff09;进行存储的&#xff0c;故定义变量src的数据类型…

【pytorch】nn.linear 中为什么是y=xA^T+b

我记得读教材的时候是yWxb, 左乘矩阵W&#xff0c;这样才能表示线性变化。 但是pytorch中的nn.linear中&#xff0c;计算方式是yxA^Tb&#xff0c;其中A是权重矩阵。 为什么右乘也能表示线性变化操作呢&#xff1f;因为pytorch中&#xff0c;照顾到输入是多个样本一起算的&…

python魔法函数

1、init 用于初始化对象的属性和状态 当创建一个对象时&#xff0c;Python会自动调用该对象的__init__方法。 这个方法用于初始化对象的属性和状态&#xff0c;是对象创建过程中的一个重要环节 2、new # 通常我们不需要重写__new__方法&#xff0c;除非我们正在进行一些非常…

kerberos+kafka(2.13)认证(单节点ubuntu)

一&#xff1a;搭建kerberos。 1. 运行安装命令 apt-get install krb5-admin-server krb5-kdc krb5-user krb5-config2. 检查服务是否启动。 systemctl status krb5-admin-server systemctl status krb5-kdcsystemctl start krb5-admin-server systemctl startkrb5-kdc3. 修…

yum安装报错“Curl error (37): Could‘t read a file...”

使用yum命令安装软件包“libmcrypt-devel” 运行yum命令如下&#xff1a; yum install libmcrypt-devel 提示有这个软件以及软件版本信息&#xff0c;输入y后下载软件包。 稍后提示错误如下&#xff1a; 错误提示截图中&#xff0c;警告软件包libmcrypt-devel-2.5.8-26.el8…

Blender Object 的 name 字段不是 string

之前在获取 object 的 name 之后直接当作 string&#xff0c;对他调用 string 的函数&#xff0c;结果导致了 blender 崩溃&#xff0c;完全不知道哪错了 后面发现 object 的 name 字段似乎不是 string&#xff0c;需要先转到 string 感觉 blender 这点不好&#xff0c;调用了…

DC-磁盘配额(23国赛真题)

2023全国职业院校技能大赛网络系统管理赛项–模块B&#xff1a;服务部署&#xff08;WindowServer2022&#xff09; 文章目录 DC-磁盘配额题目配置步骤验证查看DC2驱动器C:\的磁盘配额&#xff0c;限制磁盘空间&#xff0c;警告等级等配置 DC-磁盘配额 题目 在DC2驱动器C:\上…

limit offset 分页传参

在上次优化分页查询的过程中搞错了limit分页的入参值 pageSize、pageNum 、currPage 导致出现了分页查询的问题 大数据量分页优化&#xff0c;应对PageHelper 这次我们攻坚limit 分页的参数值是如何处理的。 pageSize 页数 前端传过来的&#xff0c;默认10 currPage 当前页 …

测试用例级别该如何定义 ? 在工作中该如何应用它 ? 把握好这5个场景即可。

1.级别的作用 在编写测试用例的过程中&#xff0c;用例的级别经常是一个不可缺少的字段 &#xff0c;本篇幅就来聊下这个字段 &#xff0c;首先从它的作用是什么呢 &#xff1f;我觉得主要有两点 &#xff0c;分别是 &#xff1a; 用于测试用例不同套件的选取 &#xff0c;即用…

C# Socket 允许控制台应用通过防火墙

需求&#xff1a; 在代码中将exe添加到防火墙规则中&#xff0c;允许Socket通过 添加库引用 效果&#xff1a; 一键三联 若可用记得点赞评论收藏哦&#xff0c;你的支持就是写作的动力。 源地址: https://gist.github.com/cstrahan/513804 调用代码: private static void …

分布式定时任务系列9:XXL-job源码分析之路由策略

传送门 分布式定时任务系列1&#xff1a;XXL-job安装 分布式定时任务系列2&#xff1a;XXL-job使用 分布式定时任务系列3&#xff1a;任务执行引擎设计 分布式定时任务系列4&#xff1a;任务执行引擎设计续 分布式定时任务系列5&#xff1a;XXL-job中blockingQueue的应用 …

刘润-底层逻辑 阅读笔记

序言 在面临变化的时候&#xff0c;底层逻辑能够应用到新的变化里面&#xff0c;从而产生新的方法论 从本质上来说&#xff0c;二者都是流量、转化率、客单价和复购率四部分的不同组合 只有不同之中的相同之处、变化背后不变的东西&#xff0c;才是底层逻辑。 底层逻辑环境…

Docker部署Plik系统并结合内网穿透实现远程访问本地上传下载文件

文章目录 1. Docker部署Plik2. 本地访问Plik3. Linux安装Cpolar4. 配置Plik公网地址5. 远程访问Plik6. 固定Plik公网地址7. 固定地址访问Plik 本文介绍如何使用Linux docker方式快速安装Plik并且结合Cpolar内网穿透工具实现远程访问&#xff0c;实现随时随地在任意设备上传或者…

基于springboot原创歌曲分享平台源码和论文

随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理平台应运而生&#xff0c;各行各业相继进入信息管理时代&#xf…

STM32的GPIO的详细配置指南

1. GPIO简介 GPIO&#xff08;General Purpose Input/Output&#xff09;是用于在微控制器中与外部世界通信的接口。通过GPIO&#xff0c;微控制器可以控制外部设备&#xff08;如LED、LCD、按键等&#xff09;的状态&#xff0c;也可以接收外部设备的状态&#xff08;如传感器…

掌握使用 React 和 Ant Design 的个人博客艺术之美

文章目录 前言在React的海洋中起航安装 Create React App安装Ant Design 打造个性化的博客风格通过路由实现多页面美化与样式定制部署与分享总结 前言 在当今数字时代&#xff0c;个人博客成为表达观点、分享经验和展示技能的独特平台。在这个互联网浪潮中&#xff0c;选择使用…

Unity 状态模式(实例详解)

文章目录 简介示例1&#xff1a;基础角色状态切换示例2&#xff1a;添加更多角色状态示例3&#xff1a;战斗状态示例4&#xff1a;动画同步状态示例5&#xff1a;状态机管理器示例6&#xff1a;状态间转换的条件触发示例7&#xff1a;多态行为与上下文类 简介 Unity 中的状态模…

【算法题】79. 单词搜索

题目 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水平相邻或…