python速学

一、快速了解 Python 和 环境准备
(一)Python 快速介绍
Python 是一种 简洁、强大、易读 的编程语言,广泛应用于 Web 开发、数据分析、人工智能、自动化运维 等领域。它由 Guido van Rossum 在 1991 年设计,因其清晰的语法和强大的生态系统,迅速成为全球最受欢迎的编程语言之一。

在 2017 年底,Stack Overflow 发布的数据显示,Python 已经超越 JavaScript 成为了该平台上提问流量最多的编程语言。

(二)Jupyter Notebook:从梦想到行业标配
Jupyter Notebook 的诞生源于创始人 Fernando Pérez一个大胆的想法:打造一个能整合 Julia(Ju)、Python(Py)和 R(ter) 这三种科学计算语言的通用计算平台。但目前Jupyter 早已超越最初的设想,成为一个支持几乎所有编程语言的多功能计算环境。

从 2017 年起,北美顶尖高校纷纷全面拥抱 Jupyter Notebook:

学术界:斯坦福的 CS231N《计算机视觉与神经网络》 课程2017 年便完全迁移到 Jupyter Notebook、UC Berkeley 的 《数据科学基础》 课程也在同年改用 Jupyter 作为唯一的作业平台。

工业界: Facebook尽管大型后端开发仍依赖传统 IDE,但几乎所有 内部分析、机器学习训练和数据探索 都基于 Jupyter Notebook 运行。同时 Google 的 AI Research 部门 Google Brain,也是清一色地全部使用 Jupyter Notebook(改进定制版,叫 Google Colab)。

这样,我们就可以在 Mac 上使用 Jupyter Notebook 进行 Python 开发了!

备注:

如果你不习惯也可以直接idea,毕竟这么多年习惯了java开发,我就是两个都安装了,无所谓!

如果不想安装也可以在线使用:Jupyter 官方在线工具

二、Python 基础:变量、数据类型与输入输出
Python 以其 简洁、易读 的语法受到欢迎,而理解变量、数据类型和输入输出是学习 Python 的第一步。这部分内容构成了 Python 编程的基石。这部分代码我写的时候都是直接在idea中,网络版本有时很慢。Jupyter 官方在线工具

(一)变量:数据的存储与引用
变量(Variable)是用于存储数据的容器,在 Python 中变量不需声明类型,直接赋值即可创建。

1. 变量的定义与赋值

  1. x = 10 # 整数变量

  2. name = "Alice" # 字符串变量

  3. pi = 3.14159 # 浮点数变量

  4. is_python_fun = True # 布尔变量

2. 变量命名规则
变量名必须 以字母或下划线(_)开头,不能以数字开头。

变量名只能包含 字母、数字和下划线,不能包含空格或特殊符号。

变量名区分大小写(age 和 Age 是不同的变量)。

推荐使用 小写字母+下划线(snake_case)风格,如 user_name,符合 Python 代码规范(PEP 8)。

示例:正确与错误的变量命名

  1. valid_name = "OK" # 正确

  2. _valid_123 = 42 # 正确

  3. 2nd_value = "wrong" # ❌ 错误:不能以数字开头

  4. user-name = "error" # ❌ 错误:不能包含 `-`

(二)数据类型(Data Types)

Python 具有丰富的数据类型,主要包括

Python 提供 type() 函数来查看变量的数据类型:

  1. x = 42

  2. print(type(x)) # 输出:<class 'int'>

Python 允许不同类型之间的转换:

  1. age = "25"

  2. age = int(age) # 将字符串转换为整数

  3. pi = 3.14

  4. pi_str = str(pi) # 将浮点数转换为字符串

(三)输入与输出(Input & Output)

1. 标准输入(input)

input() 用于从用户获取输入,所有输入默认是 字符串类型

  1. name = input("请输入你的名字: ")

  2. print("你好,", name)

如果需要数值类型,需要进行 类型转换

  1. age = int(input("请输入你的年龄: ")) # 输入默认是字符串,需要转换成整数

  2. print("你明年就", age + 1, "岁了!")

基本验证:

2. 标准输出(print)

print() 用于向控制台输出内容:

  1. name = "Alice"

  2. age = 25

  3. print("姓名:", name, "年龄:", age) # 多个参

格式化输出(推荐使用 f-string,Python 3.6+ 支持):

print(f"姓名: {name}, 年龄: {age}") # 推荐的写法

三、控制流:让代码具备决策能力
在编程中,控制流 决定了代码的执行顺序,使程序能够做出决策(条件判断),或重复执行任务(循环)。通过 布尔值、逻辑运算、if 语句、for 和 while 循环,我们可以让 Python 代码变得更加智能和高效。这部分我会总结下这些关键概念,其是构建更具逻辑性程序的基础。

(一)布尔值与逻辑判断
在 Python 中,布尔值(Boolean) 是控制程序逻辑的基础。它用于 条件判断、循环控制和逻辑运算,让代码具备决策能力。

1. 布尔值(Boolean)
布尔值只有两个取值:

  1. True # 代表 "真"

  2. False # 代表 "假"

布尔值本质上是整数的特殊形式,其中:

  1. True == 1 # 结果为 True

  2. False == 0 # 结果为 True

布尔值的基本使用
  1. is_python_fun = True

  2. is_raining = False

  3. print(is_python_fun) # 输出:True

  4. print(type(is_python_fun)) # 输出:<class 'bool'>

2. 比较运算符(Comparison Operators)

比较运算符用于比较两个值,返回 True 或 False

代码示例
  1. a = 10

  2. b = 5

  3. print(a > b) # True

  4. print(a == b) # False

  5. print(a != b) # True

3. 布尔运算符(Boolean Operators)

Python 提供了 andor 和 not 三种逻辑运算符,用于组合多个布尔表达式。

3.1 and 逻辑与
  1. x = 5

  2. y = 10

  3. print(x > 0 and y > 5) # True,因为两个条件都成立

  4. print(x > 0 and y < 5) # False,因第二个条件不成立

3.2 or 逻辑或
  1. x = 5

  2. y = 10

  3. print(x > 0 or y < 5) # True,只要有一个条件为 True 即可

  4. print(x < 0 or y < 5) # False,两个条件都为 False

3.3 not 逻辑非
  1. is_python_fun = True

  2. print(not is_python_fun) # False,因为取反了

4. 混合布尔运算(优先级)

运算符的 优先级 从高到低依次为:not(最高)、and、or(最低)

print(True or False and False)  
# 等价于 True or (False and False) → True or False → True
 
print(not True or False)  
# 等价于 (not True) or False → False or False → False

5. 布尔值与其他数据类型的转换
在 Python 中,所有数据类型 都可以转换为布尔值:

以下情况视为 False:

0(整数 0)

0.0(浮点数 0)

""(空字符串)

[](空列表)

{}(空字典)

None(特殊值,表示“空”)

其他情况均为 True。

5.1 使用 bool() 进行类型转换

  1. print(bool(0)) # False

  2. print(bool("")) # False

  3. print(bool([])) # False

  4. print(bool(42)) # True

  5. print(bool("hello")) # True

5.2 在 if 语句中使用
  1. name = "Alice"

  2. if name: # 相当于 if bool(name) == True

  3. print("名字有效")

  4. else:

  5. print("名字为空")

输出:

名字有效

(二)🌟 条件判断(if 语句)

在编程中,我们经常需要根据不同条件来执行不同的代码。这就要用到 条件判断语句(if statement)。Python 中使用 ifelif 和 else 关键字来实现条件分支。

1. 基本 if 语句

语法结构

✅ 当“条件”为 True 时,语句块才会被执行。

示例:

输出:

你已经成年了

2. if-else 结构(两分支选择)

用于处理“要么这样,要么那样”的情况。

语法结构:

示例:

输出:

北京天气今天有点冷

3. if-elif-else 结构(多分支选择)

用于处理多个条件判断的情况(相当于“多项选择”)。

语法结构:

示例:

输出:

良好

💡 elif 是 "else if" 的缩写。Python 中没有 switch 语句,if-elif-else 是推荐的替代方案。

4. 嵌套 if 语句

嵌套 指的是在一个 if 块内部再写 if 判断。可以用来表示更复杂的逻辑结构。

示例:

输出:

你是年轻的学生

⚠️ 注意缩进层级,Python 是靠缩进来识别代码块的!

5. 条件表达式(三元运算符)

Python 支持一种简洁的写法:在一行中完成 if-else 判断

语法

示例:

输出:

适合用于 根据条件选择一个值赋给变量 的情况。

(三)循环(Loops)
在编程中,我们常常需要重复执行某些操作,比如遍历列表、处理每一行数据、执行某个动作直到满足条件等等。Python 提供了两种主要的循环结构:while 循环和 for 循环,配合控制语句(如 break、continue)可以构建出丰富的循环逻辑。

1. while 循环(基于条件重复执行)

  • 每次循环前都会检查“条件表达式”的值;

  • 条件为 True → 执行循环体;

  • 条件为 False → 结束循环。

🧪 示例:打印 1 到 5 的数字

🔁 break 语句(提前终止循环)

break 用于立即跳出整个循环结构,不管循环条件是否还为 True

输出:1, 2, 3,然后退出循环

🔁 continue 语句(跳过当前迭代)

continue 用于跳过本次循环中剩下的语句,直接进入下一次判断。

输出:1, 2, 4, 5(跳过了 3)

2. for 循环(用于遍历序列)
✅ 基本语法

可迭代对象包括:字符串、列表、字典、集合、元组等。

🔁 遍历字符串

🔁 遍历列表

🔁 遍历字典

或使用 .items() 遍历键值对:

🔁 遍历集合

🔁 range() 函数与数值循环

  • range(n):0 到 n-1

  • range(start, end):start 到 end-1

  • range(start, end, step):按步长生成

🔁 enumerate() 结合索引遍历

想同时获取元素和下标时使用 enumerate()

3. 循环控制语句
✅ break:提前终止整个循环

通常与 if 配合使用,用于在满足某个条件时立即退出循环。

✅ continue:跳过当前迭代

用于跳过某些不符合条件的值。

✅ else 语句在循环中的作用

else 可以与 for 或 while 循环一起使用:

  • 当循环没有被 break 中断时,else 中的语句会执行。

这在处理搜索类问题时特别有用

✅ 小结
循环类型用途特点
while条件控制循环不确定次数时使用
for遍历序列更简洁,适合固定结构
break跳出循环终止整个循环体
continue跳过本次迭代继续下一轮
else循环结构补充仅在循环未被 break时执行

四、🧩 函数与相关基础知识:让代码会“思考”的魔法工具
在编程的世界里,函数就像是程序的“积木”:它们能把一段可复用的操作封装起来,想用就调用,修改也方便,堪称优雅代码的起点。

无论是打印一行文字,计算一个数列的和,还是训练一个 AI 模型,本质上你做的都是“定义功能 + 调用功能” —— 这正是函数的使命。

(一)函数基础
1. 什么是函数?为什么要使用函数?
在编程中,函数是一个非常重要的概念,它可以被理解为“功能块”,用来封装一段代码,供其他地方调用。通过函数,开发者可以:

提高代码复用性:避免重复写相同的代码,简化开发和维护。

增强可读性:将复杂的任务拆解成小的、独立的单元,便于理解。

分隔逻辑:函数让代码的逻辑结构更加清晰和模块化,有助于团队协作开发。

例如,我们可以定义一个函数来计算两个数字的和,而不需要每次都重复写加法的操作。只要定义一次,后续就可以随时调用。

2. 使用 def 定义函数
在 Python 中,函数是通过 def 关键字来定义的。它的基本语法如下:

  • def 是 Python 中定义函数的关键字

  • function_name 是你给函数命名的名称,符合命名规则

  • parameters 是函数的输入(可以没有)

  • return 是返回结果的关键字(如果不返回任何值,则默认为 None

示例:一个简单的加法函数

这里我们定义了一个 add 函数,输入参数是 a 和 b,它们会被加在一起并返回结果。

3. 函数的调用和执行流程
定义函数后,调用函数就能执行该函数的代码。Python 会根据函数调用的顺序进入函数体,并执行其中的代码。

当函数被调用时,程序会暂停当前位置,跳转到函数体执行代码,直到遇到 return 语句(或者函数执行完毕)才返回。

如果没有 return 语句,则返回 None。

示例:简单的函数调用与返回值

这里的 greet 函数通过 return 语句返回了一个字符串,调用时传入了参数 "Alice",最终返回 "Hello, Alice!"

4. print() 与 return 的区别与使用场景
在 Python 中,print() 和 return 都用于输出数据,但它们有显著的不同:

print() 用于将信息输出到控制台,主要用于调试、输出中间结果或与用户交互。

return 用于函数的输出,它将值返回给调用者,可以被其他代码再次使用。

示例:print() 和 return 对比

greet_print 使用 print() 输出值,但无法把它传递给其他部分的代码。

greet_return 使用 return 返回结果,这个返回值可以在代码的其他地方使用或存储。

小结一下吧
函数是代码复用、模块化的核心工具。

使用 def 定义函数,return 返回值。

print() 用于输出调试信息,return 用于返回计算结果。

(二)函数参数
函数参数是函数接收外部输入的方式。理解和掌握函数参数的使用,不仅能帮助你编写更灵活的代码,还能让你的程序更具扩展性和可维护性。

1. 位置参数
位置参数是最常见的函数参数类型,它是指参数传递时位置的顺序决定了每个参数的含义。

例如,在函数定义时,参数 a 和 b 的位置决定了它们的意义。当调用函数时,传递的参数值会根据位置匹配到相应的参数。

示例:位置参数

这里的 add 函数有两个位置参数:a 和 b。我们调用 add(3, 5) 时,3 会赋值给 a5 会赋值给 b,最终返回它们的和。

2. 关键字参数

关键字参数允许你在调用函数时显式地指定每个参数的名称。这样可以不关心参数的顺序,只需要知道参数名。

示例:关键字参数

在调用 greet 函数时,age 和 name 的顺序不再重要,关键字参数通过指定 age=25 和 name="Alice" 来传递值。

3. 默认参数
默认参数是指在定义函数时,为某些参数提供默认值。如果调用时没有提供这些参数的值,Python 会使用默认值。

示例:默认参数

在 greet 函数中,age 有默认值 18。如果调用时没有传入 age,就会使用默认值;如果传入了 age,则会覆盖默认值。

4. 可变参数:*args 与 **kwargs
有时候我们不知道函数需要接收多少个参数,这时可以使用 可变参数。

*args 用于接收位置参数,它将接收多余的位置参数并将其打包成一个元组。

**kwargs 用于接收关键字参数,它将接收多余的关键字参数并将其打包成一个字典。

示例:*args 和 **kwargs

*args 将所有位置参数(1, 2, 3)打包成一个元组 (1, 2, 3)。

**kwargs 将所有关键字参数(name="Alice", age=25)打包成一个字典 {'name': 'Alice', 'age': 25}。

5. 参数顺序规范
当一个函数同时使用位置参数、默认参数和可变参数时,有一定的顺序规范,必须遵循以下顺序:

位置参数

默认参数

*args

**kwargs

示例:参数顺序

  • a 是位置参数,必须最先提供。

  • b 是默认参数,如果不提供则使用默认值。

  • *args 用于接收多余的所有位置参数。

  • c 是一个关键字参数,调用时必须显式指定。

  • **kwargs 用于接收多余的所有关键字参数。

小结一下吧
位置参数:根据参数顺序传递值。

关键字参数:显式指定参数名和值。

默认参数:函数定义时为参数提供默认值。

可变参数:*args 用于接收多位置参数,**kwargs 用于接收多关键字参数。

参数顺序:位置参数 > 默认参数 > *args > **kwargs。

(三)函数返回值
在 Python 中,函数不仅可以执行某些操作,还可以将结果“返回”给调用者。这就是 返回值(Return Value) 的概念。

通过 return 语句,函数可以把处理的结果交给外部使用。如果函数没有 return,那它默认返回的是 None。

1. 使用 return 返回结果
基本语法:

示例:

函数 square 返回的是 x 的平方,调用后我们可以拿到这个结果并继续使用。

2. 返回多个值(元组)

Python 支持从一个函数中返回多个值,这些值实际上被打包成一个元组返回。

示例:

多值返回的本质是:return name, age 等价于 return (name, age),然后通过拆包语法接收。

3. 函数无返回值时的表现

如果函数中没有 return 语句,或者只是 return 而没有值,那默认返回的是 None

示例:

这个函数 say_hello() 虽然做了事情(打印),但没有 return,因此返回值是 None

4. 提前终止函数执行

return 不仅能返回值,还能用来提前终止函数的执行

示例

当 b 是 0 时,函数遇到第一个 return 后立即终止执行,不会继续往下运行。

5. 将返回值作为表达式使用

函数返回值可以被用在其他表达式或函数中,像这样:

add(2, 3) 会返回 5,然后再与 10 相乘。

小结一下吧

五、📚 字符串操作模块
在 Python 中,字符串(str)是最常用、最重要的数据类型之一。无论你是在处理用户输入、读取文件、构建网页内容、分析文本数据,几乎都绕不开对字符串的处理。

现在我们总结掌握 Python 字符串的各种操作方法,从最基本的创建与访问,到复杂的格式化与正则匹配,覆盖日常开发中 90% 的高频场景。我们需要学会如何清洗、切割、替换、判断和重组字符串,并为后续的数据处理与文本分析打下坚实基础。

(一)📘 字符串基础
在 Python 中,字符串(str)是用来表示文本的数据类型。本部分介绍字符串的创建方式、基本特性、访问技巧以及常见的基本操作。

1. 字符串的定义与创建
字符串可以用 单引号 '、双引号 " 或 三引号 ''' / """ 括起来。

✔️ Python 中单引号和双引号作用相同,主要用于避免转义冲突。

2. 字符串是不可变对象

字符串是 不可变的(immutable):创建后无法修改,只能重新赋值。

3. 字符串的索引与切片

字符串可以看作字符的序列,可以通过索引或切片访问其部分内容。


s = "Python"
 
# 索引(从 0 开始)
print(s[0])   # P
print(s[-1])  # n(最后一个字符)
 
# 切片 [start:end:step]
print(s[0:2])     # Py(不包括 end)
print(s[::2])     # Pto(每隔1个)
print(s[::-1])    # nohytP(反转字符串)
 切片非常强大,是字符串处理中不可或缺的工具。

4. 字符串的连接与重复

5. 字符串的成员运算

6. 字符串与类型转换

(二)📘 字符串常见操作方法

Python 的字符串类型(str)内建了大量实用的方法,帮助我们完成查找、替换、对齐、大小写转换、格式化等各类文本处理任务。本节将系统讲解所有主流、实用的方法,并配合用例说明。

1. 大小写转换

2. 查找与判断

3. 删除空白符与字符清洗

4. 字符串对齐与填充

5. 拆分与连接

6. 内容判断类方法(返回布尔值)

7. 高级字符串格式化(f-string)

8. 转义字符与原始字符串

9. 其他实用技巧
  • 长字符串拼接:

字符串比较支持 <>== 等字典序对比:

🧠 小结:常用字符串方法分类对照表

(三)📘 字符串切片与索引

1. 字符串索引(正向索引 / 负向索引)

Python 字符串是序列类型,每个字符都有对应的索引位置。我们可以通过索引访问字符串中的单个字符。

📍 正向索引(从 0 开始)

📍 负向索引(从 -1 开始,表示从右往左)

🧠 注意

  • 超出索引范围(如 s[10])会抛出 IndexError

  • 字符串是 不可变对象,不能通过索引修改某个字符。

2. 字符串切片([start:stop:step])

切片(slice)是从字符串中提取子串的一种方式,语法格式为

  • start:起始索引(包含)

  • stop:终止索引(不包含)

  • step:步长(默认为 1)

🎯 基础切片

 使用负数索引切片

添加步长(step)

反向切片(步长为负数)

切片边界记忆口诀
  • 包头不包尾:起始位置包含,结束位置不包含。

  • 步长方向一致:正数步长从左到右,负数步长从右到左。

  • 索引可以为负:负索引从末尾向前数。

3. 字符串的遍历

遍历字符串可以逐个访问其字符,常用于统计、查找、生成新字符串等任务。

基础遍历

输出:

带索引遍历(推荐:使用 enumerate)

输出:

经典应用场景小结

四)📘 字符串格式化
Python 提供了三种主要的字符串格式化方式:

% 占位符格式化(经典写法)

str.format() 方法格式化(兼容写法)

f-string 格式化(推荐方式,Python 3.6+)

1.% 占位符格式化(C 风格)
这是最早期的格式化方式,语法类似于 C 语言:

🧠 缺点:可读性差、容易出错,不推荐用于新代码。

2.str.format() 方法格式化

引入于 Python 2.7 / 3.0,支持位置参数、关键字参数,更灵活:

支持 位置参数 / 关键字参数

支持格式控制

缺点:写法较冗长,推荐 f-string 替代。

3.f-string 格式化(Python 3.6+,推荐✅)

最现代、最简洁的格式化方式,代码更清晰,推荐作为首选写法。

支持表达式

 支持格式化控制

与函数、数据结构结合

🧪 三种方式对比

📝 小结一下吧
  • 新代码推荐 f-string,语法简洁、表达能力强。

  • str.format() 适用于兼容旧版本 Python。

  • % 占位符方式适合了解,不建议用于正式项目中。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值