栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

2021-09-27python(四)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-09-27python(四)

python的容器

什么是容器 容器就是编程语言提供给我们开发者使用的对象 包含性质

为什么学习容器 大量数据的时候 批量的管理和操作大量数据

什么时候用 大量数据 特殊数据

在程序中数组 链表 栈 队列,其中数组查询非常快

怎么用

python官方为大家提供四种常见容器

list 列表

有序的数列

在程序中 线性表 数组 链表 栈 队列

python的list底层就是基于双向链表结构设计的

[] #列表是以[]的形势表现

ls [] #空列表

ls [1,2,3,4,5,6] #创建了一个有如下元素的列表

ls list([1,2,3,4,5,6,7])

help(list)#全局函数help可以查阅模块信息

len( 全局函数 返回长度

全局函数 不需要导入包 print(),input(),type(),range(),list(),len(),exit(),help(),dir()

访问list中的元素

线性表 都是具有下标 索引 的

列表对象[下标]

注意 下标从0开始 注意越界问题

list常见方法

append #在列表尾部追加元素

insert(index,元素)#在对应的索引位插入元素

remove(元素)#移除元素 如果不存在 则报错

pop(index -1)#默认移除最后一个元素 如果存在参数 则该参数就是要移除的下标 注意 下标有误 会抛出异常

reverse()#翻转列表顺序

sort()#排序

clear()#清空列表

index(元素)#查找元素位置

count(元素)#统计某元素数量

extend()#合并列表

copy()#拷贝对象 其本质为前拷贝

set 集合 特点 无序的(不存在下标),不重复的

底层使用的hash表 哈希表

定义

1 借助弱数据类型语言的特点

{xx}

注意 必须要存在值 否则默认空{}是字典类型 而不是set

2 全局set函数

s set({})

遍历只能使用for循环遍历 while没有办法遍历

add#添加元素

clear()#清除列表

copy()#浅拷贝

difference()#差集

intersection#交集

union#并集

remove(元素)#移除元素 如果不存在 则报错

pop(元素)#随机移除,不存在报错

discard(元素) #随机移除 不存在不报错

tuple 元组

不可变数据类型 就是说它里面的元素不允许被修改

定义 , t tuple(( xx ))

count() #统计元素个数

index()#查看元素索引位置

注意 t 1 不代表元组代表int

t 1 代表元组

dict 字典

定义

d {}

d {k1:v1,k2:v2}

d dict({....})

可以使用key访问到key对应的值

d[ k1 ]

d.get( k2 )

d.get( k2 , erro )#当字典中无k2值默认输出erro

p[ name ] lisi #增加键值对 如果字典中有这一个key则覆盖

clear

copy

get

keys #将所有的key返回

values#将所有的值返回

setdefault

items#一对一对的返回

pop key #通过key删除键值对

popitem #安装LIFO last-in first-out order删除键值对

字典的遍历

for key in p :

print(key , p[key])

for key in p.keys() :

print(key,p.get(key))

for key , value in p.items() :

print(key,value)

for t in p.items() :

print(t[0],t[1])

查看全局函数 dir(builtins)

排序 将无序的数据想办法排列成有序的数据

冒泡排序

升序

降序

选择排序 每次查找的时候 查找到最小的值 跟第一个交换

插入排序

查找方法

二分查找 折半查找

1 找到中间数

2 不停比对直至找到正确的值

查找 特指从有序的数据中查找需要数据的位置

函数

1,什么是函数 what

C语言是一门面向过程的语言

函数就是行为 动作 功能 过程

2 python如何定义函数

关键字def defined function

函数名称的命名规范就是变量的命名规范

def 函数名称 【参数列表】

#函数体

#【return 返回值】#放在中括号中代表可有可无

3 函数的分类

以有没有返回值 有没参数

函数遇到return关键字 则立刻返回

参数个数 根据情况任意 参数类型 是任意类型

函数定义者

系统函数

由官方定义的函数

print input type。。

第三方定义

需要安装这些模块 才能使用

pip install 模块名称

pip python install package

自定义函数

我们写的函数

注意 函数 变量... 命名时一定要注意 和系统的全局函数不要冲突

4 全局变量和局部变量 本地变量 ;

全局变量 直接定义在py(模块)文件中的变量 注意 全局变量在函数可以直接访问 但是在python中不允许被修改 如果一定要修改需要提前声明这个函数需要修改某个全局变量 在函数的第一行 global关键字声明需要修改全局变量

列表是一个对象 它存在与堆中所以在函数中可以被改变

eg global age #打第一行

局部变量 定义在函数内部的变量,只能在函数内部访问

5 函数的调用过程--压栈 内存模型

函数本质就是一个对象 一般在堆中

压栈(push) 将函数从堆内存中放到栈中执行

弹栈(pop) 函数执行完成后出栈内存

代码本质都是在内存中运行的

内存中栈是比较小的 堆是非常大的占内存的百分之九十空间

栈stack的特点 先进后出 后进先出

堆heap的特点

6 引用传递和值的传递

引用 传递的本质是地址 是对象 是引用

值传递 本质就是值

函数本质就是一个对象 参数的类型 是任意类型

7 函数参数 默认参数 命名参数 可变参数 万能参数

默认值 def area(r pi 3.14)#注意默认值参数一定要写在普通参数之后

可变参数 def text(x,y,*args): #args代表元组元素所以可以添加多个参数 而且输出按照元组输出

print(x)

print(x)

print(args)#结果(3 4 5)

text 1 2 3 4 5

关键字(命名)参数

def test02(a,b,**kwargs) #为字典

print(a,b)

print(kwargs)

text02(10,20,name ljh ,age 16)

#上面参数可组合不过要有顺序一般为 默认 可变 关键字

8 函数递归

什么是递归

有两个条件

1 函数自身调用自身

2 一定要有终止条件 否则就是一个死循环

注意 在python中 不允许递归超过1000次 不过想超过1000次也可以 需要导入sys模块

sys.setrecursionlimit(10000)#重新设置递归限制次数

sys.getrecursionlimi()#获取递归限制次数

递归的本质是以空间换时间

9 匿名函数--lambda表达式

在早期python 是没办法实现匿名的原因python是一个严格的缩进的语言

优点 简化操作 语法简洁。缺点 代码的可读性降低了 维护成本升高了

最佳实践 如果函数参数是一个函数 这个函数比较简单 则可以使用lambda 否则不太建议

10 偏函数

是一种语句的写法

偏函数 python为了能够简化函数调用 如果在调用时某个或者某几个参数 一直都是固定的 那么就可以使用偏函数实现参数固定.

int()一般我们使用的是一个参数 但是他有默认参数

int(x base 10)#如果不对base定值 默认按十进制转化参数

import functools

返回一个新的函数 functools.partial(需要转化的函数 需要固化的参数)

也可以这样导入模块

from functools import partial

aa partial(int,base)

11 全局函数

全局函数 就是python官方提供给我们使用 不需要导入模块 python3提供的所有全局函数

eval 将字符串转化为代码执行 如果输入数值要以逗号分隔

12 字符串对象

字符串在python中就是一个基本数据类型

在python就是一个对象

构建一个字符串

, , ,

str(字符串)#创建或者转换字符串

字符串其本质就是一种常量 他底层存储在常量缓冲区

因此也是一种不可变数据类型 另外元组和数字也是不可变

因此python提供了字符串对象的概念 我们可以字符串对象的常见方法来操作字符串

字符串的常见方法

capitalize()#首字母大写

center()#两个参数 第一个表示整体长度 字符串在中间 第二个如果有 表示填充空白 空白填充为参数的字符

ljust()#左对齐

rjust()#右对齐

count()#统计字符串中出现的符号的次数

startswith()#以什么开始 是就是true 不是false

endswith()#以什么结束 是就是true 不是false

find()#查询某种符号第一次出现位置 没有返回-1

index()#查询某种符号第一次出现位置 没有返回则抛出异常

rfind()#查询某种符号最后一次出现位置 没有返回-1

rindex()#查询某种符号最后一次出现位置 没有返回则抛出异常

join()#按照特定的符号连接元素 组成字符串

split()#将字符串按照特定符号分隔成列表

13 切片

有序序列(列表 元组 字符串)#切割 截取等操作

#有序序列可以使用遍历

eg for i in stttt

prin(i) #结果为字符串每一个字符输出

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/267929.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号