作者s9209122222 (海海海)
看板Python
標題[問題] 剛接觸python遇到練習題想不出解法,挫折
時間Thu May 21 18:32:08 2020
最近想學習 python 找到了中央大學數學系網路上提供的教材。
目前練習到第二章,只教到了 for if else 這些,沒有陣列,
但第二章第一個練習題就卡關了。
http://www.python.math.ncu.edu.tw/exercise/chapter/2 題目:找出三位數的數字和為 10 且數字都不同的所有三位數,
例如:325、910,驗證共有 40 個數。
我只能讓他知道哪些數字加起來是 10,但無法去除重複的,
沒有陣列我要怎麼記住哪些數字有重複到阿??
話說大家都會把所有練習題給完成嗎?第一章我做了 10 題就受不了了,
都是在要你想辦法畫圖,整個令人很不耐煩,還是說這是數學系的關係?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.210.216 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1590057130.A.075.html
※ 編輯: s9209122222 (114.35.210.216 臺灣), 05/21/2020 18:35:54
→ s9209122222: 有比這個更好用的中文免費教材嗎? 05/21 18:36
推 cuteSquirrel: 提供給原PO參考: 05/21 18:57
→ cuteSquirrel: 中文有一個youtube頻道 彭彭python簡介 入門滿適合 05/21 18:58
→ cuteSquirrel: 英文的話 MIT 和 Michigan 大學都有網路公開課 05/21 18:59
→ s9209122222: 感謝,那麼這題呢?解不出心裡有個疙瘩在 05/21 19:00
→ cuteSquirrel: 在上面連結裡,你可以run看看 05/21 19:00
→ s9209122222: 喔,你貼了,感謝 05/21 19:00
→ s9209122222: 晚點用電腦看看,手機看不到全畫面 05/21 19:01
→ s9209122222: 話說練習十題才發現有 pycharm 可以用,之前一直從 t 05/21 19:03
→ s9209122222: erminal 慢慢執行…… 05/21 19:03
推 ssdoz2sk: 因為全部都是三位數數字,所以你可以拿3個變數來代表各 05/21 19:31
→ ssdoz2sk: 個位數的數字,再去做判斷 05/21 19:31
推 cuteSquirrel: :) 05/21 19:31
推 aidansky0989: 用kaggle的python教程先過個水,6個小單元 05/21 19:31
推 cuteSquirrel: 畫圖的適量就好。刁鑽的複雜圖型不是很重要。 05/21 19:36
→ cuteSquirrel: 幫補kaggle 連結: 05/21 19:38
推 cuteSquirrel: 像是後有有一題畫大象那個就可略過 05/21 19:50
→ s9209122222: 這範例有點太進階了啦! 05/21 20:20
→ s9209122222: 而且好像也有用到陣列,但他那個練習題都還沒提到 05/21 20:22
→ nevak: 這題不見得要用陣列吧,最簡單的做法就100-999窮舉,把合 05/21 21:18
→ nevak: 格的印出來,順便加總一下個數最後引出來就好,合格的判定 05/21 21:18
→ nevak: 應該也只需要除法跟if/else就夠了 05/21 21:18
→ nevak: 喜歡loop的人也可以三層loop直接把答案都轉出來 05/21 21:19
推 WestMelon: 最簡單就是跑三個迴圈?判斷三數不相等時相加是否等於1 05/21 21:20
→ WestMelon: 0 05/21 21:20
推 yiche: 不會覺得不耐煩啊 不要小看畫這些莫名的圖形,程式邏輯都在 05/21 22:08
→ yiche: 裡頭,加油! 05/21 22:08
→ s9209122222: 不是 26 樓說的這麼簡單啊,還有三個數不能重複的條 05/21 23:33
→ s9209122222: 件 05/21 23:33
→ s9209122222: 28 樓的最看得懂,不過還是有用到陣列的東西,python 05/21 23:57
→ s9209122222: 好像叫串列? 05/21 23:57
→ s9209122222: 不過看了一下應該可以用減的得到我要的數字,但 if 05/21 23:59
→ s9209122222: 內會變很長…… 05/21 23:59
→ s9209122222: 等等,結果不對呀,有109又有901 05/22 00:00
→ s9209122222: 還有 910 05/22 00:00
→ OrzOGC: 這個時候就該去睡覺,明天你就會覺得昨天的我是中邪了嗎? 05/22 00:01
→ s9209122222: 31 樓的沒東西 05/22 00:04
→ s9209122222: 二樓的其實也是同結果 05/22 00:05
→ s9209122222: 還是我會錯意? 05/22 00:05
→ s9209122222: 看來只要每次三個數字不一樣就好,不用完全不和前面 05/22 00:07
→ s9209122222: 幾次重複 05/22 00:07
→ s9209122222: 又要上 12 小時的班了,吃東西睡覺去 05/22 00:08
推 cuteSquirrel: 每次3個數字不同就好。不用和之前和之後的比較。 05/22 00:09
→ cuteSquirrel: 原本的題目最後說 "驗證總共有40個數" 05/22 00:11
→ s9209122222: 原來這麼簡單……,我複雜化題目 05/22 00:12
→ yi24: 有其他人去寫這題嗎? 為什麼我跑出來的結果是 44 個數? 05/23 10:52
→ yi24: 我的判斷條件有誤,是 40 個沒錯 05/23 11:15
→ pmove: 我算40 05/23 12:16
推 wahahahaaa: 我用hard code寫法 三個迴圈 40個沒錯 05/23 16:59
推 wahahahaaa: 請教一下f大的解法 我按run怎麼沒有output@@ 05/23 17:04
→ cuteSquirrel: 按fork this,補一行 print( result ) 就會有了 05/23 17:06
推 wahahahaaa: 感謝樓上回答 05/23 22:59
→ cuteSquirrel: : ) 05/23 23:01
→ s9209122222: 那不是陣列嗎?那個陣列符號? 05/24 12:59
→ s9209122222: 話說我照做會失敗,這是我自己做出來的方法 05/24 13:00
推 cuteSquirrel: 恭喜 05/24 13:25
→ cuteSquirrel: 那個是 list comprehension, python實用語法之一 05/24 13:25
推 s0914714: 沒錯 那是comprehension語法 可以讓程式簡潔一點 05/24 14:27
推 cocoasheep: 這題的目的是練習用巢狀迴圈 所以用前面大大說的三層 05/30 08:29
→ cocoasheep: 迴圈就可以解決了 三層分別是百位數、十位數、個位數 05/30 08:29
推 velaro: 直接轉成set 就能去除重複吧? 05/31 15:09
推 ro9956882: 不重複反而簡單 i=0~9 , j=i+1~9, k=j+1~9 05/31 21:06