博客
关于我
Python 10 个习惯用法,短平快第一期
阅读量:805 次
发布时间:2023-03-05

本文共 2195 字,大约阅读时间需要 7 分钟。

10个Python使用习惯(第一期)

  • if not x直接使用x和not x来判断x是否为None或空,这是Pythoner的常用习惯。例如:
  • 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')
    1. enumerate枚举直接使用enumerate来枚举容器,第二个参数指定索引的起始值,这是Pythoner的习惯。例如:
    2. 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
      1. in判断子串判断字符串是否包含某个子串时,使用in明显更可读。例如:
      2. x = 'zen_of_python'if 'zen' in x:    print('zen is in')

        find返回值与-1判断不够Pythoner:

        if x.find('zen') != -1:    print('zen is in')
        1. zip打包使用zip打包后结合for使用,更加符合Python习惯。例如:
        2. keys = ['a', 'b', 'c']values = [1,3,5]for k, v in zip(keys, values):    print(k, v)

          下面的写法不够Pythoner:

          d = {}i = 0for k in keys:    print(k, values[i])    i += 1
          1. 一对'''打印被分为多行的字符串时,使用一对'''更符合Python习惯。例如:
          2. print('''"Oh no!" He exclaimed. "It's the blemange!"''')

            下面的写法太不Python风格:

            print('"Oh no!" He exclaimed. \n+ '\n\t\t\t\t"It's the blemange!"')
            1. 交换元素直接解包赋值,更符合Python习惯。例如:
            2. a, b = 1,3a, b = b, a

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

              tmp = aa = bb = tmp
              1. join串联串联字符串时更习惯使用join。例如:
              2. chars = ['P','y','t','h','o','n']name = ''.join(chars)print(name)

                下面的写法不够Pythoner:

                name = ''for c in chars:    name += cprint(name)
                1. 列表生成式列表生成式构建高效,符合Python习惯。例如:
                2. data = [1,2,3,5,8]result = [i*2 for i in data if i % 2 == 1]print(result)  #[2,6,10]

                  下面的写法不够Pythoner:

                  results = []for e in data:    if e % 2 == 1:        results.append(e*2)print(results)
                  1. 字典生成式除了列表生成式,还有字典生成式。例如:
                  2. 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] = vprint(d)
                    1. name == 'main'这个语句用于模块级别代码,用于区分模块被导入时的执行情况。例如:
                    2. def mymain():    print('Doing something in module', __name__)if __name__ == '__main__':    print('Executed from command line')    mymain()

                      如果脚本命名为MyModule,不管在vscode还是pycharm直接启动,都会打印:

                      Executed from command lineDoing something in module __main__

                      但如果import MyModule时,没有这行代码,直接会打印:

                      In [2]: import MyModuleExecuted from command lineDoing something in module MyModule

                      只有在有主句时,导入后才符合预期:

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

                      以上就是10个Python使用习惯(第一期)的整理,希望对你有帮助!

    转载地址:http://esafk.baihongyu.com/

    你可能感兴趣的文章
    python语言有哪些优点和缺点_Python有哪些优缺点,你了解吗?
    查看>>
    Python 从入门到精通:30天速成教程到底有多狠?你能坚持下来吗?
    查看>>
    Python 从数据库中存储和检索密码的最安全方法
    查看>>
    Python语言及其应用 - 知识点遍历
    查看>>
    Python 优化提速的 8 个小技巧
    查看>>
    Python 余弦相似度与皮尔逊相关系数 计算
    查看>>
    python 使用execjs 报编码错误解决办法,UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 145: il
    查看>>
    python 使用filetype校验文件
    查看>>
    Python 使用flush函数将缓冲区数据立即写磁盘
    查看>>
    python 使用in判断不准确,in不好使
    查看>>
    Python 使用pandas 进行查询和统计详解
    查看>>
    Redis 配置文件redis.conf详细解释
    查看>>
    python网络爬虫(2)——scrapy框架的基础使用
    查看>>
    python网络爬虫实例教程试读_Python网络爬虫实战教程(全套完整版) - 学途无忧网 - 做技术的王者 - Powered By EduSoho...
    查看>>
    Python 使用哈希函数用于加密
    查看>>
    Python 依赖管理的革新——Poetry 深度解析
    查看>>
    python 保留精度及增加去除数字的千位分隔符(金额化数字)
    查看>>
    python 倒计时 9,8,7,。。。。。。0
    查看>>
    Python 入门开发学习笔记之数据的增删改查
    查看>>
    Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境
    查看>>