python 爬虫技术 第02节 基础复习
Python基础复习
Python 是一种高级、通用、解释型的编程语言,以其简洁的语法和强大的功能在数据科学、Web 开发、自动化脚本编写、机器学习等领域广泛使用。下面是一些 Python 基础概念的复习:
1. 数据类型
Python 支持多种内置数据类型,包括:
- 数字 (
int
,float
,complex
) - 字符串 (
str
) - 列表 (
list
):有序的元素集合,可以修改。 - 元组 (
tuple
):有序的元素集合,不可修改。 - 字典 (
dict
):键值对的集合,键必须是不可变类型。 - 集合 (
set
):无序的不重复元素集。
2. 控制结构
- 条件语句 (
if
,elif
,else
):基于条件执行不同的代码块。 - 循环语句 (
for
,while
):重复执行一段代码直到满足特定条件。
3. 函数
- 定义函数 (
def
):创建可重用的代码块。 - 参数传递:可以按位置或按名称传递参数,支持默认参数值和不定数量的参数。
- 返回值:函数可以返回一个或多个值。
4. 模块和包
- 导入模块 (
import
):使用其他模块中的代码。 - 包:包含多个模块的目录,通过
__init__.py
文件标识为包。
5. 文件操作
- 打开文件 (
open()
):以不同模式读写文件。 - 读写操作:
read()
,write()
,readline()
,readlines()
等方法。 - 关闭文件 (
close()
):确保文件资源被释放。
6. 异常处理
- try…except…finally 结构:捕获并处理运行时错误。
- raise:抛出异常。
- assert:断言条件,用于调试。
7. 类和对象
- 定义类 (
class
):面向对象编程的基础。 - 实例化对象:创建类的实例。
- 属性和方法:类的成员变量和函数。
8. 标准库和第三方库
- 标准库:Python 自带的大量模块,提供各种功能。
- 安装第三方库 (
pip install
):使用 PyPI 上的额外模块。
9. 编程风格
- PEP 8:Python 的官方编码规范,指导代码书写风格。
10. 注释和文档字符串
- 单行注释 (
#
) 和 多行注释 (""" """
或''' '''
)。 - 文档字符串:函数、类和模块的第一行字符串,用于描述其用途和用法。
以上只是 Python 基础知识的简要回顾,实际编程中还涉及许多进阶主题,如装饰器、生成器、迭代器、上下文管理器、多线程和多进程等。为了巩固和提升编程技能,建议结合实际项目练习,并参考官方文档和社区资源进行深入学习。
Python 的数据类型是其核心特性之一,它提供了丰富的内置类型来处理各种数据。以下是 Python 中主要的数据类型及其特点的详细讲解:
数字类型
-
整数 (int)
- 整数是没有小数点的数值,可以是正数、负数或零。
- Python 3 中的整数没有大小限制,仅受限于可用内存。
-
浮点数 (float)
- 浮点数包含小数点,用于表示实数。
- 它们遵循 IEEE 754 标准,因此可能有舍入误差。
-
复数 (complex)
- 复数由实部和虚部组成,虚部后跟字母 j 或 J。
- 例如:
1 + 2j
。
序列类型
序列类型是 Python 中用来存储有序数据的类型。
-
字符串 (str)
- 字符串是由字符组成的序列,用单引号
'
或双引号"
, 或三引号'''
或"""
包围。 - 字符串是不可变的,这意味着一旦创建就不能修改。
- 字符串是由字符组成的序列,用单引号
-
列表 (list)
- 列表是由任意类型的元素组成的有序集合,用方括号
[ ]
表示。 - 列表是可变的,可以添加、删除或修改其中的元素。
- 列表是由任意类型的元素组成的有序集合,用方括号
-
元组 (tuple)
- 元组与列表类似,但它是不可变的,用圆括号
( )
表示。 - 虽然元组不能修改,但可以包含任何类型的元素。
- 元组与列表类似,但它是不可变的,用圆括号
映射类型
- 字典 (dict)
- 字典是键值对的集合,键必须是不可变类型(如字符串、数字或元组),而值可以是任意类型。
- 字典是无序的,但在 Python 3.7+ 版本中,它们保持了插入顺序。
集合类型
-
集合 (set)
- 集合是无序且不重复的元素集合,用花括号
{ }
表示或使用set()
构造函数创建。 - 集合支持数学上的集合运算,如并集、交集、差集和对称差集。
- 集合是无序且不重复的元素集合,用花括号
-
frozenset
- frozenset 是一个不可变的集合类型,一旦创建就无法修改。
布尔类型
- 布尔 (bool)
- 布尔类型只有两个值:
True
和False
,通常用于逻辑表达式和条件判断。
- 布尔类型只有两个值:
NoneType
- None
None
是一个特殊的常量,表示空或无值的状态,属于NoneType
类型。
示例代码
# 数字类型
num_int = 10
num_float = 10.5
num_complex = 3 + 5j# 序列类型
str_example = "Hello, World!"
list_example = [1, 2, 3]
tuple_example = (1, 2, 3)# 映射类型
dict_example = {'key': 'value', 1: [1, 2, 3]}# 集合类型
set_example = {1, 2, 3, 3} # 重复元素会被自动去除# 布尔类型
bool_example = True# NoneType
none_example = None
这些数据类型是 Python 编程的基础,理解和掌握它们对于编写有效的代码至关重要。
当然,让我们通过更多的代码示例来深入理解 Python 中的数据类型和它们的一些基本操作。以下是一些示例,展示不同类型数据的使用:
数字类型示例
# 整数和浮点数的算术运算
num_int = 10
num_float = 5.5sum_result = num_int + num_float
diff_result = num_int - num_float
product_result = num_int * num_float
quotient_result = num_int / num_floatprint("Sum:", sum_result)
print("Difference:", diff_result)
print("Product:", product_result)
print("Quotient:", quotient_result)# 复数的运算
num_complex_1 = 3 + 2j
num_complex_2 = 1 + 1jsum_complex = num_complex_1 + num_complex_2
diff_complex = num_complex_1 - num_complex_2
product_complex = num_complex_1 * num_complex_2
quotient_complex = num_complex_1 / num_complex_2print("Complex Sum:", sum_complex)
print("Complex Difference:", diff_complex)
print("Complex Product:", product_complex)
print("Complex Quotient:", quotient_complex)
序列类型示例
# 字符串操作
str_example = "Hello, World!"
print("Length of string:", len(str_example))
print("Substring from index 7 to 12:", str_example[7:12])
print("String in uppercase:", str_example.upper())
print("String split by comma:", str_example.split(','))# 列表操作
list_example = [1, 2, 3, 4, 5]
print("List length:", len(list_example))
list_example.append(6)
print("List after append:", list_example)
list_example.remove(2)
print("List after removing 2:", list_example)
print("List reversed:", list_example[::-1])# 元组操作
tuple_example = (1, 2, 3)
print("Tuple length:", len(tuple_example))
print("Tuple converted to list:", list(tuple_example))
映射类型示例
# 字典操作
dict_example = {'name': 'John', 'age': 30}
print("Dictionary items:", dict_example.items())
print("Dictionary keys:", dict_example.keys())
print("Dictionary values:", dict_example.values())
dict_example['age'] = 31
print("Updated dictionary:", dict_example)
dict_example.pop('age')
print("Dictionary after pop:", dict_example)
集合类型示例
# 集合操作
set_example_1 = {1, 2, 3, 4}
set_example_2 = {3, 4, 5, 6}union_set = set_example_1.union(set_example_2)
intersection_set = set_example_1.intersection(set_example_2)
difference_set = set_example_1.difference(set_example_2)
symmetric_difference_set = set_example_1.symmetric_difference(set_example_2)print("Union:", union_set)
print("Intersection:", intersection_set)
print("Difference:", difference_set)
print("Symmetric Difference:", symmetric_difference_set)
这些示例展示了 Python 数据类型的常见操作,包括算术运算、索引、切片、转换、更新和集合运算。通过这些例子,你可以看到每种数据类型如何在实际编程中被使用。
相关文章:
python 爬虫技术 第02节 基础复习
Python基础复习 Python 是一种高级、通用、解释型的编程语言,以其简洁的语法和强大的功能在数据科学、Web 开发、自动化脚本编写、机器学习等领域广泛使用。下面是一些 Python 基础概念的复习: 1. 数据类型 Python 支持多种内置数据类型,包…...
数据结构-C语言-排序(3)
代码位置:test-c-2024: 对C语言习题代码的练习 (gitee.com) 一、前言: 1.1-排序定义: 排序就是将一组杂乱无章的数据按照一定的规律(升序或降序)组织起来。(注:我们这里的排序采用的都为升序) 1.2-排序分…...
【分布式事务】怎么解决分布式场景下数据一致性问题
分布式事务的由来 拿充值订单举个栗子吧,假设:原本订单模块和账户模块是放在一起的,现在需要做服务拆分,拆分成订单服务,账户余额服务。原本收到充值回调后,可以将修改订单状态和扣减余额放在一个mysql事务…...
C# 中的委托
委托的概念 在C#中,委托是一种引用类型,它表示对方法的引用,即委托就是一种用来指向一个方法的引用类型变量。委托的声明类似于方法签名,但是关键字是delegate。下面是一个委托的声明和使用的例子: // 声明一个委托 p…...
通过docker构建基于LNMP的WordPress项目
目录 1.准备nginx 2.准备mysql 3.准备php 4.构建各镜像 5.运行wordpress 1、项目环境: 1.1 (1)公司在实际的生产环境中,需要使用Docker 技术在一台主机上创建LNMP服务并运行Wordpress网站平台。然后对此服务进行相关的性能…...
2024新版IntelliJ IDEA修改包名 全网最简单最粗暴的方法
问题再现 我们在网上淘一些后端框架 又或者是开源的项目 如果要变成自己的 难免会去改包名 即把com.后面的内容改成自己自定义的 第一次我们直接用网络上的方法 shift F6 快捷键 可以修改包名 出现以下情况 进行修改 我们发现失败了 并没有像预计的一样直接把包名修…...
C#中处理Socket粘包
在C#中使用Socket进行网络通信时,粘包问题是常见的。粘包问题通常发生在TCP协议中,因为TCP是流式协议,数据可能会被分割成多个包发送,也可能多个小包会被合并成一个大包接收。 处理粘包问题的常见方法是使用消息分隔符或消息长度…...
7.19IO
思维导图 第一题:测试错误检查锁和递归锁是否会造成死锁状态 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #i…...
【Vue】深入了解 Axios 在 Vue 中的使用:从基本操作到高级用法的全面指南
文章目录 一、Axios 简介与安装1. 什么是 Axios?2. 安装 Axios 二、在 Vue 组件中使用 Axios1. 发送 GET 请求2. 发送 POST 请求 三、Axios 拦截器1. 请求拦截器2. 响应拦截器 四、错误处理五、与 Vuex 结合使用1. 在 Vuex 中定义 actions2. 在组件中调用 Vuex acti…...
【Qt】窗口
文章目录 QMainWindow菜单栏工具栏状态栏浮动窗口对话框自定义对话框Qt内置对话框QMessageBox QMainWindow Qt中的主窗口以QMainWindow表示,其总体结构如下: 菜单栏 菜单栏MenuBar,可包含多个菜单Menu,每个菜单也可以包含多个菜…...
代码随想录训练营【贪心算法篇】
贪心 注:本文代码来自于代码随想录 贪心算法一般分为如下四步: 将问题分解为若干个子问题找出适合的贪心策略求解每一个子问题的最优解将局部最优解堆叠成全局最优解 这个四步其实过于理论化了,我们平时在做贪心类的题目 很难去按照这四步…...
Spark中的JOIN机制
Spark中的JOIN机制 1、Hash Join概述2、影响JOIN的因素3、Spark中的JOIN机制3.1、Shuffle Hash Join3.2、Broadcast Hash Join3.3、Sort Merge Join3.4、Cartesian Product Join3.5、Broadcast Nested Loop Join4、Spark中的JOIN策略5、Spark JOIN机制与策略总结5.1、Spark中的…...
WebRTC QOS方法十三.1(TimestampExtrapolator接收时间预估)
一、背景介绍 虽然我们可通过时间戳的差值和采样率计算出发送端视频帧的发送节奏,但是由于网络延迟、抖动、丢包,仅知道视频发送端的发送节奏是明显不够的。我们还需要评估出视频接收端的视频帧的接收节奏,然后进行适当平滑,保证…...
深入了解 GCC
GCC,全称 GNU Compiler Collection,是 GNU 项目的一部分,是一个功能强大且广泛使用的编译器套件。它支持多种编程语言,包括 C、C、Fortran、Java、Ada 和 Go。GCC 具有高度的可移植性,几乎可以在所有现代计算机体系结构…...
vscode 打开远程bug vscode Failed to parse remote port from server output
vscode 打开远程bug vscode Failed to parse remote port from server output 原因如图: 解决:...
前端组件化技术实践:Vue自定义顶部导航栏组件的探索
摘要 随着前端技术的飞速发展,组件化开发已成为提高开发效率、降低维护成本的关键手段。本文将以Vue自定义顶部导航栏组件为例,深入探讨前端组件化开发的实践过程、优势以及面临的挑战,旨在为广大前端开发者提供有价值的参考和启示。 一、引…...
PyTorch Autograd内部实现
原文: 克補 爆炸篇 25s (youtube.com) 必应视频 (bing.com)https://www.bing.com/videos/riverview/relatedvideo?&qPyTorchautograd&qpvtPyTorchautograd&mid1B8AD76943EFADD541E01B8AD76943EFADD541E0&&FORMVRDGAR 前面只要有一个node的re…...
微信小程序 vant-weapp的 SwipeCell 滑动单元格 van-swipe-cell 滑动单元格不显示 和 样式问题 滑动后删除样式不显示
在微信小程序开发过程中 遇到个坑 此处引用 swipeCell 组件 刚开始是组件不显示 然后又遇到样式不生效 首先排除问题 是否在.json文件中引入了组件 {"usingComponents": {"van-swipe-cell": "vant/weapp/swipe-cell/index","van-cell-gro…...
3.4、matlab实现SGM/BM/SAD立体匹配算法计算视差图
1、matlab实现SGM/BM/SAD立体匹配算法计算视差图简介 SGM(Semi-Global Matching)、BM(Block Matching)和SAD(Sum of Absolute Differences)都是用于计算立体匹配(Stereo Matching)的…...
【瑞吉外卖 | day07】移动端菜品展示、购物车、下单
文章目录 瑞吉外卖 — day71. 导入用户地址簿相关功能代码1.1 需求分析1.2 数据模型1.3 代码开发 2. 菜品展示2.1 需求分析2.2 代码开发 3. 购物车3.1 需求分析3.2 数据模型3.3 代码开发 4. 下单4.1 需求分析4.2 数据模型4.3 代码开发 瑞吉外卖 — day7 移动端相关业务功能 —…...
前端Vue项目中腾讯地图SDK集成:经纬度与地址信息解析的实践
在前端开发中,我们经常需要将经纬度信息转化为具体的地址信息,这对于定位、地图展示等功能至关重要。Vue作为现代前端框架的代表,其组件化开发的特性使得我们能够更高效地实现这一功能。本文将介绍如何在Vue项目中集成腾讯地图SDK,…...
鸿蒙开发StableDiffusion绘画应用
Stable Diffusion AI绘画 基于鸿蒙开发的Stable Diffusion应用。 Stable Diffusion Server后端代码 Stable Diffusion 鸿蒙应用代码 AI绘画 使用Axios发送post网络请求访问AI绘画服务器 api ,支持生成图片保存到手机相册。后端服务是基于flaskStable Diffusion …...
华为OD机考题(HJ61 放苹果)
前言 经过前期的数据结构和算法学习,开始以OD机考题作为练习题,继续加强下熟练程度。 描述 把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法? 注意:如果有7个苹果和3…...
浅谈Visual Studio 2022
Visual Studio 2022(VS2022)提供了众多强大的功能和改进,旨在提高开发者的效率和体验。以下是一些关键功能的概述:12 64位支持:VS2022的64位版本不再受内存限制困扰,主devenv.exe进程不再局限于4GB…...
spark 动态资源分配dynamicAllocation
动态资源分配,主要是spark在运行中可以相对合理的分配资源。 初始申请的资源远超实际需要,减少executor初始申请的资源比实际需要少很多,增多executorSpark运行多个job,这些job所需资源有的多有的少,动态调整executor…...
【C语言ffmpeg】打开第一个视频
文章目录 前言须知ffmpeg打开文件基本流程图ffmpeg打开媒体文件AVFormatContext *avformat_alloc_context(void);AVFormatContext 成员变量及其作用AVInputFormat *iformatAVOutputFormat *oformatvoid *priv_dataAVIOContext *pbunsigned int nb_streamsAVStream **streamscha…...
【Langchain大语言模型开发教程】模型、提示和解析
🔗 LangChain for LLM Application Development - DeepLearning.AI 学习目标 1、使用Langchain实例化一个LLM的接口 2、 使用Langchain的模板功能,将需要改动的部分抽象成变量,在具体的情况下替换成需要的内容,来达到模板复用效…...
Flutter 中的基本数据类型:num、int 和 double
在 Dart 编程语言中,数值类型的基础是 num,而 int 和 double 则是 num 的子类型。在开发 Flutter 应用时,理解这三者的区别和使用场景是非常重要的。本文将详细介绍 num、int 和 double 的定义及其使用区别。 num num 是 Dart 中的数值类型…...
基于Python+Django,开发的一个在线教育系统
一、项目简介 使用Python的web框架Django进行开发的一个在线教育系统! 二、所需要的环境与组件 Python3.6 Django1.11.7 Pymysql Mysql pure_pagination DjangoUeditor captcha xadmin crispy_forms 三、安装 1. 下载项目后进入项目目录cd Online-educ…...
密码学原理精解【9】
这里写目录标题 迭代密码概述SPN具体算法过程SPN算法基本步骤举例说明注意 轮换-置换网络一、定义与概述二、核心组件三、加密过程四、应用实例五、总结 轮函数理论定义与作用特点与性质应用实例总结 迭代密码理论定义与原理特点与优势应用场景示例发展趋势 AES特点概述一、算法…...
深圳网站开发工资/seo如何提高排名
每天一道大厂SQL题【Day03】订单量统计 大家好,我是Maynor。相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题,…...
网站上的报名表链接是怎么做的/抖音广告怎么投放
模板介绍 本套管理好自己的健康下载PPT模板,模板编号:P87161,大小10MB,共27页,比例为16:9,由封面、目录、转场页、内容、结尾5个部分构成。 内含青色,橙色,灰色多种配色,精美风格设计,动态播放效果,精美实用。 一份设…...
个人网站备案材料填写/广州竞价托管代运营
一、变量初始化以及默认值设置1.$var与${var}:这两种写法本质上是一样的,但$var有时候会产生混淆,而${var}一般不会,可以把变量和字符串组合起来使用,比如name${first}-on-${last}2.${var-default}与${var:-default}&a…...
全网通网站/5188大数据官网
有时候我们需要关注应用本身分配了多少内存,分配内存最多的是哪个类或者方法。这时我们需要用到Allocation Tracker这个工具。来看一个简单的例子 我们创建了一个MyLayoutpublic class TestActivity extends Activity {Overrideprotected void onCreate(Bundle save…...
北京做网站s/深圳网站优化排名
代码实现报表打印 //初始化报表信息 private void SetReportInfo(string reportPath,string sourceName,DataTable dataSource,bool isFengPi) {if (!File.Exists(reportPath)) { MessageBox.Show("报表文件:" reportPath " 不存在!","提示&…...
广州seo网站推广优化/今日头条新闻在线看
什么是索引覆盖就是select的数据列只用从索引中就能够取得,不必读取数据行,换句话说查询列要被所建的索引覆盖。那么显然select * from ...是一种拙劣的查询,除非你建立了包含所有列的索引(这样建索引脑子进水)。对 于…...