爬虫怎麽爬 从零开始的爬虫自学 DAY15 python回圈

前言

各位早安,书接上回我们说到条件运算式的用法,今天我们要来介绍程序设计另一个非常重要的工具 回圈

python回圈

回圈是什麽?

回圈就是当我们需要重复做某些事的时候让我们不用一行一行重复打
而是利用回圈的方式实现这个需要
通常回圈会有设定执行几次後停止的条件 里面会放需要重复执行的功能
没有停止条件的回圈称之为无线回圈 会成为不断消耗运算资源的病毒

python for回圈

for 回圈的基本语法

for 变数 in range(起始值,结束值,递增值):
(缩排)要重复执行的程序码

(注意结束值本身不含在内)

简单范例看出用途 印出1到10
一样先建立新档案 loop.py
https://ithelp.ithome.com.tw/upload/images/20210928/20140149FfIiDiZyQS.jpg
相信大家熟到不能再熟了

写一个简单印出1到10

使用 for 回圈前
https://ithelp.ithome.com.tw/upload/images/20210928/20140149CziJuT5y2j.jpg
可以看到一样的事重复十次有够麻烦的

使用 for 回圈後
https://ithelp.ithome.com.tw/upload/images/20210928/201401499GgSPsXZnT.jpg
一样的功能只要两行程序码就完成了
跟原本的十行差距八行
更别说当你需要印一到一百时
这样理解回圈的厉害了吧

for 回圈其他用法

for 回圈不只可以递增 他也可以拿出 list 中的元素或是 string(字串) 中的字元
范例如下

list 的 for 回圈
https://ithelp.ithome.com.tw/upload/images/20210928/20140149S3fjZpF98j.jpg
可以看到 for 回圈会把第一层的元素一个一个抓出来
就算元素是 list 也会按照 list 的格式跟规则呼叫

string 的 for 回圈
https://ithelp.ithome.com.tw/upload/images/20210928/20140149O0scVb2Z4o.jpg
可以看到也是一个字元一个字元抓出来
空格也算一个字元

python while回圈

for 回圈有一个变数来决定执行的次数
但是 while 回圈没有
while 回圈是利用布林值的判断来决定是否终止回圈
当 while 收到 True 则继续执行回圈直到收到 False 才终止回圈执行
因此当你的条件设定有问题就会使这支程序不断执行 害你电脑发烫挂掉
所以我们在条件设定上要小心
当你不小心写出这样的程序 在终端按下 CTRL+C 就可以强制终止它
https://ithelp.ithome.com.tw/upload/images/20210928/20140149Uy95b0VcTK.jpg
就像这样即使只有 True 也可以执行
按下 CTRL+C 强制终止它之後会跑出下面的提示
所以正确的写法是在条件这边设定一个当我想做的次数完成後会变 False 的条件

while 回圈的基本语法

while 条件式:
(缩排)要重复执行的程序码

写一个简单印出1到10

写法如下
https://ithelp.ithome.com.tw/upload/images/20210928/20140149Ha1GTg66QA.jpg
可以看到当 x 变成11时 while 回圈收到条件式的 False 就停止执行了

python 回圈 break

break 就是放在回圈中 一执行到它就结束并跳出回圈

通常会跟 if else 一起用
用找36跟120最小公倍数来当范例
我们使用 while 回圈
https://ithelp.ithome.com.tw/upload/images/20210928/20140149uTzqv1BxSu.jpg
可以看到我在 while 回圈设计上是使用了危险的无限回圈用来测试 break 的功用
我设计的逻辑是一找到36跟120的公倍数时就 break 出来
然後在回圈外 我加了一个 print("end") 用来确认回圈结束了

python 回圈 continue

continue 就是放在回圈中一旦遇到它就跳过後面程序码执行下一次回圈

一样用找36跟120最小公倍数来当范例
https://ithelp.ithome.com.tw/upload/images/20210928/20140149mDCcXL23fp.jpg
可以看到当 if 条件满足(还没找到)
就会跳过下面的 print(x) 跟 break 直接执行下一次回圈

python 回圈 else

在回圈下的 else 就是当回圈全部执行完後会执行 else 内的程序码

(前提是回圈没有被break)

用印出1到10做示范
这次我们用 for 回圈
https://ithelp.ithome.com.tw/upload/images/20210928/20140149CLbGin2Quy.jpg
可以看到回圈结束後 执行了 else 内的 print("end")

那被 break 会怎样呢
https://ithelp.ithome.com.tw/upload/images/20210928/20140149hCjRQAqJDC.jpg
可以看到如果回圈被 break 结束就不会执行 else 内的 print("end")
当次的10也因为被 break 而没有印出来

今天我们学会了回圈跟一些相关语法 又掌握了一个重要技能

到今天为止关於python的基本知识我们都已经学得差不多了

现在已经离能够实作爬虫非常近了 明天我们要来简单讲解网页的架构

接着就要来正式实作爬虫程序了


早安闲聊区

你知道吗?

打完疫苗不可以剧烈运动喔

每日二选一

你喜欢跟个性相近还是个性不同的人相处呢


<<:  Day15:15 - 购物车服务(3) - 後端 - 购物车数量增减、删除API

>>:  [Day 15] v-bind绑定class和style

28 JavaScript 的基础:AJAX 和 SetTimeout()

AJAX即「Asynchronous JavaScript and XML」(非同步的JavaSc...

Factory 工厂模式

今天要来聊聊 Creational Patten 当中的工厂模式。 当我们透过类别建立出实例的时候,...

[Day 26] Reactive Programming - Spring WebFlux(R2DBC Repositories)

前言 上一篇我们使用ReactiveCrudRepository来对资料库存取,对於一些不太复杂的S...

企划实现(12)

FB登入 第10步:开启 /app/res/values/strings.xml 档案。 FB会自动...

[Day13] CH08:积沙成塔——Array & ArrayList(下)

还记得前两天我们在介绍阵列的时候,有说到需要给他固定的长度,若超过就需要宣告一个新的更大的阵列吗?那...