作者st936904 (阿姆斯特朗旋风喷射阿姆)
看板Python
标题[问题] 求左右对称的数字和总数
时间Fri Nov 11 02:44:45 2016
大家好 我是自学的新手
题目是: 找出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://webptt.com/cn.aspx?n=bbs/Python/M.1478803488.A.447.html
1F:→ uranusjr: while f(i) is Ture 试着解释这行的意思 11/11 02:48
2F:→ wtf111: 我想表达如果他符合第一个函数就数量就+1 我也觉得这边用 11/11 03:29
3F:→ wtf111: 错误的方式表达这句 只是试了一个多小时还是想不透 11/11 03:29
4F:→ MOONY135: While f(I): 11/11 06:19
5F:→ MOONY135: 你每跑一次回圈count都从0开始 是能记多少次...加上你最 11/11 06:22
6F:→ MOONY135: 後一个数字是10的某个次方 那肯定不会进while回圈啊 所 11/11 06:22
7F:→ MOONY135: 以答案总是0 11/11 06:22
8F:→ papple23g: True 11/11 09:20
9F:→ losepacific: count=0提到for回圈的外面,while改用if;注意缩排。 11/11 20:14
10F:→ losepacific: 修正错字True之後,按照你贴文的缩排,应该会是1。 11/11 20:15
11F:→ st936904: 各位我懂了! 我这边是因为count的位置放错以及要把while 11/12 01:24
12F:→ st936904: 改成if 会成功。然後True打错满丢脸的。 11/12 01:25
13F:→ st936904: 谢谢楼上几位教学,顺带一下像这种位置问题我常常会搞混 11/12 01:27
14F:→ st936904: 是因为不够习惯才会这样吗? 11/12 01:27
15F:→ MOONY135: 不是不够习惯的问题 是你根本还弄不懂回圈在干嘛 11/12 20:29
17F:→ MOONY135: 这个线上编译器有跑你每一步的功能 可以拿来练习 11/12 20:33
18F:→ MOONY135: 先把基本教程 for回圈while回圈那些都看完再说吧 11/12 20:35
19F:→ MOONY135: 虽然每本程式书都会教那个 不过那是要会某种语言之後才 11/12 20:35
20F:→ MOONY135: 可以跳过的 11/12 20:35
21F:→ st936904: M大太感谢你了 我就是想要找一个这种能知道我在干嘛的东 11/12 23:47
22F:→ st936904: 西 11/12 23:47
23F:→ edisonhello: 这题根本用不到回圈吧 11/13 19:40
24F:→ MOONY135: 最终都还是要学编译器debug的 这些简单的用这款还行 11/14 06:46