导图社区 python基础数据类型
提供python入门所需的全部知识汇总,帮助初学Python的学员快速把握知识框架,掌握基础知识!
编辑于2020-02-05 11:49:09Python1 基础数据类型
数据类型
列表 list 直接[ ],不须加点
增
.append 末尾追加 q.append() (列表专属函数)
.extend 只能放置字符串和列表 拆分字符串并放置 将两个列表合并 (列表专属函数)
+ 用于列表的合并 【】+【】=【 】
.insert 插入 q.insert[下标位置,‘元素’] 原位置的元素后移一位 (列表专属函数)
删
删除(不需要点调用且放在字符名称前面) 通过下标 del q[3] (列表专属函数)
弹栈 .pop() .pop(2) 默认删除列表最后一个元素 也可通过下标指定 返回值是删除的元素 队列是先进先出 栈是先进后出 (列表专属函数)
.clear()
改
替换 通过下标 直接赋值替换 q[3]=89
.remove(e) 删除列表中出现的第一个e,返回值是none(但已删除,否则会报错的) (列表专属函数)
.reverse() 翻转 排序对调
.sorted 排序 sorted() 默认升序 sorted(q,reverse=-1/True) 降序
查
查找 通过下标 q[3]
max(list) min(list) 找出列表中的最大/最小值 max(q)
sum() 求和
枚举 enumerate 同时返回下标和值 此二值需要有对应的两变量接 (列表专属函数) for i ,j in enumerate(list)
元组 tuple 不可增删改,可以查
拆包 装好加*即为拆
t=(1,2,3,4,5,6,7) a,*b,c=t Print(a,b,c)--->1,[2,3,4,5,6],7
装包 零散未装加*即为拆
t=1,[2,3,4,5,6],7 Print(*b)--->2,3,4,5,6
元组与字符串的区别
q=('1,2,3,4,5,6,7,8,9,0,98,2')---> 字符串 带引号 w=(1,2,3,4,5,6,7,8,9,0,98,2)---> 元组 不带引号 除了字符串还能放其它格式的元素
字典 dict 字典中的元素成对出现 {key:value} 键值对 无下标说法
增
q[key]=value 有key替换 无key增加
删
.pop(key,default)弹栈 通过键值对的键 弹出键值对 没有则返回默认值 字典没有remove
.popitem() 注意没有末尾的s 随机删除一个键值对,一般删除末尾
.clear() 清空
引
update升级函数 dict1.update dict2 将2字典中与1字典key值相同的value升级为dict2中的value,没有的则将该键值对添加进dict1中
dict.fromkeys(data,45) 将字典内的key转为新字典的key,value值为none,或者是后面指定的default
.Items() 将字典转为元组
查
.values 取出字典的所有值
.keys 取出字典的所有键
.get(key,default) 能取到就取出来,取不到就返回默认值default
单独遍历列表,返回key值 for i in q
集合 set 去重特性 无序特性
形式
括号也是{},但里面放的不是键值对
set() 声明空集合 不能用{} 否则就是字典
增
.add() 添加单个元素 不能添加多个
.update 升级
删
.remove()
.pop()
.clear()
.dicard() 类似remove,但没有不会报错
集合运算
差集 .difference() -
交集 .intersection() &
并集 .union() |
对称差集 .symmetric_difference() ^ 找出不一样的元素
运算符 operater
赋值运算符 = 拿后面的值给前面赋值
算术运算符
+ - * /
+= -= *= /=
**(a的b次方) //整除取商 %整除取余
关系运算符 返回值是True False
== 判断是否一致
!= 判断是否不一致
is 用户对象的比较 什么和什么是一样的
逻辑运算符 返回值是True False
and
or
位运算
数位进制
基本概念
针对数位的逻辑运算 展示的是默认的十进制,底层是二进制运算
1个字节byte=8个二进制位bit
0000 1111正数 1000 0110 负数 ---> 第一个数位为符号位,0代表正数,1代表负数
是多少进制就是谁的多少次方(次方根据数位算得)
二进制 0b101010
负数转换方法:算正数的2进制、取反(1变0,0变1)、加1
八进制 0o345346
八进制转二进制的简便方法:(8进制最大值为7,为111,最多三位) N=0o6430--->6(110)4(100)3(011)0(000)--->拼接110100011000
十六进制 0x6880 (0~9,a~f)
十六进制转十进制: N=0x6430--->6*16**3+
not
位运算
位运算与 & 数位相乘
3&2--->0000 0011&0000 0010--->0000 0010--->返回值2
位运算或| 有1为1
3|2--->0000 0011|0000 0010--->0000 0011--->返回值3
位运算非~ 就是取反
~3--->0000 0011--->(取反)1111 1100--->(-1)1111 1011 --->(取反)0000 0100--->(记得加-号) 返回值-4
位运算异或^ 相同得0,不同得1
3^2--->0000 0011^0000 0010--->0000 0001--->返回值1
位运算左移<< 末尾补0
3<<1--->0000 0011--->代码左面进隧道,后面补0 00000110--->返回值6
位运算右移>> 前头补符号位 正0负1
3>>1--->0000 0011--->代码右面进隧道,前面补符号位0000 0001--->返回值1
三目运算符
Result=(a+b) if a>b else a-b 如果a>b 成立,计算a+b ,否则计算a-b
基本内建函数
随机函数 random
import random for i in range(10): 必须要加这句代码,不能直接和下面的合并 不能在for..in..中循环的函数就是不可迭代的,random不可迭代 q=random.randint(1,10) print(q)
使用前需要先调出该函数:import random
语句 random.randint(开始,结束) 包前包后
for i in range(10): 必须要加这句代码,不能直接和下面的合并 不能在for..in..中循环的函数就是不可迭代的,random不可迭代
Range(开始,结束,步长) 包前不包后
end用法:
print(‘*****’,end=(‘以。。。。结尾’))
sep 用法:
print(‘*****’,sep=(‘以。。。。间隔’))
判断是什么类型的函数 isinstance(tuple)
循环语句
if 循环语句
If *****:--->末尾一定要加冒号: elif: else: pass--->占位,防止语法错误 break--->跳出循环 continue--->跳过后面的语句,继续返回上面的循环
While 循环语句
While True: 一定要带冒号,一定要首字母大写
for循环语句
for i in range(10) 遍历
字符串
转义字符(\特征)
\n 换行 newline
\r 回车 carriage return 打印头回到首行
\t 制表符
\’ 单引号
\’’ 双引号
\\ \
格式化输出
% 赋值时%前面不需要逗号和点号
%s 字符串占位符 string
q=100 w=6 print('今天花了%s元买了%s台电脑'%(q,w)) 赋值时%前面不需要逗号和点号
%d 数字占位符 digit
%f 浮点型占位符 float
print('今天花了%.1f元买了%.2f台电脑'%(q,6))
由于是小数,就涉及到保留小数位数,因此在占位时注意%.1f的写法,后面的赋值格式不变。
.format {}占位 .出来的表示调用函数
print('今天花了{}元买了{}台电脑'.format(q,e))
字符串运算符
+ 拼接
* 倍数
in 在。。。里面
not in 不在。。。里面
r 保留源格式,不转义字符
Print(‘你好\n阿三 ’) ---> 你好(换行)阿三 Print(r‘你好\n阿三 ’)--->你好\n阿三
[ ] 切片 下标索引
q[开始:结束:+/-方向 开始到结束也要体现方向 步长] 包前不包后 前面不需要点调用
[:10] 从0开始
[10:] 从10开始取到末尾
还能反着取,从右往左,负数表示 [1:10:-1] 末尾一位为-1
字符串内建函数 ‘.’调用
大小写转换
.title() 将字符串中每个单词的首字母全部转为大写
.lower() 将字符串中的字母全部转为小写
.upperr() 将字符串中的字母全部转为大写
.Istitle() .islower() isupper() .iscapitalize()(不支持) 返回值为True False
查找函数
.find(要查找的字符,开始位置,结束位置) 找不到返回值-1
.rfind(,,) .lfind(,,)从左往右查找
.index() rindex() 和find用法一样,只是找不到时会报错
.repalce (要替换的元素而不是下标,替换元素) 替换
.encode编码函数
encode(‘’) 编码 不填默认为国际标准 utf-8 国际语言编码 gbk gb2312
.decode(‘’) 解码
判断字符串开头和结尾 返回值为True False
.startswith() 判断是以什么开头的
.endswith() 判断是以什么结尾的
判断字符串是否是数字 返回值为True False 末尾也要带括号
.isdigit() 判断是否是数字
.isalpha() 判断是否是字母
.join() 用加入的字符连接原有字符串形成一个新的字符串
.strip去除函数
.lstrip() 去除字符串左侧的空格
.rstrip() 去除字符串右侧的空格
.strip() 去除字符串两侧的空格
.split(‘***’,5)
以给定的原字符串中有的字符为分隔符,分割字符串并将其保存到列表中 (作为分割符的在字符串中的字符,分割段数/最多为不写的默认),作为分割的字符串将会被去除
.count(‘’) 计算所给字符的数量
in
In 与 == 的区别:==是一模一样 in是含有,包含
基础知识
单词
default 默认的
raise 抛出
stream 流
buiilt-in(builtins) 内置
operater 运算符
index 索引,用于查找位置
strip 去除
iterable 可迭代的,可重复的
instance 实例
sequence 序列
initial 初始的
Defined(define) 定义
Invalid 无效的
Character 字符
split 分割
extend 扩展
报错类型
syntaxError 语法错误
NameError 名字错误
快捷键
运行 fn+F5
可迭代的
不能在for..in..中循环的函数就是不可迭代的,random不可迭代