博客
关于我
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/

    你可能感兴趣的文章
    Python APP自动化测试框架开发实战
    查看>>
    python argparse模块
    查看>>
    Python asyncio库的学习和使用
    查看>>
    Python AttributeError:“dict“对象没有属性“append“
    查看>>
    Python base64和hashlib模块
    查看>>
    python basic programs
    查看>>
    python bert_gen.py 报错Unable to load weights from pytorch checkpoint file for......
    查看>>
    python binascii.Error: Incorrect padding
    查看>>
    Python bool() 函数能否为无效参数引发异常?
    查看>>
    Python C 程序子进程在“for line in iter“处挂起
    查看>>
    Python Celery:自动化测试平台定时任务必备的三方库
    查看>>
    python check_output 失败,退出状态为 1,但 Popen 适用于相同的命令
    查看>>
    Python CONNECT 4 CHECK WIN函数
    查看>>
    python cos,Python cos(90)和cos(270)不是0
    查看>>
    python进阶(4):Python 脚本文件重启自身进程
    查看>>
    python ctypes库中动态链接库加载方式
    查看>>
    python cv2 图像( np array )转 HObject
    查看>>
    python进阶(3):文件操作
    查看>>
    python cv2截取不规则区域图片
    查看>>
    python CV2裁剪图片并保存
    查看>>