---------------------------字符串str---------------------------
1. 截取字符串
- 获取单个字符,strname[index]
- 获取多个字符,strname[start : end : step]
start:表示要截取的第一个字符所在的索引(截取时包含该字符)。如果不指定,默认为 0,也就是从字符串的开头截取;
end:表示要截取的最后一个字符所在的索引(截取时不包含该字符)。如果不指定,默认为字符串的长度;
step:指的是从 start 索引处的字符开始,每 step 个距离获取一个字符,直至 end 索引出的字符。step 默认值为 1,当省略该值时,最后一个冒号也可以省略。
2. 长度
- len(string)
- len(str1.encode()),len(str.encode(‘gbk’))将字符串进行编码后再获取它的字节数
在 Python 中,不同的字符所占的字节数不同,数字、英文字母、小数点、下划线以及空格,各占一个字节,而一个汉字可能占 2~4 个字节,具体占多少个,取决于采用的编码方式。例如,汉字在 GBK/GB2312 编码中占用 2 个字节,而在 UTF-8 编码中一般占用 3 个字节
3. 分割字符串
- str.split(sep,maxsplit),按照指定的分隔符切分成多个子串,这些子串会被保存到列表中(不包含分隔符)
str:表示要进行分割的字符串;
sep:用于指定分隔符,可以包含多个字符。此参数默认为 None,表示所有空字符,包括空格、换行符“\n”、制表符“\t”等。
maxsplit:可选参数,用于指定分割的次数,最后列表中子串的个数最多为 maxsplit+1。如果不指定或者指定为 -1,则表示分割次数没有限制。
4. 合并字符串
- newstr = str.join(iterable)
newstr:表示合并后生成的新字符串;
str:用于指定合并时的分隔符;
iterable:做合并操作的源字符串数据,允许以列表、元组等形式提供。
list = ['c','biancheng','net']
','.join(list)
5. 统计字符串出现的次数
- str.count(sub[,start[,end]])
str:表示原字符串;
sub:表示要检索的字符串;
start:指定检索的起始位置,也就是从什么位置开始检测。如果不指定,默认从头开始检索;
end:指定检索的终止位置,如果不指定,则表示一直检索到结尾。
str.count('.')
str.count('.',2)
str.count('.',2,-3)
6. 统计字符串出现的次数
- str.find(sub[,start[,end]])
str:表示原字符串;
sub:表示要检索的目标字符串;
start:表示开始检索的起始位置。如果不指定,则默认从头开始检索;
end:表示结束检索的结束位置。如果不指定,则默认一直检索到结尾。
str.find(’.’,2,-4)
str.rfind(’.’) ,从字符串右边开始检索 - str.index(sub[,start[,end]])
当指定的字符串不存在时,index() 方法会抛出异常,其它同find方法
7. 替换方法
a.replace(‘word’ , ‘python’)
8. 对齐方法
- S.ljust(width[, fillchar]),向指定字符串的右侧填充指定字符,从而达到左对齐文本的目的
S:表示要进行填充的字符串;
width:表示包括 S 本身长度在内,字符串要占的总长度;
fillchar:作为可选参数,用来指定填充字符串时所用的字符,默认情况使用空格。 - S.rjust(width[, fillchar]),向字符串的左侧填充指定字符,从而达到右对齐文本的目的
- S.center(width[, fillchar]),文本居中
8. 以指定字符串开头或结尾
- str.startswith(sub[,start[,end]]),以指定字符串开头,如果是返回 True;反之返回 False
str:表示原字符串;
sub:要检索的子串;
start:指定检索开始的起始位置索引,如果不指定,则默认从头开始检索;
end:指定检索的结束位置索引,如果不指定,则默认一直检索在结束。 - str.endswith(sub[,start[,end]]),是否以指定字符串结尾,如果是则返回 True;反之则返回 False
9. 字符串大小写转换
str.title(),将字符串中每个单词的首字母转为大写,其他字母全部转为小写,转换完成后,此方法会返回转换得到的字符串
str.lower(),所有大写字母转换为小写字母
str.upper(),所有小写字母转换为大写字母
10. 去空格和特殊字符
- strip():删除字符串前后(左右两侧)的空格或特殊字符。
- lstrip():删除字符串前面(左边)的空格或特殊字符。
- rstrip():删除字符串后面(右边)的空格或特殊字符。
str 表示原字符串,[chars] 用来指定要删除的字符,可以同时指定多个,如果不手动指定,则默认会删除空格以及制表符、回车符、换行符等特殊字符
这里的特殊字符,指的是制表符(\t)、回车符(\r)、换行符(\n)等
str.strip()
str.strip(" ,\r")
11. 拼接字符串
format()格式化输出方法详解
'asd{}ads{}'.format(1,2)
%号格式化字符串,
%s(代表一个字符串)、%d(代表一个整数)、%f(代表一个浮点数)
'%s %s' % ('Hello', 'world')
f-string方式,从Python3.6版本引入
name = 'world'
myname = 'python_cat'
words = f'Hello {name}. My name is {myname}'
---------------------------列表list---------------------------
1. 添加元素
- listname.append(obj) 在列表的末尾追加元素
- listname.extend(obj) 在列表的末尾追加元素,但不会把列表或者元祖视为一个整体,而是把它们包含的元素逐个添加到列表中
- listname.insert(index , obj) 将 obj 插入到 listname 列表第 index 个元素的位置
2.删除元素
- del:根据索引值删除元素,del listname[index]删除列表中的单个元素,del listname[start :
end]可以删除中间一段连续的元素,其中,start 表示起始索引,end 表示结束索引。del 会删除从索引 start 到 end
之间的元素,不包括 end 位置的元素。 - pop():根据索引值删除元素,listname.pop(index)
- remove():根据元素值进行删除,listname.remove(value)
- clear():删除列表所有元素
3.修改元素
- 修改单个元素,nums[2] = 26
- 修改一组元素,nums[1: 4] = [45,
22],不要求新赋值的元素个数与原来的元素个数相同;这意味,该操作既可以为列表添加元素,也可以为列表删除元素。 - 对空切片(slice)赋值,就相当于插入一组新的元素,nums[4: 4] = [77, 99],在索引为4的位置插入
- 使用切片语法时也可以指定步长(step 参数),但这个时候就要求所赋值的新元素的个数与原有元素的个数相同,nums[1: 6: 2] =
[25, 99, 20]
4.查找元素
-
index() 方法,listname.index(obj, start, end),如果该元素不存在,则会导致 ValueError
错误
obj 表示要查找的元素,start 表示起始位置,end 表示结束位置
start 和 end 可以都不写,此时会检索整个列表;
如果只写 start 不写 end,那么表示检索从 start 到末尾的元素;
如果 start 和 end 都写,那么表示检索 start 和 end 之间的元素。 -
count()方法,listname.count(obj)
count() 方法用来统计某个元素在列表中出现的次数,如果 count() 返回 0,就表示列表中不存在该元素
5.遍历
list = ['html', 'js', 'css', 'python']
- 遍历值
for i in list:
print('值=%s' % i)
- 遍历下标
for i in range(len(list)):
print ("序号:%s 值:%s" % (i + 1, list[i]))
- 遍历值和下标
for i, val in enumerate(list):
print ("序号:%s 值:%s" % (i + 1, val))
#设置遍历开始初始位置,只改变了起始序号
for i, val in enumerate(list, 2):
print ("序号:%s 值:%s" % (i + 1, val))
---------------------------字典dict---------------------------
1.特征
- 无序的、可变的序列
- 通过键而不是通过索引来读取元素
- 字典是可变的,并且可以任意嵌套
- 字典中的键必须唯一,不支持同一个键出现多次,否则只会保留最后一个键值对
- 字典中的键必须不可变,只能使用数字、字符串或者元组,不能使用列表
2.创建
- dictname = dict()
- dictname = {}
- 通过 fromkeys() 方法创建, dictname = dict.fromkeys(list,value=None)
list 参数表示字典中所有键的列表(list);value 参数表示默认值,如果不写,则为空值 None
3.访问
- dictname[key],注意,键必须是存在的,否则会抛出异常
- dictname.get(key[,default]),键不存在返回None或default值
4.删除
- d.pop(‘Bob’), 删除一个key,对应的value也会从dict中删除
- d.popitem(),随机删除一个键值对
- del d
5.是否存在指定键值对
if key in d
6.keys()、values() 和 items() 方法
- keys() 方法用于返回字典中的所有键(key);
- values() 方法用于返回字典中所有键对应的值(value);
- items() 用于返回字典中所有的键值对(key-value)。
- keys()、values() 和 items() 返回值的类型分别为 dict_keys、dict_values 和
dict_items。转为list,b = list(a.keys())
7.update() 方法
- update() 方法可以使用一个字典所包含的键值对来更新己有的字典。
a = {'one': 1, 'two': 2, 'three': 3}
a.update({'one':4.5, 'four': 9.3})
8.遍历
d = {'a': '1', 'b': '2', 'c': '3'}
- 遍历key,效率高
for key in d:
print(key+':'+a[key])
- 遍历value值
for value in a.values():
print(value)
- 遍历字典项
for kv in a.items():
print(kv)
- 遍历key和value,效率低
#利用items遍历字典的key和value
for key,value in a.items():
print(key+':'+value)
#利用枚举遍历字典的索引和key
for key, value in enumerate(dict):
print key, value
---------------------------流程控制---------------------------
1. if语句
- 语法
if 表达式 1:
代码块 1
elif 表达式 2:
代码块 2
else:
代码块 n
- 表达式真假
布尔类型(bool)只有两个值,分别是 True 和 False
对于数字,Python 会把 0 和 0.0 当做“假”,把其它值当做“真”
对于其它类型,当对象为空或者为 None 时,Python 会把它们当做“假”,其它情况当做真
比如,下面的表达式都是不成立的:
“” #空字符串
[ ] #空列表
( ) #空元组
{ } #空字典
None #空值
2. while语句
num = 1
while num < 100 :
print("num=", num)
num += 1
print("循环结束!")
3. for语句
for 迭代变量 in 字符串|列表|元组|字典|集合:
代码块