python 基础
Python 今天从 Hello World! 开始吧.
现存版本: 2.7 官方2020年后不维护了,建议python3 3.x
数据类型
List 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort' Dict 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values' Str 'capitalize','center','count','encode','endswith','find', 'format', 'index','isalnum','isalpha','isdigit','join','lower','lstrip','replace','rfind','rjust','rsplit','rstrip','split','startswith','strip','title','translate','upper','zfill' Tuple 'count', 'index' Set 'add','clear','copy','difference','pop','remove','update'
7 data-type:
数字 整型 int 1,2,3 py2x 中有长整型 py3x全都是整型 bool(0)为False bool(非0)为True
字符串 str ('a' "b") 中文也是特殊字符
列表 list [1,2,3] 有序 可切片 索引 统计 拷贝 转换成其他数据类型
元组 tuple (1,2,3) 有序 元组子元素不可改,孙元素可修改 注意:(括号里只有一个类型就是此类型)
tu.index(元素)查索引,
tu.count(元素) 统计个数
字典dict {1:a,2:b} 无序 键-值对数据 键唯一/值随意
集合 set {1,2,3} 无序 无重
布尔值 bool (True False)
改
改变变量赋值内容
字符串 str + * '_'join的使用
str 切片 大小写 index count type类型 replace(替换) center(居中) split(分割) strip(脱) len长度
判断以什么开始 以什么结束 是不是大小写纯数字字母 是不是含特殊字符等 返回布尔值
列表 list +是合并 *相乘 lst= ['1','2','3'] print(','.join(lst)) 结果 字符串类型的 '123'
lst 增 append(追加) insert(插入) extend(遍历添加)
删 remove(移除) pop(弹出 默认最后一个) clear(清空,成空列表) del(可以删整个 也可以下标索引删除)
排序 sort(小到大) reverse(反转)
查 索引 #find返回-1 index报错 count计数
元组 ('aa',[1,2,3],{1:2,3:4})
元组不可修改 但其里面的除字符串,如列表/字典内可修改
count index
字典 dic={1:2,3:4}
键不可改(若键为元组 列表 字符串或字典都不能修改) 值随意
对于键值可以通过下标索引找到 并对这个元素进行各种属性操作
dic[key]=value 改变赋值
dic.setdefault(key,value)
items(结果[(key,value)]) keys values
pop
popitem
del dic
del dic[key]
update 更新
get
一次性创建大量键不同值相同的字典
dic = dict.fromkeys(['alex','wusir','wenzhou','nvshen','kaige'],['太白','姗姗'])
fromkeys 第一是键 第二是值
print(dic)
得到 {'alex': ['太白', '姗姗'], 'wusir': ['太白', '姗姗'], 'wenzhou': ['太白', '姗姗'], 'nvshen': ['太白', '姗姗'], 'kaige': ['太白', '姗姗']}
dic['alex'].append('老村长')
print(dic)
得到 {'alex': ['太白', '姗姗', '老村长'], 'wusir': ['太白', '姗姗', '老村长'], 'wenzhou': ['太白', '姗姗', '老村长'], 'nvshen': ['太白', '姗姗', '老村长'], 'kaige': ['太白', '姗姗', '老村长']}
布尔值
自带bool:
True
False:0 None '' [] {} 空字符串 空字典 空列表
格式化输出:
'%s'%变量 占位符
f {变量}
str.format(变量)
字符串运算符:
逻辑 not and or 与或非
赋值 =
比较 > < == !=等
成员 in not in
算数 +-*/
编码 bit位 1byte=8 bit
ascii 美国 英文1字节 不支持中文 0 -- 255
unicode 万国码 英文2字节 中文4字节
utf-8 自动识别码 英文1字节 中文3字节
GBK 中国 英文1字节 中文2字节
数据类型转化:
int>str
str>int
list>str
dict>str
tuple>str
set(集合)>str
循环
while 无限循环 需要break跳出, continue停止当次,继续下次循环
for 有限循环 遍历
条件语句
if else 缩进
if elif else 缩进
程序交互:
input()
python 3.x 获取值是字符串类型
python 2.x 输入什么 就是什么
print()
集合:
s={1,3,4,5}
s.add(9) #增
s.update('was')#增 遍历
s.pop() #随机删除
s.clear() #清空 set()
s.remove(3) #删除指定元素
for i in s: #查找 遍历
s={'黑河','方法','迭代',}
s1={'黑河','电批','混合'}
print(s & s1)#交集
print(s|s1) #并集
print(s-s1) #差集
print(s^s1) #反交集
print(s<s1) #判断 父子集 关系 返回布尔值
a=frozenset((1,2,3)) # 冻结 集合
编码 解码 再次:
windows中国 默认 gbk
python3 默认utf-8
python2 ascii码
gbk 中文2字节
utf-8 3字节
a='黑哥'
a1='Sara'
a2=a.encode('gbk') #编码 用什么编写就用什么解码
a3=a.encode('utf-8')
a4=a2.decode('gbk') #解码
a5=a3.decode('utf-8')
深浅拷贝
deepcopy 深拷贝 追根溯源 拷贝所有元素开辟新的存储空间 完全没有关系
浅拷贝 拷贝复制的是第一层元素