热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python之循环

循环目标程序的三大流程while循环基本使用break和continuewhile循环嵌套01.程序的三大流程在程序开发中,一共有三种流程方式:

循环


目标


  • 程序的三大流程
  • while 循环基本使用
  • break 和 continue
  • while 循环嵌套

01. 程序的三大流程


  • 在程序开发中,一共有三种流程方式:
    • 顺序 —— 从上向下,顺序执行代码
    • 分支 —— 根据条件判断,决定执行代码的 分支
    • 循环 —— 让 特定代码 重复 执行

02. while 循环基本使用


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

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

  • 需求 —— 打印 5 遍 Hello Python

  • 思考 —— 如果要求打印 100 遍怎么办?


2.1 while 语句基本语法

初始条件设置 —— 通常是重复执行的 计数器while 条件(判断 计数器 是否达到 目标次数):条件满足时,做的事情1条件满足时,做的事情2条件满足时,做的事情3...(省略)...处理条件(计数器 + 1)

注意:


  • while 语句以及缩进部分是一个 完整的代码块

第一个 while 循环

需求


  • 打印 5 遍 Hello Python

# 1. 定义重复次数计数器
i = 1# 2. 使用 while 判断条件
while i <&#61; 5:# 要重复执行的代码print("Hello Python")# 处理计数器 ii &#61; i &#43; 1print("循环结束后的 i &#61; %d" % i)

注意&#xff1a;循环结束后&#xff0c;之前定义的计数器条件的数值是依旧存在的



死循环


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



2.2 赋值运算符


  • 在 Python 中&#xff0c;使用 &#61; 可以给变量赋值
  • 在算术运算时&#xff0c;为了简化代码的编写&#xff0c;Python 还提供了一系列的 与 算术运算符 对应的 赋值运算符
  • 注意&#xff1a;赋值运算符中间不能使用空格

运算符描述实例
&#61;简单的赋值运算符c &#61; a &#43; b 将 a &#43; b 的运算结果赋值为 c
&#43;&#61;加法赋值运算符c &#43;&#61; a 等效于 c &#61; c &#43; a
-&#61;减法赋值运算符c -&#61; a 等效于 c &#61; c - a
*&#61;乘法赋值运算符c *&#61; a 等效于 c &#61; c * a
/&#61;除法赋值运算符c /&#61; a 等效于 c &#61; c / a
//&#61;取整除赋值运算符c //&#61; a 等效于 c &#61; c // a
%&#61; (余数)赋值运算符c %&#61; a 等效于 c &#61; c % a
**&#61;幂赋值运算符c **&#61; a 等效于 c &#61; c ** a

2.3 Python 中的计数方法

常见的计数方法有两种&#xff0c;可以分别称为&#xff1a;


  • 自然计数法&#xff08;从 1 开始&#xff09;—— 更符合人类的习惯
  • 程序计数法&#xff08;从 0 开始&#xff09;—— 几乎所有的程序语言都选择从 0 开始计数

因此&#xff0c;大家在编写程序时&#xff0c;应该尽量养成习惯&#xff1a;除非需求的特殊要求&#xff0c;否则 循环 的计数都从 0 开始


2.4 循环计算


在程序开发中&#xff0c;通常会遇到 利用循环 重复计算 的需求


遇到这种需求&#xff0c;可以&#xff1a;


  1. while 上方定义一个变量&#xff0c;用于 存放最终计算结果
  2. 在循环体内部&#xff0c;每次循环都用 最新的计算结果&#xff0c;更新 之前定义的变量

需求


  • 计算 0 ~ 100 之间所有数字的累计求和结果

# 计算 0 ~ 100 之间所有数字的累计求和结果
# 0. 定义最终结果的变量
result &#61; 0# 1. 定义一个整数的变量记录循环的次数
i &#61; 0# 2. 开始循环
while i <&#61; 100:print(i)# 每一次循环&#xff0c;都让 result 这个变量和 i 这个计数器相加result &#43;&#61; i# 处理计数器i &#43;&#61; 1print("0~100之间的数字求和结果 &#61; %d" % result)

需求进阶


  • 计算 0 ~ 100 之间 所有 偶数 的累计求和结果

开发步骤


  1. 编写循环 确认 要计算的数字
  2. 添加 结果 变量&#xff0c;在循环内部 处理计算结果

# 0. 最终结果
result &#61; 0# 1. 计数器
i &#61; 0# 2. 开始循环
while i <&#61; 100:# 判断偶数if i % 2 &#61;&#61; 0:print(i)result &#43;&#61; i# 处理计数器i &#43;&#61; 1print("0~100之间偶数求和结果 &#61; %d" % result)

03. break 和 continue


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



  • break 某一条件满足时&#xff0c;退出循环&#xff0c;不再执行后续重复的代码
  • continue 某一条件满足时&#xff0c;不执行后续重复的代码

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



3.1 break


  • 在循环过程中&#xff0c;如果 某一个条件满足后&#xff0c; 再希望 循环继续执行&#xff0c;可以使用 break 退出循环

i &#61; 0while i < 10:# break 某一条件满足时&#xff0c;退出循环&#xff0c;不再执行后续重复的代码# i &#61;&#61; 3if i &#61;&#61; 3:breakprint(i)i &#43;&#61; 1print("over")

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



3.2 continue


  • 在循环过程中&#xff0c;如果 某一个条件满足后&#xff0c; 希望 执行循环代码&#xff0c;但是又不希望退出循环&#xff0c;可以使用 continue
  • 也就是&#xff1a;在整个循环中&#xff0c;只有某些条件&#xff0c;不需要执行循环代码&#xff0c;而其他条件都需要执行

i &#61; 0while i < 10:# 当 i &#61;&#61; 7 时&#xff0c;不希望执行需要重复执行的代码if i &#61;&#61; 7:# 在使用 continue 之前&#xff0c;同样应该修改计数器# 否则会出现死循环i &#43;&#61; 1continue# 重复执行的代码print(i)i &#43;&#61; 1

  • 需要注意&#xff1a;使用 continue 时&#xff0c;条件处理部分的代码&#xff0c;需要特别注意&#xff0c;不小心会出现 死循环

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



04. while 循环嵌套


4.1 循环嵌套


  • while 嵌套就是&#xff1a;while 里面还有 while

while 条件 1:条件满足时&#xff0c;做的事情1条件满足时&#xff0c;做的事情2条件满足时&#xff0c;做的事情3...(省略)...while 条件 2:条件满足时&#xff0c;做的事情1条件满足时&#xff0c;做的事情2条件满足时&#xff0c;做的事情3...(省略)...处理条件 2处理条件 1

4.2 循环嵌套演练 —— 九九乘法表


第 1 步&#xff1a;用嵌套打印小星星

需求


  • 在控制台连续输出五行 *&#xff0c;每一行星号的数量依次递增

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

  • 使用字符串 * 打印

# 1. 定义一个计数器变量&#xff0c;从数字1开始&#xff0c;循环会比较方便
row &#61; 1while row <&#61; 5:print("*" * row)row &#43;&#61; 1

第 2 步&#xff1a;使用循环嵌套打印小星星

知识点print 函数的使用做一个增强


  • 在默认情况下&#xff0c;print 函数输出内容之后&#xff0c;会自动在内容末尾增加换行

  • 如果不希望末尾增加换行&#xff0c;可以在 print 函数输出内容的后面增加 , end&#61;""

  • 其中 "" 中间可以指定 print 函数输出内容之后&#xff0c;继续希望显示的内容

  • 语法格式如下&#xff1a;

# 向控制台输出内容结束之后&#xff0c;不会换行
print("*", end&#61;"")# 单纯的换行
print("")

end&#61;"" 表示向控制台输出内容结束之后&#xff0c;不会换行


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

需求


  • 在控制台连续输出五行 *&#xff0c;每一行星号的数量依次递增

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

开发步骤


  • 1> 完成 5 行内容的简单输出
  • 2> 分析每行内部的 * 应该如何处理&#xff1f;
    • 每行显示的星星和当前所在的行数是一致的
    • 嵌套一个小的循环&#xff0c;专门处理每一行中 的星星显示

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

第 3 步&#xff1a; 九九乘法表

需求 输出 九九乘法表&#xff0c;格式如下&#xff1a;

1 * 1 &#61; 1
1 * 2 &#61; 2 2 * 2 &#61; 4
1 * 3 &#61; 3 2 * 3 &#61; 6 3 * 3 &#61; 9
1 * 4 &#61; 4 2 * 4 &#61; 8 3 * 4 &#61; 12 4 * 4 &#61; 16
1 * 5 &#61; 5 2 * 5 &#61; 10 3 * 5 &#61; 15 4 * 5 &#61; 20 5 * 5 &#61; 25
1 * 6 &#61; 6 2 * 6 &#61; 12 3 * 6 &#61; 18 4 * 6 &#61; 24 5 * 6 &#61; 30 6 * 6 &#61; 36
1 * 7 &#61; 7 2 * 7 &#61; 14 3 * 7 &#61; 21 4 * 7 &#61; 28 5 * 7 &#61; 35 6 * 7 &#61; 42 7 * 7 &#61; 49
1 * 8 &#61; 8 2 * 8 &#61; 16 3 * 8 &#61; 24 4 * 8 &#61; 32 5 * 8 &#61; 40 6 * 8 &#61; 48 7 * 8 &#61; 56 8 * 8 &#61; 64
1 * 9 &#61; 9 2 * 9 &#61; 18 3 * 9 &#61; 27 4 * 9 &#61; 36 5 * 9 &#61; 45 6 * 9 &#61; 54 7 * 9 &#61; 63 8 * 9 &#61; 72 9 * 9 &#61; 81

开发步骤


    1. 打印 9 行小星星

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

    1. 将每一个 * 替换成对应的行与列相乘

# 定义起始行
row &#61; 1# 最大打印 9 行
while row <&#61; 9:# 定义起始列col &#61; 1# 最大打印 row 列while col <&#61; row:# end &#61; ""&#xff0c;表示输出结束后&#xff0c;不换行# "\t" 可以在控制台输出一个制表符&#xff0c;协助在输出文本时对齐print("%d * %d &#61; %d" % (col, row, row * col), end&#61;"\t")# 列数 &#43; 1col &#43;&#61; 1# 一行打印完成的换行print("")# 行数 &#43; 1row &#43;&#61; 1

字符串中的转义字符


  • \t 在控制台输出一个 制表符&#xff0c;协助在输出文本时 垂直方向 保持对齐
  • \n 在控制台输出一个 换行符

制表符 的功能是在不使用表格的情况下在 垂直方向 按列对齐文本



转义字符描述
\\反斜杠符号
\’单引号
\"双引号
\n换行
\t横向制表符
\r回车

推荐阅读
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了使用Python根据字典中的值进行排序的方法,并给出了实验结果。通过将字典转化为记录项,可以按照字典中的值进行排序操作。实验结果显示,按照值进行排序后的记录项为[('b', 2), ('a', 3)]。 ... [详细]
  • Python如何调用类里面的方法
    本文介绍了在Python中调用同一个类中的方法需要加上self参数,并且规范写法要求每个函数的第一个参数都为self。同时还介绍了如何调用另一个类中的方法。详细内容请阅读剩余部分。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Python版Protobuf的安装和使用方法,包括版本选择、编译配置、示例代码等内容。通过学习本教程,您将了解如何在Python中使用Protobuf进行数据序列化和反序列化操作,以及相关的注意事项和技巧。 ... [详细]
  • 本文介绍了多因子选股模型在实际中的构建步骤,包括风险源分析、因子筛选和体系构建,并进行了模拟实证回测。在风险源分析中,从宏观、行业、公司和特殊因素四个角度分析了影响资产价格的因素。具体包括宏观经济运行和宏经济政策对证券市场的影响,以及行业类型、行业生命周期和行业政策对股票价格的影响。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
author-avatar
mobiledu2502868653
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有