Python知识点复习
文章目录
- Input & Output
- Variables & Data types
- Python字符串重复(字符串乘法)
- 字符串和数字连接在一起print时,要强制类型转换int为str
- 用input()得到的用户输入,是str类型,如果要以int形式计算的话,需要强制类型转换为int
- 我们可以只使用一个变量user_input来节省内存
- convert string type to date type
- convert date to string
- Multi-line code statement 换行符
- 在括号内,行的延续的自动的
- Escape sequence 转义字符
- String format
- string format 中限制输入占位大小的同时小数点后位数
- Arithmetic operators
- Fundamentals of the Analysis of Algorithm Efficiency
- Algorithm analysis framework 算法分析框架
- 1. Measuring Input Sizes
- 2. Units for Measuring Running Time
- 3. Order of growth
- 4. Worst-Case, Best-Case, and Average-Case Efficiency
- Summary
- 渐进式符号
- no faster
- at least as fast as
- at same rate
- Summary
- Some Properties
- Using Limits for Comparing Orders of Growth
- Analysis of non-recursive algorithms 非递归算法的分析
- Analysis of recursive algorithms 递归算法的分析
- Examples
- 求n!
- 重要的递归类型
- For-loop
- 字符串操作
- 字符串内容大写/小写
- 找字串位置,找不到返回-1
- 字符串长度
- 根据下标返回字符串中对应字符
- 切割字符串
- Data Structure
- Abstract data type (ADT)
- Function 函数
- 四舍五入保留小数点后多少位函数
- min,max函数是python内置的
- random函数
- Class and object
- Instance attribute vs Class attribute
- Instance method vs Class/Static method
- Instance method
- Special instance method
- `__init__` 方法
- `__str__` 方法
- `__repr__` 方法
- 完整示例
- Static / Class method
- Class method vs static method: 类方法和静态方法的区别
- 类方法(Class Method)
- 静态方法(Static Method)
- 示例代码:
- Defining class and creating object 定义类和创建对象
- Accessing object instance attributes 访问对象的实例属性
- Modify object instance attributes 更改对象的实例属性
- Defining an object instance method 定义对象的示例属性
- 类注释和函数注释
- 案例学习:定义一个学生类
- Class inheritance 类继承
- Array and Linked List
- Numpy Array
- Python链表实现
- Debuging
- Exception&traceback
- Assertion
- Logging
Input & Output
Variables & Data types
str: a string represents a sequence of characters.
int: an integer, a whole number
float: a decimal number
bool: a boolean value is either True or False.
Date data type: including year, month, day, (not the time)
Date-time data type: including year, month, day, hour, minute, second, …
Python字符串重复(字符串乘法)
字符串和数字连接在一起print时,要强制类型转换int为str
用input()得到的用户输入,是str类型,如果要以int形式计算的话,需要强制类型转换为int
我们可以只使用一个变量user_input来节省内存
convert string type to date type
strptime
convert date to string
strftime
Multi-line code statement 换行符
在括号内,行的延续的自动的
Line continuation is automatic when the split comes while a
statement is inside parenthesis ( , brackets [ or braces {
Escape sequence 转义字符
String format
格式 | 意义 |
---|---|
<15 | left alignment, using 15 spaces |
^25 | center alignment, using 25 spaces |
>15 | right alignment, using 15 spaces |
string format 中限制输入占位大小的同时小数点后位数
还可以通过这种方式实现四舍五入取整
.0f
Arithmetic operators
Floor division = 地板除 = 向下取整除
floor division地板除是什么意思
向下取整除,就是地板除 floor division
向上取整除,就是天花板除,ceil division
来自 https://zhuanlan.zhihu.com/p/221901326
Fundamentals of the Analysis of Algorithm Efficiency
Algorithm analysis framework 算法分析框架
Analysis of algorithms means to investigate an algorithm’s efficiency with respect to resources: running time and memory space
算法分析是指研究一个算法在资源方面的效率:运行时间和内存空间。
1. Measuring Input Sizes
Efficiency is defined as a function of input size.
F(n)
2. Units for Measuring Running Time
Count the number of times an algorithm’s basic operation is executed
计算一个算法的基本操作被执行的次数
Basic operation: the operation that contributes the most to the total
running time.
例如,基本操作通常是算法最内部循环中最耗时的操作。
3. Order of growth
4. Worst-Case, Best-Case, and Average-Case Efficiency
==Efficiency (# of times the basic operation will be executed) ==
Average case:
Efficiency (#of times the basic operation will be executed) for a typical/random
input of size n. NOT the average of worst and best case. How to find the
average case efficiency?
平均情况。对于大小为n的典型/随机输入的效率(基本操作将被执行的次数),而不是最坏和最好情况的平均值。如何找到平均案例的效率?
Summary
算法的运行时间(空间)随着其输入大小的增加而增长的阶数为无穷大。
对于相同大小的输入,一些算法的效率可能有很大的不同
渐进式符号
no faster
at least as fast as
at same rate
Summary
Some Properties
意义:算法的整体效率将由增长顺序较大的部分决定。
Using Limits for Comparing Orders of Growth
所有的对数函数loga n都属于同一个类别
所有相同度数k的多项式都属于同一类别
指数函数对于不同的a有不同的增长顺序
Analysis of non-recursive algorithms 非递归算法的分析
Analysis of recursive algorithms 递归算法的分析
- 计算递归调用的次数
- 解决递归问题,或通过后向替代或其他方法估计解决方案的数量级
Examples
求n!
重要的递归类型
For-loop
range(0,10) 范围是左闭右开
字符串操作
字符串内容大写/小写
.upper()
.lower()
找字串位置,找不到返回-1
字符串长度
根据下标返回字符串中对应字符
切割字符串
[i:j] 范围左开右闭,从下标为i的字符到下标为j-1的字符,获得的子串长度为j-i
Data Structure
data, relationship , operation
Abstract data type (ADT)
Function 函数
四舍五入保留小数点后多少位函数
min,max函数是python内置的
random函数
左闭右闭
Class and object
对象是类的实例。
术语“对象”和“实例”可以互换使用。每个对象实例都有自己的数据值。
Instance attribute vs Class attribute
Some information belongs to individual object instance.
Some other information is common to all objects.
- Instance attribute: data belongs to individual object instance.
- Class attribute: data that is common to all objects. (Some classes do not have any class attributes.)
有些信息属于单个对象实例。
其他一些信息对于所有对象都是通用的。
- 实例属性:数据属于单个对象实例。
- 类属性:所有对象共有的数据。 (有些类没有任何类属性。)
Instance method vs Class/Static method
Instance method:
- Deal with a particular individual object instance
- The first argument (self) is always referred to the object instance
- instance method can be invoked from an object
Static / Class method:
- Do NOT deal with individual object instance
- Common to all object instances
- static/class method can be invoked from class name
实例方法:
- 处理特定的单个对象实例
- 第一个参数(self)始终引用对象实例
- 可以从对象调用实例方法
静态/类方法:
- 不处理单个对象实例
- 所有对象实例共有
- 静态/类方法可以从类名调用
Instance method
Special instance method
在 Python 中,特殊的实例方法(也称为魔术方法或魔法方法)在类中具有特殊的意义和用途。以下是你提到的几个魔术方法的解释和示例:
__init__
方法
__init__
方法是类的构造函数,用于初始化新创建的对象的属性。它在对象创建时自动调用。你可以使用它来设置对象的初始状态。
class TV_Program:def __init__(self, channel, title, start_time, duration):self.channel = channelself.title = titleself.start_time = start_timeself.duration = duration# 创建一个 TV_Program 对象
program = TV_Program('HBO', 'Game of Thrones', '21:00', 60)
print(program.channel) # 输出: HBO
__str__
方法
__str__
方法用于定义对象的“可读”字符串表示。当你使用 print()
函数或 str()
函数时,Python 会调用这个方法。这个方法应该返回一个易于阅读和理解的字符串。
class TV_Program:def __init__(self, channel, title, start_time, duration):self.channel = channelself.title = titleself.start_time = start_timeself.duration = durationdef __str__(self):return f"{self.title} on {self.channel} at {self.start_time} for {self.duration} minutes"# 创建一个 TV_Program 对象
program = TV_Program('HBO', 'Game of Thrones', '21:00', 60)
print(program) # 输出: Game of Thrones on HBO at 21:00 for 60 minutes
__repr__
方法
__repr__
方法用于定义对象的“正式”字符串表示。这通常是一个详细且准确的字符串,应该尽可能包含信息,以便开发者可以重现该对象。__repr__
方法通常在交互式解释器中调用,或者当使用 repr()
函数时调用。
class TV_Program:def __init__(self, channel, title, start_time, duration):self.channel = channelself.title = titleself.start_time = start_timeself.duration = durationdef __repr__(self):return f"TV_Program(channel='{self.channel}', title='{self.title}', start_time='{self.start_time}', duration={self.duration})"# 创建一个 TV_Program 对象
program = TV_Program('HBO', 'Game of Thrones', '21:00', 60)
print(repr(program)) # 输出: TV_Program(channel='HBO', title='Game of Thrones', start_time='21:00', duration=60)
完整示例
class TV_Program:def __init__(self, channel, title, start_time, duration):self.channel = channelself.title = titleself.start_time = start_timeself.duration = durationdef __str__(self):return f"{self.title} on {self.channel} at {self.start_time} for {self.duration} minutes"def __repr__(self):return f"TV_Program(channel='{self.channel}', title='{self.title}', start_time='{self.start_time}', duration={self.duration})"# 创建一个 TV_Program 对象
program = TV_Program('HBO', 'Game of Thrones', '21:00', 60)
print(program) # 调用 __str__ 方法
print(repr(program)) # 调用 __repr__ 方法
在这个示例中,__init__
方法用于初始化 TV_Program
对象的属性,__str__
方法用于提供对象的可读字符串表示,而 __repr__
方法用于提供对象的正式字符串表示。
Static / Class method
Class method vs static method: 类方法和静态方法的区别
- The first argument (cls) of a class method is always referred to the class
在 Python 中,类方法和静态方法都是属于类的特殊方法,但它们有不同的用途和行为。以下是它们的区别和详细解释:
类方法(Class Method)
类方法使用 @classmethod
装饰器定义,第一个参数总是指向类本身,通常命名为 cls
。类方法可以访问类的属性和方法,但不能直接访问实例属性。
特点:
- 第一个参数
cls
代表类,而不是实例。 - 可以通过类名或者实例调用。
- 可以访问类属性和类方法,不能访问实例属性。
示例:
class Student:email_domain = "solla.sollew.edu" # 类属性@classmethoddef admin_email(cls):return "admin@" + cls.email_domain # 访问类属性# 调用类方法
print(Student.admin_email()) # 输出: admin@solla.sollew.edu# 创建实例并调用类方法
student = Student()
print(student.admin_email()) # 输出: admin@solla.sollew.edu
静态方法(Static Method)
静态方法使用 @staticmethod
装饰器定义。静态方法没有默认的参数,它们与类和实例都无关,不能访问类属性或实例属性。静态方法通常用于一些逻辑上与类相关,但不需要访问类或实例的任何数据的方法。
特点:
- 没有默认的参数(没有
self
或cls
)。 - 可以通过类名或者实例调用。
- 无法访问类属性和实例属性。
示例:
class Student:email_domain = "solla.sollew.edu" # 类属性@staticmethoddef uni_website():return "http://www.solla.sollew.edu" # 逻辑上与类相关,但不访问类或实例的数据# 调用静态方法
print(Student.uni_website()) # 输出: http://www.solla.sollew.edu# 创建实例并调用静态方法
student = Student()
print(student.uni_website()) # 输出: http://www.solla.sollew.edu
示例代码:
总结:
- 类方法 使用
@classmethod
装饰,第一个参数cls
代表类本身,可以通过类名或实例调用,能访问类属性和类方法。 - 静态方法 使用
@staticmethod
装饰,没有默认参数,不能访问类属性或实例属性,只是逻辑上与类相关的方法。
class Student:email_domain = "solla.sollew.edu" # 类属性student_dir = "/user/student" # 类属性@classmethoddef admin_email(cls):return "admin@" + cls.email_domain # 类方法,访问类属性@staticmethoddef uni_website():return "http://www.solla.sollew.edu" # 静态方法,不访问类或实例数据# 调用类方法和静态方法
print(Student.admin_email()) # 输出: admin@solla.sollew.edu
print(Student.uni_website()) # 输出: http://www.solla.sollew.edu# 创建实例并调用类方法和静态方法
student = Student()
print(student.admin_email()) # 输出: admin@solla.sollew.edu
print(student.uni_website()) # 输出: http://www.solla.sollew.edu
Defining class and creating object 定义类和创建对象
Accessing object instance attributes 访问对象的实例属性
Modify object instance attributes 更改对象的实例属性
Defining an object instance method 定义对象的示例属性
类注释和函数注释
案例学习:定义一个学生类
Class inheritance 类继承
Array and Linked List
Numpy Array
Python链表实现
Debuging
Exception&traceback
traceback
库中的traceback.format_exc()
获取异常追踪的详细信息
Assertion
• 它通常用于检查不可能发生的情况
• 断言语句导致终止
立即停止 → 快速失败
• 对于来自程序员而不是用户的错误
Logging
- 使用 print() 向用户显示某些变量的值显示消息
- Logging日志模块在屏幕上显示日志信息/向程序员显示信息文件
相关文章:

Python知识点复习
文章目录 Input & OutputVariables & Data typesPython字符串重复(字符串乘法)字符串和数字连接在一起print时,要强制类型转换int为str用input()得到的用户输入,是str类型,如果要以int形式计算的话,…...

GeoScene产品学习视频收集
1、易智瑞运营的极思课堂https://www.geosceneonline.cn/learn/library 2、历年易智瑞技术公开课视频资料 链接:技术公开课-易智瑞信息技术有限公司,GIS/地理信息系统,空间分析-制图-位置智能-地图 3、一些关于GeoScene系列产品和技术操作的视…...
51单片机的最小系统详解
51单片机的最小系统详解 1. 引言 在嵌入式系统中,51单片机被广泛应用于各种小型控制器和嵌入式开发板中。相信很多人都接触过51单片机,但是对于51单片机的最小系统却了解得不够深入。本文将从振荡电路、电源模块、复位电路、LED指示灯和调试接口五个方面详细介绍51单片机的…...
路径规划搜路算法有哪些?
路径规划搜索算法是帮助移动机器人或自动化系统在环境中从起点导航至终点的计算方法。以下是一些常见的路径规划搜索算法: Dijkstra算法:一种经典的最短路径搜索算法,适用于没有负权边的图。 A*算法:一种启发式搜索算法ÿ…...
Hadoop学习之hdfs的操作
Hadoop学习之hdfs的操作 1.将HDFS中的文件复制到本地 package com.shujia.hdfs;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.junit.After; import org.junit.Before; import org.j…...

DBAPI怎么进行数据格式转换
DBAPI如何进行数据格式的转换 假设现在有个API,根据学生id查询学生信息,访问API查看数据格式如下 {"data":[{"name":"Michale","phone_number":null,"id":77,"age":55}],"msg"…...
Oracle JSON 函数详解与实战
Oracle 数据库提供了丰富的 JSON 函数集,使得开发者可以高效地处理 JSON 数据。本文将详细介绍这些函数,包括它们的语法、使用场景、具体示例,以及在实际项目中的应用。 文章目录 JSON_VALUE语法参数说明示例 JSON_QUERY语法示例 JSON_TABLE语…...
C#面:请解释转发与跳转的区别
在C#中,转发(forwarding)和跳转(jumping)是两种不同的控制流程操作。 转发 是指将控制权从一个方法或函数转移到另一个方法或函数。在转发中,程序会将当前的执行状态传递给另一个方法,并在该方…...

Java+IDEA+SpringBoot药物不良反应ADR智能监测系统源码 ADR智能化监测系统源码
JavaIDEASpringBoot药物不良反应ADR智能监测系统源码 ADR智能化监测系统源码 药物不良反应(Adverse Drug Reaction,ADR)是指在使用合格药品时,在正常的用法和用量下出现的与用药目的无关的有害反应。这些反应往往因药物种类、使用…...

linux系统模拟资源消耗的简单手段
当我们在做系统性能,稳定性,高可用等特殊场景的测试时,往往要对计算机的硬件资源做出比较苛刻的限制,因此需要最简便的办法增加CPU,内存,磁盘,网络等硬件环境的资源压力。下面介绍实现这些操作的…...

吉林大学软件工程简答题整理
1.6种软件过程模型列举,及优缺点(每个都从时间、质量、过程、本身特点去考虑) 瀑布模型 优点缺点V模型 优点:缺点: 原型模型 优点:演化模型 建增模型 优点缺点螺旋模型 优点缺点喷泉模型 RUP、敏捷工程、…...
爬山算法介绍
目录 1.概述 2.产生 3.定义 4.优缺点 5.应用示例 6.未来展望 7.示例代码 1.概述 爬山算法是一种简单的启发式搜索算法,从起始点开始,每次选择当前位置邻域内的最优解作为下一个位置,直到达到目标点或无法继续前进。爬山算法的基本思想…...
在linux中配置关于GFS创建各种卷以及卷组--配置实验
服务器的相关信息 服务器的相关信息 卷名称 卷类型 空间大小 Brick dis-volume 分布式卷 12 Node1(/e6)、node2(/e6) Stripe-volume 条带卷 10 Node1(/d5)、node2(/d5) Rep-volume 复制卷 5 Node3(/d5)、node4(/d5) Dis-stripe 分布式条带卷 12 Node1(/b3)、node2(/b3)、node(…...

安泰电子:使用高压放大器时有哪些需要注意的呢
随着科技的不断进步,高压放大器在各种科学实验、工程应用和产业生产中扮演着重要的角色。然而,由于高压放大器的特殊性,使用时需要特别小心和谨慎。下面将详细介绍使用高压放大器时需要注意的事项,以确保安全、稳定地进行实验和应…...

为什么大部分新手做抖音小店赚不到钱?
大家好,我是喷火龙。 今天来给大家聊聊,为什么大部分新手做抖店赚不到钱? 不知道大家想过这个问题没有,可能有些人把赚不到钱的原因归结于市场、或者平台、又或者运营技术以及做店经验。 但我觉得这些都不是重点,重…...
跳跃游戏(2)
问题描述 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 输入࿱…...

11.Redis之zset类型
1.zset类型基本介绍 有序描述的是:升序/降序 Set 集合 1.唯一 2. 无序 孙行者,行者孙, 者行孙 >同一只猴~~ List有序的 孙行者,行者孙, 者行孙 >不同的猴~~ zset 中的 member 仍然要求是唯一的!!(score 则可以重复) 排序的规则是啥? 给 zset 中的 member 同…...
Python怎样将PDF拆分成多个文件
在 Python 中,你可以使用 PyPDF2 库来拆分 PDF 文件。以下是一个简单的示例,演示如何将一个 PDF 文件拆分为多个单页 PDF 文件。 首先,你需要安装 PyPDF2 库。如果尚未安装,可以使用以下命令进行安装: pip install P…...
C语言-----前置++和后置++的不同
#include <stdio.h> int main() {int a, b, c;a 5;c a;b c, c, a, a;b a c;printf("a %d b %d c %d\n:", a, b, c);return 0; }/*1、逗号运算符的优先级比赋值运算符号的优先级低2、、的优先级比高3、多个号在一起的时候,其优先级为后置、、…...

685. 冗余连接 II
685. 冗余连接 II 问题描述 在本问题中,有根树指满足以下条件的 有向 图。该树只有一个根节点,所有其他节点都是该根节点的后继。该树除了根节点之外的每一个节点都有且只有一个父节点,而根节点没有父节点。 输入一个有向图,该…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...