<p>字符串本质上就是由多个字符组成的,Python 允许通过索引来操作字符,比如获取指定索引处的字符,获取指定字符在字符串中的位置等。</p><p>Python 字符串直接在方括号([])中使用索引即可获取对应的字符,其基本语法格式为:</p><pre class="brush:python;toolbar:false">string[index]</pre><p>这里的 string 表示要截取的字符串,index 表示索引值。</p><p><strong>【例1】</strong></p><pre class="brush:python;toolbar:false">s = 'crazyit.org is very good' # 获取s中索引2处的字符 print(s[2]) # 输出a # 获取s中从右边开始,索引4处的字符 print(s[-4]) # 输出g</pre><p>Python 规定,字符串中第一个字符的索引为 0、第二个字符的索引为 1,后面各字符依此类推。此外,Python 也允许从后面开始计算索引,最后一个字符的索引为 -1,倒数第二个字符的索引为 -2,依此类推。</p><p>除可获取单个字符之外,Python 也可以在方括号中使用范围来获取字符串的中间“一段”(被称为子串),其基本语法格式为:</p><pre class="brush:python;toolbar:false">string[start : end : step]</pre><p>此格式中,各参数的含义如下:</p><p>string:要截取的字符串;</p><p>start:表示要截取的第一个字符所在的索引(截取时包含该字符)。如果不指定,默认为 0,也就是从字符串的开头截取;</p><p>end:表示要截取的最后一个字符所在的索引(截取时不包含该字符)。如果不指定,默认为字符串的长度;</p><p>step:指的是从 start 索引处的字符开始,每 step 个距离获取一个字符,直至 end 索引出的字符。step 默认值为 1,当省略该值时,最后一个冒号也可以省略。</p><p><strong><strong style="white-space: normal;">【例2】</strong>基本用法</strong></p><pre class="brush:python;toolbar:false">s = 'crazyit.org is very good' # 获取s中从索引3处到索引5处(不包含)的子串 print(s[3: 5]) # 输出 zy # 获取s中从索引3处到倒数第5个字符的子串 print(s[3: -5]) # 输出 zyit.org is very # 获取s中从倒数第6个字符到倒数第3个字符的子串 print(s[-6: -3]) # 输出 y g #每隔 1 个,取一个字符 print(s[::2]) # 输出 caytogi eygo</pre><p><strong>【例 3】 start、end 以及 step 都可以省略。</strong></p><pre class="brush:python;toolbar:false"># 获取s中从索引5处到结束的子串 print(s[5: ]) # 输出it.org is very good # 获取s中从倒数第6个字符到结束的子串 print(s[-6: ]) # 输出y good # 获取s中从开始到索引5处的子串 print(s[: 5]) # 输出crazy # 获取s中从开始到倒数第6个字符的子串 print(s[: -6]) #输出crazyit.org is ver</pre><p>此外,Python 字符串还支持用 in 运算符判断是否包含某个子串。例如如下代码:</p><pre class="brush:python;toolbar:false"># 判断s是否包含'very'子串 print('very' in s) # True print('fkit' in s) # False</pre><p>还可使用全局内置的 min() 和 max() 函数获取字符串中最小字符和最大字符。例如如下代码:</p><pre class="brush:python;toolbar:false"># 输出s字符串中最大的字符 print(max(s)) # z # 输出s字符串中最大的字符 print(min(s)) # 空格</pre><p><strong style="white-space: normal;">python的字符串截取案例</strong></p><pre class="brush:python;toolbar:false;">str = ‘0123456789’ print str[0:3] #截取第一位到第三位的字符 print str[:] #截取字符串的全部字符 print str[6:] #截取第七个字符到结尾 print str[:-3] #截取从头开始到倒数第三个字符之前 print str[2] #截取第三个字符 print str[-1] #截取倒数第一个字符 print str[::-1] #创造一个与原字符串顺序相反的字符串 print str[-3:-1] #截取倒数第三位与倒数第一位之前的字符 print str[-3:] #截取倒数第三位到结尾 print str[:-5:-3] #逆序截取,具体啥意思没搞明白?</pre><p>对应的输出结果:</p><pre class="brush:html;toolbar:false">012 0123456789 6789 0123456 2 9 9876543210 78 789 96</pre>