python零碎的知识点

python各种零碎的知识点(防止忘记-自查用)

  1. 为了减少使用转义字符(\)可以在字符串前加字母 r 例如r"./datasets/train/img"

  2. 三重引号字符串:(省去了 \n \t 等等操作,写啥就是啥)

        ‘‘’
        123
        456
        789
        ‘’‘
    
  3. 变量float()转int()小数部分会直接剪掉

  4. //地板除法,舍弃小数

  5. 逻辑运算,与andornot
    5>3<4=5>3 and 3<4

  6. 三元操作符 a=x if <条件> else y

  7. 断言 assert <条件>条件为False时报错AssertionError

  8. range返回一个 iterate

  9. list(iterate)返回迭代对象转换为列表

  10. else 搭配循环使用(循环中break之后要执行else部分)

    while 条件:
    	循环体
    else:
    条件不成立时执行的内容
    
    for variable in iterate:
    	循环体
    else:
    条件不成立时执行
    
  11. 内建方法a.sort() a 本身改变了
    sorted(a)返回一个拍完序的列表

  12. emumerate(iterator,num),从num开始记数

     a=[1,2,3,4]
    for i,j in enumerate(a,9):
      print(i, j)
    

    结果

    9 1
    10 2
    11 3
    12 4
    
  13. Python提示object is not subscriptable的错误():
    subscriptable的意思是 可有下标的 意思
    错误的原因就是把不具有下标操作的对象用成了对象[i]

  14. with open("/XXX.txt", "r") as f:
    print(f.readlines())
    

    结果是

    ['0\n', '1\n', '2\n', '3\n', '4\n', '5\n', '6\n', '7\n', '8\n', '9\n']
    

    删掉\n

    for i in f.readlines:
    	i.strip()
    
  15. 类的属性和方法同名时,属性覆盖方法,属性牛bi

  16. Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx :

  17. 调用未绑定的父类的方法

    class Test(Train):
    	def __init__(self):
    		Train.__init__(self)
    
    class Test(Train):
    	def __init__(self):
    		super().__init__()
    
  18. 多重继承class 类名 (父类1,父类2,…………)

  19. 类的组合:把已有的类扔到新的类里直接实例化为类对象去使用

    class BBB:
       def __init__(self,x):
           self.test=x
    class FFF:
       arg= BBB(9)
       def print_test(self):
           print(self.arg.test)#这变量直接就能调了
           
           
    c=FFF()
    c.print_test()
    
  20. python中定义私有变量,只需要在变量名函数名上加上__两个下划线

  21. 要访问私有化变量,只需要对象名._类名__变量名

  22. 对象.__dict__查看对象所拥有的属性

  23. callable() 函数用于检查一个对象是否是可调用

    对于函数方法lambda 函式以及实现了 __call__ 方法的类实例, 它都返回 True

  24. pickle包的用法,将一切保存成二进制,在将二进制文件读入

    import pickle
    
    example_a = [1, 2, 3, 4]
    file = open("./test.txt", "wb")
    pickle.dump(example_a, file)
    file.close()
    
    file_l = open("./test.txt", "rb")
    example_b=pickle.load(file_l)
    print(example_b)
    
  25. import os
    labelsPath = os.path.sep#这里输出的是操作系统的分隔符"/"
    
    #文件路径写成这样
    labelsPath = os.path.sep.join(str1,str2)
    
  26. 对于很大的数,例如10000000000,很难数清楚0的个数。Python允许在数字中间以_分隔,因此,写成10_000_000_000和10000000000是完全一样的。十六进制数也可以写成0xa1b2_c3d4

  27. 但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x10**9就是1.23e9

  28. 对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:

     >>> ord('A')
    65
    >>> ord('中')
    20013
    >>> chr(66)
    'B'
    >>> chr(25991)
    '文'
    
  29. 由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes,也就是Unicode转化为UTF-8

  30. Python对bytes类型的数据用带b前缀的单引号或双引号表示:

    x = b'ABC'
    

    要注意区分’ABC’和b’ABC’,前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节。

  31. 以Unicode表示的str通过encode()方法可以编码为指定的bytes,例如:

    >>> 'ABC'.encode('ascii')
    b'ABC'
    >>> '中文'.encode('utf-8')
    b'\xe4\xb8\xad\xe6\x96\x87'
    
  32. 如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法:

    	 b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
    			'中文'
    
  33. 字符串%s会把一切都转化为字符串

    'Age: %s. Gender: %s' % (25, True)
    'Age: 25. Gender: True'
    
  34. 有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%

  35. f-string
    最后一种格式化字符串的方法是使用以f开头的字符串,称之为f-string,它和普通字符串不同之处在于,字符串如果包含{xxx},就会以对应的变量替换:

    >>> r = 2.5
    >>> s = 3.14 * r ** 2
    >>> print(f'The area of a circle with radius {r} is {s:.2f}')
    The area of a circle with radius 2.5 is 19.62
    
  36. “可变的”tuple:

    >>> t = ('a', 'b', ['A', 'B'])
    >>> t[2][0] = 'X'
    >>> t[2][1] = 'Y'
    >>> t
    ('a', 'b', ['X', 'Y'])
    

    表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。
    即指向’a’,就不能改成指向’b’,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值