[問題] 程式碼問題

看板Python作者 (DaiDai)時間5年前 (2020/03/16 13:56), 編輯推噓0(0027)
留言27則, 4人參與, 5年前最新討論串1/1
https://reurl.cc/yZgRXD 上面是用Python抓八卦版資訊,我不懂得是: 1.第29行有個articles = [] ,第71行也有個 articles = [],為什麼?如果都是要儲存 文章,那第71行的 articles = []需要寫嗎? 2.def get_author_ids(posts, pattern): ids = set() for post in posts: if pattern in post['author']: ids.add(post['author']) return ids 這邊完全看不懂,而且跟前面那個抓作者的資料有關係嗎?他之前不就寫: author = '' # author = d.find('div', 'author').text if d.find('div', 'author') else '' 那不就用#後面那行就好了?為什麼還要def get_author_ids這個函數? 請大大指教,感謝~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 117.56.12.220 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1584338168.A.F84.html

03/16 14:47, 5年前 , 1F
1. variable scope不一樣
03/16 14:47, 1F

03/16 14:49, 5年前 , 2F
2. 他main有註解這個func的用途 你再看看吧
03/16 14:49, 2F

03/16 17:57, 5年前 , 3F
爬文可以考慮 PyPtt 爬得比較快
03/16 17:57, 3F

03/16 17:57, 5年前 , 4F

03/16 20:11, 5年前 , 5F
感謝!但我比較想用懂為什麼
03/16 20:11, 5F

03/16 21:33, 5年前 , 6F
1. 第29行是副程式,71是主程式
03/16 21:33, 6F

03/16 21:35, 5年前 , 7F
副程式的變數在副程式跑完就不存在了但它跑完前return給
03/16 21:35, 7F

03/16 21:35, 5年前 , 8F
主程式了
03/16 21:35, 8F

03/16 21:37, 5年前 , 9F
2.def get_author_ids 這個副程式用set 集合去累加,當
03/16 21:37, 9F

03/16 21:37, 5年前 , 10F
文章的作者裡有特定字串的
03/16 21:37, 10F

03/16 21:38, 5年前 , 11F
但author = '' ,後面#已經被註釋掉了
03/16 21:38, 11F

03/16 21:38, 5年前 , 12F
所以要看書裡怎麼寫。
03/16 21:38, 12F

03/16 21:39, 5年前 , 13F
其實這段code我在書裡看過。
03/16 21:39, 13F

03/16 21:46, 5年前 , 14F
原書上的是沒有# 的。所以如有照原書的意思, 5566那個
03/16 21:46, 14F

03/16 21:46, 5年前 , 15F
只是讓你想去抓特定作者時用,但預設沒有去抓
03/16 21:46, 15F

03/16 21:48, 5年前 , 16F
所以。照原書的code是有關係啊。就是去抓div裡author的
03/16 21:48, 16F

03/16 21:48, 5年前 , 17F
字串,把不重複的作者全部列出來
03/16 21:48, 17F

03/16 21:49, 5年前 , 18F
補充1,所以,他們兩只是剛好變數名相同。
03/16 21:49, 18F

03/16 21:49, 5年前 , 19F
去跑debug mode就看得出來了
03/16 21:49, 19F

03/16 21:51, 5年前 , 20F
所以。71行需要寫啊,不然這個值不會寫入檔案
03/16 21:51, 20F

03/16 22:04, 5年前 , 21F
其實DeepLearning哥是專家,他哥CodingMan哥也是。
03/16 22:04, 21F

03/16 22:08, 5年前 , 22F
看起來是一本書裡第三和第五章都用同樣的副程式啦。有些
03/16 22:08, 22F

03/16 22:08, 5年前 , 23F
有被call有些沒有。這不重要啦。
03/16 22:08, 23F

03/16 22:10, 5年前 , 24F
簡單想看結果把副程式全部放回主程式一行一行跑就知道結
03/16 22:10, 24F

03/16 22:10, 5年前 , 25F
果了
03/16 22:10, 25F

03/17 10:02, 5年前 , 26F
感謝A大!太詳細了!
03/17 10:02, 26F

03/17 20:15, 5年前 , 27F
^^
03/17 20:15, 27F
文章代碼(AID): #1URnJu-4 (Python)
文章代碼(AID): #1URnJu-4 (Python)