博客
关于我
Python 10 个习惯用法,短平快第一期
阅读量:803 次
发布时间: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/

    你可能感兴趣的文章
    pycharm怎么支持WPS?
    查看>>
    pycharm打印不全问题
    查看>>
    pycharm提示This inspection detects instance attribute definition outside __init__ method
    查看>>
    pycharm搭建spark环境
    查看>>
    pycharm无法导入本地模块问题
    查看>>
    PyTorch — 初学者教程
    查看>>
    PyCharm更换pip源为国内源、模块安装、PyCharm依赖包导入导出教程
    查看>>
    Pycharm没有找到manage repositories按钮解决方案
    查看>>
    PyCharm点击设置没反应,无法进行设置
    查看>>
    pycharm的安装配置和简单使用
    查看>>
    pycharm的环境管理-ChatGPT4o作答
    查看>>
    pycharm社区版不能使用conda
    查看>>
    Pycharm终端中conda无法切换到虚拟环境的解决方法(两种方案)
    查看>>
    pycharm连接sqlite
    查看>>
    Pycharm那些隐藏的实用小技巧,yyds!
    查看>>
    PyCharm配置SSH和SFTP远程连接服务器
    查看>>
    Pycharm隐藏的实用小技巧!建议收藏
    查看>>
    PyChord 项目常见问题解决方案
    查看>>
    pydoc使用
    查看>>
    pyechart
    查看>>