Python 数据类型
数字类型: int整型,long 长整型(在python3.0里不区分整型和长整型)。float浮点型;complex复数(python中存在小数字池:-5--257);布尔值:真或假1或0,1真,0假,真为条件成立,0为条件不成立。
数据运算
运算符:+加,-减,*乘,/除,%取模(返回除法的余数),**幂(返回X的y次方)
//取整除(返回商的整数部分)
比较运算符:
bytes类型
文本都是str字符串类型,音视频文件都是用bytes类型表示。二进制统一称为bytes类型。
数据转换
Str转二进制bytes
网络编程的时候python3.0数据传输全部必须使用二进制形式。Encode(编码),decode(解码)
abc='广东省'
print('abc'.encode)
C:\Users\HT\AppData\Local\Programs\Python\Python35\python.exe C:/Users/HT/PycharmProjects/untitled/sys.mod.py
<built-in method encode of str object at 0x000002AD3DBBA768>
进程已结束,退出代码0
列表/元组操作 元组与列表的区别,元组是小括号(),列表是中排号[],元组只能使用count,和indax。
列表是一种数据类型:
nams=[‘zhangyang’,’’guyun’,’xiangpeng’,’xuliangchen’]
Print(name[names[1:3]],取的值是第一位的guyun和第二的xiangpeng,不含第三位。取头不取尾。称为切片。从0值开始。无法取-1后一位数,如果取-1后一位,直接写:号
import copy
names=['zhangyang','guyun','xiangpeng',['zhangli'],'xuliangchen','guwen']
names2=[1,2,3,67,9]
print (names)
print (names[1],names.count('guyun'))# count 统计某一字段在数据中的数量
print(names.index('xuliangchen'))# index 查找出某一字段的位置
print(names[-4:])# 打印出从负4位至最右一位字段
names.append('huangtao')# append 追加字段,默认追加至最后一位位置
names.insert(2,'yanglianhue')# insert 插入字段,insert (2,'yanglianhue')指在将字段插入到第2位置
names[3]='machaog' # ,names[3]='machaog'是指将替换第3位置的字段
names.remove('guyun')# remove 删除
names.clear()# clear 清空列表
names.reverse()# reverse 反转顺序
names.sort()# sort 排序 次序为字符串/数字/字母,即为ASCII码顺序排序。
names.pop(2)# pop()指定位置为删除最后一位字段,指定位置pop(2)意为删除位置2的字段。
names.extend(names2)# extend 扩展,将names2扩展到names,names2列表中的数据不会被修改。
del (names2)# del 删除。
names2=names.copy()# copy 为浅copy ,只copy第一层,也可以用names2=names[:],也可以用names2=list(names)
names2=copy.deepcopy(names)# 调用import copy 库里的copy.deepcopy为深copy。,不仅COPY第一层的数据,还copy列表下一层的数据
names[2]='huangtao'
names[3]='tao'
print(names)
print (names2)
print(names[0:20:2])# 可以像range 一样的使用步长来打印输出。
for i in names:
print (i)'
isdigit() 方法检测字符串是否只由数字组成。
enumerate()的用法多用于在for循环中得到计数,在同时需要index和value值的时候可以使用 enumerate。
len() 方法返回对象(字符、列表、元组等)长度或项目个数。
字符串的常用操作
name = 'my name is alex li'
#print (name.capitalize())#首字母大写
#print (name.count('l'))#统计字符的数量
#print(name.center(50,'-'))#指定字符串长度,将变量居中,长度不够用指定字符填充。
#print('name'.encode)#转换成二进制
#print(name.endswith('i'))#判断以什么结尾
#print(name.expandtabs(tabsize=30))#将tab符转换成N个空格,\t 为tab符
#print(name.find('l'))#查找输出下标,从左边开始查找
#print(name.rfind('l'))#查找输出下标,从右边开始查找
#print (name[name.find('is'):15])#对字符串进行切片,从变量name中查找从'is'开始截取至第15位
#print(name.format(name='alex',year=20))#格式化输出
#print(name.format_map({'name':'alex','year':12}))#使用字典格式化输出
#print('Abc123'.isalnum())#判断字符串是否由数字和字母组成。
#print('abc'.isalpha)#判断字符串是否由纯字母组成
#print('123'.isdecimal())#判断字符串是否是十进制无小数点的数字。
#print('66'.isdigit())#判断字符串是否是个整数。
#print('1A'.isidentifier())#判断是不是一个合法的变量名
#print('a 1A'.islower())#判断是否是全小写
#print('88'.isnumeric())#判断是否是只有数字和isdigit类似
#print('33a'.isspace())#判断是否是空格
#print('My Name Is Alex'.istitle())#判断首字符是否是大写
#print('my name is'.isprintable())#判断文件是否可以打印,tty file,drive file 无法打印
#print('my is'.isupper())#判断是否全是大写
#print('+'.join(['1','2','3'])#输出结果为1+2+3
#print(name.ljust(50,'*'))#指定字符串长度,长度不够右边用*号填充
#print(name.rjust(50,'*'))#指定字符串长度,长度不够左边用*号填充
#print('ALEX'.lower())#将大写转小写
#print('alex'.upper())#将小写转大写
#print('\nAlex'.lstrip())#去掉左边的回车和空格
#print('Alex\n'.rstrip())#去掉右边的回车和空格
#print('\nAlex\n'.strip())#去掉全部的回车和空格
'''
p = str.maketrans('abcdefg','1234567')
print('alex li'.translate(p))#将abcdefg,转换成对应的1234567,类似加密。
'''
#print('alex',replace('L'))#替换,将大写L替换小写l;replace(L',1)可加参数1,指只替换1处。
#print('alex li'.rfind('l'))#查找最右边的值,find()是查找最左边的值。
#print('alex li'.split())#默认按空格来分割字符串,也可使用指定符分割,split('a')
#print('Alex Li'.swapcase())#首字线小写,其它字母大写
#print ('alex li'.title())#将字符串的首个字母转换大写
print('alex li'.zfill(50))#位数不够用0填充
字典与集合
字典是无序的,没有下标。字典是通过key来查找的。
字典是一种Key-value的数据类型,key是键,value是值。
info ={
'stu001':"li lian jie",
'stu002':"zen zi dang",
'stu003':"chen long",
}
print(info['stu001'])#查询
print(info.get('stu006'))#尽量使用这种查询,不容易报错。
info['stu004']='李连杰'#修改,如果字典里没有就会创建。
del info['stu002']#删除
info.pop ('stu002')#删除
info.popitem()#随机删除
print('stu001' in info)#判断字典里是否存在‘stu001‘
在python 2.X info.has_key("001" )#print(info)
print(actor.values())#打印值,不打印KEY
print(actor.keys())#打印KEY,不打印值
actor.setdefault('英国',{'www.google.com':['a','b','c']})#先查找字典里的key,如果字典里没有则创建,如果有则返回字典里的key
actor = {
'大陆':{
'li lian jie':['大陆第一代功夫巨星','代表作:','少林寺']
},
'香港':{
'li xiao long':['功夫电影第一人','代表作:','龙争虎斗']
},
'美国':{
'Stallone':['美国硬汉第一人','代表作:','第一滴血']
}
}
info={
'韩国':{
'安在旭':['a','b']
},
'美国':{
'施瓦辛格':['美国硬汉第二人','代表作:','未来战士']
}
}
actor['美国']['Stallone'][2]='敢死队'
print(actor.values())#打印值,不打印KEY
print(actor.keys())#打印KEY,不打印值
actor.setdefault('英国',{'www.google.com':['a','b','c']})#先查找字典里的key,如果字典里没有则创建,如果有则返回字典里的key
#info.update(actor)#合并字典,有重叠的覆盖,没有的创建
#print(info.items())#将字典转换为列表
#c = dict.fromkeys([1,2,3],'test')#创建一个新字典,并赋值test,类似浅copy,fromkeys创建的key都指向的是同一内存地址,修改其中一个KEY,其它KEY的value会跟着改变
for i in actor:#循环打印字典
print (i,actor[i]) for k,v in actor.items():#把字典转换成列表
print(k,v)