python可以做哪些东西_自己总结的一些东西

本文介绍了Linux中常用的df-h和du-sh命令,用于磁盘管理和目录大小检查。接着,探讨了Python的NumPy、SciPy和matplotlib库在科学计算和数据可视化的应用。进一步讲解了MVC框架的概念及其在软件设计中的作用,特别是Flask框架的轻量级特性,适合小型网站和API开发。最后,讨论了前后端分离的优势以及RESTful API的设计原则,强调了API在前后端通信中的重要角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.linux两个实用常用命令

df -h:统计整体磁盘情况

du -sh:看单独目录点用情况

2.Python流行的第三方库

numpy:

使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。

scipy:

和Numpy联系很密切,Scipy一般都是操控Numpy数组来进行科学计算,所以可以说是基于Numpy之上了

matplotlib:绘图模块,提供了多种绘图接口

3.对MVC框架的理解

MVC框架是一个非常典型的软件设计模式,他将我们一般的程序分为三层,Model层,View层,controller层,Model层负责和数据库的交互,它将业务逻辑,数据,显示分离开来,分别聚集到一个模块里,view层负责用户交互,用户界面显示,controller层负责处理用户请求并给出响应,这样的话当我们对其中一个模块进行修改的时候,对其他模块的影响能够降到最小,比如改进和个性化定制界面及用户交互的同时,就不需要重新编写业务逻辑。

4.对Flask框架的理解

轻量级web框架,默认依赖两个外部库:jinja2和Werkzeug WSGI工具

适用于做小型网站以及web服务的API,开发大型网站无压力,但架构需要自己设计

与关系型数据库的结合不弱于Django,而与非关系型数据库的结合远远优于Django

5.如果说了项目是前后端分离的会有以下问题:

前后端分离的优点:

前端:负责 View 和 Controller 层;

后端:只负责 Model 层,业务处理/数据等;

API:

api是应用程序编程接口,是一些预先定义的函数,只要调用者提供的数据标准符合API的标准,那么就可以使用它。

比如我们在餐厅点餐,服务员就像是一个API,我们提供给他菜的名字,他给我们端上来一道道相应的菜。只要我们说的菜名菜单里有,他就能给我们端上来对应的菜。

restful API:

restful:

URL定位资源,用HTTP动词(GET,POST,PUT,DELETE)描述操作。

restful API:

所以RESTful API就是REST风格的API,RESTful API由后台也就是SERVER来提供前端来调用。前端调用API向后台发起HTTP请求,后台响应请求将处理结果反馈给前

端。也就是说RESTful 是典型的基于HTTP的协议。那么RESTful API有哪些设计原则和规范呢?

<think>好的,用户问的是Python中有哪些东西可以用下标访问。首先,我需要回忆一下Python中常用的数据结构,然后逐个分析它们是否支持下标访问。 首先想到的是列表(list),列表是Python中最基本的数据结构之一,显然支持下标访问,比如list[0]。然后是元组(tuple),和列表类似,应该也支持下标访问。字符串(str)虽然不可变,但也可以通过索引获取单个字符,所以也算。 接下来是字典(dict),通常字典是通过键来访问值,比如dict['key'],但这里的键不一定是整数下标。不过,用户可能想知道的是否能用数字下标,这要看键是否为数字。不过严格来说,字典的访问方式是通过键,而不是顺序下标,所以可能需要说明字典是否算在内。 还有集合(set),集合是无序且不重复的,不支持下标访问,所以应该排除。然后是一些其他数据结构,比如collections模块中的deque、OrderedDict等。deque作为双端队列,应该支持下标访问,而OrderedDict虽然保持插入顺序,但访问方式还是通过键,所以可能不算。 另外,用户可能不知道的还有NumPy数组和Pandas的DataFrame、Series,这些第三方库的数据结构也支持类似下标或标签的访问。不过是否需要包括第三方库呢?用户的问题没有特别说明,可能需要提及,但分开说明是第三方库的内容。 还有,自定义类如果实现了__getitem__方法,也可以支持下标访问。比如用户自己定义的类,通过定义这个方法,可以让对象使用下标或切片操作。这也是一个点,可能需要提到。 现在需要整理这些内容,分成内置类型、第三方库结构、自定义类等部分。同时需要确保每个例子正确,比如列表、元组、字符串确实支持,字典的情况需要明确说明是通过键访问,而有序字典可能保持插入顺序但访问方式还是键。 可能还需要注意,虽然字符串和字节类型(bytes)都是序列,所以支持下标访问。字节数组(bytearray)同样支持。 另外,关于切片操作是否算下标访问?虽然用户问的是下标访问,但切片通常基于下标,所以可能可以一并提及,但重点还是单个下标访问。 最后,结构上先介绍内置的可下标访问类型,再讲第三方库,最后自定义类。每个部分给出简单例子,说明用法。同时需要提醒字典和集合的区别,避免用户混淆。 检查是否有遗漏的结构,比如range对象?range虽然表示不可变序列,但本身不支持下标访问,直到Python 3.2之后才支持?或者我记错了?需要确认。例如,在Python 3中,range对象是否允许像range(10)[5]这样的操作?是的,range对象在Python 3中是支持索引的,所以应该包括进去。 那这样的话,Python中可下标访问的内置类型包括:列表、元组、字符串、字节、字节数组、range对象。字典虽然可以用键访问,但严格来说不是通过数字下标,而是任意可哈希键,所以是否归类到这里?可能应该单独说明字典的情况,避免误解。 总结结构: 1. 内置数据类型: - 列表 list - 元组 tuple - 字符串 str - 字节 bytes - 字节数组 bytearray - range对象(Python 3中支持索引) 2. 字典 dict(通过键访问,但键不一定是数字下标) 3. 第三方库的数据结构: - NumPy数组 - Pandas的Series和DataFrame(通过行/列标签或位置) 4. 自定义类(实现__getitem__方法) 需要注意,虽然range支持索引,但它是不可变的,所以不能通过下标修改值。这点可能需要说明,但用户的问题只是访问,所以可能不需要详细说明。 此外,像collections.namedtuple,这样的结构也是支持下标访问的,属于元组的子类,所以可能已经包含在元组部分。 最后,确保每个点都有例子,例如列表用[0],字典用['key'],字符串用[2]等。同时指出字典的特殊性,即通过任意键而不是数字索引访问,所以是否算作“下标访问”可能存在歧义,需要明确说明。 可能还需要提到,虽然下标访问通常是使用方括号,但背后调用的是__getitem__方法,所以任何实现了这个方法的对象都可以支持,包括自定义类。 综上,这样的结构应该能全面回答用户的问题,覆盖主要的Python结构,并区分不同情况。</think>Python中可以使用下标(索引)访问的对象主要分为以下几类,以下按类别说明并举例: --- ### 一、内置数据类型 1. **列表(`list`)** 通过数字索引访问元素,索引从 `0` 开始: ```python lst = [10, 20, 30] print(lst[0]) # 输出: 10 ``` 2. **元组(`tuple`)** 与列表类似,但不可修改: ```python tup = (1, 2, 3) print(tup[1]) # 输出: 2 ``` 3. **字符串(`str`)** 通过索引访问单个字符: ```python s = "Hello" print(s[3]) # 输出: 'l' ``` 4. **字节序列(`bytes` 和 `bytearray`)** 类似字符串,支持索引访问: ```python b = b"abc" print(b[2]) # 输出: 99(ASCII值) ``` 5. **`range` 对象** 从 Python 3 开始支持索引访问: ```python r = range(5, 10) print(r[1]) # 输出: 6 ``` --- ### 二、字典(`dict`)的键访问 字典通过 **键(key)** 而非数字下标访问值,形式上类似下标语法: ```python d = {"name": "Alice", "age": 25} print(d["name"]) # 输出: "Alice" ``` --- ### 三、第三方库的数据结构 1. **NumPy 数组** 支持多维索引和切片: ```python import numpy as np arr = np.array([[1, 2], [3, 4]]) print(arr[0, 1]) # 输出: 2 ``` 2. **Pandas 的 `Series` 和 `DataFrame`** - `Series` 通过索引标签或位置访问: ```python import pandas as pd s = pd.Series([10, 20, 30], index=["a", "b", "c"]) print(s["b"]) # 输出: 20 ``` - `DataFrame` 通过行/列标签访问: ```python df = pd.DataFrame({"A": [1, 2], "B": [3, 4]}) print(df.loc[0, "A"]) # 输出: 1 ``` --- ### 四、自定义类 通过实现 `__getitem__` 方法,自定义类可支持下标访问: ```python class MyClass: def __getitem__(self, index): return index * 2 obj = MyClass() print(obj[3]) # 输出: 6 ``` --- ### 总结 | 类型 | 示例 | 下标形式 | |---------------|--------------------|---------------| | 列表/元组 | `lst[0]` | 整数索引 | | 字符串 | `s[2]` | 整数索引 | | 字典 | `d["key"]` | 任意键 | | NumPy数组 | `arr[1, 0]` | 多维索引 | | 自定义类 | `obj[3]` | 需实现`__getitem__` | **注意**:集合(`set`)和默认的迭代器(如生成器)不支持下标访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值