Skip to content

3.1 整数与浮点数的基本操作

Python 中的数值类型主要包括整数(int)和浮点数(float)。整数是没有小数部分的数字,而浮点数则包含小数部分。这两种类型在日常编程中使用频率极高,掌握它们的基本操作是学习 Python 的基石。

整数可以直接书写,例如 42-17;浮点数则需要包含小数点,如 3.14-0.001。Python 还支持科学计数法表示浮点数,比如 1.23e4 表示 $1.23 \times 10^4$。

常见的算术运算符包括加(+)、减(-)、乘(*)、除(/)、整除(//)、取余(%)和幂运算(**)。其中,除法运算 / 总是返回浮点数结果,即使两个操作数都是整数;而整除 // 则返回不大于真实商的最大整数。

下面通过一个简单的例子来演示这些基本操作:

python
# 定义整数和浮点数
a = 10          # 整数
b = 3.5         # 浮点数

# 加法运算
sum_result = a + b  # 结果为 13.5,整数与浮点数相加结果为浮点数

# 减法运算
diff_result = a - b  # 结果为 6.5

# 乘法运算
product = a * b      # 结果为 35.0

# 除法运算(总是返回浮点数)
division = a / b     # 结果为 2.857142857142857

# 整除运算(向下取整)
floor_div = a // b   # 结果为 2.0,注意这里仍然是浮点数形式

# 取余运算
remainder = a % b    # 结果为 3.0

# 幂运算
power = a ** 2       # 结果为 100

# 打印所有结果
print(f"加法: {sum_result}")
print(f"减法: {diff_result}")
print(f"乘法: {product}")
print(f"除法: {division}")
print(f"整除: {floor_div}")
print(f"取余: {remainder}")
print(f"幂运算: {power}")

这段代码展示了整数与浮点数之间的各种基本运算。需要注意的是,当整数与浮点数进行混合运算时,结果总是浮点数。此外,整除运算虽然返回的是整数值,但其数据类型仍为浮点数(如果其中一个操作数是浮点数)。

本节介绍了整数与浮点数的基本概念及其常用算术运算。理解这些基础知识对于后续更复杂的数值计算至关重要。

3.2 复数类型创建与运算

在 Python 中,可以通过直接书写复数字面量或使用 complex() 函数来创建复数对象。例如,3 + 4j 就是一个复数,其实部为 3,虚部为 4。也可以写成 complex(3, 4) 来达到相同的效果。

复数支持大多数基本的算术运算,包括加、减、乘、除等。此外,Python 还提供了内置函数来获取复数的模(绝对值)和相位角。

以下代码演示了如何创建复数并进行基本运算:

python
# 创建复数
c1 = 3 + 4j           # 直接书写复数
c2 = complex(1, -2)   # 使用 complex() 函数创建

# 获取实部和虚部
real_part = c1.real   # 实部为 3.0
imag_part = c1.imag   # 虚部为 4.0

# 复数加法
sum_complex = c1 + c2  # (3+4j) + (1-2j) = (4+2j)

# 复数乘法
product_complex = c1 * c2  # (3+4j)*(1-2j) = (11-2j)

# 计算复数的模(绝对值)
magnitude = abs(c1)    # sqrt(3^2 + 4^2) = 5.0

# 打印结果
print(f"c1 = {c1}")
print(f"c2 = {c2}")
print(f"c1 的实部: {real_part}")
print(f"c1 的虚部: {imag_part}")
print(f"c1 + c2 = {sum_complex}")
print(f"c1 * c2 = {product_complex}")
print(f"|c1| = {magnitude}")

这段代码首先创建了两个复数 c1c2,然后分别提取了 c1 的实部和虚部,并进行了加法和乘法运算。最后,使用 abs() 函数计算了 c1 的模。

复数在信号处理、电路分析等领域有广泛应用。虽然初学者可能较少接触复数运算,但在特定领域中它是非常重要的工具。

本节讲解了复数的创建方法及基本运算规则。了解复数类型有助于拓展你在数学和工程领域的编程能力。

3.3 布尔值与逻辑运算符

布尔类型(bool)是 Python 中的一种特殊数值类型,只有两个可能的值:TrueFalse。布尔值常用于条件判断和逻辑运算中,是控制程序流程的关键元素。

在 Python 中,几乎所有对象都可以被转换为布尔值。一般来说,空值(如 None)、零值(如 00.0)、空容器(如 ''[]{})会被视为 False,其他所有值都被视为 True

逻辑运算符主要有三个:and(与)、or(或)、not(非)。它们用于组合多个布尔表达式,形成更复杂的条件判断。

  • and:当且仅当两个操作数都为 True 时,结果才为 True
  • or:只要有一个操作数为 True,结果就为 True
  • not:对操作数取反,TrueFalseFalseTrue

以下代码演示了布尔值的基本用法和逻辑运算符的行为:

python
# 基本布尔值
is_raining = True
is_sunny = False

# 逻辑运算
weather_good = is_sunny or not is_raining  # 如果晴天或者不下雨,则天气好
can_go_out = is_sunny and not is_raining   # 只有晴天且不下雨才能出门

# 布尔值与其他类型的转换
empty_list = []
non_empty_list = [1, 2, 3]

# 空列表被视为 False
if empty_list:
    print("列表非空")
else:
    print("列表为空")  # 这行会执行

# 非空列表被视为 True
if non_empty_list:
    print("列表非空")  # 这行会执行
else:
    print("列表为空")

# 打印逻辑运算结果
print(f"天气好: {weather_good}")      # True
print(f"可以出门: {can_go_out}")      # False

这段代码展示了布尔变量的定义、逻辑运算符的使用以及布尔值与其他类型之间的隐式转换。特别要注意的是,在条件判断中,Python 会自动将非布尔值转换为布尔值进行评估。

布尔逻辑是编程中最基础也是最重要的概念之一。熟练掌握布尔运算能够帮助你编写出更加灵活和高效的条件判断语句。

本节介绍了布尔值的基本概念及其与逻辑运算符的配合使用。理解这些内容对于编写条件分支和循环结构至关重要。

3.4 None 值的含义与使用场景

None 是 Python 中的一个特殊常量,用来表示“无”或“空”的状态。它是 NoneType 类型的唯一实例,在概念上类似于其他语言中的 nullnil

None 经常被用作函数的默认返回值(当函数没有显式返回值时),也常用作可选参数的默认值,或者表示某个变量尚未被赋予有意义的值。

需要注意的是,None 不等于 False0、空字符串或其他任何“假值”。虽然在布尔上下文中 None 被视为 False,但它是一个独立的对象,具有自己的类型和身份。

比较 None 时,应该使用 isis not 而不是 ==!=,因为 None 是单例对象,使用身份比较更为准确和高效。

以下代码演示了 None 的常见使用场景:

python
# 函数没有返回值时,默认返回 None
def greet(name):
    print(f"Hello, {name}!")

result = greet("Alice")  # 打印 "Hello, Alice!"
print(result)            # 输出 None

# 使用 None 作为可选参数的默认值
def connect_to_database(host, port=None):
    if port is None:
        port = 5432  # 默认 PostgreSQL 端口
    print(f"Connecting to {host}:{port}")

connect_to_database("localhost")        # 使用默认端口
connect_to_database("remote", 3306)     # 指定 MySQL 端口

# 检查变量是否为 None
user_input = None

if user_input is None:
    print("用户尚未输入任何内容")
else:
    print(f"用户输入: {user_input}")

# 错误的比较方式(虽然技术上可行,但不推荐)
if user_input == None:  # 应该使用 'is None'
    print("这种方式不够规范")

这段代码展示了 None 在函数返回值、参数默认值和变量初始化中的典型应用。特别强调了在检查 None 时应使用 is 而非 ==

None 在 Python 编程中扮演着重要角色,特别是在处理可选值和初始化状态时。正确理解和使用 None 能够让你的代码更加清晰和健壮。

本节解释了 None 的含义及其主要使用场景。掌握 None 的正确用法有助于避免常见的逻辑错误和提高代码质量。