作者ThxThx (洗洗睡)
看板Python
標題Re: [問題] 程式求救
時間Mon Mar 26 19:07:32 2018
Python有一個特點是有一些基本的built in functions讓程式碼變得簡潔。
熟悉這些functions應該是練習這些題目的目的之一吧
像這個問題牽涉到 1). 相加 2). 從1到n
所以應該用sum和range這兩個函式才是pythonic的作法。
sum(1 / i for i in range(1, n+1, 2)) - sum(1 / i for i in range(2, n+1, 2))
當然這背後是有一些generator expression在運作
但是熟悉這種感覺應該是學Python中蠻重要的過程吧
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.211.42
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1522062454.A.6E9.html
推 FakeGPS: 這個好 一行就搞定了 03/26 20:22
推 aszx4510: 這個idea很棒 轉換思考角度 03/26 21:32
推 somoskylin: 用內建好的真的比較好 03/26 21:44
推 vfgce: 更明確的一行,sum(1/i*pow(-1,i+1) for i in range(1,n+1)) 03/27 12:44
→ uranusjr: (-1)**(i+1) 比 pow 好一些 03/27 12:54