Python代码中[:i]与[i:]切片语法的工作原理解析
Python字符串切片[:i]和[i:]的工作原理详解
首先明确Python字符串切片的核心规则:
- 字符串切片格式为
s[start:end],表示取从索引start(包含)到end(不包含)的子串 [:i]是省略start的写法,默认从索引0开始,取到索引i之前的所有字符;若i=0,结果为空字符串[i:]是省略end的写法,默认从索引i开始,取到字符串末尾的所有字符
结合你的代码具体分析:
stars = "*" * 5 # 生成字符串"*****",索引0-4对应每个"*" stripes = "=" * 5 # 生成字符串"=====",索引0-4对应每个"=" i = 0 while i < 5: print(stars[:i]) print(stripes[i:]) i += 1
逐轮拆解循环执行过程:
- i=0时:
stars[:0]:从开头到索引0之前无字符,输出空字符串(打印后为一个空行)stripes[0:]:取整个字符串,输出"====="
- i=1时:
stars[:1]:取索引0的字符,输出"*"stripes[1:]:取索引1到末尾的字符,输出"===="
- i=2时:
stars[:2]:取索引0-1的字符,输出"**"stripes[2:]:取索引2到末尾的字符,输出"==="
- i=3时:
stars[:3]:取索引0-2的字符,输出"***"stripes[3:]:取索引3到末尾的字符,输出"=="
- i=4时:
stars[:4]:取索引0-3的字符,输出"****"stripes[4:]:取索引4的字符,输出"="
将这些输出按顺序拼接(空行在实际显示中常被忽略),就得到了你看到的结果:
===== * ==== ** === *** == **** =
内容的提问来源于stack exchange,提问作者High_spectre1408
相关产品推荐
相关产品推荐

