一、三元运算
if True: name='a' else: name='b' #上面的代码用三元运算表示: name="a" if True else "b"
二、类中方法查看
Python中一切事物都是对象,对象由类创建
type 查看对象类型
dir(类型名) 查看类中提供的所有功能
help(类型名) 查看类中提供的功能详细
help(类型名.方法名) 查看类中某功能的详细
三、类型常用功能
1.整形
abs(x) #返回绝对值 x+y,x-y,x*y,x/y #加减乘除 x/y #取商,浮点数相除保留余数 x//y #取商,浮点数相除余数为0 x%y #取余 x**y #幂次方 cmp(x,y) #两个数比较,返回True或False相等则为0 coerce(x,y) #强制把两个数生成一个元组 divmod(x,y) #相除得到商和余数组成的元组 float(x) #转换为浮点型 str(x) #转换为字符串 hex(x) #转换为16进制 oct(x) #转换8进制
2.长整型,浮点型和整形基本相似
3.字符串
name='abc' name.capitalize() #首字母大写 name.center(20) # 长度20居中 name.center(20),"*" # 长度20里居中,其他用*填充 name.ljust(20) #长度20居左,rjust()居右 name.count('a') #字符串里a的个数 name.count('a',0,10) #字符串指定区域里a的个数 name.endswith('bc') #字符串是否以bc为结尾 name.expandtabs(8) #把tab键转换为空格,默认8个空格 name.find("b") #找字符b的下标,找不到返回-1,如果有多个只找第一个 name.index("b") #找字符b的下标,找不到报错 name.isalnum() #判断是否为字母或数字 name.isalpha() #判断是否为字母 name.isdigit() #判断是否为数字 name.islower() #判断是否小写 name.isspace() #判断是否都是空格 name.isupper() #是否全变大写 name.lower() #全变小写 name.upper() #是否全变大写 name.swapcase() #大写变小写,小写 变大写 name.replace('cc','dd') # 符合的全部替换 name.strip() #移除空格 name.split("b") #以b分割 #join li=["aa","bb"] '*'.join(li) #把列表的元素用*连接起来 #istitle name="Aa" name.title() #变为标题,标题(所有首字母大写就是标题) name.istitle() #判断是不是标题 #partition name="aaccbb" name.partition("cc") #分割成3部分 (aa,bb,cc)
format格式化的4种方法
name="i {0},age {1}" #按顺序 name.format("zhangsan",18) name="i {0},age {1}" li=["zhangsan",18] name.format(*li) #传列表要加* name="i {aa},age {bb}" #按名称 name.format(aa="zhangsan",bb=18) name="i {aa},age {bb}" dic={"aa":"zhangsan","bb":18} name.format(**dic) #字典加**
translate转换
import string a1="myis" a2="1234" trantab=string.maketrans(a1,a2) #先做一个对应表 strstr="my name is zhang" print strstr.translate(trantab) #把strstr中a1里的字母替换成a2里对应的数字 print strstr.translate(trantab,"is") #先删除strstr中的"is",在去替换 #输出结果: #12 na1e 34 zhang #12 na1e zhang
4.列表
li=[11,22,33,44] li.append() #追加 li.count() #找到出现的次数 li.extend([55,66]) #给原列表进行扩展 li.index() #找字符的下标,找不到报错 li.insert() # 在指定下标位置插入 li.pop() #删除并返回指定下标的值,如果没有指定下标,则返回最后一个 li.remove()# 移除 li.reverse()# 列表顺序反转 li.sort()# 排序
5.元组
tup=(1,2,3) tup.count() #找到出现的次数 tup.index() #找字符的下标,找不到报错 #元组的元素不能被修改 tup=(1,2,3) #元组的元素里的元组可以修改 tup=(1,2,3,[5,6])
6.字典
#字典是无序的 dic={'aa':123,'bb':456} dic.clear() #清空内容 dic.get('bb') #找不到BB时不会报错 返回的是None dic.get('bb','No')#找不到BB时不会报错 返回的是No #items dic.keys #取出所有key dic.values #取出所有value dic.pop("aa")#删除 dic.setdefault("aa",['22']) #如果字典里不存在aa则添加'aa'=‘22’,存在则不变 a={"bb":555,"cc":666} dic.update(a) #整合到dic字典,a里的key在dic里是否存在,如果存在则把dic里存在的key的value改成a中key对应的values,不存在则直接整合
浅copy,深copy
import copy a={"a":1,"b":[1,2],"c":3} b=a c=a.copy() #浅copy d=copy.deepcopy(a) #深copy a["d"]=4 print(a) print(b) print(c) print(d) #输出结果: #{'a': 1, 'c': 3, 'b': [1, 2], 'd': 4} #{'a': 1, 'c': 3, 'b': [1, 2], 'd': 4} #{'a': 1, 'c': 3, 'b': [1, 2]} 浅copy #{'a': 1, 'c': 3, 'b': [1, 2]} 深copy a["b"].pop(0) print(a) print(b) print(c) print(d) #输出结果: #{'a': 1, 'c': 3, 'b': [2], 'd': 4} #{'a': 1, 'c': 3, 'b': [2], 'd': 4} #{'a': 1, 'c': 3, 'b': [2]} 浅copy,字典内b对应的数组还是变了 #{'a': 1, 'c': 3, 'b': [1, 2]} 深copy,完全独立
7、集合set
#set是一个无序且不重复的元素集合 a=[1,1,2,2] set(a) #去重 a=set(range(1,5)) b=set(range(4,7)) a&b #交集 a|b #并集 a^b #反交集 a-b #a在b中没有的 a.issubset(b) #a是不是都包含在b里 a.remove(1) #删除 a.update(b) #b并入a
四、解码编码
例:
gbk》》unicode》》utf-8
utf-8》》unicode》》gbk
unicode可以编码(encode)成gbk和utf-8
gbk和utf-8可以解码decode成unicode
a="好" a是gbk编码
a.decode('gbk') 把gbk解码成unicode
a.decode('gbk').encode('utf-8')解码后在编码成utf-8