新手Python求助
看了小甲鱼零基础入门学习Python 第009讲:了不起的分支和循环3 | 课后测试题及答案 后,对特殊的数字产生了兴趣,然后写了个代码(详情如下)想写一个能体现完美数的代码(完美数:该数字平方后的结果十位 + 个位 == 原数字,例9**2 = 81,8 + 1 = 9)。for a in range(1,10):
for b in range(1,9):
for c in range(0,10):
a*a == b*10 + c
if b + c == a:
print(a)
IDLE界面循环滚动False
是哪里不对么0.0
for a in range(1, 10):
b = (a * a) // 10
c = (a * a) % 10
if a == b + c:
print(a) 冬雪雪冬 发表于 2021-12-21 22:14
瞬间找到了回忆,要好好学数学。 for a in range(1,10):
for b in range(1,9):
for c in range(0,10):
a*a == b*10 + c #这里在a方不等于10b加c,再加上这么多循环,就在一直报错了
if b + c == a:
print(a)
你自己看看他为什么报错的原因,要学会自己分吸问题 本帖最后由 boredlink 于 2021-12-22 15:40 编辑
因为( b+c== a)的结果为不成立(即False),所以返回了False。而结果为成立的时候,就返回了True,并打印了a。
for a in range(4,101):#要求十位和个位之和,那么至少要4以上
b = str(a*a) # 得出平方数,并转成字符串
g = int(b[-1])# 取出倒数第一位,并转化成整数,作为个位数
s = int(b[-2])# 取出倒数第二位,并转化成整数,作为十位数
if g + s == a:# 该数字平方后的结果十位 + 个位 == 原数字
print(a) # 打印a
看看这个是否符合你的想法。
另外,我查到的完美数的定义是:一个数的所有真因子(即除了自身以外的约数)的和,恰好等于它本身。不知道是否为你想要求的完全数。 本帖最后由 boredlink 于 2021-12-22 15:25 编辑
运行过程序并没有报错,只是返回的结果跟题主想象的不一样,看什么报错原因呢?
页:
[1]