格式化
>>>num = '%.2f'%3.1415926
>>>num
'3.14'
>>>'I am %s and %d years old'%('xyq',20) # 字符串的格式化
'I am xyq and 20 years old'
符号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f和%E的简写 |
%p | 用十六进制数格式化变量的地址 |
字符串操作
切片:截取字符串的一部分,左闭右开
索引: []、index(‘y’)
查找:返回下标
>>>'xyq'.find('y')
1
替换:
>>>'xyq'.replace('q', 'Q') # 前一个字符被后一个字符替换
'xyQ'
反转:
>>> 'xyq'[::-1]
'qyx'
r/R:字符串前加上,表示直接按照字面意思使用
成员运算符
in :包含给定字符串返回 True
not int : 不包含给定字符串返回 True
>>>a = 'Hello'
>>>'H' in a
True
内建函数
方法 | 描述 |
---|---|
capitalize() | 将字符串的第一个字符转换为大写 |
center(width,fillchar) | 返回一个指定的宽度width居中的字符串,fillchar为填充的字符,默认为空格。 |
count(str,beg=0,end=len(string)) | 返回str在string里面出现的次数,如果beg或者end指定则返回指定范围内str出现的次数 |
bytes.decode(encoding=“utf-8”,errors=“strict”) | Python3中没有decode方法,但我们可以使用bytes对象的decode()方法来解码给定的bytes对象,这个bytes对象可以由str.encode()来编码返回。 |
encode(encoding=‘UTF-8’,errors=‘strict’) | 以encoding指定的编码格式编码字符串,如果出错默认报一个ValueError的异常,除非errors指定的是’ignore’或者’replace’ |
endswith(suffix,beg=0,end=len(string)) | 检查字符串是否以obj结束,如果beg或者end指定则检查指定的范围内是否以obj结束,如果是,返回True,否则返回False. |
expandtabs(tabsize=8) | 把字符串string中的tab符号转为空格,tab符号默认的空格数是8。 |
find(str,beg=0,end=len(string)) | 检测str是否包含在字符串中,如果指定范围beg和end,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1 |
index(str,beg=0,end=len(string)) | 跟find()方法一样,只不过如果str不在字符串中会报一个异常. |
方法 | 描述 |
---|---|
isalnum() | 如果字符串至少有一个字符并且所有字符都是字母或数字返回True,否则返回False |
isalpha() | 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False |
isdigit() | 如果字符串只包含数字则返回True否则返回False. |
islower() | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False |
isnumeric() | 如果字符串中只包含数字字符,则返回True,否则返回False |
upper() | 转换字符串中的小写字母为大写 |
zfill(width) | 返回长度为width的字符串,原字符串右对齐,前面填充0 |
isdecimal() | 检查字符串是否只包含十进制字符,如果是返回true,否则返回false |
lower() | 转换字符串中所有大写字符为小写. |
lstrip() | 截掉字符串左边的空格或指定字符。 |
maketrans() | 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 |
max(str) | 返回字符串str中最大的字母。 |
min(str) | 返回字符串str中最小的字母。 |
replace(old,new[,max]) | 把将字符串中的str1替换成str2,如果max指定,则替换不超过max次。 |
rfind(str,beg=0,end=len(string)) | 类似于find()函数,不过是从右边开始查找 |
方法 | 描述 |
---|---|
rindex(str,beg=0,end=len(string)) | 类似于index(),不过是从右边开始. |
rjust(width,[,fillchar]) | 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度width的新字符串 |
rstrip() | 删除字符串字符串末尾的空格. |
split(str="",num=string.count(str)) num=string.count(str)) | 以str为分隔符截取字符串,如果num有指定值,则仅截取num+1个子字符串 |
splitlines([keepends]) | 按照行(’\r’,’\r\n’,\n’)分隔,返回一个包含各行作为元素的列表,如果参数keepends为False,不包含换行符,如果为True,则保留换行符 |
startswith(substr,beg=0,end=len(string)) | 检查字符串是否是以指定子字符串substr开头,是则返回True,否则返回False。如果beg和end指定值,则在指定范围内检查。 |
strip([chars]) | 在字符串上执行lstrip()和rstrip() |
swapcase() | 将字符串中大写转换为小写,小写转换为大写 |
title() | 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见istitle()) |
translate(table,deletechars="") | 根据str给出的表(包含256个字符)转换string的字符,要过滤掉的字符放到deletechars参数中 |
列表操作
删除
del list[2]
追加
>>>l.append('xyq')
>>>l
['hello','world','python', 'xyq']
extend与append的区别
>>>l.extend('lily')
>>>l
['hello','world','python', 'xyq', 'l','i','l','y']
>>>l.extend(['lily','hah','hey']) # 追加一个列表
>>>l
['hello','world','python', 'xyq', 'l','i','l','y', 'lily','hah','hey']
>>>l.append(['nihao','hao']) # 追加整个列表,追加啥就是啥
>>>l
['hello','world','python', 'xyq', 'l','i','l','y', 'lily','hah','hey',['nihao','hao']]
表达式 | 结果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 长度 |
[1,2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 组合 |
[‘Hi!’] * 4 | [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] | 重复 |
3 in [1, 2, 3] | True | 判断元素存在 |
for x in [1, 2, 3]: print(x, end =" ") | 1 2 3 | 迭代 |
函数 | 描述 |
---|---|
len(list) | 列表元素个数 |
max(list) | 返回列表元素最大值 |
min(list) | 返回列表元素最小值 |
list(seq) | 将元组转换为列表 |
内置函数
sort
当 l = [‘hello’,‘world’,‘python’, ‘xyq’, ‘l’,‘i’,‘l’,‘y’, ‘lily’,‘hah’,‘hey’,[‘nihao’,‘hao’]] 时会报错,嵌套的列表不支持排序
Traceback (most recent call last):
File"<pyshell#28>",line1,in<module>
l.sort()
TypeError:'<' not supported between instances of 'list' and 'str'
按照字典序排序
>>>l = ['l','h','i']
>>>l.sort()
>>>l
['h','i','l']
取反
>>>l.reverse()
>>>l
['l','i','h']
字典
键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
映射:
>>>dict = {'ming':'hangzhou','li':'nanjing','lucy':'shanghai'}
>>>dict['li']
'nanjing'
没有对应的键值则出现KeyError错误
增加一个键值对或者说修改
>>>dict['jim']='shenzhne'
>>>dict
{'ming':'hangzhou','li':'nanjing','lucy':'shanghai','jim':'shenzhne'}
删除字典元素: del
>>> dict = {'Name': 'Jizhixueyuan', 'Age': 21, 'Class': '101'}
>>>del dict['Name'] # 删除键
>>>'Name' dict.clear() # 清空字典
>>>del dict # 删除字典
获取字典的所有键:dict.key()
>>>l = list(dict.key())
>>>l
['ming','li','lucy','jim']
排序:
>>>l.sort()
>>>l
['jim','li','lucy','ming']
格式化输出:
>>>for each in l:
>>>print(each, dict[each])
jim shenzhne
li nanjing
lucy shanghai
ming hangzhou
查找:get,字典的查找get方法,没有则返回预设值而不报错
>>>value = dict.get('good','moring')
>>>value
'moring'
内置函数
方法 | 描述 |
---|---|
len(dict) | 计算字典元素个数,即键的总数。 |
str(dict) | 输出字典,以可打印的字符串表示 |
type(dict) | 返回输入的变量类型,如果变量是字典就返回字典类型 |
方法 | 描述 |
---|---|
radiansdict.clear() | 删除字典内所有元素 |
radiansdict.copy() | 返回一个字典的浅复制 |
radiansdict.fromkeys() | 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
radiansdict.get(key, default=None) | 返回指定键的值,如果值不在字典中返回default值 |
key in dict | 如果键在字典dict里返回true,否则返回false |
radiansdict.items() | 以列表返回可遍历的(键, 值) 元组数组 |
radiansdict.keys() | 返回一个迭代器,可以使用list() 来转换为列表 |
radiansdict.setdefault(key, default=None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
radiansdict.update(dict2) | 把字典dict2的键/值对更新到dict里 |
radiansdict.values() | 返回一个迭代器,可以使用list() 来转换为列表 |
pop(key[,default]) | 删除字典给定键key 所对应的值,返回值为被删除的值。key值必须给出。否则,返回default值。 |
popitem() | 随机返回并删除字典中的一对键和值(一般删除末尾对)。 |
元组tuple
不可变的列表
>>>T = (1, 2, 3, 4)
>>>T.count(1)
1
不可变则不可追加:
>>>T.append(5)
Traceback(most recent call last):
File "<pyshell#58>",line 1,in <module>
T.append(5)
AttributeError:'tuple'objecthasnoattribute'append'
集合
不重复,可进行交,并,差,异或等集合运算
>>>a = {1, 3, 4, 5}
>>>b = {1, 2, 4, 5, 6, 7}
>>> a&b # 交集
{1, 4, 5}
>>> a|b # 并集
{1, 2, 3, 4, 5, 6, 7}
>>>a-b
{3}
>>>b-a
{2, 6, 7}
>>>a^b
{2, 3, 6, 7}