看板 Python 關於我們 聯絡資訊
大家好 我是自學的新手 題目是: 找出n位數中有幾個迴文數 迴文數是指例如121,1331,22,15151 這種左右顛到寫過來仍是一樣的數 我的寫法 def f(x): x = str(x) if x[::]==x[::-1]: return Ture else : return False def f_count(n) : for i in range(10,10**n): count=0 while f(i) is Ture : count +=1 return (count) 第一個函數是說輸入一個數判斷他是不是迴文數 然後第二個函數是指輸入n位數(例如2位數) 然後符合第一個函數的情況下就+1 可是我下去跑不管n是幾 print(f_count(n))的答案跑下去都是0 請問到底是哪邊出了問題還是我哪邊的觀念錯誤呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.213.130.2 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1478803488.A.447.html
uranusjr: while f(i) is Ture 試著解釋這行的意思 11/11 02:48
wtf111: 我想表達如果他符合第一個函數就數量就+1 我也覺得這邊用 11/11 03:29
wtf111: 錯誤的方式表達這句 只是試了一個多小時還是想不透 11/11 03:29
MOONY135: While f(I): 11/11 06:19
MOONY135: 你每跑一次迴圈count都從0開始 是能記多少次...加上你最 11/11 06:22
MOONY135: 後一個數字是10的某個次方 那肯定不會進while迴圈啊 所 11/11 06:22
MOONY135: 以答案總是0 11/11 06:22
papple23g: True 11/11 09:20
losepacific: count=0提到for迴圈的外面,while改用if;注意縮排。 11/11 20:14
losepacific: 修正錯字True之後,按照你貼文的縮排,應該會是1。 11/11 20:15
st936904: 各位我懂了! 我這邊是因為count的位置放錯以及要把while 11/12 01:24
st936904: 改成if 會成功。然後True打錯滿丟臉的。 11/12 01:25
st936904: 謝謝樓上幾位教學,順帶一下像這種位置問題我常常會搞混 11/12 01:27
st936904: 是因為不夠習慣才會這樣嗎? 11/12 01:27
MOONY135: 不是不夠習慣的問題 是你根本還弄不懂迴圈在幹嘛 11/12 20:29
MOONY135: 這個線上編譯器有跑你每一步的功能 可以拿來練習 11/12 20:33
MOONY135: 先把基本教程 for迴圈while迴圈那些都看完再說吧 11/12 20:35
MOONY135: 雖然每本程式書都會教那個 不過那是要會某種語言之後才 11/12 20:35
MOONY135: 可以跳過的 11/12 20:35
st936904: M大太感謝你了 我就是想要找一個這種能知道我在幹嘛的東 11/12 23:47
st936904: 西 11/12 23:47
edisonhello: 這題根本用不到迴圈吧 11/13 19:40
MOONY135: 最終都還是要學編譯器debug的 這些簡單的用這款還行 11/14 06:46