python语法易混点(笔记持续更新)

本文概述了Python中的四种基本数据结构(列表、元组、集合和字典)的特点,并介绍了Module、Package和Library的区别。此外,还重点讲解了OS库中的os.path.join函数和pandas库中的read_csv与iloc方法的使用。
摘要由CSDN通过智能技术生成

一、列表、元组、集合、字典的区别

参考自python官方参考文档5. 数据结构 — Python 3.8.18 文档

数据类型是否有序是否允许重复是否修改是否可使用索引获取元素
列表有序允许可修改可使用数字索引
元组有序允许不可修改可使用数字索引
集合无序不允许可修改无索引
字典无序不允许可修改有指定索引,无默认的数字索引
列表
list = [ "广东", "江西", "广西"]
元组
tuple = ("广东", "江西", "广西")
集合
set = {"广东", "江西", "广西"}
字典
dic = { 
    "d_1":"广东",
    "d_2":"江西",
    "d_3":"广西"
        }

列表和元组都是属于序列类型的,即有序的。但列表有序可更改且一般是同一类型的元素;元组是有序不可更改且一般包含不同种类的元素。

集合是由不重复元素组成的无序的集,我们可以对集合对象求并集、交集、差集、对称差分的运算

字典即是键值对,键一般为字符串or数字等不可变类型。

列表、元组、集合三者形式上的区别就在于列表中括号、元组小括号、集合花括号

二、Module和Package和Library的区别与联系

模块(Module) 

是最基本的组织单元,一个模块对应一个.py文件。

包(Package) 

是一种组织多个模块的方式,它是一个包含若干模块及相关资源(包括其他子包)的目录结构。在该目录下,有一个特殊的__init__.py(在Python 3.3及更高版本中,即使为空文件也不再是必需的,但仍可以用于初始化包的行为)文件指示这是一个包。

模块和包关系示例
my_library/
    __init__.py
    submodule1.py
    submodule2.py
    subpackage/
        __init__.py
        deeper_module.py

在这个例子中:

my_library 是一个包,它包含了两个模块 submodule1 和 submodule2

subpackage 也是一个包,它是 my_library 包下的一个子包,内部又包含了 deeper_module 这个模块。

库(Library) 

通常是指一组协同工作的模块或包,它可能是一个单一的大型模块,也可能是一个复杂的包含多个包和模块的集合体。在实际使用中,当我们说“库”时,往往指的是一个可以被其他项目引用以实现某种功能的软件组件,这个组件可能是由单个模块组成,也可能是由一个或多个包及其下属模块组成。

三者的逻辑关系

库 (可能包含)
    └── 包
        ├── 模块1
        ├── 模块2
        └── 子包
            └── 模块3

但实际上,“库”并不一定具有严格的物理结构,它更多是一种功能性和实用性的概念,而模块和包则是在Python文件系统和导入机制中有明确的定义和结构的实体。

三、OS库中常用函数

1、os.path.join()函数

相对路径和绝对路径:

linux和unix系统中使用正斜杠"/",而windows系统中使用反斜杠"\"作为路径分隔。"./"代表当前目录。  "../"表示当前目录的上级目录,即当前的父目录。绝对路径,从根目录为起点到某一个目录的路径;相对路径,从一个目录为起点到另外一个的目录的路径。举例子:

返回值:将多个路径组合后返回。

2、os.makedirs(name, mode=0o777, exist_ok=False)函数

用于创建多层目录

3、with open() as f的用法

参照博客【Python杂项】with open() as f的用法_with open as f用法-CSDN博客

python文件读写​​​​​​,以后就用with open语句

读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。

常见的读写操作:

with open('filename.txt', 'r') as f:
   content = f.read(f)  #文件的读操作

with open('data.txt', 'w') as f:
   f.write('hello world')  #文件的写操作

相关参数:

r:	 # 以只读方式打开文件。文件的指针将会放在文件的开头。这是**默认模式**。
rb:  # 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+:  # 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+: # 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w:	 # 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb:	 # 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+:	 # 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+: # 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a:	 # 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab:	 # 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+:	 # 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+: # 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

四、pandas库中常用函数

1、pd.read_csv

用于读取CSV(逗号分隔值)文件并将其转换为DataFrame。

read_csv函数有很多参数,关于参数可以参考详解pandas的read_csv方法 - 知乎 (zhihu.com)

2、iloc方法

参照博客iloc[ ]函数(Pandas库)-CSDN博客

iloc[a,b]:取行索引为a列索引为b的数据。iloc[a:b,c:d]:取行索引从a到b-1,列索引从c到d-1的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值