小白都能学会的Python基础 第三讲:Python最重要的三大语句详解

本文深入浅出地介绍了Python编程中的三大关键语句:If语句、For语句和While语句。通过实例解析它们的用法,包括If的条件判断、For的循环操作和While的无限循环。适合初学者理解和掌握Python的基础语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.华小智系列 - Python基础(案例版)

第三讲:Python最重要的三大语句详解

配套书籍:《Python金融大数据挖掘与分析全流程详解》第1章
配套书籍:《Python大数据分析与机器学习商业案例实战》第1章
标题说这三大语句是python最重要的三大语句,其实可以说下面的三大语句是几乎所有编程语言最重要的几个语句,当你学到后来,你会发现很多时候,你写来写去就是if,for,while。因为这个涉及所有编程语言的一些底层逻辑:判断 & 循环。下面我们就来详细讲解一下,其实有的内容之前已经或多或少提到过了。

1、If语句详解与实践

之前已经用过很多次If函数了,这边我再做一个简单介绍和一些新内容的补充吧,If函数的底层逻辑就是用来判断,如果满足条件则执行下面的语句。
基本的语法逻辑如下,注意记得写冒号及代码前的缩进

if 条件:
    代码1
else:
    代码2

其中两个注意点,之前也提过了,就是缩进英文格式的标点符号,有的时候,你忘记缩进或者冒号是中文格式的时候,程序就会报错,不过Pycharm和Spyder都会在那一行提醒你这一行的写法有问题,所以倒也不用太担心。
现在我们再来看看之前写过这个代码,是不是会感觉清晰很多呢。

score = 100
year = 2018
if (score < 0) and (year == 2018):
    print('录入数据库')
else:
    print('不录入数据库')

我们下面再补充些内容,其实掌握上面的内容已经完全足够了,下面的只是作为一个知识点的补充。比如你考试考了80分,最简单的是:

score = 85
if score >= 60:
    print('及格')
else:
    print('不及格')

我相信现在大家看这个代码已经完全没有问题了,输出肯定是‘及格’。那如果我除了想判断是否及格外,还想看它是否优秀(大于80分),则输出‘优秀’,该怎么弄呢。

score = 55
if score >= 80:
    print('优秀')
elif (score >= 60) and (score < 80):
    print('及格')
else:
    print('不及格')

这边唯一的一个不同,就是中间加入了一个elif,这个其实就是elseif的缩写,用来提供多个结果使用的,
其实这个我做项目的时候基本没有用过,大家简单了解下即可。

2、For语句详解与实践

For语句之前有提到过一次,它的重要程度可以说仅次于If语句了,它的底层逻辑是循环,其实While的底层逻辑是循环,不过还是For用的更加普遍些。
For语句的常见使用格式为,注意记得写冒号及代码前的缩进

for i in 区域:
    代码

先举个之前讲列表的时候讲过的例子:

class1 = ['丁一', '王二麻子', '张三', '李四', '赵五']
for i in class1:
    print(i)

用大白话来说就是:

列表class1 = ['丁一', '王二麻子', '张三', '李四', '赵五']
对于class1中的所有元素i:
    我们都把它打印输出出来

这个输出代码为:

丁一
王二麻子
张三
李四
赵五

这个i可以换成任何东西,比如你换成j,换成一个字符串,只要和下面的print()里面的内容匹配即可。
比如我们可以写:

class1 = ['丁一', '王二麻子', '张三', '李四', '赵五']
for haha in class1:
    print(haha)

这样输出的结果其实是一样的。
For语句还通常与range()函数合用,range函数的话其实就是一个类似于list的东西,只不过它可能更像list的长度,你想循环多少次,在range的括号里填写几就可以,比如我写for i in range(3),那么它就是循环3次:

for i in range(3):
    print('hahaha')

这个它就会输出三行‘hahaha’。
我担心大家可能会对这个for i in range(3)中的i还有疑惑,刚刚i不是代表列表里的每一个元素吗,这边这个i又是什么意思呢?这边我给大家做一个偷懒的总结:
(1)对于"for i in 区域"来说,如果说这个区域是一个列表,那么那个i就表示这个列表里的每一个元素
(2)对于"for i in 区域"来说,如果说这个区域是一个range(n),那么那个i就表示0到n -1这n个数字,之前提到过,python中序号都是从0开始的,所以这边也是从0开始,到n - 1结束。
(3)对于"for i in 区域"来说,如果说这个区域是一个字典,那么i表示的就是字典的中的键(了解即可,很长一段时间用不到)
还有个非常重要的知识点:for i in range(5)的话,它的确会循环5次,但要注意,在python中,第一个元素的序号其实是0,所以如果我们输入如下代码:

for i in range(5):
    print(i)

那么输出的结果是从0开始的,也就是0到4

0
1
2
3
4

这时候你可能要问,这玩意有什么用?下面我就以舆情监控中的实战来给大家讲解下for语句在爬虫实战中的应用:

title = ['标题1','标题2','标题3','标题4','标题5']
for i in range(len(title)): #len(title)表示一个有多少个新闻,这里是5
    print(str(i+1) + '.' + title[i]) #这个其实把字符串进行一个拼接

上面这几行代码已经很大程度就是你做项目实战用到的代码了,暂时看着有点晕也没有关系,我在教学视频里会详细介绍下的。我先用大白话来解释下这几行代码在干嘛:

爬到了一些新闻标题,放到了title这个列表里
用len(title)来获取一共有多少条新闻,并利用for和range语句来进行循环:
    打印输出新闻标题,并且在前面加上序号

输出结果如下图所示:
在这里插入图片描述
其中有几个小注意点
(1)range(len(title))这边就相当于range(5),因为len(title)就等于5,所以for i in range(len(title))就是循环5次,这里的i就表示数字0-4
(2)为什么要写str(i + 1),因为我们要标序号,'标题1’是字符串形式的,而i是数字,我们讲过数字和字符串不能直接相加,所以要用str函数进行下转换。
(3)至于为什么不是str(i),而是str(i + 1)。是因为之前讲列表的时候提到过,在编程中,第一个序号都是0,比如之前列表里讲过的class1[0]表示“丁一”一样,这边如果写str(i)的话,那么输出的第一个序号就是“0.标题1”了。
(4)因为这里的i就表示数字0-4,title[i]的话,表示列表中的第i+1个元素,所以title[0]的话就表示第1个元素,title[4]就表示第5个元素。

通过for循环和range()函数和len()函数的联合使用,可以同时打印多个列表中的元素,代码如下:

# 在实战中的应用(可以同时打印多个列表中的内容)
title = ['标题1', '标题2', '标题3', '标题4', '标题5']
href = ['网址1', '网址2', '网址3', '网址4', '网址5']
for i in range(len(title)):  # len(title)表示一个有多少个新闻,这里是5;这里的i就表示数字0-4
    print(str(i+1) + '.' + title[i])  # 这个其实把字符串进行一个拼接
    print(href[i])

3、While语句详解与实践

While的底层逻辑也是循环,它和For的特点不一样,最大的区别是For知道循环次数,而While的话则是不清楚循环次数。
其使用格式为,注意要写冒号以及代码前的缩进

while 条件:
    要执行的的代码

举个例子给大家看下:

a = 1
while a < 3:
    print(a)
    a = a + 1 #或者写成 a += 1 

它白话的意思就是:

首先将1赋值给a
当 a 小于3的时候:
    打印输出a
    a 在原来的基础上加上1

a一开始等于1,满足小于3的条件,会打印输出1,然后a加上1等于2,此时a仍然小于3,所以仍然会执行打印输出的命令,此时打印输出2,然后a在2的基础上加上1等于3,此时a已经不满足小于3的条件了,那么循环此时便终止了。最后输出如下:

1
2

大家可以试着把数字3换成别的数试试看。
其实我们之后大多情况下用到While的时候,就是让While来一直循环(如果用for i in range(n),无论n多大,那么早晚都有结束的时候),这个在爬虫实战中的具体应用是:当每爬完一次,就自动进行下一次爬取,实现24小时不间断爬取。那么While如何能实现一直循环呢?
具体的方法其实很简单,那就用while True进行永久循环。

while True:
    代码块

给大家截个图看下,下面这张图就是最终的代码效果,这个while True就是舆情监控系统实现24小时不间断爬取的秘诀,有个注意点,这个True得大写首字母,之后讲到的时候再详细介绍:
在这里插入图片描述
大家如果想停止while True的不停的循环,可以在点击右上角在这里插入图片描述的红色终止按钮即可。我当初自己学的时候,写过这么两行代码:

while True:
    print('hahaha')

大家可以自己试一下,效果也是挺鬼畜的,lol。

补充知识点:break跳出循环

a = 1
while True:
    if a < 5:
        print(a)
        a = a + 1
    else:
        break

执行结果如下:

1
2
3
4

对于for循环也是一样的道理:

a = 1
for i in range(100):
    if a < 5:
        print(a)
        a = a + 1
    else:
        break

执行结果如下:

1
2
3
4

4、本章练习题

习题1.设定分数为10分,公司名为“华能信托”,if判断,如果分数大于0分,且公司名为:华能信托,则打印“成功”;否则打印”失败“

习题2.创建两个列表:标题和网址,每个列表3个元素,分别打印每个列表中的内容;并利用字符串拼接打印序号

习题3.已知score = 50,单纯用if和else来设置 优秀/及格/不及格 的多重判断,划分点为80分和60分。

习题4.打印1-100内的奇数

答案(先自己做一遍再看答案):
答案1:

score = 10
company = '华能信托'
if score > 0 and company == '华能信托':
    print('成功')
else:
    print('失败')

答案2:

a = ['bt1', 'bt2', 'bt3']
b = ['wz1', 'wz2', 'wz3']
for i in range(len(a)):
    print(str(i+1) + '.' + a[i])
    print(b[i])

答案3:

score = 50

if score >= 80:
    print('优秀')
else:
    if score > 60:
        print('及格')
    else:
        print('不及格')

答案4:
方法1:

for i in range(50):
    print(i * 2 + 1)

方法2:

for i in range(100):
    if i % 2 == 1:  # % 是取余数的意思
        print(i)

5、课程相关资源

拓展:Python进阶的其他应用
https://shimo.im/docs/vp6KVJXR8tqWxgXR/ 《华小智智能平台课程(课表)》,可复制链接后用石墨文档 App 或小程序打开

Python软件下载地址
2020软件最新安装教程(附软件):https://shimo.im/docs/Y6cG9gx8djkvT86R/ 《Python 2020最新安装教程(巨详细版)》

备选:Anaconda(这个就是Python的安装包)&Pycharm&Wampserver网盘下载地址:
链接: https://pan.baidu.com/s/1DWJ5ptC7jrkNr5IXPkD9Rw 提取码: p8w8

课程源代码地址
获取方式1:石墨文档获取
在这里插入图片描述
(电脑浏览器端打开(需微信扫码登录石墨文档),然后点击下载)

获取方式2:个人网站获取
访问笔者个人网站的下载专区:edu.huaxiaozhi.com/download,然后点击下载。
在这里插入图片描述
获取方式3:微信号获取
添加如下微信:huaxz001,和小助理沟通获取源代码。
在这里插入图片描述
京东链接https://search.jd.com/Search?keyword=王宇韬,搜索“王宇韬”,在淘宝、当当也可购买。加入学习交流群,可以添加如下微信:huaxz001(请注明缘由)。

各类课程可在网易云51CTO** 搜索王宇韬,进行查看。
在这里插入图片描述
在这里插入图片描述

本课程 Python基础(案例版):可在网易云51CTO 查看。(点击可直接获取。)
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值