《Think Python》第8章学习笔记
- 8.1 字符串是一个序列(A string is a sequence)
- 8.2 len
- 8.3 用一个 for 循环进行遍历(Traversal with a for loop)
- 8.4 字符串切片(String slices)
- 8.5 字符串是不可变的(Strings are immutable)
- 8.6 搜索(Searching)
- 8.7 循环和计数(Looping and counting)
- 8.8 字符串方法(String methods)
- 8.9 in 运算符(The in operator)
- 8.10 字符串比较(String comparison)
- 8.11 调试(Debugging)
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章学习笔记的更多相关文章
- 利用Python进行数据分析 第4章 IPython的安装与使用简述
本篇开始,结合前面所学的Python基础,开始进行实战学习.学习书目为<利用Python进行数据分析>韦斯-麦金尼 著. 之前跳过本书的前述基础部分(因为跟之前所学的<Python基 ...
- 利用python进行数据分析--(阅读笔记一)
以此记录阅读和学习<利用Python进行数据分析>这本书中的觉得重要的点! 第一章:准备工作 1.一组新闻文章可以被处理为一张词频表,这张词频表可以用于情感分析. 2.大多数软件是由两部分 ...
- 利用Python进行数据分析 第7章 数据清洗和准备(2)
7.3 字符串操作 pandas加强了Python的字符串和文本处理功能,使得能够对整组数据应用字符串表达式和正则表达式,且能够处理烦人的缺失数据. 7.3.1 字符串对象方法 对于许多字符串处理和脚 ...
- 利用Python进行数据分析 第6章 数据加载、存储与文件格式(2)
6.2 二进制数据格式 实现数据的高效二进制格式存储最简单的办法之一,是使用Python内置的pickle序列化. pandas对象都有一个用于将数据以pickle格式保存到磁盘上的to_pickle ...
- 利用Python进行数据分析 第4章 NumPy基础-数组与向量化计算(3)
4.2 通用函数:快速的元素级数组函数 通用函数(即ufunc)是一种对ndarray中的数据执行元素级运算的函数. 1)一元(unary)ufunc,如,sqrt和exp函数 2)二元(unary) ...
- 利用Python进行数据分析 第8章 数据规整:聚合、合并和重塑.md
学习时间:2019/11/03 周日晚上23点半开始,计划1110学完 学习目标:Page218-249,共32页:目标6天学完(按每页20min.每天1小时/每天3页,需10天) 实际反馈:实际XX ...
- 利用Python进行数据分析 第7章 数据清洗和准备(1)
学习时间:2019/10/25 周五晚上22点半开始. 学习目标:Page188-Page217,共30页,目标6天学完,每天5页,预期1029学完. 实际反馈:集中学习1.5小时,学习6页:集中学习 ...
- 利用Python进行数据分析 第5章 pandas入门(2)
5.2 基本功能 (1)重新索引 - 方法reindex 方法reindex是pandas对象地一个重要方法,其作用是:创建一个新对象,它地数据符合新地索引. 如,对下面的Series数据按新索引进行 ...
- 利用Python进行数据分析 第5章 pandas入门(1)
pandas库,含有使数据清洗和分析工作变得更快更简单的数据结构和操作工具.pandas是基于NumPy数组构建. pandas常结合数值计算工具NumPy和SciPy.分析库statsmodels和 ...
- 《Python自然语言处理》第二章 学习笔记
import nltk from nltk.book import * nltk.corpus.gutenberg.fileids() emma = nltk.corpus.gutenberg.wor ...
随机推荐
- maven项目搜索依赖jar包顺序
local_repo > settings_profile_repo > pom_profile_repo > pom_repositories > setti ...
- Selenium下拉菜单(Select)的操作-----Selenium快速入门(五)
对于一般元素的操作,我们只要掌握本系列的第二,三章即可大致足够.对于下拉菜单(Select)的操作,Selenium有专门的类Select进行处理.文档地址为:http://seleniumhq.gi ...
- MaxScript镜像函数
看到有网友需要写的,其实镜像就是缩放改为负数 Fn MirrorObject argObjects argAxisName = ( local axisNames = #(#x,#y,#z) do ( ...
- 【Oracle 12c】最新CUUG OCP-071考试题库(57题)
57.(14-17) choose two: Examine the structure of the DEPARTMENTS table You execute the following comm ...
- java中集合
一. List集合: 一次只存储一个元素 1.常用的list集合是ArrayList (1)在创建这个集合的对象时, 需要指定这个集合存储的数据类型! 否则这个集合的数据是不安全的. (2)与数组的 ...
- netcat 工具传输文件
因为电脑本地是 windows,多台机器间以 windows 为中介传输文件极度不爽.window 下的 MobaXterm 工具不能使用 sz 和 rz 命令, 而 SecureCRT 工具使用体验 ...
- Error: Cannot find module 'gulp-sass'
刚才首次启动ionic的时候,给我报了个这:Error: Cannot find module 'gulp-sass' 应该是缺少gulp-sass模块了,可又不敢贸然装,直接百度: stackove ...
- django入门-测试-part5
尊重作者的劳动,转载请注明作者及原文地址 http://www.cnblogs.com/txwsqk/p/6515996.html 完全翻译自官方文档 https://docs.djangoproje ...
- 网站架构:PHP针对并发访问如何优化?
1.拆表:大表拆小表(垂直拆,水平拆:分表,分区partition,分片sharding),可以在应用层实现,也可以在数据库层面实现一部分:提高系统性能. 2.分库:把表放到不同的数据库,这也是分布式 ...
- jdk完全卸载(亲测jdk1.7.0_80在win7)
1.从控制面板里删除java程序 2.删除注册表:HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\ 3.删除C:\Windows\System32 和 C:\Windows\ ...