Python(运算与操作)

目录

1.运算与操作

1.四则运算

2.取整与取余

3.字符串操作

1.字符串拼接(+)

2.字符串重复(*)

[3.索引(从 0 开始)](#3.索引(从 0 开始))

[4.切片 [start:end:step]](#4.切片 [start:end:step])

[5. 常用方法](#5. 常用方法)

4.格式化输出

[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+,推荐))

4.控制小数精度


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 = 5

    answer1 = a // b # 17 ÷ 5 = 3.4,向下取整 → 3
    answer2 = a % b # 17/5=3....2

    print(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 + age

  • Python 必须先计算这个加法:"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.3decimal 模块
相关推荐
qq_349317481 小时前
Tailwind CSS如何自定义间距数值_配置theme spacing扩展CSS边距
jvm·数据库·python
u0110225121 小时前
HTML5多媒体资源动态替换Source标签的刷新机制
jvm·数据库·python
用户6757049885021 小时前
别再用过时的地区数据了!闸北区都消失了,教你一次性搞定省市区同步更新!(附实战源码)
python
从负无穷开始的三次元代码生活1 小时前
Docker生产环境实战从0-1学习基础指南——快速掌握
学习·docker·容器·云技术
KuaCpp1 小时前
Docker从0到1学习
学习·docker·容器
ting94520001 小时前
动手学深度学习(PyTorch版)深度详解(1)(含实操+避坑)
pytorch·深度学习·学习
牛大兵1 小时前
播放网络摄像头视频支持ONVIF/RTSP
网络·python·音视频
nervermore9901 小时前
3. 人工智能学习-PyTorch框架学习
人工智能·pytorch·学习
handler012 小时前
进程状态流转的本质:Linux 内核队列与底层数据结构解密
linux·运维·c语言·数据结构·c++·笔记·学习