Python字符串切片问题:按4字符分段输出空行求助
解决你的Python切片问题
我来帮你排查下代码里的问题,你现在遇到的空行输出和几个小错误有关,咱们一步步来修正:
问题1:变量定义的语法错误
你写的a=0 b=3在Python里是不合法的,多个变量赋值要么用逗号分隔,要么分两行写,不然解释器会直接报错,这可能是程序没正常运行的核心原因之一。
问题2:切片长度不对
Python的字符串切片是左闭右开的规则——也就是word[a:b]会包含索引a的字符,但不会包含索引b的字符。你要取4个字符的片段,应该让结束索引是a + 4,而不是初始设为3。初始a=0, b=3的话,取的是前3个字符,当你每次给a和b加4,后续的切片会很快超出字符串范围,自然输出空字符串。
问题3:循环范围有误
你用了range(1, repetitions),当repetitions=5时,这个范围只会生成1,2,3,4四个数,也就是循环4次,但你的目标是取5个4字符片段(你的word长度是20,刚好能分成5段),所以应该用range(repetitions)来循环5次。
修正后的代码
a = 0 repetitions = 5 word = "10011100110000111010" for x in range(repetitions): # 每次取从a开始的4个字符 print(word[a:a+4]) a += 4
或者更简洁的写法,不用手动维护a变量,直接用循环变量计算起始索引:
repetitions = 5 word = "10011100110000111010" for x in range(repetitions): start = x * 4 print(word[start:start+4])
运行这段代码,你会得到正确的4字符片段输出:
1001 1100 1100 0011 1010
内容的提问来源于stack exchange,提问作者Uriel Sasieni




