1,格式化输出
% 占位符,
s 字符串,
d digit 数字
%% 这个i是单纯的显示% format
name = input('请输入姓名:')age = input('请输入年龄:')job = input('请输入工作:')hobbie = input('你的爱好:')msg = '''-------info of %s--------Name : %sAge : %djob : %sHobbie: %s----------------end---------------''' %(name,name,int(age),job,hobbie)print(msg) format
s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('熊熊',22,'girl','熊熊') print(s) s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format('熊熊',22,'girl') print(s) s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=22,hobby='girl',name='熊熊') print(s)
2.初始编码
ascii: 字母,数字,特殊字符:一个字节,8位(最开始7位,后预留一位) unicode:16位,两个字节 升级32位 四个字节 utf-8:最少一个字节 8位表示。 英文字母 8位 1个字节 欧洲 16位 2个字节 中文 24位 3个字节 gbk:中文2个字节,英文字母1个字节 3.运算符 not and or 优先级,() > not > and > or
4,数据类型及其操作
数据类型划分:可变数据类型,不可变数据类型 不可变数据类型:tuple,bool,int,str 可哈希 可变数据类型:list,dict,set 不可哈希
int 1,2,3用于计算 bool: True,False, 用户判断 str: 存储少量数据,进行操作 '熊熊' '410420' 'loveyou' list: 存储大量数据。 [1,2,3,'123456'] tuple: 元祖,只读 (1,2,3,'第三方') dict: 字典{'name':'熊熊','age':22} 字典{'熊熊':[],'傻子':[]} 集合: {1,2,5,'12345'} 1,str----字符串的操作 s = ' ' 至少一个空格 返回True 索引:s = [首:尾:步长] 顾头不顾尾 切片:s = [首:尾:步长] capitalize 首字母大写 upper() 全大写 lower() 全小写 find() 通过元素找索引,找不到-1 index() 通过元素找索引,找不到 报错 swpcase 大小写翻转 len() 长度 replace() 替换 isdigit() 返回 数字 bool值 isalgha() 字母 isalnum() 数字和字母 startswith() 以什么开始 endswith() 以什么结束 title() 首字母大写 center () 居中 strip() 默认删除前后空格,遇到元素阻挡无法删除 split() str--->list一分为二,默认空格分隔 format 格式化输出 count() 计数 for i in 可迭代对象: pass while 1:效率高 pass 2,list----列表 增:append() 加到最后 insert() 位置插入 extend() 迭代增加 删:remove() 元素 pop() 索引 clear() 清空 del() 删除列表或者切片删除 改:li[索引]='被修改内容' li[切片]='被修改内容'分成最小元素迭代添加(先取出) 查:for循环 索引,切片 公共方法: len() 长度 count() 计数 index() 查找 sort() 正向排序 sort(reverse=True) 倒向排序 reverse() 列表反转 range() 有序列表(for)循环 jion() list---->str split() str----->list 列表嵌套 3,tuple----元祖(只读列表,可循环查询,可切片,儿子不能改,孙子可以改) 4,dict----字典(二分查找去查询,存储大量的关系型数据,3.5之前版本无序) 增:存在就覆盖 setdefault():有键值对不做任何改变,没有才添加 删 :pop() 按照key删除,默认返回None popitem()随即删除,默认返回元祖 clear() 清空字典 del dic['name'] 改:update() 查: dic.keys() 键 dic.values() 键值 dic.items() 键值对 dic.get(key,None) for i in dicl: 默认打印键 print(i) for i in dicl.values(): print(i) for k,v in dicl.items(): print(i) 字典的嵌套 5,set----集合{} 可变的数据类型,它里面的元素必须是不可变的 增:add() 无序 update() 迭代添加,按最小元素依次添加,无序 删:pop() 随机删除,有返回值 remove() 按元素删除,没有报错 clear() 清空集合 del() 删除集合 改: 查:for i in set1: print(i) 交集: & intersection() 并集: | union() 反交集:^ symmetric_difference() 叉集: - difference()减号之前独有 子集:< issubset() 前是后的子集 超级:> issuperset()前是后的超集 去重:li = list(set(li)) frozenzet() 不可变数据类型 5,知识点总结 python2和python3区别
python2 | python3 |
print() 2.7以后 支持加()或者不加() | print() |
range() xrange() | range() |
raw_input() | input |
= 赋值 == 比较值是否相等 is 比较的是内存地址 id (内容)
数字,字符串 小数据池 数字范围: -5--256 字符串: 1,不能含有特殊字符 2,s*20 还是同一个地址 ,s*21以后都是两个地址 剩下的 list dict tuple set 无小数据池
编码 python2 python3 通用 ascii: A :00000010 8位 一个字节 unicode: A :00000000 00000001 00000010 00000100 32位 四个字节 中 :00000000 00000001 00000010 00000110 32位 四个字节 utf-8: A :0010 0000 8位 一个字节 中 :00000001 00000010 00000110 24位 三个字节 gbk: A :00000110 8位 一个字节 中 :00000010 00000110 16位 两个字节 1.各个编码之间的二进制,是不能互相识别的,会产生乱码 2.文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk gb2312 ascii 等)
python3 : str 在内存中是用 unicode编码的。 bytes 类型 对于英文: str : 表现形式 : s = 'alex' 编码方式 : 010101010 unicode bytes:表现形式 : s = b'alex' 编码方式 : 000101010 utf-8 gbk 对于中文: str : 表现形式 : s = '中国' 编码方式 : 010101010 unicode bytes:表现形式 : s = b'x\e\91\e91\e01\e21\e31\e32' 编码方式 : 000101010 utf-8 gbk
encode 编码 ,如何将str---->bytes