Python学习基础笔记六十八——循环

news2024/11/24 6:35:28

循环是编程语言常见的流程控制。

Python语句要让计算机反复地做一些事情,就要用到循环语句。

有While和for循环。

while循环:

command = input("请输入命令:")
while command != 'exit':
    print(f'输入的命令是{command}')
    command = input("请输入命令")

while循环是:检查一个条件表达式,只要条件表达式计算结果为True,就会执行下面缩进的代码。

如此反复执行,如果条件表达式为False,就结束循环。

command != 'exit'  这是一个条件表达式,判断输入的command这个变量值是否等于exit。

如果不等于,就开始执行下面缩进的代码,就是循环体中的代码,这个代码中还会让用户再次输入值到command。

如果用户输入的command,一直都不是exit,就会一直执行循环。

如果输入的comand等于exit,就结束循环。

这段代码写的还是比较麻烦。这样写有点啰嗦。

如果这个表达式永远为True,那么这个循环就永远不退出循环,一直处于运行状态。就变成死循环。也就是循环条件都是成立的。

死循环不一定代表这个程序是有问题的。看你程序的意图和目的来定的。

从1打印到100的代码:

i = 1
while i <= 100:
    print(i, end=" ")
    i += 1

for循环:

for循环的用法:

for循环,通常是从一个sequence类型,比如字符串、列表或者元组中依次取出每个元素进行操作。

studentAges = ['小王:17', '小赵:16', '小李:17', '小孙:16', '小徐:18']

for student in studentAges:
    print(student)

for student in studentAgs:  这个student变量依次代表了studentAges里面的每个元素,执行下面的缩进的代码print(student)。

依次的意思:

第一次循环是取出第一个元素。

然后第二次循环是取出第二个元素。

……

如果操作一个空列表:

for i in []:
    print(i)

循环n次:

开发程序的时候,我们经常需要循环执行某段代码n次。

for n in range(10):
    print(n)

打印出来是从0到9。从0到range里面参数值-1的这个范围。

这段代码使用的是for语句和一个内置类型range

python3中,range不是一个函数,不会返回一个数字列表,python3中range是一个类。

不想从0开始打印,而是从某个值开始,如果打印从50到60的数字。

可以使用range(50, 61) 也是那个概念:顾头不顾尾。

for n in range(50, 61):
    print(n, end=" ")

enumerate函数:

有的时候,在使用for循环从列表或者元组中遍历元素的时候,除了要取得每个元素,还需要得到每个元素在列表或元组里面的索引。

比如要从下面列表中找出年龄大于17的学员,并打印他们在列表中的索引。

studentAges = ['小王:17', '小赵:16', '小李:18', '小孙:16', '小徐:18']

这个时候就可以使用enumerate函数。

studentAges = ['小王:17', '小赵:16', '小李:17', '小孙:16', '小徐:18']

for idx, student in enumerate(studentAges):
    if int(student.split(':')[1]) > 17:
        print(idx)
        print(student.split(":")[0])
        print(student.split(":")[1])

break终止循环:

有的时候,我们循环体中的代码发现满足某个条件,就需要终止循环。

我们使用关键字break:

while True:
    command = input("请输入命令:")
    if command == 'exit':
        break
    print(f'输入的命令是{command}')

输入exit就直接退出循环。

这段代码的终止条件不是通过while循环的条件判断语句来进行判断的。而是通过if语句,其中有break语句。

解释器执行到循环语句中的break语句,就会从循环while退出。

break是非常常用的。

函数中的break和return:

return只能用在函数里面,表示从函数中返回。

return语句表示从函数中返回,它是不能用在函数外边的。

但是在函数中的循环体内的代码,使用return和break都可以从循环体中跳出。但是break只是跳出循环,如果循环后面有代码,还是会执行的。

return表示会从函数里面立即返回,函数体里的任何代码都不执行了。

continue语句:

break是立即跳出循环。以后的循环就不执行了。

有的时候,我们循环体内的代码在发现某个条件满足的时候,不是要终止整个循环,而是只结束当前这一轮循环,后面还要继续循环的执行。

while True:
    command = input("请输入命令:")
    if command == 'exit':
        break
    if command == 'cont':
        continue
    print(f'输入的命令是{command}')

print('程序结束')

当输入cont的时候,就执行continue语句,是结束本次循环。不打印这个命令的那条语句,但还是让用户继续输入下一个命令。

列表推导式:

我们经常需要这样处理一个列表,把列表里的每个元素,经过相同的处理,生成另一个列表。

list1 = [1,2,3,4,5,6]
list2 = [num**2 for num in list1]

print(list2)

那这种写法,通常叫做列表推导式。

这个是经常使用到的列表推导式。这样写就比较省事。

循环嵌套:

这是典型的 2个列表元素两两组合的问题:

list1 = ['关羽','张飞','赵云','马超','黄忠']
list2 = ['典韦','许褚','张辽','夏侯惇','夏侯渊']

for member1 in list1:
    for member2 in list2:
        print(f'{member1} 大战 {member2}')

需要使用到循环的嵌套。

所谓的循环的嵌套,就是循环中还有循环。

内部的代码都要执行完,才能执行外部的循环代码。

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

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

相关文章

15. Java反射和注解

Java —— 反射和注解 1. 反射2. 注解 1. 反射 动态语言&#xff1a;变量的类型和属性可以在运行时动态确定&#xff0c;而不需要在编译时指定 常见动态语言&#xff1a;Python&#xff0c;JavaScript&#xff0c;Ruby&#xff0c;PHP&#xff0c;Perl&#xff1b;常见静态语言…

SAP报错CX_SY DYN CALL PARAM MISSING

DYN CALL METH PARAM MISSING CX_SY DYN CALL PARAM MISSING 在 ABAP 中&#xff0c;当你定义一个方法时&#xff0c;可以选择将方法的参数标记为可选&#xff08;可选参数&#xff09;或必需&#xff08;必需参数&#xff09;。如果你不勾选可选参数选项&#xff0c;那么该参…

【AI视野·今日Sound 声学论文速览 第二十五期】Fri, 13 Oct 2023

AI视野今日CS.Sound 声学论文速览 Fri, 13 Oct 2023 Totally 8 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Impact of time and note duration tokenizations on deep learning symbolic music modeling Authors Nathan Fradet, Nicolas Gutowski,…

Sentinel-2 命名规则(Naming Convention)

下述命名规则是2019年12月6日颁布的&#xff0c;自此之后的L1C级别产品都按照这个规则命名&#xff08;其他级别的产品官网没说&#xff09;。 下载下来的文件是个zip&#xff0c;解压后是个与zip同名的 .SAFE 文件。 MMM_MSIXXX_YYYYMMDDHHMMSS_Nxxyy_ROOO_Tnnmab_<Produ…

Modelsim查看波形窗口内断言(SVA)消息指示器

步骤1&#xff1a;创建工程并编译完成 在相应目录下创建好工程并编译无错误后&#xff1b; 步骤二&#xff1a; 在菜单栏中选择“Simulate”—>“Start Simulation”—>“Others”,在“Others Vsim Options”中输入 -msgmode both -displaymsgmode both 步骤三&#xf…

Leetcode——数组的改变、移动练习

453. 最小操作次数使数组元素相等 本人答案超时 class Solution { public:int minMoves(vector<int>& nums) {int len nums.size();int count 0;if (len 1) {count 0;}else {while (nums[0] ! nums[1] || nums[len - 2] ! nums[len - 1]) {for (int i 0; i <…

搭建一个vscode+uni+vue的小程序项目

我们使用 vue2 创建工程作为示例&#xff0c;uni-app中Vue2版的组件库和插件也比较多&#xff0c;稳定、问题少&#xff0c;可以先参考下官方文档:uni-app官网 既然是使用vue脚手架&#xff0c;那肯定要全局安装vue/cli&#xff0c;已安装的可以跳过。 注意&#xff1a;Vue2创…

面试题-React(十二):React中不可变数据的力量

一、不可变数据的概念 不可变数据意味着数据一旦创建&#xff0c;就不能被更改。在React中&#xff0c;每次对数据的修改都会返回一个新的数据副本&#xff0c;而不会改变原始数据。这种方式确保了数据的稳定性和一致性。 二、Props中的不可变数据 在React中&#xff0c;组件…

【数据结构】:二叉树与堆排序的实现

1.树概念及结构(了解) 1.1树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的有一个特殊的结点&#…

湖南省人才档案查询

湖南省人才档案查询 微信中查询智慧人社公众号 进入智慧人社公众号&#xff0c;点击智慧人社按钮 点击人才档案查询 查看档案信息

chapter8 Dimensionality Reduction(降维)

设置 首先&#xff0c;确保代码在python2和python3中都能正常工作&#xff0c;导入一些通用模块&#xff0c;确保MatplotLib以内联方式绘制图形&#xff0c;并准备一个函数来保存这些图形: from __future__ import division,print_function,unicode_literalsimport numpy as …

异星工场入门笔记-01

两年前玩过一点&#xff0c;不看教程&#xff0c;单纯地开放世界自己探索&#xff0c;没有同类游戏经验&#xff0c;因此很难有获得感所以放弃了。现在正版游戏涨到130&#xff0c;看在逆势上涨的份上&#xff0c;我倒想继续探索下这个游戏的价值。 玩魔方&#xff0c;记教程步…

深度学习之使用CSDN的InsCode的服务器

CSDN开启了一个InsCode的栏目&#xff0c;在里面可以部署自己的项目&#xff0c;同时可以租赁GPU服务器&#xff1a; 由于博主在CSDN有些积蓄&#xff0c;因此便来测评一下&#xff0c;博主购买了3090这个型号 接下来便是登录使用了&#xff0c;博主使用的是Mobaxterm这个软件&…

彻底解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)

彻底解决Qt中文乱码以及汉字编码的问题&#xff08;UTF-8/GBK&#xff09; Chapter1 (彻底解决Qt中文乱码以及汉字编码的问题&#xff08;UTF-8/GBK&#xff09;一、Qt Creator环境设置二、编码知识科普Qt常见的两种编码是:UTF-8和GBK 三、编码转换四、QString显示中文乱码的原…

铜死亡+多组机器学习+WGCNA+分型

今天给同学们分享一篇铜死亡多组机器学习WGCNA分型的生信文章“Machine learning screening for Parkinsons disease-related cuproptosis-related typing development and validation and exploration of personalized drugs for cuproptosis genes”&#xff0c;这篇文章于20…

3.3 封装性

思维导图&#xff1a; 3.3.1 为什么要封装 ### 3.3.1 为什么要封装 **封装**&#xff0c;在Java的面向对象编程中&#xff0c;是一个核心的思想。它主要是为了保护对象的状态不被外部随意修改&#xff0c;确保数据的完整性和安全性。 #### **核心思想&#xff1a;** - 保护…

TSINGSEE青犀智能分析网关如何助力别墅区域监控智能化信息化发展?

谈到别墅&#xff0c;大家一般都会想到花园、草坪、泳池等等&#xff0c;联想到的都是舒适放松的环境。别墅优美环境是不可否认的&#xff0c;但是别墅占地大、空间广、人员稀少也使得常常被盗贼“光顾”&#xff0c;即使别墅一般都会配备保安进行巡逻检查&#xff0c;但传统人…

【python编程】python无法import模块的一种原因分析

python系统路径添加错误 报错原因原因分析解决办法补充 最近写代码的时候遇到一个问题&#xff0c;就是想添加工程下fu_convert文件夹下自己编写的convert_fw.py模块&#xff0c;但是出现报错&#xff0c;是个比较低级的问题&#xff0c;但还是简单记录一下 报错原因 无法找到…

PHP遇见错误了看不懂?这些错误提示你必须搞懂

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《速学数据结构》 《C语言进阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 一、错误分类二、系统错误&#xff1a;2.1 编译错误2.2 致命错误2.3 警告错误2.4 通知错误 三、用户错误3.1 错…