[問題] 剛接觸python遇到練習題想不出解法,挫折

作者: s9209122222 (海海海)   2020-05-21 18:32:08
最近想學習 python 找到了中央大學數學系網路上提供的教材。
目前練習到第二章,只教到了 for if else 這些,沒有陣列,
但第二章第一個練習題就卡關了。
http://www.python.math.ncu.edu.tw/exercise/chapter/2
題目:找出三位數的數字和為 10 且數字都不同的所有三位數,
例如:325、910,驗證共有 40 個數。
我只能讓他知道哪些數字加起來是 10,但無法去除重複的,
沒有陣列我要怎麼記住哪些數字有重複到阿??
話說大家都會把所有練習題給完成嗎?第一章我做了 10 題就受不了了,
都是在要你想辦法畫圖,整個令人很不耐煩,還是說這是數學系的關係?
作者: s9209122222 (海海海)   2020-05-21 18:36:00
有比這個更好用的中文免費教材嗎?
作者: cuteSquirrel (松鼠)   2020-05-21 18:57:00
提供給原PO參考:https://www.onlinegdb.com/S1ovARXsI中文有一個youtube頻道 彭彭python簡介 入門滿適合英文的話 MIT 和 Michigan 大學都有網路公開課
作者: s9209122222 (海海海)   2020-05-21 19:00:00
感謝,那麼這題呢?解不出心裡有個疙瘩在
作者: cuteSquirrel (松鼠)   2020-05-21 19:00:00
在上面連結裡,你可以run看看
作者: ssdoz2sk (眷戀著提拉米蘇的風采~)   2020-05-21 19:31:00
因為全部都是三位數數字,所以你可以拿3個變數來代表各個位數的數字,再去做判斷
作者: cuteSquirrel (松鼠)   2020-05-21 19:31:00
:)
作者: aidansky0989 (alta)   2020-05-21 19:31:00
用kaggle的python教程先過個水,6個小單元
作者: cuteSquirrel (松鼠)   2020-05-21 19:36:00
畫圖的適量就好。刁鑽的複雜圖型不是很重要。幫補kaggle 連結:https://www.kaggle.com/learn/python像是後有有一題畫大象那個就可略過
作者: s9209122222 (海海海)   2020-05-21 20:20:00
這範例有點太進階了啦!而且好像也有用到陣列,但他那個練習題都還沒提到
作者: nevak (^o^)   2020-05-21 21:18:00
這題不見得要用陣列吧,最簡單的做法就100-999窮舉,把合格的印出來,順便加總一下個數最後引出來就好,合格的判定應該也只需要除法跟if/else就夠了喜歡loop的人也可以三層loop直接把答案都轉出來
作者: WestMelon (WestMelon)   2020-05-21 21:20:00
最簡單就是跑三個迴圈?判斷三數不相等時相加是否等於10
作者: yiche (你若安好,便是晴天)   2020-05-21 21:53:00
https://onlinegdb.com/HkNfvbNsI 原po參考看看^^不會覺得不耐煩啊 不要小看畫這些莫名的圖形,程式邏輯都在裡頭,加油!
作者: forkind   2020-05-21 22:25:00
加油,參考解法 https://onlinegdb.com/HyrO0ZEsI
作者: s9209122222 (海海海)   2020-05-21 23:33:00
不是 26 樓說的這麼簡單啊,還有三個數不能重複的條件28 樓的最看得懂,不過還是有用到陣列的東西,python好像叫串列?不過看了一下應該可以用減的得到我要的數字,但 if內會變很長……等等,結果不對呀,有109又有901還有 910
作者: OrzOGC (洞八達人.拖哨天王)   2020-05-22 00:01:00
這個時候就該去睡覺,明天你就會覺得昨天的我是中邪了嗎?
作者: s9209122222 (海海海)   2020-05-22 00:04:00
31 樓的沒東西二樓的其實也是同結果還是我會錯意?看來只要每次三個數字不一樣就好,不用完全不和前面幾次重複又要上 12 小時的班了,吃東西睡覺去
作者: cuteSquirrel (松鼠)   2020-05-22 00:09:00
每次3個數字不同就好。不用和之前和之後的比較。原本的題目最後說 "驗證總共有40個數"
作者: s9209122222 (海海海)   2020-05-22 00:12:00
原來這麼簡單……,我複雜化題目
作者: yi24 (喔伊喔)   2020-05-23 10:52:00
有其他人去寫這題嗎? 為什麼我跑出來的結果是 44 個數?我的判斷條件有誤,是 40 個沒錯
作者: pmove (金疾檸檬)   2020-05-23 12:16:00
我算40
作者: wahahahaaa (hah)   2020-05-23 16:59:00
我用hard code寫法 三個迴圈 40個沒錯請教一下f大的解法 我按run怎麼沒有[email protected]@
作者: cuteSquirrel (松鼠)   2020-05-23 17:06:00
按fork this,補一行 print( result ) 就會有了
作者: wahahahaaa (hah)   2020-05-23 22:59:00
感謝樓上回答
作者: cuteSquirrel (松鼠)   2020-05-23 23:01:00
: )
作者: s0914714 (YA)   2020-05-24 05:35:00
作者: s9209122222 (海海海)   2020-05-24 12:59:00
那不是陣列嗎?那個陣列符號?話說我照做會失敗,這是我自己做出來的方法https://onlinegdb.com/B14XyYwsI
作者: cuteSquirrel (松鼠)   2020-05-24 13:25:00
恭喜那個是 list comprehension, python實用語法之一comprehension 介紹: https://bit.ly/2LWE9rL
作者: s0914714 (YA)   2020-05-24 14:27:00
沒錯 那是comprehension語法 可以讓程式簡潔一點
作者: cocoasheep (可樂綿羊OPEN啦!)   2020-05-30 08:29:00
這題的目的是練習用巢狀迴圈 所以用前面大大說的三層迴圈就可以解決了 三層分別是百位數、十位數、個位數
作者: velaro (下路雙組合)   2020-05-31 15:09:00
直接轉成set 就能去除重複吧?
作者: ro9956882 (幽靈)   2020-05-31 21:06:00
不重複反而簡單 i=0~9 , j=i+1~9, k=j+1~9
作者: salmon12706 (Ellen)   2020-06-29 16:30:00
工研院人工智慧課程推薦https://reurl.cc/4RDRaK

Links booklink

Contact Us: admin [ a t ] ucptt.com