几种实用的Pythonic语法实例代码
本文介绍几种实用的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语法的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









