零基础 | 入门python 07:条件与循环的基本与进阶操作

本文详细介绍了Python中的条件语句,包括if、if-else、elif结构及三目运算,强调了它们在构建程序逻辑中的重要性。此外,还讲解了Python的循环语句,如for和while循环,以及如何利用continue和break简化代码。文章提倡简洁高效的编程风格,提倡通过条件与循环的复用来提高代码质量和效率。
摘要由CSDN通过智能技术生成

前言

之前讲了列表、元组、字典集合和字符串等一系列Python的基本数据结构,但是如何把这一个个基本的数据结构串接起来,组成一手漂亮的代码呢?这就是今天要讨论的条件与循环。(文字较长,文末有视频版学习资料

为什么说它是最基本的

因为它控制着代码的逻辑,可以说是程序的中枢系统。如果把写程序比作盖楼房,那么条件与循环就是楼房的根基,其他所有东西都是在此基础上构建而成。写一手简洁易读的条件与循环代码对提高程序整体的质量至关重要,因为包含大量的代码块。

Python的条件语句

1、 if结构

其语法结构为:

if 条件:

语句组

如何运算:如果条件为真(True)就执行语句组,为假(False)则执行if结构后面的语句。
比如:
在这里插入图片描述
其中:!= :表示不等于;

== :表示等于(用于判断语句)

条件后的冒号(😃:代表当前这一行语句没有结束,不能漏掉。

注意:汉语拼音容易存在歧义,写代码时最好用英语。

补充:若将所有的代码加注释,可以用快捷键:Alt + 3

多行加注释代码取消注释,可以用快捷键:Alt + 4

2、 if-else结构

其语法结构为:

if 条件 :

    语句组1

else:

    语句组2

如何运算:如果条件为真(True)就执行语句组1,然后跳过else语句和语句2,继续执行后面的语句。如果条件为假(False)就执行语句组2,然后继续执行后面的语句。

补:if:关键字,用于判断语句,有“如果”的意思,后面跟上判断语句。

    else:常和“if”连用,有否则的意思,后面直接跟上冒号“:”。

比如:
在这里插入图片描述

3、 elif结构

其语法结构为:

if 条件1 :

    语句组1

elif 条件2 :

    语句组2

elif 条件3 :

    语句组3

……

elif 条件n :

    语句组n

else:

    语句组n+1

何时适用:

(1)当条件多于两种情况时,就要加上elif语句;

(2)如果条件只有两种情况时,通过if-else结构来执行判断;多种情况时,可以使用elif保证在一个判断当中,否则会进行多次判断,增加程序运行时间。

比如:
在这里插入图片描述
注意:elif只能跟在if后面,不能自己单独写。

4、 三目运算

其语法结构为:

True if 条件 else False

注:True的位置是判断为真时返回的值;

    False的位置是判断为假时返回的值。

比如:

在这里插入图片描述
三目运算同样也是判断,但是要相当简洁,这样可以节省很多代码,让代码看起来更加简洁。

注:只有简单的if判断可以使用,过于复杂的判断就不要使用了,否则会影响代码的可读性。

补:

如何在交互模式同时定义多个变量:

比如:
在这里插入图片描述

python循环语句

所谓循环,顾名思义,本质上就是便利集合中的元素。和其他语言一样,Python中的循环一般通过for循环和while循环来实现。比如我们有一个列表,需要遍历列表中的所有元素并打印输出。
在这里插入图片描述

其实Python中的数据结构只要是可迭代的,比如列表、集合等等,那么他们都可以通过下面这种方式来遍历:
在这里插入图片描述

这里需要单独强调一下字典,字典本身只有键是可迭代的,如果我们要便利它的值或者是键值对,就需要通过其内置的函数values()或者items()来实现。那其中values()返回字典的值的集合,Items()返回键值对的集合。
在这里插入图片描述

看到这里你也许会问,有没有什么办法通过集合中的索引来便利元素呢?当然可以,其实这种情况在实际工作当中呢,还是比较常见的,甚至很多时候我们还得根据索引来做一些条件判断。

我们通常通过range()这个函数拿到索引,再去遍历访问集合中的元素。

当我们同时需要索引和元素时,还有一种更简洁的方式,那就是通过Python内置的函数,enumerate(),用它来遍历集合,不仅返回每个元素,并且还返回其对应的索引。

在循环语句中,我们还经常搭配continue和break一起来使用,所以continue就是让程序跳过当前这层循环,继续执行下面的循环,而break则是指完全跳出所在的整个循环体。在循环中适当加入continue和break,往往能使程序更加简洁易读。

比如给定两个字典,分别是产品名称到价格的映射和产品名称到颜色列表的映射。我们要找出价格小于1000并且颜色不是红色的所有产品名称和颜色的组合。如果不用continue,代码应该是下面这样的:
在这里插入图片描述

而加入continue后,代码显然清晰了很多。
在这里插入图片描述

我们可以看到按照第一个版本的写法,从开始一直到打印输出符合条件的产品名称和颜色,共有五层for或者if的嵌套,但第二个版本加入了continue后,只有三层嵌套。

显然如果代码中出现嵌套里还有嵌套的情况,代码会变得非常冗余,难度也不利于后续的调试和修改。因此呢,我们要尽量避免这种多层嵌套的情况。

前面说了for循环对while循环原理也是一样的,它表示当condition满足时呢,一直重复循环内部的操作,知道condition不再满足就跳出循环体。

那很多时候for循环和while循环可以互相转换,比如要遍列一个列表,我们用while循环同样可以完成。

for循环和while循环的使用场景的区别

那通常来说,如果你只是便利一个已知的集合,找出满足条件的元素并进行相应的操作,那么使用for循环更加简洁。但如果你需在满足某个条件前不停的重复某些操作,并且没有特定的集合需要去便利,那么一般则会使用while循环。

比如某个交互式问答系统,用户输入文字,系统会根据内容做出相应的回答。为了实现这个功能,我们一般会使用while循环,大致的代码如下:
在这里插入图片描述

同时需要注意的是for循环和while循环的效率问题。比如下面的while循环
在这里插入图片描述

和等价的for循环
在这里插入图片描述
究竟哪个效率高呢?要知道,Range函数是直接由C语言写的,调用它速度非常快,而while循环中的i+=1这个操作得通过Python的解释器间接调用底层的C语言,并且呢,这个简单的操作又涉及到了对象的创建和删除,所以显然for循环的效率更胜一筹。

条件与循环的复用

上面说了条件与循环的一些基本操作,接下来重点来看他们的进阶操作,让程序变得更简洁高效。

在阅读代码的时候,你经常会发现有很多将条件与循环并做一行的操作,例如:
在这里插入图片描述

将这个表达式分解开来,其实就等同于下面这样的嵌套结构。
在这里插入图片描述

而如果没有else语句,则需要写成:
在这里插入图片描述

比如我们在处理文件中的字符串时常常遇到的一个场景,将文件中逐行读取的一个完整语句按逗号分割单词,去掉首位的空字符,并过滤掉长度小于3的单词,最后返回由单词组成的列表,这同样可以简洁的表达成一行。
在这里插入图片描述

当然这样的复用并不仅仅局限于一个循环,比如给定两个列表X、Y,要求返回X、Y中所有元素,对组成的元组相等情况除外,那么也可以很容易用复用形式表示出来,
在这里插入图片描述
而这样的写法就等价于:
在这里插入图片描述

熟练之后你会发现这种写法非常方便。当然,如果遇到逻辑很复杂的复用,你可能会觉得写成一行难以理解,容易出错,那种情况下,用正常的形式表达也不失为一种好的规范和选择。

总结

强调几个易错的地方:

第一个,在条件语句中,If可以单独使用,但是elif和else必须和if同时搭配使用,而if条件语句的判断,除了boolean类型外,其他的最好显示出来。

第二个,在for循环中,如果需要同时访问索引和元素,你可以使用enumerate()函数来简化代码。

第三个写条件与循环时,合理利用continue或者break来避免复杂的嵌套是十分重要的。

第四个要注意条件与循环的复用,简单功能往往可以用一行直接完成,极大的提高代码质量与效率。

视频版学习

零基础Python学习指南

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈


👉资料领取👈

这份完整版的Python全套学习资料已为大家备好,朋友们如果需要可以微信扫描下方二维码添加“住隔壁的王叔”,输入"领取资料" 可免费领取全套资料【有什么需要协作的还可以随时联系我】朋友圈也会不定时的更新最前言python知识。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值