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

Python循环问题:如何按每16个字符打印以分号结尾的字符串?

解决按16字符分组打印字符串的问题

看起来你的代码逻辑和数据结构没匹配上,才导致输出格式完全不符合预期。咱们一步步来修正:

问题分析

你的当前代码:

i = 0
for word in SIGNS:
    print(word[:i], end='')
    i += 16

这里有两个核心问题:

  1. 遍历对象不对:如果SIGNS是单个字符的序列(比如每个元素是一个字符),那循环里的word就是单个字符,word[:i]要么是空(i=0时),要么就是这个字符本身(i≥1时),完全没法实现按16字符分组的需求。
  2. 逻辑方向错误:你需要的是把完整字符串按16字符切片输出,而不是逐个字符去截取前i个内容。

另外你提到输出字符间有空格,大概率是SIGNS里本身包含空格字符,或者被拆成了带空格的元素,这也需要先处理干净。

解决方案

步骤1:先得到干净的目标字符串

如果SIGNS是混有空格的字符列表,先拼接并清理多余空格:

# 拼接成完整字符串,同时过滤掉空格
target_str = ''.join([c for c in SIGNS if c.strip()])

如果SIGNS本身就是无空格的完整字符串,直接使用它即可。

步骤2:按16字符分组打印

用循环切片的方式,每次截取16个字符的片段输出:

chunk_size = 16
# 从0开始,每次跳16个位置,遍历整个字符串
for start in range(0, len(target_str), chunk_size):
    # 截取从start到start+16的片段,超出字符串长度时自动取到末尾
    chunk = target_str[start:start+chunk_size]
    print(chunk)

示例验证

假设SIGNS是带空格的字符列表:

SIGNS = ['A', 'R', 'I', ':', ' ', '0', '3', ',', ' ', '2', '1', '-', '0', '4', ',', '1', '9', ';']

经过第一步处理后得到target_str = 'ARI:03,21-04,19;',第二步分组打印时,因为长度刚好16,就会输出你期望的:ARI:03,21-04,19;

如果字符串更长(比如30个字符),代码会自动分成两组:前16个字符为一组,剩余14个为另一组,分别打印。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:39:57