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

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

本文介绍几种实用的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 相关产品和应用

全部下载

专题列表