几种实用的Pythonic语法实例代码

陈默
陈默
发布时间:2026-10-10| 2人浏览过
原创

本文介绍几种实用的Pythonic语法,包括生成器、循环与异常的else子句、with语句、列表推导式及items()函数的使用。通过对比一般写法与Pythonic写法,展示如何编写简洁高效的Python代码。

几种实用的pythonic语法实例代码

  • Pythonic指极具Python特色的代码写法
  • 终端输入import this可查看The Zen of Python
  • 生成器每次执行到yield语句返回一个值
  • 生成器值是不断计算得出的
  • 列表是在一开始就计算好的
  • 生成器适用于大数据量场景
  • 生成器可避免内存溢出
  • 循环中else在遍历完成且无break时执行
  • 异常中else表示没有异常发生
  • with子句用于自动管理资源
  • with语句结束后文件会被自动关闭
  • 无需手动调用fp.close()
  • with as语句返回对象obj
  • 调用obj.__enter__()方法并将值赋给fp
  • 执行with中的代码块
  • 执行obj.__exit__()
  • 若__exit__()返回False则继续抛出异常
  • 若__exit__()返回True则挂起异常
  • 列表推导语法为[expr for iter_var in iterable if cond_expr]
  • 生成器表达式语法为(expr for iter_var in iterable if cond_expr)
  • 列表推导和生成器表达式简洁高效
  • 同时使用key和value时建议使用items()函数
def fibonacci():
 num0 = 0
 num1 = 1
 for i in range(10):
  num2 = num0 + num1
  yield num2
  num0 = num1
  num1 = num2
for i in fibonacci():
 print(i)
# pythonic 写法
for cc in ['UK', 'ID', 'JP', 'US']:
 if cc == 'CN':
  break
else:
 print('no CN')
# 一般写法
no_cn = True
for cc in ['UK', 'ID', 'JP', 'US']:
 if cc == 'CN':
  no_cn = False
  break
if no_cn:
 print('no CN')
# pythonic 写法
try:
 db.execute('UPDATE table SET xx=xx WHERE yy=yy')
except DBError:
 db.rollback()
else:
 db.commit()
# 一般写法
has_error = False
try:
 db.execute('UPDATE table SET xx=xx WHERE yy=yy')
except DBError:
 db.rollback()
 has_error = True
if not has_error:
 db.commit()
# pythonic 写法
with open('pythonic.py') as fp:
 for line in fp:
  print(line[:-1])
# 一般写法
fp = open('pythonic.py')
for line in fp:
 print(line[:-1])
fp.close()
# pythonic 写法
squares = [x * x for x in range(10)]
# 一般写法
squares = []
for x in range(10):
 squares.append(x * x)
m = {'one': 1, 'two': 2, 'three': 3}
for k, v in m.items():
 print(k, v)
for k, v in sorted(m.items()):
 print(k, v)

以上就是几种实用的pythonic语法实例代码的详细内容,更多关于Pythonic语法的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。