python知识总结

  1. 列表和元组之间的区别:

    python的元组与列表知类似,不同之处是元组的元素不能修改,元素使用(),而列表使用[]

  2. Python中的继承:

    和Java一样python也有继承的概念,父类的所有的属性和方法都可以被子类继承,但是子类虽然没有父类的__init__方法,但是父类有,所以在子类继承父类的时候,这个方法就被子类继承了.

    1.子类在继承父类的时候,在定义类时,小括号()中为父类的类名

    2.父类的属性,方法,会被子类给继承

  3. Python中的字典:

    python字典使用了键值对的方式存储,内置了字典:dict的支持,可以理解为Java中的map,具有极其快的查找度.

  4. 使用*args和**kwargs的含义

    不定长参数:需要一个函数批处理比当初声明时更多的参数

    加了*的变量args会春芳所有未命名的参数变量,args为元组,而加了**的变量kwargs会存放命名数,key=value,kwargs

  5. 请写一个Python逻辑,计算一个文件中的大写字母数量

    with open("e://wc.txt","r") as f
    
    count=0
    
    content=f.read()
    
    for i in content:
    
    	if i.issupper():
    
    		count+=1
    
    print(count)
    
  6. 什么是负索引?

    python中的索引,既可以是正数,还可以是负索引,如果是正索引,0为序列中第一个索引,

    如果是负索引,-1是序列中第一个索引,-2为第二个索引以此类推.

  7. Python区分大小写吗?

    python严格区分大小写,比如方法的名一定要大写,在有就是True False的关键字也得大写

  8. 怎么移除一个字符串中的前导空格?

    strip()函数将从字符串开头和结尾删除空格

  9. 怎样将字符串转换为小写?

    print(str.lower()) 
    
  10. Python中的pass语句是什么?

    pass一般用于占据一个位置,如果因为定义一个空的函数程序在运行的时候会报错,所有要用pass占位,让它正常运行

  11. 解释一下Python中的//,%和 ** 运算符

    //取整除 %取模 **幂

  12. 在Python中有多少种运算符?解释一下算数运算符。

    +加 -减 *乘 /除 //取整 除 %取模 **幂

  13. 解释一下Python中的关系运算符

    ==等于 >=大于等于 <=小于等于 !=不等于 <>不等于条件为真

  14. 解释一下Python中的赋值运算符

    = += -= /= %= **==幂赋值 //=整除赋值 在python中没有a++ ,–a等操作

  15. 解释一下Python中的逻辑运算符

    and与 or或 not非

  16. 解释一下Python中的成员运算符

    in 如果在指定的序列中找到值返回True

    not in 如果在指定的序列中没找到值返回False

  17. 讲讲Python中的位运算符

    &按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

    |按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1

    ^按位异或运算符:当两对应的二进位相异时,结果为1

    ~按位取反运算符,对数据的每一个二进制位取反,把0变1,把1变0

    ‘’<<左移动运算符:运算数的各二进制全部左移若干位,有<<右边的数字指定了移动的位数,高位丢弃,低位补0

    “>>右移动运算符:把”>>"左边 的运算数的各二进制位全部右移动若干位,>>右边的数字指定了移动的位数

  18. 怎样获取字典中所有键的列表?

    字典名.keys() 来获取键的列表

  19. 怎样声明多个变量并赋值?

    a=b=c=d=1 or a,b,c,d=1,2,“obj”,True

  20. 为何不建议以下划线作为标识符的开头

    因为会在python中下划线带有含义,init new 等都带下划线 ,一般下划线表示私有属性

  21. 一行代码实现1到100的求和

    print(sum(range(1,101))) 左闭右开

  22. 详细描述单例模式的实现

    确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个实例为单例模式,单例模式是一种对象创建型模式

    class Singleton:
        __instance=None
        __Frist_init=True
        def __init__(self,name):
            if self.__Frist_init:
                self.__Frist_init=False
                self.name=name
                print("init.....")
        def __new__(cls,name):
            if not cls.__instance:
                cls.__instance=object.__new__(cls)
            return cls.__instance
        def run(self):
            print("running......")
    s=Singleton("zhangsan")
    s1=Singleton("lisi")
    print(id(s))
    print(id(s1))
    s.run()
    s1.run()
    print(s.name)
    print(s1.name)
    
  23. 详细描述工厂模式的实现

    简单工厂模式也被称为静态工厂模式,是用工厂方法替代new操作的一种模式,为系统带来了更大的维护性和扩展性

    class Person(object):
        def __init__(self,name):
            self.name=name
        def work(self,type):
            print(self.name,"工作开始了...")
            # axe = StoneAxe()
            # axe = SteelAxe()
            # axe.cut_tree()
            axe = Factory.getAxe(type)
            axe.cut_tree()
    
    class Axe(object):
        def __init__(self,name):
            self.name=name
        def cut_tree(self):
            print("使用",self.name,"砍树....")
    
    class StoneAxe(Axe):
        def __init__(self):
            pass
    
        def cut_tree(self):
            print("使用石斧开始砍树")
    class SteelAxe(Axe):
        def __init__(self):
            pass
    
        def cut_tree(self):
            print("使用钢斧开始砍树")
    class DianjuAxe(Axe):
        def __init__(self):
            pass
    
        def cut_tree(self):
            print("使用电锯开始砍树")
    # 工厂类
    class Factory(object):
        # @classmethod  #有参数
        @staticmethod #不用写参数
        def getAxe(type):
            if "stone"==type:
                return StoneAxe()
            elif "steel"==type:
                return SteelAxe()
            elif "dianju"==type:
                return DianjuAxe()
            else:
                print("参数有误")
    
    
    
    p=Person("zhangsan")
    p.work("dianju")
    
  24. python操作数据库的步骤

    1.先下载 pip install pymysql

    2.在导入 from pymysql import *

    conn = connect("localhost","root","root","phone",3306) #拦截数据库
    cur=conn.cursor()  #创建
    # 查询
    # count=cur.execute("select * from mobile")#查询所有
    # print(count)
    
    
  25. NumPy中几个熟悉的函数的使用

    #创建矩阵
    # array= np.array([1,2,3])
    # print(array.ndim)#一组
    # print(array.shape)#
    # print(array.size)#元素的个数
    # print(array.dtype)#类型
    
    # 使用range创建数组
    # array=np.arange(1,10).reshape(3,3)
    # array=np.arange(1,13).reshape(2,2,3)#reshape必须要精确等于前面的个数左开又闭
    
    # 通过随机数生成矩阵
    # array=np.random.randint(1,10,12).reshape(2,3,2) #1,10,12一到10之间的随机数,12为个数 randint整数范围
    # array = np.random.rand(9).reshape(3,3) #rand 0-1之间的小数
    
    # 通过固定值生成数组
    # array = np.empty(9).reshape(3,3) #empty无限趋近与0
    
    # 筛选条件
    # array = np.random.randint(1,10,9).reshape(3,3)
    # print(array)
    # print(np.where(array>5,array,0))#把大于5的保留下来,小于5的用0替代
    
    # 切片
    # array = np.random.randint(1,10,16).reshape(4,4)
    # print(array)
    # 取第一行的所有值
    # print(array[0])
    # 取第一列的所有值
    # print(array[:,0])
    #取第一行 第三行
    # print(array[0::2]) #利用切片 [起始值(从零开始):结束值(从零开始):步长]
    #取第二列和第四列
    # print(array[::,1::2])
    #取第一行和第三行,取第二列和第四列
    # print(array[0::2,1::2])
    # print(sum(range(1,101)))
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值