python语言基础
1. 基础语法
Q: Python 中的变量与数据类型有哪些?
A: Python 支持多种数据类型,包括数字(整数 int、浮点数 float、复数 complex)、字符串 str、列表 list、元组 tuple、字典 dict 和集合 set。每种数据类型都有其特定的用途和操作方法。
-
数字类型
- 整数
int:表示整数值,例如42。 - 浮点数
float:表示带有小数部分的数值,例如3.14。 - 复数
complex:表示复数,例如1 + 2j。
- 整数
-
字符串
str- 字符串是由字符组成的序列,可以用单引号
' '或双引号" "定义。 - 支持索引和切片操作,例如
s[0]获取第一个字符,s[1:3]获取从第二个到第三个字符的子字符串。 - 常用方法包括
len()、upper()、lower()、split()等。
- 字符串是由字符组成的序列,可以用单引号
-
列表
list- 列表是有序的可变集合,用方括号
[ ]定义。 - 支持索引和切片操作,例如
lst[0]获取第一个元素,lst[1:3]获取从第二个到第三个元素的子列表。 - 常用方法包括
append()、remove()、pop()、sort()等。
- 列表是有序的可变集合,用方括号
-
元组
tuple- 元组是有序的不可变集合,用圆括号
( )定义。 - 支持索引和切片操作,但不能修改元组中的元素。
- 常用方法包括
count()、index()等。
- 元组是有序的不可变集合,用圆括号
-
字典
dict- 字典是无序的键值对集合,用花括号
{ }定义。 - 键必须是不可变类型(如字符串、数字、元组),值可以是任意类型。
- 常用方法包括
keys()、values()、items()、get()、update()等。
- 字典是无序的键值对集合,用花括号
-
集合
set- 集合是无序的不重复元素集合,用花括号
{ }定义。 - 支持集合运算,如并集
|、交集&、差集-等。 - 常用方法包括
add()、remove()、discard()、union()、intersection()等。
- 集合是无序的不重复元素集合,用花括号
项目案例分析
项目名称:数据清洗与分析工具
技术栈:Python, Pandas, NumPy
项目描述:
开发了一个数据清洗与分析工具,用于处理和分析大量数据。项目的主要功能包括读取 CSV 文件、清洗数据、统计分析和生成报告。
关键知识点:
-
数字类型:在数据清洗过程中,经常需要处理数值类型的字段,例如计算平均值、最大值、最小值等。
import pandas as pd data = pd.read_csv('data.csv') average_age = data['age'].mean() max_salary = data['salary'].max() min_salary = data['salary'].min() -
字符串类型:处理文本数据时,需要使用字符串操作方法,例如去除空格、转换大小写等。
data['name'] = data['name'].str.strip() data['city'] = data['city'].str.lower() -
列表类型:在数据处理过程中,有时需要将多个字段组合成一个新的列表。
combined_data = data[['name', 'age', 'city']].values.tolist() -
元组类型:在某些情况下,使用元组来存储固定数量的值,例如记录某个用户的详细信息。
user_info = (data['name'][0], data['age'][0], data['city'][0]) -
字典类型:在生成报告时,使用字典来存储统计结果,方便后续处理。
stats = {'average_age': average_age,'max_salary': max_salary,'min_salary': min_salary } -
集合类型:在去重操作中,使用集合来去除重复值。
unique_cities = set(data['city'])
Q: 如何在 Python 中使用控制流语句?
- A: 控制流语句用于控制程序的执行流程。常用的控制流语句包括条件判断(
if-elif-else)和循环(for、while)。循环控制语句break和continue用于提前终止循环或跳过当前循环体中的剩余部分。
2. 函数与模块
Q: 如何定义和调用函数?
- A: 使用
def关键字定义函数,可以有位置参数、关键字参数、默认参数和可变参数。函数可以通过return语句返回值。例如:def greet(name, message="Hello"):return f"{message}, {name}!" print(greet("Alice")) # 输出: Hello, Alice!
Q: 如何导入和使用模块?
- A: 使用
import语句导入模块,使用from ... import ...语句导入模块中的特定功能。例如:import math from datetime import datetime print(math.sqrt(16)) # 输出: 4.0 print(datetime.now()) # 输出当前时间
3. 面向对象编程
Q: 如何定义类和对象?
- A: 使用
class关键字定义类,类中可以包含属性和方法。通过类实例化对象,对象可以调用类中的方法。例如:class Person:def __init__(self, name, age):self.name = nameself.age = agedef greet(self):return f"Hello, my name is {self.name} and I am {self.age} years old."alice = Person("Alice", 30) print(alice.greet()) # 输出: Hello, my name is Alice and I am 30 years old.
Q: 什么是封装、继承和多态?
- A:
- 封装:隐藏对象的内部实现细节,只暴露必要的接口。通过私有属性和方法实现。
- 继承:子类继承父类的属性和方法,可以扩展或重写父类的功能。
- 多态:不同类的对象对同一消息作出不同的响应。通过方法重写实现。
4. 异常处理
Q: 如何捕获和处理异常?
- A: 使用
try-except语句捕获异常,可以使用else和finally子句进行更复杂的异常处理。例如:try:result = 10 / 0 except ZeroDivisionError:print("Cannot divide by zero") else:print(f"Result: {result}") finally:print("This will always execute")
5. 文件操作
Q: 如何读写文件?
- A: 使用
open()函数打开文件,with语句确保文件在操作完成后自动关闭。例如:with open("example.txt", "w") as file:file.write("Hello, world!")with open("example.txt", "r") as file:content = file.read()print(content) # 输出: Hello, world!
6. 数据处理与分析
Q: 如何使用 NumPy 进行数组操作?
- A: NumPy 是一个用于科学计算的库,提供了高效的数组操作。例如:
import numpy as np arr = np.array([1, 2, 3]) print(arr + 1) # 输出: [2 3 4]
Q: 如何使用 Pandas 处理数据?
- A: Pandas 是一个数据处理和分析库,提供了
Series和DataFrame数据结构。例如:import pandas as pd data = {"Name": ["Alice", "Bob"], "Age": [30, 25]} df = pd.DataFrame(data) print(df)
7. 网络编程
Q: 如何发送 HTTP 请求?
- A: 使用
requests库发送 HTTP 请求。例如:import requests response = requests.get("https://api.example.com/data") print(response.json())
Q: 如何解析 HTML/XML?
- A: 使用
BeautifulSoup或lxml库解析 HTML/XML。例如:from bs4 import BeautifulSoup html = "<html><body><h1>Hello, world!</h1></body></html>" soup = BeautifulSoup(html, "html.parser") print(soup.h1.text) # 输出: Hello, world!
8. 并发编程
Q: 如何使用多线程?
- A: 使用
threading模块创建和管理线程。例如:import threadingdef worker():print("Worker thread")thread = threading.Thread(target=worker) thread.start() thread.join()
Q: 如何使用多进程?
- A: 使用
multiprocessing模块创建和管理进程。例如:import multiprocessingdef worker():print("Worker process")process = multiprocessing.Process(target=worker) process.start() process.join()
9. 高级特性
Q: 如何定义和使用装饰器?
- A: 装饰器是一种修改或增强函数行为的工具。例如:
def my_decorator(func):def wrapper():print("Something is happening before the function is called.")func()print("Something is happening after the function is called.")return wrapper@my_decorator def say_hello():print("Hello!")say_hello()
Q: 如何使用生成器?
- A: 生成器是一种特殊的迭代器,使用
yield关键字定义。例如:def count_up_to(n):for i in range(1, n+1):yield ifor num in count_up_to(5):print(num) # 输出: 1 2 3 4 5
10. 测试与调试
Q: 如何编写单元测试?
- A: 使用
unittest或pytest框架编写单元测试。例如:import unittestdef add(a, b):return a + bclass TestAddition(unittest.TestCase):def test_add(self):self.assertEqual(add(1, 2), 3)if __name__ == "__main__":unittest.main()
Q: 如何进行调试?
- A: 使用
print语句或pdb调试器进行调试。例如:import pdbdef buggy_function(x):y = x + 1pdb.set_trace() # 在这里打断点z = y * 2return zprint(buggy_function(5))
11. 性能优化
Q: 如何优化代码性能?
- A: 优化代码性能的方法包括避免不必要的循环、使用合适的数据结构、减少内存占用等。例如,使用列表推导式代替循环:
numbers = [1, 2, 3, 4, 5] squares = [x**2 for x in numbers] # 列表推导式
Q: 如何管理内存?
- A: 了解 Python 的内存管理机制,避免内存泄漏。使用
del语句删除不再需要的对象,使用gc模块进行垃圾回收。例如:import gca = [1, 2, 3] del a gc.collect() # 手动触发垃圾回收
12. 项目实战
Q: 如何通过实际项目提升技能?
-
A: 通过实际项目综合运用所学知识,解决实际问题。例如,开发一个简单的 Web 爬虫项目,使用
requests和BeautifulSoup抓取网页数据,使用pandas进行数据处理,最后将结果保存到 CSV 文件中。- 项目名称:Web 爬虫
- 技术栈:Python, requests, BeautifulSoup, pandas
- 项目描述:开发了一个 Web 爬虫,抓取指定网站的数据并进行清洗和处理,最终将结果保存到 CSV 文件中。
- 关键知识点:
- 使用
requests发送 HTTP 请求,获取网页内容。 - 使用
BeautifulSoup解析 HTML,提取所需数据。 - 使用
pandas进行数据清洗和处理,处理缺失值和重复值。 - 将处理后的数据保存到 CSV 文件中。
- 使用
相关文章:
python语言基础
1. 基础语法 Q: Python 中的变量与数据类型有哪些? A: Python 支持多种数据类型,包括数字(整数 int、浮点数 float、复数 complex)、字符串 str、列表 list、元组 tuple、字典 dict 和集合 set。每种数据类型都有其特定的用途和…...
Python中的Apriori库详解
文章目录 Python中的Apriori库详解一、引言二、Apriori算法原理与Python实现1、Apriori算法原理2、Python实现1.1、数据准备1.2、转换数据1.3、计算频繁项集1.4、提取关联规则 三、案例分析1、导入必要的库2、准备数据集3、数据预处理4、应用Apriori算法5、生成关联规则6、打印…...
MongoDB比较查询操作符中英对照表及实例详解
mongodb比较查询操作符中英表格一览表 NameDescription功能$eqMatches values that are equal to a specified value.匹配值等于指定值。$gtMatches values that are greater than a specified value.匹配值大于指定值。$gteMatches values that are greater than or equal to…...
掌上单片机实验室 – RT-Thread + ROS2 初探(25)
在初步尝试RT-Thread之后,一直在琢磨如何进一步感受它的优点,因为前面只是用了它的内核,感觉和FreeRTOS、uCOS等RTOS差别不大,至于它们性能、可靠性上的差异,在这种学习性的程序中,很难有所察觉。 RT-Threa…...
Kotlin中的?.和!!主要区别
目录 1、?.和!!介绍 2、使用场景和最佳实践 3、代码示例和解释 1、?.和!!介绍 Kotlin中的?.和!!主要区别在于它们对空指针的处理方式。 ?.(安全调用操作符):当变量可能为null时,使用?.可以安全地调用其方法或属性…...
iframe嵌入踩坑记录
iframe嵌入父子页面token问题 背景介绍 最近在做在平台A中嵌入平台B某个页面的需求,我负责的是平台B这边,使这个页面被嵌入后能正常使用。两个平台都实现了单点登录。 其实这是第二次做这个功能了,原本以为会很顺利,但没想到折腾…...
面试小札:Java的类加载过程和类加载机制。
Java类加载过程 加载(Loading) 这是类加载过程的第一个阶段。在这个阶段,Java虚拟机(JVM)主要完成三件事: 通过类的全限定名来获取定义此类的二进制字节流。这可以从多种来源获取,如本地文件系…...
Spring 上下文对象
1. Spring 上下文对象概述 Spring 上下文对象(ApplicationContext)是 Spring 框架的核心接口之一,它扩展了 BeanFactory 接口,提供了更多企业级应用所需的功能。ApplicationContext 不仅可以管理 Bean 的生命周期和配置࿰…...
Wireshark抓取HTTPS流量技巧
一、工具准备 首先安装wireshark工具,官方链接:Wireshark Go Deep 二、环境变量配置 TLS 加密的核心是会话密钥。这些密钥由客户端和服务器协商生成,用于对通信流量进行对称加密。如果能通过 SSL/TLS 日志文件(例如包含密钥的…...
测试人员--如何区分前端BUG和后端BUG
在软件测试中,发现一个BUG并不算难,但准确定位它的来源却常常让测试人员头疼。是前端页面的问题?还是后台服务的异常?如果搞错了方向,开发人员之间的沟通效率会大大降低,甚至导致问题久拖不决。 那么&#…...
【Vue】指令扩充(指令修饰符、样式绑定)
目录 指令修饰符 按键修饰符 事件修饰符 双向绑定指令修饰符 输入框 表单域 下拉框 单选按钮 复选框 样式绑定 分类 绑定class 绑定style tab页切换示例 指令修饰符 作用 借助指令修饰符,可以让指令的功能更强大 分类 按键修饰符:用来…...
Ubuntu20.04 Rk3588 交叉编译ffmpeg7.0
firefly 公司出的rk3588的设备,其中已经安装了gcc 交叉编译工具,系统版本是Ubuntu20.04。 使用Ubuntu20.04 交叉编译ffmpeg_ubuntu下配置ffmpeg交叉编译器为arm-linux-gnueabihf-gcc-CSDN博客文章浏览阅读541次。ubuntu20.04 交叉编译ffmpeg_ubuntu下配…...
HTML常用表格与标签
一、table表格标签: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body> <!--有大小为1的边框--> <table border"1">…...
网络安全与加密
1.Base64简单说明描述:Base64可以成为密码学的基石,非常重要。特点:可以将任意的二进制数据进行Base64编码结果:所有的数据都能被编码为并只用65个字符就能表示的文本文件。65字符:A~Z a~z 0~9 / 对文件进行base64编码…...
MySQL数据库-索引的介绍和使用
目录 MySQL数据库-索引1.索引介绍2.索引分类3.创建索引3.1 唯一索引3.2 普通索引3.3 组合索引3.4 全文索引 4.索引使用5.查看索引6.删除索引7.索引总结7.1 优点7.2 缺点7.3 索引使用注意事项 MySQL数据库-索引 数据库是用来存储数据,在互联网应用中,数据…...
【图像去噪】论文精读:Pre-Trained Image Processing Transformer(IPT)
请先看【专栏介绍文章】:【图像去噪(Image Denoising)】关于【图像去噪】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总(更新中) 文章目录 前言Abstract1. Introduction2. Related…...
Java SE 与 Java EE:基础与进阶的探索之旅
在编程世界中,Java语言以其跨平台、面向对象、丰富的类库等特点,成为了众多开发者和企业的首选编程语言。而Java SE与Java EE,作为Java平台的两个重要组成部分,各自承载着不同的使命,同时又紧密相连,共同构…...
ssm旅游推荐系统的设计与开发
摘 要 旅游推荐系统是一个综合性的在线旅游推荐平台,旨在为用户提供便捷的旅游规划和预定服务。通过该系统,用户能够浏览各类景点信息并进行分类查找,同时获取详尽的景点介绍和相关照片,以辅助做出旅行决策。系统提供在线门票订购…...
【人工智能】用Python和NLP工具构建文本摘要模型:使用NLTK和spaCy进行自然语言处理
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 文本摘要是自然语言处理(NLP)中的关键任务之一,广泛应用于新闻、博客、社交媒体和搜索引擎等场景。通过生成简洁而准确的文本摘要,我们可以大大提升信息处理效率。本文将探讨如何使用Python结合NLP工具…...
51c大模型~合集76
我自己的原文哦~ https://blog.51cto.com/whaosoft/12617524 #诺奖得主哈萨比斯新作登Nature,AlphaQubit解码出更可靠量子计算机 谷歌「Alpha」家族又壮大了,这次瞄准了量子计算领域。 今天凌晨,新晋诺贝尔化学奖得主、DeepMind 创始人哈萨…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
