基础知识总结

第六节课 基础总结与拓展 讲课老师:风陨老师

2021年4月5日

一、集合的判断

​ 1、 a.issuperset(b): 判断b是否为a的子集

             a = {1, 2, 3,}
             b = {1, 2, 3, 4, 5}
             print(a.issuperset(b))                结果为 False
                                                   a集合中没有包含b集合中的所以元素

​ 2、a.issubset(b): 判断a是否为b的子集

             a = {1, 2, 3,}
             b = {1, 2, 3, 4, 5}
              print(a.issubset(b))                结果为 True
                                                  b集合包含了a集合中的所有元素

​ 3、isdisjoint: 判断交集---- 有–Flase —没有–True

              a = {1, 2, 3,}
              b = {1, 2, 3, 4, 5}
              print(a.isdisjoint(b))              结果为 False
                                                  a集合与b集合有相同的元素即有交集
              
              #判断ab集合是不是没有交集,没有就是 True 有就是False
小知识:
可变与不可变

​ 1、 可变 mutable 内容可以改变但是id不变

​ ① list(列表)

               a = ['x',1, 2, 3,]
              
              print(a)                   结果为['x',1, 2, 3,]                   
               
                a.insert(0,'abc')
              print(a)                   结果为['abc', x',1, 2, 3,]
                                         不用重新赋值直接改变结果是可变类型且内存不变

​ ② dict {字典}

               
                a = {'w': 1, 'x':2}
                  print(a)               结果{'w': 1, 'x': 2}
                  
                  a.upadte({'x':5}) 
                  print(a)               结果为{'w': 1, 'x': 5}

​ ③ set {集合}

                 a = {1, 2, 3, 'a'}
                     print(a)            结果为{1, 2, 3, 'a'}
                   
                    a.add(5)
                     print(a)            结果为{1, 2, 3, 5, 'a'}

​ 2、不可变 immutable 不重新赋值的情况下无法改变 重新赋值会改变内存地址

​ ① int float 数字类型

                 a = 1
                   print(a)                       结果为1
                  
                  print(id(a))            id:140719190670400
                 a = a+1(重新赋值)
                   print(a)                       结果为2
                   
                   print(id(a))           id:140719190670432
                                       赋值后结果改变且内存地址也跟着改变
            
                  a = 1.8
                   
                   print(a)                      结果为 1.8
                  a = 3.6-a
                   print(a)                      结果为 1.8   
                                                 ID改变

​ ② str 字符串

                a = '大熊猫是国宝'
                   
                      print(a)                  结果为:大熊猫是国宝               
                                        
                   a.replace('大','')
                   
                      print(a)                  结果为:大熊猫是国宝 
                                                不赋值不发生改变
                  a = a.replace('大','')
                      print(a)                  结果为:小熊猫是国宝
                                                重新赋值发生改变且内存也跟着改变

​ ③ tuple (,) 元组不可更改··只能查

                   a = ('x', 1, 2)
                     print(a)                   ('x', 1, 2) 

二、字符串转义

​ 1、\n 换行符 \n后面的数据夸行打印

                print('abcdef')               abcdefg
                
               
               print('abc\ndefg')                abc
                                                degf
                                                夸行打印

​ 2、\t 水平制表符

              print('1+1\t2+2\t3+3\t4+4')
                                            1+1	2+2	3+3	4+4

​ 3、\b 退格 删除一格

              print('1+1\b2+2\t3+3\t4+4')   1+  2+2	3+3	4+4
                                            后退删除一格

​ 4、\r 当前位置移到本行开头,且删除前面所有数据

             print('1+1\r2+2\t3+3\t4+4')      2+2 3+3 4+4

​ 5、 \ \ 防止路径被转义

                print('\\')                        \
                                             

​ 6、 \ ‘’ 双引号

               print("\"")                          "

​ 7、 \0 空一格

​ 8、 \a 系统提示音

              print('\a')

​ 9、 防止转义

              print(r'abc\ndefg')             结果为:abc\ndefg
                                              取消转义,输入什么就打印什么不发生转变

三、编码与解码

​ 1、encode() 编码

            a = '大熊猫是国宝'
                  
            a = a.encode('utf8')
结果为b'\xe5\xa4\xa7\xe7\x86\x8a\xe7\x8c\xab\xe6\x98\xaf\xe5\x9b\xbd\xe5\xae\x9d'
            
                                         

​ 2、 decode() 解码

              a = '大熊猫是国宝'

                a = a.encode('utf8')
                 print(a)
 b'\xe5\xa4\xa7\xe7\x86\x8a\xe7\x8c\xab\xe6\x98\xaf\xe5\x9b\xbd\xe5\xae\x9d'
                print(a.decode('utf8'))       大熊猫是国宝  
                                               

​ #注意:英文不会被编码

四、格式化

​ 1、 %s 站位符

            a = '熊猫是国宝'
             print('%s熊猫是国宝' % '大')        大熊猫是国宝
                                               改变增加的数据类型
     小知识:%r 传入什么类型就会是什么类型 
                   
           print('%r熊猫是国宝' % '大')          '大'熊猫是国宝
                                                显示原数据类型

​ 2、 %d 整数

               a = 123
               print('%d123' %5)                5123

​ 3、%f 浮点数

               a = 1.23
                 print('%.2f,1.23' % 2.7)     2.70, 1.23

​ 4、 %c Ascll 码

                a = 520
                print('%c' % a)                Ȉ   
                                           详情对照百度Ascll表
                                           

​ 5、进制

      (1)、 %o   8进制
                 a = 33
                 print('%o' % a)          结果为41  
                                        
                                        32/8 = 4....余1
                                        逢8进1 33里有4个8余1
       
       (2) %x   16进制
                a = 33
                print('%x' %33)            结果为21
                                           33/16 = 2...余1


       (3) %e   科学计数法
                 
                 a = 33
                 print('%.2e' % 33)       结果为 3.30e+01
                                           3.3*10 = 33
                                          

​ 6、左对齐

             a = ('%-7.3f' % 103)
              
              - :指左对齐
              3 :指总长为5
              .3:指保留小数点3位     结果优先保留小数点位数
            
            print(a)                      结果为 103.000  
            
  小知识: len 查看数据长度
                
                print(len(a))              结果为 7
           
           格式化长度
                
                a = ('%7.3s' % 103) 
                                           结果为      103
                  print(len(a))            结果为       7
                                           

五、 format 扩展

​ 1、保留小数点后面3位数

            a = '{:.3f}'.format(66.11111)
                  
                  :声明小数点后面几位数
              print(a)                    结果为 66.111
              
              

​ 2、指定传入,指点小数点后面3位

              a = '{x:.3f}'.format(x=66.11111, y=555.5555)
               
               指定X传入,只穿一个
                                          结果为 66.111
                                        指定传入一个数并且保证小数点后3位
                                        

​ 3、百分百格式化

             a = '{:.2%}'.format(0.2733) 
                   
                print(a)               结果为 27.33%
                                       把0.2733用百分比的形式显示,且保留小数点后2位数

​ 4、转进制

          (1)、转16进制
                a = '{:x}'.format(68)
                 print(a)              结果为44
           
          (2)、转8进制
                 a = '{:o}'.format(68) 结果为104
                 
       

六、左右对两边

​ 1、左对齐,

         a = '{y:0<10}'.format(x=58, y=68)
         
             y:指定传的数
             0:默认是空格,此处用0表示
             10:总长度
         
         print(a)                          结果为6800000000
                                             
                       

​ 2、右对齐

          a = '{x:0>10}'.format(x=58, y=68)
             
             print(a)                     结果为0000000058

​ 3、两边对齐

          a = '{y:0^10}'.format(x=58, y=68)
         
            print(a)                       结果为0000680000       

七、进制转换

        1、十进制转二进制
             a = 32
              print(bin(a))            结果为100000
              
        2、十进制转八进制
              a = 32
                print(oct(a))           结果为40 
                
        3、十进制转十六进制
              a = 32
              print(hex(a))             结果为20
              
    小知识:
          二进制,八进制,十进制不可以互转,必须先转为十进制才可以转换
          
                列:二进制转八进制
              print(int('100000', 2))   结果为整数 32
                 
                 print(oct(32))         结果为 40
                 
        
        4、chr ASCLL码转换成字符
                   a = 520
                   print(chr(a))       结果为 Ȉ
                   
                 
                
            

深浅拷贝

​ 1、浅拷 copy

          a = [5, 4, 'x']
             print(a)                       结果为[5, 4, 'x']
             a.append('3')
             print(a)                       结果为[5, 4, 'x', '3']
             print(id(a))
          
          b = [456 , a]
             print(b)                       结果为[456, [5, 4, 'x']]
             print(b)                       结果为[456, [5, 4, 'x', '3']]
             
         
          c = b.copy()
              print(c)                      结果为[456, [5, 4, 'x']]
              print(c)                      结果为[456, [5, 4, 'x', '3']]
            
            print(id(a))                    结果2209756041736
            print(id(b))                    结果2209756042248
            print(id(c))                    2209759810568
            print(id(a))                    结果为2606012453384
            print(id(b[1]))                 结果为2606012453384
            print(id(c[1]))                 结果为2606012453384
                                            浅复制外层改变,内层列表a 改变后内存地址不变
                                            只要内层a列表改变后面都随着改变

​ 2、深复制 import copy

            a = [5, 4, 'x']
             print(a)                            结果为[5, 4, 'x']
            
            
            
            b = [456 , a]
             print(b)                            结果为[456, [5, 4, 'x']]
            
            
            
            import copy
            c = copy.deepcopy(b)
             print(c)                            结果为[456, [5, 4, 'x']]
            
            
            print(id(a))                          结果为2536770916872
            print(id(b[1]))                       结果为2536770916872
            print(id(c[1]))                       结果为2536774685128
            
                                                  内层列表a 深复制后内存改变
                                                                             The end
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值