1,格式化输出
% 占位符,
s 字符串,
d digit 数字
%% 这个i是单纯的显示%
format
name = input('请输入姓名:') age = input('请输入年龄:') job = input('请输入工作:') hobbie = input('你的爱好:') msg = '''-------info of %s-------- Name : %s Age : %d job : %s Hobbie: %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