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

如何使用Python将素数以表格格式打印而非逐行输出

解决方案

原有代码的问题是每找到素数就直接调用print(),默认会追加换行符,导致每行仅输出一个数值。修改逻辑为先把所有筛选得到的素数存入列表,再按固定列数批量排版输出即可。

修改后完整代码

start = int(input("Start number: "))
end = int(input("End number: "))

# 输入合法性校验,优化为循环校验避免多次输入错误时失效
while start < 0 or end < 0:
    print("Start and End must be positive.")
    start = int(input("Start number: "))
    end = int(input("End number: "))
while end < start:
    print("End must be greater than Start number: ")
    start = int(input("Start number: "))
    end = int(input("End number: "))

# 存储所有符合条件的素数
primes = []
for num in range(start, end+1):
    if num > 1:
        # 素数判断逻辑做了效率优化,如需保留原有逻辑可改回range(2, num)
        for i in range(2, int(num**0.5) + 1):
            if num % i == 0:
                break
        else:
            primes.append(str(num))

# 按每行10个输出,对齐格式匹配示例
col_count = 10
for idx in range(0, len(primes), col_count):
    # 每个素数占3位宽度右对齐
    line_content = ''.join([f"{num:>3}" for num in primes[idx:idx+col_count]])
    print(f" #{line_content}")

关键修改说明

  • 新增primes列表暂存所有素数,避免找到单个素数就直接打印换行
  • 输出时固定每行10个素数,用格式符>3设置每个素数占3位宽度右对齐,完全匹配示例排版效果
  • 每行开头添加#,和要求的输出格式一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:57:02