8.1 字符串是一个序列(A string is a sequence)

字符串是一个字符序列。可以使用中括号运算符 [] 一次从字符串中读取一个字符,中括号中的表达式称为索引(index),用于指示序列中你想要字符的位置。值得注意的是,索引指的是从字符串起始位置开始的偏移(offset),因此第一字母的偏移为 0。

8.2 len

len 是 Python 中的内建函数,返回字符串中字符的数目。

>>> fruit = 'banana'
>>> len(fruit)
6

对于字符串,Python 也提供了负向的索引,方便从字符串的末尾开始计数。

>>> fruit = 'banana'
>>> last = fruit[-1]
>>> last
'a'

8.3 用一个 for 循环进行遍历(Traversal with a for loop)

在 Python 中,可以使用 while 语句和 for 循环对字符串进行遍历。

# while statement
fruit = 'banana'
i = 0
while i < len(fruit):
print(fruit[i])
i = i + 1 # for loop
fruit = 'banana'
for letter in fruit:
print(letter)

8.4 字符串切片(String slices)

字符串的一个片段(segment)称为一个切片(slice)。运算符 [n:m] 返回字符串从第 n 个字符到第 m 个字符的部分,但是只包括起始索引 n,不包括结束索引 m

如果省略第一个索引,切片将从字符串的起始位置开始;如果省略第二个索引,切片将一直到字符串的结束位置。

>>> fruit = 'banana'
>>> fruit[:3]
'ban'
>>> fruit[3:]
'ana'

如果第一索引的值大于等于第二个,那么结果将是空字符串(empty string)。

>>> fruit = 'banana'
>>> fruit[3:3]
''

如果第一个索引和第二个索引都省略,那么将返回该字符串。

>>> fruit = 'banana'
>>> fruit[:]
'banana'

8.5 字符串是不可变的(Strings are immutable)

字符串是不可变的(immutable),意味着我们无法改变一个已经存在的字符串。“改变”一个字符串的方式只能是从新生成一个字符串。

8.6 搜索(Searching)

8.7 循环和计数(Looping and counting)

8.8 字符串方法(String methods)

字符串类型( str 类)提供了许多有用的方法,通过点运算符 . 进行调用,常用的方法有:

  • upper()lower()
  • find(...)

8.9 in 运算符(The in operator)

in 运算符是一种布尔运算符,输入两个字符串,当第一个字符串是第二个字符串的字串时,返回 True

>>> 'a' in 'banana'
True

8.10 字符串比较(String comparison)

关系运算符(><==)在字符串上也是起作用的。与 Java 中不同,Python 用 == 比较两个字符串是否相等。

>>> 'abc' == 'banana'
False
>>> 'abc' == 'abc'
True

关系运算符(><)能够用于对字符串按照字母顺序进行排序。

>>> 'abc' < 'banana'
True
>>> 'cat' > 'banana'
True

需要注意的是,在 Python 中,所有的大写字母顺序都是排在小写字母前面的

>>> 'Pipeapple' > 'banana'
False

因此,在进行字符串比较前,最好将所有的字符串转换成标准的格式,比如:小写。

8.11 调试(Debugging)

《Think Python》第8章学习笔记的更多相关文章

  1. 利用Python进行数据分析 第4章 IPython的安装与使用简述

    本篇开始,结合前面所学的Python基础,开始进行实战学习.学习书目为<利用Python进行数据分析>韦斯-麦金尼 著. 之前跳过本书的前述基础部分(因为跟之前所学的<Python基 ...

  2. 利用python进行数据分析--(阅读笔记一)

    以此记录阅读和学习<利用Python进行数据分析>这本书中的觉得重要的点! 第一章:准备工作 1.一组新闻文章可以被处理为一张词频表,这张词频表可以用于情感分析. 2.大多数软件是由两部分 ...

  3. 利用Python进行数据分析 第7章 数据清洗和准备(2)

    7.3 字符串操作 pandas加强了Python的字符串和文本处理功能,使得能够对整组数据应用字符串表达式和正则表达式,且能够处理烦人的缺失数据. 7.3.1 字符串对象方法 对于许多字符串处理和脚 ...

  4. 利用Python进行数据分析 第6章 数据加载、存储与文件格式(2)

    6.2 二进制数据格式 实现数据的高效二进制格式存储最简单的办法之一,是使用Python内置的pickle序列化. pandas对象都有一个用于将数据以pickle格式保存到磁盘上的to_pickle ...

  5. 利用Python进行数据分析 第4章 NumPy基础-数组与向量化计算(3)

    4.2 通用函数:快速的元素级数组函数 通用函数(即ufunc)是一种对ndarray中的数据执行元素级运算的函数. 1)一元(unary)ufunc,如,sqrt和exp函数 2)二元(unary) ...

  6. 利用Python进行数据分析 第8章 数据规整:聚合、合并和重塑.md

    学习时间:2019/11/03 周日晚上23点半开始,计划1110学完 学习目标:Page218-249,共32页:目标6天学完(按每页20min.每天1小时/每天3页,需10天) 实际反馈:实际XX ...

  7. 利用Python进行数据分析 第7章 数据清洗和准备(1)

    学习时间:2019/10/25 周五晚上22点半开始. 学习目标:Page188-Page217,共30页,目标6天学完,每天5页,预期1029学完. 实际反馈:集中学习1.5小时,学习6页:集中学习 ...

  8. 利用Python进行数据分析 第5章 pandas入门(2)

    5.2 基本功能 (1)重新索引 - 方法reindex 方法reindex是pandas对象地一个重要方法,其作用是:创建一个新对象,它地数据符合新地索引. 如,对下面的Series数据按新索引进行 ...

  9. 利用Python进行数据分析 第5章 pandas入门(1)

    pandas库,含有使数据清洗和分析工作变得更快更简单的数据结构和操作工具.pandas是基于NumPy数组构建. pandas常结合数值计算工具NumPy和SciPy.分析库statsmodels和 ...

  10. 《Python自然语言处理》第二章 学习笔记

    import nltk from nltk.book import * nltk.corpus.gutenberg.fileids() emma = nltk.corpus.gutenberg.wor ...

随机推荐

  1. solr特点三: 排序样例汇总

    目的是提供solrj 实现 查询的样例参考 单维度排序 //查询条件 query.setQuery(queryString); // add 是添加 query.addSortField(field_ ...

  2. Redis配置参数汇总

    ==配置文件全解=== ==基本配置daemonize no 是否以后台进程启动databases 16 创建database的数量(默认选中的是database 0) save 900 1 #刷新快 ...

  3. shell中调用jenkins API批量运行历史任务

    shell中调用jenkins API批量运行jenkins带参数的任务: #!/bin/sh #startdate=20150127 startdate=20150201 while [ " ...

  4. Git 常用知识

    git 常用命令 创建并checkout分支: git checkout -b branch_name git merge 与 git rebase 的区别 git rebase 合并后将形成一条直线 ...

  5. 【12c OCP】CUUG OCP认证071考试原题解析(34)

    34.choose two View the Exhibit and examine the structure of the PRODUCT_INFORMATION and INVENTORIES ...

  6. jenkins+gitlab+robot framework 中遇到的坑

    问题一:拉Git源代码时提示无权限 原来之前用的ssh密钥一直都是自己的用户生成的.其实在Jenkins系统使用的都是Jenkins这个系统帐号的. 解决方法: 切换到jenkins这个帐号下生成个新 ...

  7. [Objective-C语言教程]继承(25)

    面向对象编程中最重要的概念之一是继承.继承允许根据一个类定义另一个类,这样可以更容易地创建和维护一个应用程序. 这也提供了重用代码功能和快速实现时间的机会. 在创建类时,程序员可以指定新类应该继承现有 ...

  8. kali系统越来越大解决

    Kali Linux系统提供的apt-get方式,可以很好的安装软件,对系统进行更新.但是每次执行都会下载大量的软件包.这些软件包被安装后,并不会被自动删掉,会持续占用磁盘空间.解决这个问题有两个办法 ...

  9. python 对mongodb进行压力测试

    最近对mongoDB数据库进行性能分析,需要对数据库进行加压. 加压时,最初采用threading模块写了个多线程程序,测试的效果不理想. 单机读数据库每秒请求数只能达到1000次/s.而开发的jav ...

  10. 多并发编程基础 之线程程 Thried

    原贴 https://www.cnblogs.com/gbq-dog/p/10365669.html 今日要整理的内容有 1. 操作系统中线程理论 2.python中的GIL锁 3.线程在python ...