Python基础总结

目录

Python数据容器

list(列表)

tuple(元祖)

str(字符串)

数据容器(序列)的切片

set(集合)

dict(字典、映射)

数据容器对比:

Python函数

多个返回值:

函数多种传参:

匿名函数:

lambda匿名函数:

Python文件操作:

文件读取:

文件写入:

异常、模块与包

异常:

python模块:

python包:


Python数据容器

list(列表)

定义变量:变量名称=[元素1,元素2,元素3...]

定义空列表:变量名称=[]   or   变量名称=list()

列表索引:从左到右:0 → len(list)-1              从右到左:-1 → -len(list)

注:列表内元素可以为不同数据类型,可以重复,支持嵌套,数据有序存储,可以修改

列表方法:

 

list的遍历:

①while循环遍历(while循环可以遍历有索引的容器):

index=0
while index<len(list):
	value1=list[index]
	处理逻辑
	index+=1

②for循环遍历:

for i in list:
	value1=i
	逻辑处理

俩个循环的细节:

while可以自定义循环条件,自行控制

for循环不可以自定循环条件,只能一个个取数据

while可以做到无限循环,for循环不行

tuple(元祖)

定义元祖变量:变量名称=(元素1,元素2,元素3...)

定义空元祖: 变量名称=()  or  变量名称=tuple()

元组索引:从左到右:0 → len(list)-1                从右到左:-1 → -len(list)

注:元组内元素可以为不同数据类型,可以重复,支持嵌套,数据有序存储,不可以修改(但可以修改元组内的列表内的元素),元组只有一个元素,则这个元素后面要添加逗号

元祖相关操作:

 

元组的遍历:同样可以和列表list一样,进行俩种循环方式遍历

str(字符串)

字符串和元组都是无法修改的容器,修改的话只会生成一个新的字符串,索引和列表一样

字符串操作:

 

遍历:同list和tuple一样,都可以用俩种循环方式遍历

数据容器(序列)的切片

序列是指:内容连续有序可使用下标索引的一类数据容器。    列表、元组、字符串,均可以可以视为序列

 切片:从一个序列中,取出一个子序列

语法:序列[起始下标:结束下标:步长]
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:

起始下标表示从何处开始,可以留空,留空视作从头开始
结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
步长表示,依次取元素的间隔
步长1表示,一个个取元素
步长2表示,每次跳过1个元素取
步长N表示,每次跳过N-1个元素取
步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)

注:切片不会影响序列本身,而是会得到一个新的序列(列表、元组、字符串),结束下标不含进切片

例:list=[1,2,3,4,5,6]
list1=list[4:1:-1]
print(list1)          结果:[5,4,3]

set(集合)

定义集合变量:变量名称={元素1,元素2,元素3...}

定义空集合:变量名称=set()

列表使用:[]  ,元组使用:()  ,字符串使用:“”  ,集合使用:{}

注:去重且无序

集合操作:

 

遍历方式:for循环,while循环不可遍历无序的容器

dict(字典、映射)

定义字典变量:变量名称={key:value1,key:value2,key:value3...}

定义空字典:变量名称=dict()

注:使用{}存储,key不可重复,key不可以为字典,可以镶嵌,类似java中的map

字典常用操作:

 

数据容器对比:

 

Python函数

def function_name(传参):
	函数体
	return xxx (可返回也可不返回--默认为NONE)

多个返回值:

按照返回值顺序,写对应顺序的多个变量接受即可,变量之间逗号隔开,支持不同类型数据return

def func1():
	return 1,2
x,y=func1()

函数多种传参:

位置参数:传递的参数和定义的参数的顺序及个数必须一致

关键字参数:函数调用时通过“键=值”形式传递参数。

                     函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序

缺省参数:缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)

                      函数调用时,如果为缺省参数传值则修改默认参数值, 否则使用这个默认值

不定长参数:

     ①位置传递:传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型,这就是位置传递

def func1(*args):
	print(args)
func1('zhangsan','lisi')

     ②关键字传递:参数是“键=值”形式的形式的情况下, 所有的“键=值”都会被kwargs接受, 同时会根据“键=值”组成字典.

def func1(**kwargs):
	print(args)
func1(name1='zhangsan',name2='lisi')

匿名函数:

函数作为参数传递:计算逻辑的传递,而非数据的传递

def func1(func):
	print(func(1,2))   
def func2(x,y):
	return x+y
func1(func2)            #结果:3

lambda匿名函数:

定义: lambda 传入参数:函数体(一行代码)

注:lambda匿名函数只能写一行,无法写多行代码,只可临时使用一次

函数定义中:

  • def关键字,可以定义带有名称的函数
  • lambda关键字,可以定义匿名函数(无名称)

有名称的函数,可以基于名称重复使用。 无名称的匿名函数,只可临时使用一次。

def func1(func):
	print(func(1,2))
func1(lambda x,y:x+y)  #结果:3

Python文件操作:

文件操作流程:打开文件 → 读写文件 → 关闭文件

文件读取:

使用open函数,可以打开一个已经存在的文件,或者创建一个新文件: open(name, mode, encoding)

例:

f = open('python.txt', 'r', encoding=”UTF-8)

# encoding的顺序不是第三位,所以不能用位置参数,用关键字参数直接指定

mode的三种基本模式:r (只读形式) , w(打开文件覆盖写,不存在则创建文件) ,a(打开文件追加写,不存在则创建文件)

文件的读操作方法:

 

文件写入:

文件的写方法是    文件对象.write() ,此时内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区

文件对象.flush()  的时候,内容才真正写入文件,这样做是避免频繁的操作硬盘,导致效率下降(攒一堆,一次性写磁盘)

异常、模块与包

异常:

try:
	xxx            #抛出异常的代码
except Exception as e:          #捕获异常,也可以用元组的方式书写多个异常如: except (NameError,ZeroDivisionError)
	xxx					#捕获异常后的动作:打印异常?
else:
	xxx					#如果没有异常要执行的代码
finally:
	xxx					#最后要做的事情

异常具有传递性

python模块:

是一个 Python 文件,以 .py 结尾.  模块能定义函数,类和变量,模块里也能包含可执行的代码。简白:模块就是一个Python文件,里面有类、函数、变量等,我们可以拿过来用(导入模块去使用)

模块导入方式:  [from 模块名] import [模块 | 类 | 变量 | 函数 | * ] [as 别名]

 

自定义模块:

在Python代码文件中正常写代码即可,通过import、from关键字和导入Python内置模块一样导入即可使用。

注:①.在当前工具模块中使用  if __name__ == '__main__': 表示,只有当程序是直接执行的才会进入if内部,如果是被导入的,则if无法进入,所以可以用来进行模块中的函数测试等

       ②.当导入多个模块的时候,且模块内有同名功能. 当调用这个同名功能的时候,调用到的是后面导入的模块的功能

       ③.如果一个模块文件中有`__all__`变量,当使用`from xxx import *`导入时,只能导入这个列表中的元素: __all__=['func1','func2']

python包:

自定义包:从物理上看,包就是一个文件夹,在该文件夹下包含了一个 __init__.py 文件,该文件夹可用于包含多个模块文块;从逻辑上看,包的本质依然是模块

作用:当我们的模块文件越来越多时,包可以帮助我们管理这些模块, 包的作用就是包含多个模块,但包的本质依然是模块,通过__init__.py来管理模块

 

操作流程:

1、新建包-package,然后模块放到package内

2、在package中的__init__.py文件中添加模块: __all__=[''模块1,'模块2'] 

3、在想使用的模块中导入包即可使用

   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/1814.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

小菜鸟Python历险记:(第四集)

今天写的文章是记录我从零开始学习Python的全过程。在Python中函数是非常重要的&#xff0c;这里也可以称为方法。在前面分享的几篇文章中用到的方法有print(),str(),int().这些都是方法&#xff0c;而除了上面写的这几种内置方法以外&#xff0c;我们也可以自己在程序中自定义…

Java分布式事务(九)

文章目录&#x1f525;XA强一致性分布式事务实战_Atomikos介绍&#x1f525;XA强一致性分布式事务实战_业务说明&#x1f525;XA强一致性分布式事务实战_项目搭建&#x1f525;XA强一致性分布式事务实战_多数据源实现&#x1f525;XA强一致性分布式事务实战_业务层实现&#x1…

JS判断是否为base64字符串如何转换为图片src格式

需求背景 &#xff1a; 如何判断后端给返回的 字符串 是否为 base-64 位 呢 &#xff1f; 以及如果判断为是的话&#xff0c;如何给它进行转换为 img 标签可使用的那种 src 格式 呢 &#xff1f; 1、判断字符串是否为 base64 以下方法&#xff0c;可自行挨个试试&#xff0c;…

蓝桥杯倒计时 | 倒计时20天

作者&#x1f575;️‍♂️&#xff1a;让机器理解语言か 专栏&#x1f387;&#xff1a;蓝桥杯倒计时冲刺 描述&#x1f3a8;&#xff1a;蓝桥杯冲刺阶段&#xff0c;一定要沉住气&#xff0c;一步一个脚印&#xff0c;胜利就在前方&#xff01; 寄语&#x1f493;&#xff1a…

第十四届蓝桥杯三月真题刷题训练——第 16 天

目录 第 1 题&#xff1a;英文字母 问题描述 输入格式 输出格式 样例输入 1 样例输出 1 样例输入 2 样例输出 2 评测用例规模与约定 运行限制 代码&#xff1a; 第 2 题&#xff1a;单词分析 题目描述 输入描述 输出描述 输入输出样例 运行限制 数组代码&…

【MySQL】聚合查询

目录 1、前言 2、插入查询结果 3、聚合查询 3.1 聚合函数 3.1.1 count 3.1.2 sum 3.1.3 avg 3.1.4 max 和 min 4、GROUP BY 子句 5、HAVING 关键字 1、前言 前面的内容已经把基础的增删改查介绍的差不多了&#xff0c;也介绍了表的相关约束&#xff0c; 从本期开始…

C语言实现队列(Push Pop Size Front EmptyBack)

队列是一个重要的数据结构&#xff0c;他的特性是先进先出&#xff0c;所以由于这个特性&#xff0c;队列只有一个入口和一个出口&#xff0c;所以只有push和pop 下面我们看一下他如何实现 首先我们来看一下他的结构体 这里我们看到我们定义了两个结构体&#xff0c;其中一个…

关于多层板,你了解多少?

01 前言 大家好&#xff0c;我是张巧龙。好久没写原创了&#xff0c;记得之前刚接触PCB时&#xff0c;还在用腐蚀单层板&#xff0c;类似这种。 慢慢随着电子产品功能越来越多&#xff0c;产品越来越薄&#xff0c;对PCB设计要求越来越高了&#xff0c;复杂程度也随之增加。因此…

第十四届蓝桥杯三月真题刷题训练——第 17 天

目录 第 1 题&#xff1a;ASC 运行限制 代码&#xff1a; 第 2 题&#xff1a;递增三元组_双指针_long 输出描述 输入输出样例 运行限制 代码&#xff1a; 第 3 题&#xff1a;环境治理 代码&#xff1a; 第 4 题&#xff1a;小球称重 代码&#xff1a; 第 1 题&a…

小白学Pytorch系列--Torch API (7)

小白学Pytorch系列–Torch API (7) Comparison Ops allclose 此函数检查输入和其他是否满足条件&#xff1a; >>> torch.allclose(torch.tensor([10000., 1e-07]), torch.tensor([10000.1, 1e-08])) False >>> torch.allclose(torch.tensor([10000., 1e-…

48天强训 Day1 JavaOj

48天强训 & Day1 & JavaOj 1. 编程题1 - 组队竞赛 组队竞赛_牛客笔试题_牛客网 (nowcoder.com) 1.1 读题 1.2 算法思想基础 我们应该尽量的让每一个队伍的中间值都最大化~我们应该尽量的让每一个队伍的最小值都足够小~前33%的不应该都作为每个队伍的最大值~ 接下来…

LeetCode算法 不同路径 和 不同路径II C++

目录题目 不同路径参考答案题目 不同路径II参考答案题目 不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finis…

Git 入门最佳实践

Git 入门最佳实践 前言 Git简介 实用主义 深入探索 总结 参考资料 前言 Git 是程序员学习和工作都离不开发工具&#xff0c;今天和大家分享 Git 常用命令总结。 Git简介 Git 是一种分布式版本控制系统&#xff0c;它可以不受网络连接的限制&#xff0c;加上其它众多优…

【Java】UDP网络编程

文章目录前言DatagramSocketDatagramPacket注意事项与区别代码演示前言 UDP&#xff08;user datagram protocol&#xff09;的中文叫用户数据报协议&#xff0c;属于传输层。 UDP是面向非连接的协议&#xff0c;它不与对方建立连接&#xff0c;而是直接把我要发的数据报发给对…

html+css 实现 熊猫样式

效果 html代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compatible"…

ThinkPHP01:数据库和模型

ThinkPHP01&#xff1a;数据库和模型一、开启调试模式二、配置文件三、URL解析四、数据库五、模型1. 定义模型2. 使用模型① 查询记录② 新增记录③ 删除记录④ 更新记录3. 字段设置4. 模型获取器5. 模型修改器6. 模型查询范围7. 模型数据集8. 模型的自动时间戳9. 模型的只读字…

为什么VMware会给我多创建了两个网络呢?Windows和Linux为什么可以彼此ping的通呢

为什么VMware会给我多创建了两个网络呢&#xff1f;Windows和Linux为什么可以彼此ping的通呢 文章目录为什么VMware会给我多创建了两个网络呢&#xff1f;Windows和Linux为什么可以彼此ping的通呢桥接模式ANT模式&#xff08;VMnet8&#xff09;仅主机模式&#xff08;VMnet1&a…

学习系统编程No.6【进程控制】

引言&#xff1a; 北京时间&#xff1a;2023/3/19/15:16&#xff0c;刚刚睡醒&#xff0c;我发现我真的能睡&#xff0c;早上将反向迭代器剩下的一些知识学完&#xff0c;发现&#xff0c;昨天那篇博客发的有些匆忙了&#xff0c;最后有关反向迭代器的知识都没有把精华部分给分…

使用旧电脑玩Linux

今天给大家讲讲使用旧电脑玩Linux&#xff0c;大家应该都知道旧电脑的硬件一般比较落后&#xff0c;特别是一些非常老的电脑&#xff0c;目前还在使用的是机械硬盘&#xff0c;如是要跑windows可想而知&#xff0c;但是Linux系统对硬件性能的要求可比windows低的多了&#xff0…

常用React Hooks大合集(二)

React Hooks useRef useRef返回一个ref对象&#xff0c;返回的ref对象再组件的整个生命周期保持不变。 最常用的ref是两种用法&#xff1a; 用法一&#xff1a;引入DOM&#xff08;或者组件&#xff0c;但是需要是class组件&#xff09;元素&#xff1b;用法二&#xff1a;保…