Python基础第二篇
一、三元运算
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