小白都能学会的Python基础 第三讲:Python最重要的三大语句详解
时间:2023-04-29 15:07:00
1.华小智系列 - Python基础(案例版)
《Python基础》目录
- 第三讲:Python三个最重要的句子详细说明
-
- 1、If详细说明和实践句子
- 2、For详细说明和实践句子
- 3、While详细说明和实践句子
- 4.本章练习
- 5.课程相关资源
第三讲:Python三个最重要的句子详细说明
配套书籍:《Python第一章金融大数据挖掘与分析全过程详解
配套书籍:《Python大数据分析与机器学习商业案例实战第一章
标题说这三句话是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 查看。(点击可直接获取。)