Python基础
2020-02-26 15:04:56 0 举报
AI智能生成
登录查看完整内容
Python基础【经常更新】
作者其他创作
大纲/内容
Python基础
3 高级类型
列表
使用场景
存储相同类型的数据
对列表中的每一项元素,执行相同的操作
强制转换:list(\"AbC\")字符串转列表第二法
左右个数必须相同
可用于拆包(但不建议)
切片方法与字符串切片相同
注意:列表相互赋值并不是新建内存单元重新储存,而是复制列表指针这意味着,改变复制过的任意一个列表,则所有列表都同样变化
切片复制创建一个新列表而不影响原列表b = a[:]
增删改查
增
删
pop 通过索引删除列表中对应的元素,有返回值为删除元素内容默认删除最后一个即len(l)元素,len(l) 计算列表个数l.pop() --> 会改变原列表l.pop(-3) --> 会改变原列表print(l)remove 通过元素删除列表中该元素,多个元素则删除第一个l.remove(2) --> 会改变原列表print(l)del 按照索引删除该元素del l[2] --> 会改变原列表print(l)
切片删除列表元素 左闭右开del l[1:2] --> 会改变原列表print(l)切片(步长)删除列表元素del l[::2] --> 会改变原列表print(l)
清空列表l.clear()
清空原数据,但不释放指针
改
l[0] = '你好'print(l)
查
print(l.index(2))
不会改变原数据
排序反转
小大排序l.sort()
大小排序l.sort(reverse = True)
改变原数据
反转列表:l.reverse()
列表转字符串List to Str
s1 = ''.join(l)print(s1)s2 = ' '.join(l)print(s2)
嵌套列表
range
元组
可读列表使用、拆包使用
此代码作用:拆包且Python官方推荐
字典
存储描述一个物体的相关信息
特点:有序、键唯一,值任意且键必须是不可变数据类型
如果一个列表中存在多个相同的键 则后面的替换前面的
创建方法
方法二操作策略:有则不变(不更新),无则增加
将一个字典赋值到另一个字典更新后面字典的数据 此为方法三
按键弹出字典中存在的键值对,此时键必须存在pop('name')按键删除字典中存在的键值对,此时键必须存在del dic['age']print(dic) 如不存在则报错
清空:dic.clear()
dic = {'name': 'xiaoran'}dic['name'] = 'ran'print(dic)
和增的方法一相同
查键值对
print(dic.items())
得到的是特殊的列表类型每个键值对是元组形式list(dic.items())来转为普通列表
查键名
print(dic.keys())
得到的是特殊的列表类型list(dic.keys())来转为普通列表
展示所有元素:for key in dic.keys():print(key)
查值
print(dic.values())
得到的是特殊的列表类型list(dic.values())来转为普通列表
展示所有元素:for value in dic.values():print(value)
取
print(dic['name'])
此时如果键不存在会报错
print(dic.get('name'))
如无此键不输出不报错
嵌套字典
类型分类及特性
可变(但不可哈希)
列表、字典
不可变(但可哈希)
Str、Bool、Int、元组
4 各种关系
While循环
代码块
For循环
If判断
Case判断
三元运算
a[i] = a[i] if(a[i] > b[i]) else b[i]
解释:操作代码 if 正确的情况下 else 换值
象牙表达式
1 基本类型
Int 数字
支持带括号的四则运算
print((1+2)*3/6)
除四则运算外支持
//:根号
**:方
%:取余
支持比较大小
大于、小于、不等于
此数的二进制位数
print(123.bit_lenth())
变量强制转换
int(input(\"请输入数字:\")+\"123\")
Str 字符串
单双引号适用但不能混用
#print('hello')
print(\"world\")
如果单双引号都在字符串中使用用“\\”来转义括号两边的引号
*建议单字符用单引号,多字符用双引号
三个引号用来多行显示
s3 = '''今天我想写首小诗,歌颂我的同桌,你看他那乌黑的短发,好像一只炸毛鸡。'''
*建议使用单引号
可字符串加/乘操作
a = \"hello\"b = \"world\"print(a + b)
print((a+b)*3)
一些转义
print((a+b+'\')*3)
print((a + '\\t' + b)*3)
转换数字:str(123)
input()函数输入类型为字符串型
可用Bool来判断字符串是否为空
格式化输出
%s 字符串%d 数字
print(\"%s的学习进度%d%%\
%%在格式化输出时可以打印出%(起转义的作用:从保留字变正常)
{} 大括号方法
print(\"{}{}{}\
print(\"{2}{1}{3}\
print(\"{a1}{a2}{a3}\
高级操作
切片
左闭右开s2 = a[0:5]s3 = a[0:-1]
支持单边省略s4 = a[:5] --> 从开头开始s5 = a[0:] --> 到结尾结束
可以指定步长(不加默认为1)s6 = a[0::2]
可以倒序进行s7 = a[-1::-2]
长度
len(s2)len(s6)
查找
count查找字符串中有几个指定字符(串)
b = \" abcABCabccbaacbabccba\"print(b.count(\"cba\
注意:左闭右开
大小写转换
验证码等不分大小写场景
print(b.upper())
print(b.lower())
是否为何内容开始和结束
邮箱字母开头场景
b.startswith(\"abc\")
b.endswith(\"cba\")
字符串替换
字符串去除空白
print(b.strip())
去除左空白:lstrip()去除右空白:rstrip()
字符串的字符间插入
print(' '.join(b))
判断字符串内容类型
字符及数字:b.isalnum()
字符:b.isalpha()
阿拉伯数字:b.isdecimal()
字符串转列表Str to List
abc = '你 是 谁't1 = a.split()print(t1)
以特定字符为间隔替换ace = \"我!是!我\"t2 = ace.split('!')print(t2)
Bool 正误
正确 代表1
print(2 > 1)
错误 代表0
print(3 < 1)
用来检测是否字符串为空bool('') --> Falsebool(' ') --> Truebool(\"王烁然\") --> True
用来判断数字是否为0bool(0) --> Falsebool(1) --> Truebool(-1) --> True
查看此变量类型:type(123)
逻辑运算
支持not、and、or
not > and > or
print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1)
print(1 or 2) --> 1
print(0 or 3) --> 3
2 注释
单行注释 #
VSC:Ctrl + /
多行注释 三引号
*建议使用双引号
VSC:Alt + Shift +A
5 编码问题
编码和解码也就是 unicode 和 str 这两种形式的相互转化编码是 unicode -> str,相反的,解码就是 str -> unicode
将gb2312编码的字符串str1解码成unicode
str1.decode(\"gb2312\")
将unicode字符串str2编码成utf-8编码
str2.encode(\"utf-8\")
在Python 3中默认UTF - 8
None:一种特殊的类型
0 条评论
回复 删除
下一页