对于初级程序员而言,算法和数据结构就是梦魇。幸运的是,Python提供各种数据类型功能,内置函数,以及内置数据结构。尤其对于初级编程而言,这些几乎是万能的。我们先来看一个简单的反转字符串的例子:
上图是一段Python代码,它的功能是,接收任意长的字符串(第7行),将其反转(第8行),然后输出结果(第10-11行)。一共4行,短小精悍。运行程序,把dog(狗)变成了god(神):
详细分析一下代码第8行红色横线标注的部分是如何反转字符串的。在此,先给大家介绍两个概念--字符串索引和切割。
在Python中,没有单独的字符串类型,一个字符就是一个简单的长度为1的字符串,字符串的第一个字符索引为 0 。索引可以是负数,将导致从右边开始计算,最右边的字符索引为-1。字符串用单引号或双引号表示。因此,dog是一个长度为3的字符串,第一个字母d的索引为0或者-3,第三个字母g的索引为2或者-1。我们输出string[0]就会得到d,输出string[-1]就会得到g:
索引用于获得单个字符,切片让你获得一个子字符串。切片用方括号[ ]和冒号:表示。我们输出string[0:2]就会得到子字符串do。注意,方括号[ ]中的索引区间是一个左闭右开的集合,包含起始字符(对应索引0),不包含末尾字符(对应索引2)。同大多数方法一样,切片的索引也有默认值。省略的第一个索引默认为零,即从字符索引0开始。省略的第二个索引默认到字符索引-1为止,注意,包括字符索引-1。同时省略第一个和第二个索引,意味着从字符串第一位到最后一位,等于将原字符串从头到尾原封不动的复制一遍:
特别要介绍,省略的第三个参数表示步长,默认为1,数值可正可负,即按照多少个字符长度间隔着切割。图五是一些例子,第19行即是反转字符串。
现在大家已经明白文章一开始的Python代码是如何反转字符串的,我们再来看看完成同样的任务,C++需要写多少行代码:
是不是很惊愕?通过这个例子,大家已经对Python的 “简单,优雅”有了初步的了解。除了诸如字符串切片这样的功能,Python还提供很多内置数据结构,比如列表,字典,集合。这些数据结构也几乎是万能的。其实,切片也是列表里常用的功能之一。我们下一节将为大家介绍Python的内置数据结构。
领取专属 10元无门槛券
私享最新 技术干货