• python常用


    python参数的传递:默认参数、可变参数、关键字参数:

    参考这里,可变参数前面1个*;关键字参数前面2个*

    classmethod修饰符:

    参考这里,使用时不需要再实例化该类

    Import失败问题:

    从github拉一段代码作为自己程序的一部分,单独跑都是好的,在主程序里调用就一直报No module named 'xxx'的错误,主要是import路径问题

    from proto import tensor_pb2     #git代码
    from lmdbdata.proto import tensor_pb2     #放到自己工程里新建了目录叫lmdbdata

    指定使用某块GPU:

    1 import os
    2 os.environ["CUDA_VISIBLE_DEVICES"] = "2"    # 使用卡2

    random:

    import random
    random.random()    #随机一个0-1之间的浮点数
    import numpy as np
    import numpy.random as npr
    npr.randint(a,b)    #随机一个a,b之间的整数,a,b需为整数

    格式化输出:

    sys.stdout.write('.')        #这一句换成print '.',也是可以的。print后边加逗号就可以实现输出不换行
    sys.stdout.flush()           #不管用sys.stdout还是print,这一行都很有必要。不加会隔很久显示一次 

     打印大数组时不省略:

    import numpy as np
    np.set_printoptions(threshold = 1e6)

    判断图像是否为空

    1 image = cv2.imread(os.path.join(im_dir, im_path))
    2 try:
    3     image.shape
    4 except:
    5     print "fail to read: ", im_path
    6     continue

     字典:

    for key in sorted(distriDictO, reverse = true)  #倒叙遍历字典

    numpy:

    for multi in np.arange(1.0, 5.3, 0.1):    #按小数增长

    可以用np.NaN表示不是一个数字,但类型是浮点的

    list=[1,2,3,4,5,6,7,8]
    l = np.array(list)
    #l[2]=np.NaN   #会报错,因为l是整形类型, ValueError: cannot convert float NaN to integer
    lf = l.astype(np.float32)
    lf[5] = np.NaN
    np.where(lf>5) #输出(array([5,7]),)

    最大值可用float('inf')表示:

     float('inf') > 1    #返回True
    -float('inf') > 1    #返回False

     isinstance(n, nn.Conv2d)

    更高明的链表操作:

    a = [i for i in xrange(10)]          #a=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    aa = [i for i in xrange(10) if i%2]      #aa=[1, 3, 5, 7, 9]

    list、string等的for循环迭代生成:

    print [aa for aa in addlist if not aa == 'null']    #这是对的,输出一个列表
    print aa for aa in addlist if not aa == 'null'       #这是错的,因为不是可迭代对象

     打开文件比较好的方式:

    with open(filename) as f:
        f.write("xxxx")

    计时函数:

    import time
    start = time.time() #以秒为单位的浮点数,123.456789
    xxx
    end  = time.time()
    print("time used: %.3f ms"((end-start)*1000)
  • 相关阅读:
    对于glut和freeglut的一点比较和在VS2013上的配置问题
    应用程序无法启动(0*c000007b)
    无法定位程序输入点glPopAttrib于动态连结库OPENGL.dll上
    计算机中丢失OPENGL.dll
    Visual Studio "无法查找或打开PDB文件"解决方法
    VC包含目录、附加依赖项、库目录及具体设置
    无法解析的外部符号 _WinMain@16
    OpenGL入门学习
    linux-用户建立及权限分配
    linux下添加用户并赋予root权限
  • 原文地址:https://www.cnblogs.com/zhengmeisong/p/9279437.html
Copyright © 2020-2023  润新知