python3基础部分总结

python 是脚本语言,比较宽松,直接找资源,需要自己保证资源的正确性

0.变量的命名推荐是下划线方式

类的命名是大驼峰命名法
类中的属性是下划线

1.注意set中没有重复数据—可以通过转为set类型 快速完成去重功能

可以看H:\pythontest\test\集合间互转.py

x = [1,1,3,4,4,5,6]
y = set(x)
x = list(y)
print(x)

set 是{}   ---->没有重复数据
list 是 []
tuple 是 ()  元组

2.类的命名

类的命名是大驼峰命名法  属性 方法 小驼峰或_   推荐用下划线
类 声明的多个 实例 -》对象的实例属性是各自存在独立的地址
                            实例方法是共用一份空间 类通过self来判断是哪个对象调用

3.// 地板除 (取最小)

7//3 —> 2
-7 // 3 —> -3

  1. *=
    先算出右边的值 再计算左边的
    eg:a*=5+3 ===> a=a*(5+3)

5.类的继承

class A(object):
    pass
class B(A):
    pass
class C(B,A):    ### 这边必须是 B在A前,范围从小到大     **** A 可以不用写 推荐不写
    pass

6.super() 相当于进入父类的入口, C继承B C中的super()继承B() #self的内存地址依旧是子类的,只是刷新了下数据

eg;super().__init__()     将self继承父类后的self           #一般子类都要先写这个   
    print(self.属性)       打印继承父类后的xx属性值          #不写则子类中不能使用父类的属性方法  但是子类的实例对象是可以的
    super().方法()         调用继承父类后的xx方法

若继承多个父类,按 print(C.__mro__) 结果的顺序
eg: class C(B,A)     则顺序为 B  》 A

7.类中self 省略情况 部分记录

1>类中申明的要写               eg:def getName(self):
2>刷新获取其他类的self要写        eg:A.__init__(self)
3>自刷新 或者是调用方法是不用写 eg: self.__init__()     #注意自刷新作用就是把 self改为此类初始定义的时候即重置

8.类中self不要用其他字符替换(推荐) *换了语法未错,程序正常

9.一个类中的一个方法 中super()只能获取一层父类,写多个也是获取上一层父类

10.面向对象三大特性:封装、继承、多态 多态即 子类重写父类的一个方法实现多种执行结果

                                    eg:class A():       class B(A):
                                        def work():         def work():
                                            pass                pass

11.类中定义了同名的对象方法、类方法、静态方法时,调用方法会优先执行最后定义的方法

12.静态方法 @staticmethod 来修饰 ,不需要类对象或者实例对象(self)参数时用,好处有利于减少不必要的内存占用和性能消耗

建议用类直接调用  A.static_fang_fa()

13.类方法:用@classmethod来进行修饰 一般用cls做参数 用来访问类的私有属性 __xxx

建议用类直接调用 A.class_fang_fa()

14.类中只有类属性时 没有init声明的 对象属性时 ,类属性充当对象属性

15.文件操作 open close write read readlines readline

引用os rename remove mkdir getcwd chdir listdir rmdir

rename(a,b) 中文件名a 必须是能访问到 , 报错
              文件名b 命名的目录与a不同时 则先改名再将文件移动到 b的目录
             eg: rename('./a.txt','../b.txt')   将a.txt 改名为b.txt 并移动到上级目录

16.类中init建议加 super().init() 加上程序更加稳定

cause:因为__init__方法往往是用来对创建完的对象进行初始化工作,
        如果在子类中重写父类的__init__()方法,
        即意味着父类中的很多初始化工作没有做,这样就不保证程序的稳定了,
so: 最好是先调用父类的这个方法也就是super().__init__() ,然后在添加自己的功能
eg: class A(object):
        def __init__(self,xx,xxx):
            super().__init__()
            self.xx=xx
            self.xxx=xxx

17.异常中 raise 作用抛出异常,,,,

raise 自定义内容  ---->抛出自定义内容  注:要有名字还是要系统定义的且它们应是Error或Exception类的子类  可以自己写个类继承Exception
                                        raise ShortInputException(len(s), 3)
raise             ---->不接东西则 抛出程序中的异常

18.模块化中 自己建的模块中 可以通过 name值来判断是否是被引用执行的

        值为"__main__"  自己执行
        值为被导入的模块名eg:test "test"      被引用执行

19.如果一个文件中有all变量,那么也就意味着这个变量中的元素,不会被from xxx import *

时导入    但是直接import是可以的  from xxx  import xx

20. 不定长函数的参数

 *xx xx为元组
 **XXXX XXXX为字典  
 有字典参数是必须放在最后
 eg: fun(a,b,*c,w=11,**d)   w为带默认值的参数

21.在python中,值是靠引用来传递来的。 a = [1,2,3] b=a a.append(4)

                                    结果a=[1,2,3,4] b=[1,2,3,4]

22.所谓可变类型与不可变类型是指:数据能够直接进行修改,如果能直接修改那么就是可变,否则是不可变

可变类型有: 列表、字典、集合         做全局变量时   **不需要加global  cause:引用地址
不可变类型有: 数字、字符串、元组     做全局变量时需要加global

23.字典的常见操作

    dict={"name":"zhangsan",'sex':'m'} 
    len(dict) 
    dict.keys()  
    dict.values() 
    dict.items()   
    dict.has_key('name')==>'true'  **python3取消了

24. 100 只要1个字节就能存放 1个字节最大数是255 1111 1111 8个位为一个字节

25.匿名函数帮助字典排序

stus=[
        {"name":"zhangsan","age":18},
        {"name":"lisi","age":19},
        {"name":"wangwu","age":16}
    ]
stus.sort(key=lambda x:x["name"])   

26.定义一个元组必须是 (1,)

否则b=(1)就是 数学运算  1 type(b)---->int

27.字符串倒置 用 str_[::-1]

28.read(8*1024) 一次读8k

29.a=’[1,2,3,4,5]’ 转化为list 必须是eval(a)

                不能直接用list(a)

30. 尽量少的类 尽量少的对象

31.子类C调用父类A的方法show

1.A.show(self)                #能指定具体的父类,比如多层继承
2.super().__init__()          #只能3用   更加mro排序最近的一个父类
3.super(C,self).__init__()    #兼容2和3

32.实例对象可以访问类属性 类对象也可以访问类属性(但是类对象更安全)

实例对象不可修改类属性值,类对象可以修改类属性

33.一般用 指定异常

34.文件.file 可以看到模块的目录 random._file

35.模块搜索路径 import sys sys.path

36. and 获取到第一个假值 或者 最后一个真值

or   获取到第一个真值  或者 最后一个假值

37. set中list的每一个引用地址也是不可修改的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值