1 基础

Python是一种高级、通用、解释型的编程语言,由荷兰的吉多·范罗苏姆于1990年代初设计。它因其简单易学、功能强大和广泛的应用领域而备受欢迎。

2 基本数据类型

2.1 python数字类型

2.1.1 数据类型的组成

2.1.1.1 整数—不同进制的转换

默认输入十进制

  • 注:二进制0b、八进制0o、十六进制0x
2.1.1.1.1 十进制与其他进制的转换
1
2
3
4
a = bin(16)
b = oct(16)
c = hex(16)
print(a,b,c)

image-20240613165329877

  • 注:上述转化后均为字符串型
2.1.1.1.2 其他进制转换成十进制
1
2
d = int(a,2)
e = int(b,8)

2.1.1.2 浮点数—不确定性

不确定小数问题

1
print(0.1+0.2)

image-20240614121041171

  • 注:计算机采用二进制小数来表示小数部分
  • 部分小数不能完全用二进制小数表示
  • 通常情况下不会影响精度

四舍五入获取精度解

1
2
b = roud(a,1)
print(b)

2.1.1.3 复数—a+bj

j可大写小写

2.1.2 数学运算操作符

1
2
3
4
5
6
7
 1.加减乘除 +-\*/

2.取反 -

3.乘方运算 **

4.整数商// 和模运算%
1
13//5 #2
1
13%5 #3
2.1.2.1.1 几点说明
  • 整数与浮点数运算为浮点数
  • 除法运算为浮点数

2.1.3 数字运算操作函数

2.1.3.1 求绝对值 abs()

2.1.3.2 求幕次方 pow()

1
pow(2,5)#等价于2**5
1
pow(2,5,3)#等价于2**5%3

2.1.3.3 四舍五入 round(x,n)

默认四舍五入为整数

1
round(1.612,2)

2.1.3.4 整数商和模运算 divmod(x,y)

等价于返回二元元组(x//y,x%y)

1
divmod(13,5)//(2,3)

2.1.3.5 序列最大/最小值 max() min()

1
max(3,2,6,9,4,5)//9
1
2
a = [3,2,3,6,9,4,5]
print(max(a))//9

2.1.3.6 求和sum(x)

1
print(sum([1,2,3,4,5,6,7,8,9]))//45

2.1.3.7 借助科学计算库 math\scipy\numpy

1
2
3
4
import math
print(math.exp(1)) //指数运算 e^x
print(math.log2(2)) //对数运算
print(math.sqrt(4)) //开平方运算 等价于4^0.5
1
2
3
4
5
import numpy as np
a = [1,2,3,4,5]
np.mean(a) //求均值
np.media(a) //求中位数
np.sta(a) //求标准差

3 python字符串类型

3.1 字符串

3.1.1 用””或’’括起来的任意字符

3.1.1.1 双中有单

1
print("'python'")

3.1.1.2 单中有双

1
print('"python"')

3.1.1.3 双中有双,单中有单

1
print("\python\ is good")

3.1.1.4 转义符可以用来换行

1
2
a = "pyth\
n"

3.2 字符串的索引

3.2.1 正向索引

1
s = 'My name is Peppa pig'
1
2
print(s[0]) //M
print(s[1]) //y

3.2.2 反向索引

1
print(s[-1]) //g

3.3 字符串的切片

1
2
3
s = 'python'
print(s[0:3:1]) \\pyt,1可以省略
print(s[0:3:2]) \\pt

3.4 字符串的处理

3.4.1 strip()切割函数

Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。**

3.4.1.1 语法

1
2
3
strip()方法语法:

str.strip([chars]);

3.4.1.2 参数

  • chars — 移除字符串头尾指定的字符序列。

    3.4.1.3 返回值

    返回移除字符串头尾指定的字符生成的新字符串。

4 python逻辑

在Python中,控制流(Control Flow)主要通过条件判断和循环语句来实现。Python 摒弃了传统语言中的大括号 {},严格采用 缩进(Indentation) 来定义代码块的作用域。

4.1 判断(条件控制)

4.1.1 关系运算符与逻辑运算符

在进行条件判断前,通常需要构建条件表达式。表达式的结果为布尔值(TrueFalse)。

4.1.1.1 关系运算符

用于比较两个值的大小或等值关系。

  • == (等于), != (不等于)
  • > (大于), < (小于)
  • >= (大于等于), <= (小于等于)

4.1.1.2 逻辑运算符

用于连接多个条件表达式。

  • and (逻辑与):所有条件均为True时返回True。
  • or (逻辑或):任意一个条件为True时返回True。
  • not (逻辑非):对布尔值取反。

4.1.2 if 语句的基础与进阶

4.1.2.1 单分支结构:if

当条件满足时,执行特定的代码块。

1
2
3
age = 20
if age >= 18:
print("已成年") # 条件为True,执行该语句

4.1.2.2 双分支结构:if-else

当条件满足时执行一个代码块,不满足时执行另一个。

1
2
3
4
5
score = 59
if score >= 60:
print("及格")
else:
print("不及格") # 59 < 60,因此执行else分支

4.1.2.3 多分支结构:if-elif-else

用于处理多种互斥的条件情况。Python 中使用 elif 代替 else if

1
2
3
4
5
6
7
8
9
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好") # 匹配此分支,后续elif将被忽略
elif score >= 60:
print("及格")
else:
print("不及格")
  • 注:条件判断是从上到下依次匹配的,一旦某个条件满足,执行对应代码块后就会自动跳出整个 if-elif-else 结构。

4.2 循环(迭代控制)

Python 提供了两种基本的循环机制:遍历循环(for)和条件循环(while)。

4.2.1 for 循环 (遍历循环)

for 循环主要用于遍历序列(如字符串、列表、元组)或任何可迭代对象。

4.2.1.1 遍历字符串与列表

1
2
3
4
5
6
7
8
# 遍历字符串
for char in "Python":
print(char)

# 遍历列表
fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
print(fruit)

4.2.1.2 结合 range() 函数

range(start, stop, step) 函数常用于生成等差整数序列,配合 for 循环控制执行次数。

1
2
3
4
5
6
7
# 生成从 0 到 4 的整数
for i in range(5):
print(i) # 输出 0, 1, 2, 3, 4

# 生成从 2 到 8,步长为 2 的整数
for i in range(2, 9, 2):
print(i) # 输出 2, 4, 6, 8
  • 注:range() 函数生成的序列遵循“左闭右开”原则,即包含 start,但不包含 stop

    4.2.2 while 循环 (条件循环)

while 循环在条件表达式为 True 的前提下,不断重复执行代码块,直到条件变为 False

4.2.2.1 基本语法

1
2
3
4
count = 0
while count < 3:
print("计数:", count)
count += 1 # 必须有修改条件的语句,否则会陷入死循环
  • 注:在编写 while 循环时,务必确保循环内部存在改变判断条件的逻辑,以避免程序发生无限循环(Memory Out)。

    4.2.3 循环控制保留字

在循环执行过程中,有时需要提前改变循环的默认执行流程,主要使用 breakcontinue

4.2.3.1 break:跳出整个循环

立刻终止当前所在的循环,不再执行循环体中剩余的语句,也不再进行下一次迭代。

1
2
3
4
for i in range(1, 10):
if i == 4:
break # 当 i 等于 4 时,彻底结束整个 for 循环
print(i) # 仅输出 1, 2, 3

4.2.3.2 continue:跳过本次循环

结束当前这一轮迭代,直接跳到循环的开头,判断条件并准备进行下一次迭代。

1
2
3
4
for i in range(1, 6):
if i == 3:
continue # 当 i 等于 3 时,跳过本次打印,继续 i=4 的循环
print(i) # 输出 1, 2, 4, 5

5 python 格式化输出

在Python中,字符串占位符是一种常见的格式化字符串的方法。它允许我们通过模板来创建字符串,并在稍后插入具体的值。

5.1 使用 % 运算符

1
2
3
4
5
name = "Alice"

age = 25

print("Hello, my name is %s and I am %d years old" % (name, age))

输出结果将是 Hello, my name is Alice and I am 25 years old

5.2 使用 format() 方法

1
2
3
4
5
name = "Alice"

age = 25

print("Hello, my name is {} and I am {} years old".format(name, age))

输出结果将是 Hello, my name is Alice and I am 25 years old

5.3 使用 f-string(格式化字符串)

1
2
3
4
5
name = "Alice"

age = 25

print(f"Hello, my name is {name} and I am {age} years old")

输出结果将是 Hello, my name is Alice and I am 25 years old

6 容错机制

1
2
3
4
5
6
7
8
9
try:
正常的操作
......................
except:
发生异常,执行这块代码
......................
else:
如果没有异常执行这块代码