[問題] 求左右對稱的數字和總數

看板Python作者 (阿姆斯特朗旋風噴射阿姆)時間9年前 (2016/11/11 02:44), 編輯推噓0(0024)
留言24則, 7人參與, 最新討論串1/1
大家好 我是自學的新手 題目是: 找出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

11/11 02:48, , 1F
while f(i) is Ture 試著解釋這行的意思
11/11 02:48, 1F

11/11 03:29, , 2F
我想表達如果他符合第一個函數就數量就+1 我也覺得這邊用
11/11 03:29, 2F

11/11 03:29, , 3F
錯誤的方式表達這句 只是試了一個多小時還是想不透
11/11 03:29, 3F

11/11 06:19, , 4F
While f(I):
11/11 06:19, 4F

11/11 06:22, , 5F
你每跑一次迴圈count都從0開始 是能記多少次...加上你最
11/11 06:22, 5F

11/11 06:22, , 6F
後一個數字是10的某個次方 那肯定不會進while迴圈啊 所
11/11 06:22, 6F

11/11 06:22, , 7F
以答案總是0
11/11 06:22, 7F

11/11 09:20, , 8F
True
11/11 09:20, 8F

11/11 20:14, , 9F
count=0提到for迴圈的外面,while改用if;注意縮排。
11/11 20:14, 9F

11/11 20:15, , 10F
修正錯字True之後,按照你貼文的縮排,應該會是1。
11/11 20:15, 10F

11/12 01:24, , 11F
各位我懂了! 我這邊是因為count的位置放錯以及要把while
11/12 01:24, 11F

11/12 01:25, , 12F
改成if 會成功。然後True打錯滿丟臉的。
11/12 01:25, 12F

11/12 01:27, , 13F
謝謝樓上幾位教學,順帶一下像這種位置問題我常常會搞混
11/12 01:27, 13F

11/12 01:27, , 14F
是因為不夠習慣才會這樣嗎?
11/12 01:27, 14F

11/12 20:29, , 15F
不是不夠習慣的問題 是你根本還弄不懂迴圈在幹嘛
11/12 20:29, 15F

11/12 20:32, , 16F

11/12 20:33, , 17F
這個線上編譯器有跑你每一步的功能 可以拿來練習
11/12 20:33, 17F

11/12 20:35, , 18F
先把基本教程 for迴圈while迴圈那些都看完再說吧
11/12 20:35, 18F

11/12 20:35, , 19F
雖然每本程式書都會教那個 不過那是要會某種語言之後才
11/12 20:35, 19F

11/12 20:35, , 20F
可以跳過的
11/12 20:35, 20F

11/12 23:47, , 21F
M大太感謝你了 我就是想要找一個這種能知道我在幹嘛的東
11/12 23:47, 21F

11/12 23:47, , 22F
西
11/12 23:47, 22F

11/13 19:40, , 23F
這題根本用不到迴圈吧
11/13 19:40, 23F

11/14 06:46, , 24F
最終都還是要學編譯器debug的 這些簡單的用這款還行
11/14 06:46, 24F
文章代碼(AID): #1O9C0WH7 (Python)
文章代碼(AID): #1O9C0WH7 (Python)