You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python求素数代码出现IndentationError缩进错误求助

解决缩进错误并优化素数判断代码

嘿,我来帮你搞定这个问题!首先你的代码触发IndentationError是因为Python对缩进的要求非常严格——它靠缩进区分代码块,你写的for ts in range(1,100):这一行的缩进和外层代码块不匹配,大概率是混用了空格和制表符,或者缩进的空格数不一致导致的。

除了缩进问题,你的素数判断逻辑也有小bug:内层循环从1开始的话,任何数对1取模结果都是0,所以isp会直接被设为0,永远不会输出素数。下面是修复后的完整代码:

for pt in range(2, 100):  # 素数从2开始,1不是素数
    isp = 1  # 先标记当前数为素数
    # 内层循环从2开始,到pt的平方根(包含),减少不必要的循环
    for ts in range(2, int(pt**0.5) + 1):
        if pt % ts == 0:
            isp = 0  # 能被整除,说明不是素数
            break  # 提前退出循环,不用继续检查
    if isp:
        print(pt)

关键修复点说明:

  • 缩进统一:所有嵌套代码块都用4个空格缩进(Python官方推荐),避免混用空格和制表符,彻底解决缩进错误。
  • 修正循环范围:
    • 外层循环从2开始,因为1不符合素数定义(素数是大于1的自然数,且只能被1和自身整除)。
    • 内层循环从2开始,跳过无意义的1的检查;循环到int(pt**0.5)+1,因为如果一个数有大于其平方根的因子,对应的另一个因子必然小于平方根,这样能大幅减少循环次数,提升效率。

内容的提问来源于stack exchange,提问作者adhil noush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:28:58