當初只是想說,如果我只要前三筆的作者名字,那......,相反的後三筆呢
所以就學習到"切片"這玩意
切片(slicing)語法通常使用冒號
:
。
:表示切片的開始和結束位置
字面上意思是這樣,實際應用繼續往下走吧
我們利用最前面陽春版本來變化題一下
# 變化 只選前幾個
import requests
from bs4 import BeautifulSoup
url = "https://astro.5xruby.tw/testimony/"
response = requests.get(url)
response.encoding = "utf-8"
soup = BeautifulSoup(response.text, "html.parser")
author_infos = soup.find_all("h4", class_="is-author")
for author in author_infos:
print(author.text)
先來說說後四筆好了,附上程式碼以及成果圖
# # 變化 取最後四個
import requests
from bs4 import BeautifulSoup
url = "https://astro.5xruby.tw/testimony/"
response = requests.get(url)
response.encoding = "utf-8"
soup = BeautifulSoup(response.text, "html.parser")
author_infos = soup.find_all("h4", class_="is-author")
# 取得最後四個作者
last_four_authors = author_infos[-4:]
for author in last_four_authors:
print(f"Author: {author.text}")
author_infos[ -4 ]
>>> 叫做索引值,代表倒數第四個座標的author_infos[ -4: ]
>>> 叫做切片,多了這個冒號,可不一樣了。代表起始點[ -4 ]開始往後切都要,全包起來last_four_authors = author_infos[-4:]
for author in last_four_authors:
print(f"Author: {author.text}")
my_list = [1, 2, 3, 4, 5]
print (my_list[ 0: ]) >>> [1, 2, 3, 4, 5] >>> 冒號後面沒指定是省略,就是到底都要打包起來
print (my_list[ : ]) >>> [1, 2, 3, 4, 5] >>> 從頭0位置開始的話,冒號前可省略,所以前後都省略只剩冒號,全包的意思
print (my_list[ 0 ]) >>> 1
print (my_list[ :0 ]) >>> [],開始的位置 跟 座標零 之間 >>>是"空字串"
⬆️⬆️⬆️⬆️⬆️⬆️
上面展示了 0
跟 :
的各種效果
還不夠,再練習一下,並且有正座標以及負座標
print (my_list[ 3: ]) >>> [4, 5] , [3]是4,冒號後面沒指定是省略,就是到底都要打包起來
print (my_list[ :3 ]) >>> [1, 2, 3],前面省略,所以是從頭開始並切到[3]開始都不要
print (my_list[ -1 ]) >>> 5
print (my_list[ -1: ]) >>> [5]
print (my_list[ :-1 ]) >>>[1, 2, 3, 4],從頭開始都要一路切到[-1]
print (my_list[ :4 ]) >>> [1, 2, 3, 4],冒號就像是刀,切一刀[4]開始都不要
print (my_list[ 4: ]) >>> [5]
print (my_list[ -4: ]) >>> [2, 3, 4, 5],[-4]對過去是 2 ,冒號後面被省略,所以是 2 開始往後全都要
print (my_list[ :-4 ]) >>> [1]
大致上就是這樣的切法
要前三個,本來迴圈已經歷遍出有哪些作者了
現在來限制迴圈,走幾次就好
# 設置一個計數器
count = 0
for author in author_infos:
if count < 3: # 檢查次數是否小於3
print(f"Author: {author.text}")
count += 1
else:
break # 如果計數達到3,退出迴圈
跟網頁核對過了果然是前三筆沒錯
count += 1
寫法 ruby 跟 py 是一樣的,遞增。
if count < 3: 冒號的部分
冒號 : 在 Python 中是一個標誌著程式碼塊"開始的符號"
它表示接下來的程式碼將是在 if 條件成立的情況下執行的。
for 迴圈也是同樣意思哦!
(題外話 之前的記憶中 ruby 倒是不需要這樣)
忘記冒號了嗎?錯誤訊息來提醒你,冒號是不能省略的唷
File "/Users/yojijun/Desktop/python/ex3.py", line 17
if count < 3 # 檢查計數是否小於3
^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: expected ':'
今日份的自言自語結束
如果不小心路過的大大們有發現什麼重大瑕疵,歡迎鞭策(σ`∀´)σ :欸嘿(指