当前位置:首页 > 技术 > 正文内容

Python核心语句与内置函数详解

访客 技术 2026年6月2日 1

前言

本文系统梳理 Python 中常用控制结构与部分关键内置函数,结合代码示例帮助理解其使用场景和行为逻辑。掌握这些基础内容是编写高效、可读性强的 Python 程序的前提。

一、常见程序语句

语句是构成程序执行流程的基本单元,决定了代码的运行顺序和逻辑分支。

1. 赋值操作

将数据绑定到变量名,支持多种赋值方式:

a = 8
b = a * 3
x, y = 10, 20  # 多重赋值

2. 条件判断

if-elif-else 结构

根据布尔表达式的真假选择执行路径:

value = -5
if value > 0:
    print("正值")
elif value == 0:
    print("零值")
else:
    print("负值")

match-case 模式匹配(Python 3.10+)

适用于多分支且条件明确的场景,提升可读性:

status_code = 200
match status_code:
    case 200:
        print("请求成功")
    case 404:
        print("资源未找到")
    case 500 | 502:
        print("服务器错误")
    case _:
        print("未知状态")

也可嵌套条件判断:

num = 15
match num:
    case n if n < 10:
        print("小于10")
    case n if 10 <= n < 20:
        print("介于10到20之间")

3. 循环结构

for 循环

用于遍历序列或可迭代对象:

for item in [1, 2, 3]:
    print(item)

while 循环

在条件为真时持续执行:

counter = 0
while counter < 4:
    print(counter)
    counter += 1

range 函数

生成整数序列,常用于控制循环次数:

list(range(5))        # [0, 1, 2, 3, 4]
list(range(2, 8))     # [2, 3, 4, 5, 6, 7]
list(range(1, 10, 2)) # [1, 3, 5, 7, 9]

无限循环处理

利用 while True 创建持续监听或等待输入的逻辑,配合 break 终止:

while True:
    user_input = input("输入'quit'退出: ")
    if user_input == 'quit':
        break

4. 循环控制关键字

  • break:立即跳出当前循环体。
  • continue:跳过本次剩余步骤,进入下一轮迭代。
  • pass:空操作占位符,保持语法完整性。
for i in range(5):
    if i == 2:
        continue
    if i == 4:
        break
    print(i)  # 输出: 0, 1, 3

5. 数据结构与循环结合应用

通过实际案例加深对容器类型的操作理解。

案例1:动态修改列表元素

data = []
for _ in range(4):
    val = int(input("请输入整数: "))
    data.append(val)

data.insert(2, 100)   # 在索引2前插入
del data[3]           # 删除第四个元素
data[1] += 1          # 第二个元素加1
print(data)

案例2:绘制空心矩形

n = int(input("请输入边长: "))
if n >= 1:
    print('#' * n)
    for _ in range(n - 2):
        print('#' + ' ' * (n - 2) + '#')
    if n > 1:
        print('#' * n)

案例3:查找水仙花数(三位阿姆斯特朗数)

for num in range(100, 1000):
    hundreds = num // 100
    tens = (num // 10) % 10
    units = num % 10
    if hundreds**3 + tens**3 + units**3 == num:
        print(num)

6. 函数定义

使用 def 关键字封装可复用逻辑块:

def multiply(x, y):
    """返回两个数的乘积"""
    return x * y

result = multiply(4, 5)

7. 异常处理机制

try-except-finally

捕获并响应运行时错误:

try:
    result = 10 / 0
except ZeroDivisionError:
    print("禁止除以零")
finally:
    print("清理工作完成")

raise 主动抛出异常

在不符合预期时中断执行:

def validate_age(age):
    if not 0 <= age <= 150:
        raise ValueError("年龄超出合理范围")
    return True

assert 断言调试

仅在开发阶段启用条件检查:

temperature = 25
assert temperature >= 0, "温度不能为负"

常见异常类型

异常类 触发场景
ValueError 参数值不合法
IndexError 序列索引越界
KeyError 字典键不存在
NameError 变量未定义
TypeError 操作不支持的数据类型

8. 模块导入

加载外部功能模块:

import json
from datetime import datetime

9. 注释规范

增强代码可读性:

# 单行注释
x = 5

"""
多行文档字符串
说明函数用途或模块功能
"""

10. 类的定义

面向对象编程的基础结构:

class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height
    
    def area(self):
        return self.width * self.height

rect = Rectangle(4, 6)
print(rect.area())

11. 上下文管理 with 语句

自动管理资源生命周期,如文件操作:

with open("example.txt", "r") as f:
    content = f.read()
    print(content)
# 文件自动关闭

二、Python 内置函数精讲

Python 提供了一系列无需导入即可使用的内置函数,涵盖数据处理、类型检查、数学运算等常见需求。

1. all()

检测可迭代对象中是否所有元素均为真:

all([True, 1, "hello"])  # True
all([1, 0, 3])            # False

2. sum()

计算数值型元素总和:

sum([1, 2, 3, 4])  # 10

3. sorted()

返回排序后的新列表,原对象不变:

sorted([5, 1, 9, 2])  # [1, 2, 5, 9]

4. reversed()

返回反向迭代器,需转换为列表查看结果:

list(reversed([1, 2, 3]))  # [3, 2, 1]

5. callable()

判断对象是否可调用:

callable(len)     # True
callable("abc")   # False

6. zip()

将多个序列合并为元组迭代器,用于并行遍历:

names = ["Tom", "Jerry"]
scores = [88, 95]
pairs = list(zip(names, scores))
# [('Tom', 88), ('Jerry', 95)]

7. eval()

执行字符串形式的表达式并返回结果(慎用,存在安全风险):

expr = "2 ** 3 + 1"
result = eval(expr)  # 9

8. exec()

执行包含多条语句的代码字符串(同样注意安全性):

script = """
for i in range(2):
    print(f"第{i+1}次")
"""
exec(script)

9. globals() 与 locals()

分别获取当前作用域的全局和局部命名空间字典:

x = 100
def test():
    y = 200
    print("局部变量:", list(locals().keys()))
test()
print("全局变量:", list(globals().keys()))

10. filter()

按条件筛选元素,返回迭代器:

numbers = [1, 2, 3, 4, 5, 6]
evens = filter(lambda n: n % 2 == 0, numbers)
print(list(evens))  # [2, 4, 6]
标签: Python

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。