- 我的编程之路
- 字符串是序列
- len 长度
- 用 for 循环遍历字符串
- 字符串切片
- 字符串不可修改
- 搜索
- 循环和计数
- 字符串方法
- 运算符 in
- 字符串比较
- 字符串术语列表
从玩耍Excel表格到MySQL数据仓库,之后进入数据分析的天坑,然后再到大数据平台HIVE、Hbase。接着Django Web全栈开发。在走过这一圈之后,很多的内容学习都是碎片化的,在未来一段时间找几本书籍系统的学习一下,顺便做个笔记给后来的学生。
其实很多人不知道一个字符串是一个序列,意味着是对其他值的有序排列。
字符串是序列可以通过列表的方式访问每一个字符,使用列表索引的方式获取对应的值。
>>> fruit = 'banana' >>> letter = fruit[1] alen 长度
>>> fruit = 'banana' >>> len(fruit) 6用 for 循环遍历字符串
用for、while循环遍历的方式可以操作字符串
index = 0
while index < len(fruit):
letter = fruit[index]
print(letter)
index = index + 1
# 等价于
for i in range(len(fruit))
print(fruit[i])
for letter in fruit:
print(letter)
字符串切片
字符串的一段叫做切片,用于选择字符操作。
>>> s = 'Monty Python' >>> s[0:5] 'Monty' >>> s[6:12] 'Python'
[n:m]这种操作符,会返回字符串中从第『n』个到第『m』个的字符,规则是左开右闭(n包含,m不包含)。
其他的一些操作
>>> fruit = 'banana' >>> fruit[:3] 'ban' >>> fruit[3:] 'ana' >>> fruit[3:3] ''字符串不可修改
字符串与列表序列不同的是不可以进行修改。
>>> greeting = 'Hello, world!' >>> greeting[0] = 'J' TypeError: 'str' object does not support item assignment
可以使用切片的方式重新组合字符串。
>>> greeting = 'Hello, world!' >>> new_greeting = 'J' + greeting[1:] >>> new_greeting 'Jello, world!'搜索
使用find函数,利用列表收集字母letter在单词word中出现的全部位置。
def find(word, letter):
index = 0
result_list=[]
while index < len(word):
if word[index] == letter:
result_list.append(index)
index = index + 1
return result_list
result_list = find('banana', 'a')
[1, 3, 5]
循环和计数
统计某个字符在字符串中出现的字数。
word = 'banana'
count = 0
for letter in word:
if letter == 'a':
count = count + 1
print(count)
字符串方法
比如可以使用大小写转换的方法直接转换。
>>> word = 'banana' >>> new_word = word.upper() >>> new_word 'BANANA' >>> new_word = word.lower() >>> new_word 'banana'
寻找下标的方法找到索引位置
>>> word = 'banana'
>>> index = word.find('a')
>>> index
1
>>> word.find('na')
2
还可以进行起始判断
>>> word = 'banana'
>>> word.startwith('ba')
True
运算符 in
对字符串内是否包含某些字符进行布尔判断。
>>> 'a' in 'banana' True >>> 'seed' in 'banana' False
两个字符同时判断可以使用。
def in_both(word1, word2):
for letter in word1:
if letter in word2:
print(letter)
>>> in_both('apples', 'oranges')
a e s
字符串比较
使用if判断比较字符串是否相等。
if word == 'banana':
print('All right, bananas.')
可以使用比较运算符进行排序。
if word < 'banana':
print('Your word, ' + word + ', comes before banana.')
elif word > 'banana':
print('Your word, ' + word + ', comes after banana.')
else:
print('All right, bananas.')
字符串术语列表
- 对象(object):一个值能够指代的东西。目前为止,你可以把对象和值暂且作为一码事来理解。
- 序列(sequence):一系列值的有序排列,每一个值都有一个唯一的整数序号。
- 元素(item):一列数值序列当中的一个值。
- 索引(index):一个整数值,用来指代一个序列中的特定一个元素,比如在字符串里面就指代一个字符。在 Python 里面索引从0开始计数。
- 切片(slice):字符串的一部分,通过一个索引区间来取得。
- 空字符串(empty string):没有字符的字符串,长度为0,用两个单引号表示。
- 不可更改(immutable):一个序列中所有元素不能被改变的性质。
- 遍历(traverse):在一个序列中依次对每一个元素进行某种相似运算的过程。
- 搜索(search):一种遍历的模式,找到要找的内容的时候就停止。
- 计数(counter):一种用来统计某种东西数量的变量,一般初始化为0,然后逐次递增。
- 方法调用(invocation):调用方法的语句。
- 可选参数(optional argument):一个函数或者方法中有一些参数是可选的,非必需的。



