鱼C论坛

 找回密码
 立即注册
查看: 2020|回复: 5

[已解决]新手Python求助

[复制链接]
发表于 2021-12-21 22:09:55 | 显示全部楼层 |阅读模式
20鱼币
看了小甲鱼零基础入门学习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
最佳答案
2021-12-21 22:09:56
for a in range(1, 10):
    b = (a * a) // 10
    c = (a * a) % 10
    if a == b + c:
        print(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-21 22:09:56 | 显示全部楼层    本楼为最佳答案   
for a in range(1, 10):
    b = (a * a) // 10
    c = (a * a) % 10
    if a == b + c:
        print(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-21 23:23:16 | 显示全部楼层

瞬间找到了回忆,要好好学数学。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-22 14:57:54 | 显示全部楼层
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)


你自己看看他为什么报错的原因,要学会自己分吸问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-22 15:21:13 | 显示全部楼层
本帖最后由 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

看看这个是否符合你的想法。

另外,我查到的完美数的定义是:一个数的所有真因子(即除了自身以外的约数)的和,恰好等于它本身。不知道是否为你想要求的完全数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-22 15:24:03 | 显示全部楼层
本帖最后由 boredlink 于 2021-12-22 15:25 编辑

运行过程序并没有报错,只是返回的结果跟题主想象的不一样,看什么报错原因呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-29 09:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表