Python 使用习惯是指那些经常被使用的语法、语义和结构,这样写更加符合 Python 风格,看起来更像一个地道的 Pythoner.

本系列目的,分类整理 Python 使用习惯。

1. if not x

直接使用 x 和 not x 判断 x 是否为 None 或空

x = [1,3,5]if x:print('x is not empty ')if not x:print('x is empty')

下面写法不够 Pythoner

if x and len(x) > 0:print('x is not empty ')if x is None or len(x) == 0:print('x is empty')

2. enumerate 枚举

直接使用 enumerate 枚举容器,第二个参数表示索引的起始值

x = [1, 3, 5]for i, e in enumerate(x, 10): # 枚举print(i, e)

下面写法不够 Pythoner:

i = 0while i < len(x):print(i+10, x[i])i+=1

3. in

判断字符串是否包含某个子串,使用in明显更加可读:

x = 'zen_of_python'
if 'zen' in x:print('zen is in')

find 返回值 要与 -1 判断,不太符合习惯:

if x.find('zen') != -1:print('zen is in')

4 zip 打包

使用 zip 打包后结合 for 使用输出一对,更加符合习惯:

keys = ['a', 'b', 'c']
values = [1, 3, 5]for k, v in zip(keys, values):print(k, v)

下面不符合 Python 习惯:

d = {}
i = 0
for k in keys:print(k, values[i])i += 1

5 一对 '''

打印被分为多行的字符串,使用一对 ''' 更加符合 Python 习惯:

print('''"Oh no!" He exclaimed.
"It's the blemange!"''')

下面写法就太不 Python 风格:

print('"Oh no!" He exclaimed.\n' +'It\'s the blemange!"')

6 交换元素

直接解包赋值,更加符合 Python 风格:

a, b = 1, 3
a, b = b, a  # 交换a,b

不要再用临时变量 tmp ,这不符合 Python 习惯:

tmp = a
a = b
b = tmp

7 join 串联

串联字符串,更习惯使用 join:

chars = ['P', 'y', 't', 'h', 'o', 'n']
name = ''.join(chars)
print(name)

下面不符合 Python 习惯:

name = ''
for c in chars:name += c
print(name)

8 列表生成式

列表生成式构建高效,符合 Python 习惯:

data = [1, 2, 3, 5, 8]
result = [i * 2 for i in data if i & 1] # 奇数则乘以2
print(result) # [2, 6, 10]

下面写法不够 Pythoner:

results = []
for e in data:if e & 1:results.append(e*2)
print(results)

9 字典生成式

除了列表生成式,还有字典生成式:

keys = ['a', 'b', 'c']
values = [1, 3, 5]d = {k: v for k, v in zip(keys, values)}
print(d)

下面写法不太 Pythoner:

d = {}
for k, v in zip(keys, values):d[k] = v
print(d)

10 __name__ == '__main__'有啥用

曾几何时,看这别人代码这么写,我们也就跟着这么用吧,其实还没有完全弄清楚这行到底干啥。

def mymain():print('Doing something in module', __name__)if __name__ == '__main__':print('Executed from command line')mymain()

加入上面脚本命名为 MyModule,不管在 vscode 还是 pycharm 直接启动,则直接打印出:

Executed from command line
Doing something in module __main__

这并不奇怪,和我们预想一样,因为有无这句 __main__ ,都会打印出这些。

但是当我们 import MyModule 时,如果没有这句,直接就打印出:

In [2]: import MyModule
Executed from command line
Doing something in module MyModule

只是导入就直接执行 mymain 函数,这不符合我们预期。

如果有主句,导入后符合预期:

In [6]: import MyModuleIn [7]: MyModule.mymain()
Doing something in module MyModule

以上就是 10 个 Python 习惯用法,第一期。希望能帮助到你,欢迎在看哦。

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑AI基础下载(pdf更新到25集)机器学习的数学基础专辑获取一折本站知识星球优惠券,复制链接直接打开:https://t.zsxq.com/yFQV7am本站qq群1003271085,加入微信群请扫码喜欢文章,点个在看

【Python基础】Python 10 个习惯用法,看看你都知道不?相关推荐

  1. python基础 (一)import用法

    python基础 (一)import用法 版权声明:本文参考CSDN博主「易冷cheng」的文章进行精简 原文链接:https://blog.csdn.net/qq_41092406/article/ ...

  2. Python基础-Python基础使用

    Python基础-Python基础使用 1.Python解释器 在Python文件的开头加入以下代码就制定了解释器. #!/usr/bin/env python # _*_ coding:utf-8 ...

  3. python基础 python函数 函数概念 函数的多种参数 多种调用参数 装包 解包 函数代码块 函数的返回值

    python基础 python函数 函数概念 函数的多种参数 多种调用参数 装包 解包 函数代码块 函数的返回值 一 .函数概念 函数是根据需要,将代码打包为代码块, 每一个代码块就可以封装为一个函数 ...

  4. python基础===Python 代码优化常见技巧

    Python 代码优化常见技巧 代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化.扩展以及文档相关的事情通常需要消耗 8 ...

  5. 每日整理Python基础——python教程入门学习

    01_Linux基础 1.操作系统的作用? 操作系统是配置在计算机硬件上的第一层软件,主要作用是管理好硬件设备. 2.Linux中根目录和家目录分别用什么表示? /表示根目录.~表示家目录 3.Lin ...

  6. Python 基础 —— Python程序员常犯的那些错误

    1. 迭代时修改一个列表 删除列表中的奇数 >>>numbers = [i for i in range(10)] >>>numbers [0, 1, 2, 3, ...

  7. Python基础——Python入门

    文章目录 注释 一. 注释的作用 二. 注释的分类及语法 2.1 快速体验 变量 一. 变量的作用 二. 定义变量 2.1 标识符 2.2 命名习惯 2.3 使用变量 2.4 认识bug 三. Deb ...

  8. Python基础--Python简介和入门

    ☞写在前面 在说Python之前,我想先说一下自己为什么要学Python,我本人之前也了解过Python,但没有深入学习.之前接触的语言都是Java,也写过一些Java自动化用例,对Java语言只能说 ...

  9. python基础-python的字符串内建函数

    python基础-字符串内建函数 文章目录 python基础-字符串内建函数 前言 常用的函数 1.center() 2.count() 3.endswith() 4.startswith() 5.s ...

最新文章

  1. [转]iOS 远程推送(APNs)
  2. INVEST原则的应用
  3. 二进制安装MariaDB 5.5.41
  4. http超文本传输协议的http头部分析
  5. java对mysql数据库进行单表筛选备份、还原操作
  6. Linux 进内核,arm linux 启动流程之 进入内核
  7. Codeforces Round #168 (Div. 2)---A. Lights Out
  8. java io 缓存读取_Java 文件IO写入读取四种方法
  9. 系统容灾备份选型的决策表
  10. 02-CSS基础与进阶-day6_2018-09-05-22-02-24
  11. fastText原理和文本分类实战,看这一篇就够了
  12. 浙江大学深蓝质感简约答辩PPT模板
  13. Python图像库PIL的类Image及其方法介绍
  14. 打开计算机管理的常用方法,电脑中的“计算机管理”界面打开方法大全
  15. 几种聚类算法的对比实验
  16. 黑猫带你学eMMC协议第1篇:全网最全emmc协议中文详讲,这份学习框架图,你值得拥有!!!(持续更新中...)
  17. 正则表达式---省、自治区、直辖市
  18. 练习2-1 Programming in C is fun
  19. p1468 Party Lamps
  20. 0.前端简历编写和面试前准备

热门文章

  1. C#中的String编码转换
  2. android应用框架搭建之BaseActivity
  3. RAC RMAN 通道配置 RMAN-12001 RMAN-12001 RMAN-10008 RMAN-10003 ORA-01017 错误
  4. oracle提高io,【转】Oracle性能优化调整--调整磁盘I/O
  5. php发送gmail,使用GMail SMTP服务器从PHP页面发送电子邮件
  6. 树复制替换id_程序员的进阶课-架构师之路(12)-2-3-4树
  7. 杂志订阅管理系统c++_电池管理系统BMS功能安全开发流程详解
  8. webpack打包后引用cdn的js_呕心沥血编写的webpack多入口零基础配置 【建议收藏】...
  9. 医学论文摘要撰写的四要素以及注意事项
  10. mysql随机显示记录_MySQL随机读取表中记录