Python运算符详解与编码基础详解

 更新时间:2026年07月13日 10:19:15   作者:二宝哥  
Python运算符是执行代码逻辑的核心工具,而编码基础则是处理文本数据的关键,本文系统介绍了Python 运算符的分类与用法,感兴趣的朋友一起看看吧

摘要:本文系统介绍了 Python 运算符的分类与用法,涵盖算术、比较、赋值、逻辑、位、成员、身份运算符及优先级规则,并深入讲解了字符集、编码原理以及 Python 3 默认的 UTF-8 编码机制,帮助开发者全面掌握 Python 运算与编码处理的核心知识。

一、Python运算符概览

Python运算符是用于在程序中执行各种运算的符号。它们可以操作一个或多个操作数(值或变量),并返回结果。Python运算符主要分为以下几类:

  • 算术运算符:用于基本的数学运算。
  • 比较(关系)运算符:用于比较两个值。
  • 赋值运算符:用于给变量赋值。
  • 逻辑运算符:用于组合条件语句。
  • 位运算符:对整数进行二进制位操作。
  • 成员运算符:测试序列中是否包含某个成员。
  • 身份运算符:比较两个对象的内存地址。
  • 运算符优先级:决定表达式中运算的执行顺序。

二、各类运算符详解

1. 算术运算符

算术运算符用于执行基本的数学运算,如加、减、乘、除等。

# 算术运算符示例
a = 10
b = 3
print(a + b)   # 加法:13
print(a - b)   # 减法:7
print(a * b)   # 乘法:30
print(a / b)   # 除法:3.333...
print(a // b)  # 整除:3
print(a % b)   # 取模(求余):1
print(a ** b)  # 幂运算:1000

注意// 是向下取整的整除,% 返回除法的余数,** 是幂运算符。

2. 比较(关系)运算符

比较运算符用于比较两个值,返回布尔值 TrueFalse

# 比较运算符示例
x = 5
y = 10
print(x == y)   # 等于:False
print(x != y)   # 不等于:True
print(x > y)    # 大于:False
print(x < y)    # 小于:True
print(x >= y)   # 大于等于:False
print(x <= y)   # 小于等于:True

这些运算符不仅适用于数字,也适用于字符串、列表等其他可比较的数据类型。

3. 赋值运算符

赋值运算符用于给变量赋值,包括简单的赋值和复合赋值。

# 赋值运算符示例
c = 5      # 基本赋值
c += 3     # 等价于 c = c + 3,结果 c = 8
c -= 2     # 等价于 c = c - 2,结果 c = 6
c *= 4     # 等价于 c = c * 4,结果 c = 24
c /= 3     # 等价于 c = c / 3,结果 c = 8.0
c //= 2    # 等价于 c = c // 2,结果 c = 4.0
c %= 3     # 等价于 c = c % 3,结果 c = 1.0
c **= 2    # 等价于 c = c ** 2,结果 c = 1.0

4. 逻辑运算符

逻辑运算符用于组合条件语句,包括 andornot

# 逻辑运算符示例
age = 25
has_license = True
and:两个条件都为真时返回真
can_drive = (age >= 18) and has_license  # True
or:至少一个条件为真时返回真
is_teenager = (age >= 13) or (age <= 19)  # True
not:反转布尔值
is_child = not (age >= 18)  # False

Python 中的逻辑运算符具有短路特性:and 遇到第一个假值就停止,or 遇到第一个真值就停止。

5. 位运算符

位运算符直接对整数的二进制位进行操作。

# 位运算符示例
m = 10  # 二进制:1010
n = 4   # 二进制:0100
print(m & n)   # 按位与:0  (0000)
print(m | n)   # 按位或:14 (1110)
print(m ^ n)   # 按位异或:14 (1110)
print(~m)      # 按位取反:-11
print(m << 1)  # 左移一位:20 (10100)
print(m >> 1)  # 右移一位:5  (0101)

6. 成员运算符

成员运算符用于测试序列(如字符串、列表、元组、字典、集合)中是否包含某个成员。

# 成员运算符示例
fruits = ["apple", "banana", "cherry"]
text = "Hello World"
print("banana" in fruits)      # True
print("orange" not in fruits)  # True
print("World" in text)         # True
print("Python" not in text)    # True

7. 身份运算符

身份运算符用于比较两个对象的内存地址(是否是同一个对象)。

# 身份运算符示例
list1 = [1, 2, 3]
list2 = [1, 2, 3]
list3 = list1
print(list1 is list2)      # False,值相同但不是同一个对象
print(list1 is list3)      # True,指向同一个对象
print(list1 is not list2)  # True

注意is 比较的是对象标识(内存地址),而 == 比较的是值是否相等。

8. 运算符优先级

当表达式中包含多个运算符时,Python 会按照优先级顺序执行运算。优先级从高到低大致如下:

  1. () - 括号
  2. ** - 幂运算
  3. ~+- - 按位取反、正负号
  4. *///% - 乘、除、整除、取模
  5. +- - 加、减
  6. <<>> - 位移
  7. & - 按位与
  8. ^ - 按位异或
  9. | - 按位或
  10. <<=>>=!=== - 比较运算符
  11. not - 逻辑非
  12. and - 逻辑与
  13. or - 逻辑或
  14. =+=-= 等 - 赋值运算符

可以使用括号来明确指定运算顺序,提高代码可读性。

三、编码、字符集与Python默认编码

1. 字符集与编码的基本概念

字符集(Character Set):是一组字符的集合,为每个字符分配一个唯一的编号(码点)。常见的字符集有:

  • ASCII:美国信息交换标准代码,包含128个字符(0-127)
  • GB2312/GBK:中国国家标准,支持简体中文
  • Big5:繁体中文编码
  • Unicode:国际标准,旨在包含世界上所有字符

编码(Encoding):是将字符集中的字符码点转换为计算机可存储的二进制序列的规则。同一个字符集可以有多种编码方式:

  • UTF-8:Unicode的一种变长编码,兼容ASCII
  • UTF-16:使用16位或32位表示字符
  • UTF-32:固定使用32位表示每个字符
  • GB2312/GBK:中文编码方案

2. Python的默认编码

Python 3 全面采用 Unicode 作为字符串的内部表示,这解决了 Python 2 中的编码混乱问题。

源代码文件编码

# Python 3 默认使用 UTF-8 编码
# 可以在文件开头指定编码方式
# -*- coding: utf-8 -*-
包含中文的字符串
chinese_text = "你好,世界!"
print(chinese_text)  # 正常输出:你好,世界!

字符串类型

  • str 类型:存储 Unicode 字符(Python 3)
  • bytes 类型:存储原始字节序列
  • bytearray 类型:可变的字节序列
# 字符串与字节的转换
text = "Python编程"
byte_data = text.encode('utf-8')  # 编码为UTF-8字节
print(byte_data)  # b'Python\xe7\xbc\x96\xe7\xa8\x8b'
decoded_text = byte_data.decode('utf-8')  # 解码为字符串
print(decoded_text)  # Python编程
查看系统默认编码
import sys
print(sys.getdefaultencoding())  # 通常输出:utf-8

3. 文件读写与编码

在 Python 中读写文件时,需要特别注意编码问题:

# 写入文件(指定编码)
with open('example.txt', 'w', encoding='utf-8') as f:
    f.write("这是UTF-8编码的中文文本")
读取文件(指定相同编码)
with open('example.txt', 'r', encoding='utf-8') as f:
content = f.read()
print(content)  # 这是UTF-8编码的中文文本
处理不同编码的文件
with open('gbk_file.txt', 'r', encoding='gbk') as f:
gbk_content = f.read()
print(gbk_content)

4. 编码问题排查与处理

常见的编码问题及解决方法:

# 1. 编码错误处理
try:
    with open('file.txt', 'r', encoding='utf-8') as f:
        content = f.read()
except UnicodeDecodeError as e:
    print(f"编码错误:{e}")
    # 尝试其他编码
    with open('file.txt', 'r', encoding='gbk') as f:
        content = f.read()
2. 忽略无法解码的字符
with open('file.txt', 'r', encoding='utf-8', errors='ignore') as f:
content = f.read()
3. 替换无法解码的字符
with open('file.txt', 'r', encoding='utf-8', errors='replace') as f:
content = f.read()
4. 检测文件编码(需要安装chardet库)
pip install chardet
import chardet
with open('unknown.txt', 'rb') as f:
raw_data = f.read()
result = chardet.detect(raw_data)
print(f"检测到的编码:{result['encoding']}")
print(f"置信度:{result['confidence']}")

四、总结

Python 运算符提供了丰富的运算功能,从基本的算术运算到复杂的位运算,覆盖了程序开发中的各种需求。理解运算符的优先级和结合性对于编写正确的表达式至关重要。

编码是 Python 开发中不可忽视的基础知识。Python 3 默认使用 UTF-8 编码,这大大简化了国际化开发。在处理文件、网络数据或与外部系统交互时,明确指定正确的编码可以避免许多常见的乱码问题。

掌握这些基础知识后,你可以更自信地编写 Python 代码,处理各种数据类型和编码场景。

到此这篇关于Python运算符详解与编码基础详解的文章就介绍到这了,更多相关Python运算符与编码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 盘点十个超级好用的高级Python脚本

    盘点十个超级好用的高级Python脚本

    这篇文章主要介绍了盘点十个超级好用的高级Python脚本,我们经常会遇到一些大小问题,其中有很多的问题,都是可以使用一些简单的Python代码就能解决,需要的朋友可以参考下
    2023-04-04
  • python接口自动化之正则用例参数化的示例详解

    python接口自动化之正则用例参数化的示例详解

    这篇文章主要介绍了python接口自动化之正则用例参数化,它是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • python输出100以内的质数与合数实例代码

    python输出100以内的质数与合数实例代码

    本文通过实例代码给大家介绍了python输出100以内的质数与合数的方法,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-07-07
  • Python中打印异常信息的常用方法

    Python中打印异常信息的常用方法

    在Python编程中,异常处理是一项重要的技术,当程序运行过程中出现错误时,会抛出异常,为了更好地调试和维护代码,我们常常需要打印出异常信息,以便了解错误的具体情况,所以本文给大家介绍了Python中打印异常信息的常用方法,需要的朋友可以参考下
    2025-06-06
  • Python3实现带附件的定时发送邮件功能

    Python3实现带附件的定时发送邮件功能

    这篇文章主要为大家详细介绍了Python3实现带附件的定时发送邮件功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • NumPy实现高效图片旋转判断的示例代码

    NumPy实现高效图片旋转判断的示例代码

    本文介绍了如何在星图GPU平台上自动化部署图片旋转判断镜像,实现高效的图像方向检测功能,该镜像基于NumPy和OpenCV构建,能够自动识别并校正用户上传图片的旋转角度,广泛应用于内容管理系统和图像处理流程中,感兴趣的可以了解一下
    2026-05-05
  • python自动提取文本中的时间(包含中文日期)

    python自动提取文本中的时间(包含中文日期)

    这篇文章主要介绍了python自动提取文本中的时间(包含中文日期),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Python中删除文件的几种方法实例

    Python中删除文件的几种方法实例

    这篇文章主要给大家介绍了关于Python中删除文件的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • python3 批量获取对应端口服务的实例

    python3 批量获取对应端口服务的实例

    今天小编就为大家分享一篇python3 批量获取对应端口服务的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Pandas实现Excel文件读取,增删,打开,保存操作

    Pandas实现Excel文件读取,增删,打开,保存操作

    Pandas 是一种基于 NumPy 的开源数据分析工具,用于处理和分析大量数据。本文将通过Pandas实现对Excel文件进行读取、增删、打开、保存等操作,需要的可以参考一下
    2023-04-04

最新评论