Python排版100-200区间数字,实现每10个换行、行尾触发而非行首单独成行
Python 循环按每10个数字排版输出的错位修正
原代码错位根因
原代码将i % 10 == 0作为换行触发条件,碰到能被10整除的数字就直接无间隔打印换行,没有把整十数纳入连续同行的输出序列,完全偏离“累计满10个再换行”的设计初衷,最终造成100单独占行首、整十数错位到每行开头的问题。
修正实现
方案1:调整循环内的换行触发时机
通过计数变量追踪已输出的数字数量,把换行动作绑定到“累计满10个”的节点,不再单独拆分整十数:
count = 0 for i in range(100, 201): # 每个数字前置单空格对齐,匹配目标排版格式 print(f" {i}", end="") count += 1 # 累计满10个触发换行 if count % 10 == 0: print() # 收尾换行,避免最后一行内容粘连终端提示符 print()
方案2:按切片分组实现(更简洁无冗余计数)
直接对整个数字区间做10长度的切片分组,逐行拼接输出,从逻辑上规避换行时机错位的问题:
num_list = list(range(100, 201)) # 按步长10遍历切片位置 for start_idx in range(0, len(num_list), 10): # 切出当前行的数字序列 row_nums = num_list[start_idx:start_idx+10] # 拼接为带前置空格的字符串输出 print(" " + " ".join(map(str, row_nums)))
效果匹配说明
两种实现运行后可完全复现目标排版:
- 每行连续容纳10个数字,整十数作为当前行的组成部分保留在序列中,不会单独跳转到下一行
- 190-199的数字组合凑满10个后触发换行,最后单独输出剩余的200元素
内容的提问来源于stack exchange,提问作者alobe
相关产品推荐
相关产品推荐

