目录
[3.索引(从 0 开始)](#3.索引(从 0 开始))
[4.切片 [start:end:step]](#4.切片 [start:end:step])
[5. 常用方法](#5. 常用方法)
[1.传统的 % 格式化(类似 C 语言)](#1.传统的 % 格式化(类似 C 语言))
[2.format() 方法(Python 2.6+)](#2.format() 方法(Python 2.6+))
[3.f-string(Python 3.6+,推荐)](#3.f-string(Python 3.6+,推荐))
1.运算与操作
1.四则运算
在编程中四则运算包括加、减、乘、除
这些操作可以对整数、浮点数等
数据类型进行计算,用于构建复杂的算法和函数
Python 中的加减乘除与数学中几乎一致,注意除法 / 的结果总是浮点数(即使能整除)。
# 基本计算
a = 10
b = 3
c = 5
print(a + b) # 加法:13
print(a - b) # 减法:7
print(a * b) # 乘法:30
print(a / b) # 除法:3.3333333333333335
print(a / c) # 除法 / 的结果总是浮点数,即使能整除,2.0
对于四则运算来说,我们可以记住参与计算的有浮点型的话,结果是一定是浮点型;参与计算是整型
的话,结果一定是整型(除法例外)
小技巧 :使用 + 还可以拼接字符串
幂运算 **
除了基本四则,Python 还支持幂运算(次方):
print(2 ** 3) # 8(2的3次方)
print(9 ** 0.5) # 3.0(开平方)
2.取整与取余
在编程中取整是指无论小数部分是多少,都只保留整数部分
取余是当一个数除以另一个数后,余下的部分
10除以3等于3余1,所以取整结果是3取余结果是1
在处理整数时,经常需要获取整除的商和余数。
-
//:向下取整(floor division),返回整数部分(截断小数) -
%:取余(modulo),返回余数
a = 17
b = 5answer1 = a // b # 17 ÷ 5 = 3.4,向下取整 → 3
answer2 = a % b # 17/5=3....2print(answer1) # 3
print(answer2) # 2
注意 :负数时 // 的结果会向下取整(向负无穷),而不是简单截断。
print(-17 // 5) # -4 (因为 -3.4 向下是 -4)
print(-17 % 5) # 3 (满足公式 a = b * (a//b) + (a%b))
取余的常见用途
-
判断奇偶性 :
num % 2 == 0为偶数 -
循环索引 :
index % length实现循环取值
3.字符串操作
字符串是 Python 中最常用的数据类型之一。我们可以对字符串进行拼接 、重复 、索引访问 、切片 、长度获取等操作。
1.字符串拼接(+)
str1 = "Hello"
str2 = "World"
print(str1 + " " + str2) # Hello World
2.字符串重复(*)
print("Ha" * 3) # HaHaHa
3.索引(从 0 开始)
s = "Python"
print(s[0]) # P
print(s[3]) # h
print(s[-1]) # n(负索引表示倒数)
如果超出范围会报错 IndexError: string index out of range
如
s = "Python"
print(s[6])
4.切片 [start:end:step]
Python 中通过
[start:stop:step]对序列(字符串、列表等)进行切片。
第一个冒号:分隔
start索引和stop索引。第二个冒号:分隔
stop索引和step步长。省略某个部分时,使用默认值:
start省略 → 从开头(索引 0)开始
stop省略 → 一直取到末尾
step省略 → 步长为 1
s = "Hello, World!" #不要忽视","后面的空格
print(s[0:5]) # Hello(结束索引不包含)
print(s[7:12]) # World
print(s[::2]) # Hlo ol!(步长为2)
print(s[::-1]) # !dlroW ,olleH(反转字符串)
切片不会越界报错:s[0:100] 正常返回全部字符。
5. 常用方法
text = " python programming "
print(text.upper()) # 全部大写
print(text.strip()) # 去掉首尾空格
print(text.replace("python", "Java")) # 替换
print(len(text)) # 字符串长度

常用方法
| 方法 | 作用 | 示例 |
|---|---|---|
upper() / lower() |
转大写/小写 | "Hello".upper() → "HELLO" |
strip() |
去除首尾空白 | " hi ".strip() → "hi" |
replace(old, new) |
替换子串 | "a,b".replace(",","-") → "a-b" |
split(sep) |
按分隔符 拆成列表 | "a,b,c".split(",") → ['a','b','c'] |
sep.join(list) |
用分隔符 合并列表 | "-".join(['a','b']) → "a-b" |
in 运算符 |
判断子串是否存在 | "Hello" in "Hello World" → True |
find(sub) |
返回子串首次出现的索引,找不到返回 -1 | "abc".find("b") → 1 |
text = " hello world 666 "
print(text.split()) # ['hello', 'world', '666']

sep = "hello,world,bit"
my_list = ["A", "B", "C"]
result = sep.join(my_list)
print(result)

4.格式化输出
在编程中格式化输出,是指按指定的格式输出数据
包括控制输出的格式精度、小数位数,以便更好的展示和处理数据
格式化输出,通常使用占位符和格式说明符,来指定输出的内容和格式
输出信息时,我们经常需要将变量嵌入到字符串中。Python 提供了多种格式化方式。
1.传统的 % 格式化(类似 C 语言)
name = "Alice"
age = 25
print("My name is %s and I am %d years old." % (name, age))
# 输出:My name is Alice and I am 25 years old.
%s → 字符串 %d → 整数 %f → 浮点数
2.format() 方法(Python 2.6+)
name = "Alice"
age = 25
print("My name is {} and I am {} years old.".format(name, age))
# 可以通过位置或名称更灵活地控制
print("I am {1} years old, and my name is {0}.".format(name, age))

3.f-string(Python 3.6+,推荐)
在字符串前加 f,用大括号 {} 直接写入变量或表达式。
name = "Alice"
age = 25
print(f"My name is {name} and I am {age} years old.")
print(f"10 + 20 = {10 + 20}") # 甚至可以写表达式

f-string 转换机制中的一个关键点:f-string 确实会在最后自动调用 str() 把结果转为字符串 ,但这个过程发生在 表达式先求值 之后。
name = "Alice"
age = 25
print(f"10 + 20 = {age + 20}") #可以
print(f"10 + 20 = {name + 20}") #不行
报错 TypeError: can only concatenate str (not "int") to str
{name + age}
表达式是
name + agePython 必须先计算这个加法:
"Alice" + 25此时
+运算符的规则是:
如果左边是字符串,右边必须是字符串(字符串拼接)
如果左边是数字,右边必须是数字(数字加法)
这里左边是字符串
"Alice",右边是整数25,类型不匹配→ 表达式求值阶段就抛出
TypeError错误发生在 f-string 还没有机会帮你自动转换之前
4.格式说明符
控制小数精度
pi = 3.1415926
print(f"π ≈ {pi:.2f}") # 保留两位小数 → π ≈ 3.14
print("{:.3f}".format(pi)) # 3.142
{pi:.2f} 中:
pi→ 要输出的变量
:→ 表示"接下来是格式规则"
.2f→ 具体格式:f表示固定小数点的浮点数格式,.2表示保留 2 位小数
"{:.3f}" 中:
:之前可以是空({}默认取第一个参数)也可以有位置索引如{0:.3f}
:后面的.3f同样表示保留 3 位小数
这里:在 Python 格式化字符串(无论是 f-string 还是 .format() 方法)中,是一个分隔符 ,用来引入"格式说明符"(format specifier) 。
冒号左边是要格式化的对象(或表达式),右边是你想让它"长什么样"的规则。
对齐与填充
| 格式 | 含义 | 示例 | 输出 |
|---|---|---|---|
:10d |
宽度10,右对齐 | f"{123:10d}" |
123 |
:^10 |
居中对齐,宽度10 | f"{'hi':^10}" |
hi |
:*^10 |
居中,用 * 填充 |
f"{'hi':*^10}" |
****hi**** |
:0>5d |
右对齐,用0填充5位 | f"{7:0>5d}" |
00007 |
:+.2f |
显示正号,两位小数 | f"{3.14:+.2f}" |
+3.14 |
常见错误与注意事项
| 错误写法 | 错误类型 | 正确做法 |
|---|---|---|
5 / 0 |
ZeroDivisionError |
确保除数不为0 |
"1" + 2 |
TypeError |
转为同类型:int("1") + 2 或 "1" + str(2) |
"Alice" + 25 |
TypeError(字符串+整数) |
f"Alice{25}" 或 "Alice" + str(25) |
if a = 5: |
SyntaxError(赋值不是比较) |
用 == 比较:if a == 5: |
s = "abc"; print(s[10]) |
IndexError(索引越界) |
检查长度 len(s),或使用切片(切片不报错) |
0.1 + 0.2 == 0.3 |
False(浮点精度) |
使用 round(0.1+0.2, 10) == 0.3 或 decimal 模块 |