导图社区 Python基础思维导图
Python 基础汇总,适用于小白对基本知识的了解, Python 基础教程 Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。 Python 由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。
编辑于2021-06-16 17:05:05DNA修饰 DNA甲基化 RNA修饰 蛋白修饰 组蛋白修饰 3D基因组 及其技术。人类每个细胞的基因组一样,但功能、形态、不一样。
测序、转录组测序、单细胞测序、基因调控、NGS、RNA 世界,RNA:存在于生物细胞以及部分病毒、类病毒的遗传信息载体、一般单链。
首都师范大学课程笔记,包括古典精神分析和新精神分析(弗洛伊德、阿德勒、荣格、埃里克森),特质论(奥尔波特、卡特尔)行为主义和社会学习(巴普洛夫、华生、斯金纳、班杜拉),行为主义(罗杰斯、马斯洛),认知流派(凯利、威特金、米歇尔)以及生物流派(艾森克)进化心理学等
社区模板帮助中心,点此进入>>
DNA修饰 DNA甲基化 RNA修饰 蛋白修饰 组蛋白修饰 3D基因组 及其技术。人类每个细胞的基因组一样,但功能、形态、不一样。
测序、转录组测序、单细胞测序、基因调控、NGS、RNA 世界,RNA:存在于生物细胞以及部分病毒、类病毒的遗传信息载体、一般单链。
首都师范大学课程笔记,包括古典精神分析和新精神分析(弗洛伊德、阿德勒、荣格、埃里克森),特质论(奥尔波特、卡特尔)行为主义和社会学习(巴普洛夫、华生、斯金纳、班杜拉),行为主义(罗杰斯、马斯洛),认知流派(凯利、威特金、米歇尔)以及生物流派(艾森克)进化心理学等
Python基础
编译型与解释型
编译型:一次性,把所有代码编译成机器能识别的二进制码,再运行
代表语言:c,c++
优点: 执行速度块
缺点: 开发速度慢,调试周期长
解释型:代码从上到下一行一行解释并运行
代表语言:python,php
优点: 开发效率快,调试周期短
缺点: 执行速度相对慢
python的解释器
Cpython(官方推荐):把python转化成c语言能识别的二进制码
Jpython:把python转化成java语言能识别的二进制码
PyPy:将所有代码一次性编译成二进制码,加快执行效率(模仿编译型语言的解释器)
其他语言解释器:把python转化成其他语言能识别的二进制码
深浅拷贝
浅拷贝
原理:
浅拷贝只拷贝外层列表 内层列表跟随原列表进行改变
方法
copy模块:copy.copy(listvar) 或者 listvar.copy()
深拷贝
原理
拷贝整个列表 内外列表都不跟随原列表进行改变
方法
copy模块:copy.deepcopy(listvar)
python注释
单行注释
以#号开头 ,右边的所有东西都被当做说明文字 ,程序不进行编译运行
多行注释
由成对的三个单引号或三个双引号包裹起来的内容
注意:如果外面使用三个单引号,里面使用三个双引号,反之亦然。
python变量
变量的概念
可以改变的量,实际具体指的是内存中的一块存储空间
变量的声明
方法一: a = 1 , b = 2
方法二: a,b = 1,2
方法三: a = b = 3
变量的命名
支持内容
字母,数字,下划线
注意禁用
首字符不能使用数字
变量名严格区分大小写
不要使用系统内置的关键字
不推荐使用中文作为变量名
标准数据类型
数字类型(Number)
整数类型(int)
( 正整数 0 负整数 )
浮点数类型(float)
( 1普通小数 2科学计数法表示的小数 例:a = 3e-5 #3e-05 )
布尔值类型(bool)
( 真True 和 假False )
复数类型(complex)
(复数用作于科学计算中,表示高精度的数据,科学家会使用,由实数和虚数组成:3+7j)
容器类型(container)
字符串类型(str)
简介
被引号引起的内容,如"hello,world"
特征
可获取,不可修改,有序(索引下标)
列表类型(list)
简介
被中括号引起的内容,如[1,2,3]
特征
可获取,可修改,有序(索引下标)
元组类型(tuple)
简介
被小括号引起的内容(1,2,3)
特征
可获取,不可修改,有序(索引下标)
注意
区分是否是元组,由逗号这个标识符来决定
集合类型(set)
简介
被大括号引起的内容,如{1,2,3};主要用来做`交差并补`集运算
特征
不可获取,无序,不可修改,自动去重
注意
空子集定义方式:setvar = set()
集合的值的数据类型要求
允许的数据类型(可哈希,不可修改)
Number(int , float , bool ,complex) , str , tuple
不允许的数据类型(不可哈希,可修改)
list , set , dict
字典类型(dict)
简介
被大括号引起的键值对类型,如{"k1":"v1"};字典实际上无序,因为底层使用了哈希
特征
可获取,可修改,无序
注意
空字典定义方式:dictvar = {}
字典的键的数据类型要求等同集合的要求(允许可哈希不可变的类型)
数据类型转换
Number
int的强制转换
(整型 浮点型 布尔型 纯数字字符串)
int(var2)
float的强制转换
(整型 浮点型 布尔型 纯数字字符串)
float(var1)
complex的强制转换
(整型 浮点型 布尔型 纯数字字符串 复数)
complex(var1)
bool 的强制转换
没有数据类型的限制,可以转换一切数据类型;
bool( None )
自动类型转换
bool -> int -> float -> complex
自动类型转换原则: 把低精度的数据向高精度进行转换;
容器类型的强制转换
str 强制转换成字符串
str(var2)
list 强制转换成列表
list(var1)
tuple 强制转换成元组
tuple(var1)
set 强制转换成集合
set(var1)
运算符
算数运算符
+ , - , * , / , // , % , **
比较运算符
> , < , >= , <= , == , !=
特点:比较运算符只能得到2个结果,要么是True 真的 ,要么是False 假的
赋值运算符
= += -= *= /= //= %= **=
成员运算符
in 和 not in (针对于容器型数据)
身份运算符
is 和 is not (检测两个数据在内存当中是否是同一地址)
逻辑运算符
and 逻辑与
全真则真,一假则假
or 逻辑或
一真则真,全假则假
not 逻辑非
真变假,假变真
逻辑短路
短路两种形式:
True or 表达式
False and 表达式
无论后面的表达式是什么,都无法改变最后的结果,会出现逻辑短路;
逻辑运算符的优先级:
() > not > and > or
位运算符
& | ~ << >> ^
总结
个别运算符:
优先级最高的: ** 优先级最低的: =
整体运算符:
一元运算符 : 同一时间操作一个数值 (- , ~) 二元运算符 : 同一时间操作二个数值 (+,-,* , / ....) 一元运算符 > 二元运算符:
同一种类运算符:
算术运算符: 先算乘除,再算加减 逻辑运算符: () > not > and > or 位运算符 : ( << >> ) > & > ^ > |
所有大类运算符:
算数运算符 > 位运算符 > 比较运算符 > 身份运算符 > 成员运算符 > 逻辑运算符
循环
流程控制
流程: 代码执行的过程
控制: 对代码执行的过程进行把控
分支结构
单项分支
if 条件表达式: code1 code2
双项分支 (二选一)
if 条件表达式: code1 else: code2
多项分支
if 条件表达式1: code1... elif 条件表达式2: code2 elif 条件表达式3: code3 else: code4
巢状分支
if youqian == True: if youfang == True: if youche == True: if youyanzhi == True: if youtili == True: print("别想跑了,老娘要定了...") else: print("上道边,重金求子") else: print("请你去泰国整容...") else: print("你去买了布加迪威航") else: print("你是个好人 .. ")
循环结构
作用: 减少冗余代码,提升代码效率
while
while 条件表达式: code1...
注意防止死循环
for
for 变量 in Iterable: code1 code2
range对象 留头舍尾
range( start , end , step )
关键字
break 终止当前循环
continue 跳过当前循环
字符串相关
字符串的格式化format
传参方式
顺序传参
索引传参
关键字传参
容器类型数据
填充符号的使用
:d 整型占位符
:f 浮点型占位符
:s 字符串占位符
:, 金钱占位符
字符串的相关操作
字符串的拼接 +
str1 + str2
字符串的重复 *
strvar * 3
字符串跨行拼接 \
str1 = "111" \ "222" \ "333"
字符串的索引
# 0 1 2 3 strvar = "你好帅哦" # -4-3-2-1
字符串的切片
语法 => 字符串[::] 完整格式:[开始索引:结束索引:间隔值]
相关函数
字符串
字符串相关函数
*capitalize 字符串首字母大写
*title 每个单词的首字母大写
*upper 将所有字母变成大写
*lower 将所有字母变成小写
*swapcase 大小写互换
*len 计算字符串的长度
*count 统计字符串中某个元素的数量
*find 查找某个字符串第一次出现的索引位置
字符串的判断
*startswith 判断是否以某个字符或字符串为开头
*endswith 判断是否以某个字符或字符串结尾
*isupper 判断字符串是否都是大写字母
*islower 判断字符串是否都是小写字母
*isdecimal 检测字符串是否以数字组成 必须是纯数字
字符串的相关操作
*split 按某字符将字符串分割成列表(默认字符是空格)
*join 按某字符将列表拼接成字符串(容器类型都可)
*center 填充字符串,原字符居中 (默认填充空格)
*strip 默认去掉首尾两边的空白符
*replace() 把字符串的旧字符换成新字符
列表
列表的相关操作
列表的拼接
lst1 + lst2
列表的重复
lst1 * 3
列表的切片
[开始索引:] 从开始索引截取到列表的最后
[:结束索引] 从开头截取到结束索引之前(结束索引-1)
[开始索引:结束索引] 从开始索引截取到结束索引之前
[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取列表元素值
[开始索引:结束索引:-1] 从右向左 逆向截取
[:]或[::] 截取所有列表
lst[number] 列表的获取
列表的修改
一次修改一个
lst[1] = "菲菲"
一次修改多个
lst[2:5] = [1,2,3,4,5,6]
一次修改多个(带步长)
lst[::4] = [500,600,700]
列表的删除
一次删除一个
del lst[0]
一次删除多个
del lst[1:5]
增
append 向列表的末尾添加新的元素
insert 在指定索引之前插入元素
extend 迭代追加所有元素
删
pop 通过指定索引删除元素,若没有索引移除最后那个
remove 通过给予的值来删除,如果多个相同元素,默认删除第一个
clear 清空列表
其他操作
index 获取某个值在列表中的索引
count 计算某个元素出现的次数
sort() 列表排序 (基于原有列表进行修改)
reverse 列表反转操作
字典相关函数
增
dic["top"] = "廉颇"
fromkeys()
删
pop()
通过键去删除键值对 (若没有该键可设置默认值,预防报错)
popitem()
删除最后一个键值对
clear()
清空字典
改
update()
批量更新(有该键就更新,没该键就添加)
查
get()
通过键获取值(若没有该键可设置默认值,预防报错)
其他方法
keys()
将字典的键组成新的可迭代对象
values()
将字典中的值组成新的可迭代对象
items()
将字典的键值对凑成一个个元组,组成新的可迭代对象
集合
交差并补
交集
set1.intersection(set2)
set1 & set2
差集
set1.difference(set2)
set1 - set2
并集
set1.union(set2)
set1 | set2
反向差集
set1.symmetric_difference(set2)
set1 ^ set2
关系判断
判断是否是父集
set1.issuperset(set2)
set1 > set2
判断是否是父集
set1.issuperset(set2)
set1 > set2
检测两集合是否不相交(不相交 True 相交False)
set1.isdisjoint(set2)
增删改查
增
add()
向集合中每次添加一个数据
setvar.add("周星")
update()
setvar.update([1,2,3,4,5])
删
clear()
清空集合
setvar.clear()
pop()
随机删除集合中的一个数据
setvar.pop()
remove()
删除集合中指定的值(不存在则报错)
setvar.remove("张大")
discard()
删除集合中指定的值(不存在的不删除)
setvar.discard("郭杰")
冰冻集合
frozenset
冰冻集合一旦创建,不能在进行任何修改,只能做交叉并补操作