大家好!今天分享一道Python基础算法题:判断一个数是不是立方数。
给大家分享一段新手最友好、代码最简洁的写法,利用 Python 独有的 for-else 语法,不用标记变量,逻辑干净利落!
📌 题目说明(仅限正整数)
给定一个正整数 A,判断它是否为某个整数的三次方。
是立方数 → 输出 YES
不是立方数 → 输出 NO
示例:
输入 8 → 2³=8 → YES
输入 27 → 3³=27 → YES
输入 12 → 不是立方数 → NO
✨ 新手满分代码(你的原版·最优解)
# 输入正整数a = int(input())# 遍历所有可能的立方根for i in range(1, a+1): # 判断当前数的立方是否等于输入值 if i ** 3 == a: print("YES") break# 循环跑完没触发break,说明不是立方数else: print("NO")
💡 核心知识点:for-else 机制
很多新手只会 if-else,其实 for-else 是 Python 刷题神器!
规则超级简单:
循环里 执行了 break → 不执行 else(找到立方数,输出 YES)
循环 正常跑完、没有 break → 执行 else(没找到,输出 NO)
优势:不用定义 flag 标记变量,代码更短、逻辑更清晰!
🔍 逐行超通俗解析
1. a = int(input())
接收键盘输入,转为整数,是我们需要判断的数字。
2. for i in range(1, a+1)
立方根一定不会比原数大,所以只需要从 1 遍历到 a 即可,范围精准不浪费性能。
3. if i ** 3 == a
逐个计算 i 的立方,对比是否和输入数相等,相等就说明是立方数。
4. break 跳出循环
一旦找到答案,立刻终止循环,避免无效遍历。
5. else 输出 NO
全程遍历完都没有找到符合条件的数,判定不是立方数。
✅ 适用场景说明
本代码 只针对正整数题目,完全适配学校作业、基础刷题场景:
无需处理负数、0
逻辑最简单,新手零负担
无浮点精度问题,答案100%准确
📝 新手总结
1. 判断次方数,优先使用 遍历枚举,比开方运算更稳、无精度bug;
2. for-else 是 Python 专属优质语法,查找类题目直接套用;
3. 正整数立方数判断,这段代码就是最简标准答案。
零基础Python刷题干货,持续更新,新手可以收藏慢慢学✨