python基础面试题 常考知识点50个,亲测有效


0--python   没有char    只有chr

1. python  /除取小数(多位)  //整除  %取余 

2---is 和 == 的区别
    两个都可以判断是否相等
    is 比较id   2== 比较值 

3---python浮点数  不精确  1.2-1.0=0.1999


4字符串 ‘a' 可以和 ‘b’比较

5.divmod(a,b) 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。


6.赋值与id  对象=对象id相等   a=1 b=1  id不等     https://blog.csdn.net/weixin_40322020/article/details/85941916


7.深浅拷贝   https://blog.csdn.net/weixin_40636692/article/details/79783771
A = copy.copy(B) 此时A对象相当于把B对象中的内容给完成的拷贝了一份,存储在了一份新的内存地址当中。  浅拷贝

问题  不同内存空间   修改后值不变  但是只是一维的 拷贝的是二维的指向地址  改变一个对应的二维内容会变

深拷贝   
cp_name = copy.deepcopy(name)
独立空间


8.python   数据结构  dict  toulp list  属性

9.Python中变量可以不指定类型,会自动根据赋值语句来决定类型
同时,使用前必须赋值,在赋值的同时变量也就创建了


10.关于**kwargs与位置参数、*args、默认参数混着用的问题:(注意顺序)

位置参数、*args、**kwargs三者的顺序必须是位置参数、*args、**kwargs,不然就会报错:

11.线程由操作系统控制,协程由程序自身控制


12 局部变量和全局变量  (函数中才是局部的   循环是全局的)
函数会优先调用其里面的的局部变量  给局部变量赋值不会改变全局变量
https://blog.csdn.net/zhaogeno1/article/details/80298702
定义 一个全局变量a  在函数声明同名a  如果不给a 赋值直接使用会报错  如a*=a  
global  声明局部变量


13 list  pop 默认为最后一个 -1


14.python  的三元运算符      x if (条件)a>b else y


15.元组中只包含一个元素时,需要在元素后面添加逗号(1,)

16.try-finally 语句无论是否发生异常都将执行最后的代码。
    try:
            正常的操作 
    except(Exception1[, Exception2[,...ExceptionN]]]):
           发生以上多个异常中的一个,执行这块代码
    finally:
        <语句>    #退出try时总会执行
    else:
            如果没有异常执行这块代码

17.Python使用缩进作为语法边界,一般四个空格缩进

18.高级程序设计语言必须由 编译器或解释器翻译成低级语言。  

19.
1. 在python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。

2. python中的标识符是区分大小写的。

3. 以下划线开头的标识符是有特殊意义的。
    以单下划线开头(_foo)的代表不能直接访问的类属性,需通 过类提供的接口进行访问,不能用"from xxx import *"而导入;
     以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里 特殊方法专用的标识,如__init__()代表类的构造函数。

20.0**0  1*0  等于1


21.

对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不是这个变量的值本身。

对于Python变量(基本类型:int, float)的赋值,仅仅是引用的赋值,所指向的对象并不改变。
对于Python的复杂数据类型(数据结构:list, set, dict)的赋值:
其所存储的是每个item所指向的变量的地址,因此对于数据结构内部元素的改变,是将该元素引用指向新的变量,而列表本身不会改变,e.g. a[i] = 7, id(a)不变。
然而若有对一个列表有新的赋值操作, 为引用重新初始化(赋值)的时候,就给这个变量重新赋予了一个地址,e.g.a = [1,2], id(a)变了。

22.表与数组的首要区别:数组是同类的

23.使用head查看数据,若不设数值,默认5行

24.可随机访问任一元素  只有顺序表可以

25 int('101',2)  后面参数(整形)  表示第一个参数是什么类型

36.关于函数的可变参数,可变参数*args传入函数时存储的类型是tuple    传入 list和tuple都可以 但是会转化为tuple

37.Python集合中的元素不可以是列表  可以是元组。

38.在Python 3.x中可以使用中文作为变量名。

39.有布尔型值参与运算时,true将转化为整型1,flase将转化为整型0后再参与运算

40.Python中有很多包管理工具,以下哪种不是?  ports不是  是 pip yolk setuptools


41.python通常是一行写完一条语句,但是若语句很长,可以通过“\”来实现多行语句。


42.

python中主要存在四种命名方式:

1、object #公用
方法
2、_object #半保护:
                 
    #被看作是“protect”,意思是只有类对象和子类对象自己能访问到这些变量,
              
    在模块或类外不可以使用,不能用’from module import *’导入。
             
       #__object 是为了避免与子类的方法名称冲突, 对于该标识符描述的方法,父类的方法不能轻易地被子类的方法覆盖,他们的名字实际上是
                      _classname__methodname。
    __foo解析器用_classname__foo来代替这个名字,以区别和其他类相同的命名
3、_ _ object  #全私有,全保护
                       
    #私有成员“private”,意思是只有类对象自己能访问,连子类对象也不能访

    问到这个数据,不能用’from module import *’导入。

4、_ _ object_ _     #内建方法,用户不要这样定义


43.and    x and y    布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。    (a and b) 返回 20。
or    x or y    布尔"或"    - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。    (a or b) 返回 10。
not    not x    布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。    not(a and b) 返回 False

44.子类可以继承多个父类


45

abc isinstance(object,classinfo),用于判断object是否是classinfo的一个实例,或者object是否是classinfo类的子类的一个实例,如果是返回True. issubclass(class,classinfo),用于判断class是否是classinfo类的子类,如果是返回True.

46.循环读文件把[ ]变成() python读取文件内容并且生成迭代器,(f for f in file('testfile', 'r'))

47.

__init__是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值。
__new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例,是个静态方法。

即,__new__在__init__之前被调用,__new__的返回值(实例)将传递给__init__方法的第一个参数,然后__init__给这个实例设置一些参数。
__new__是一个静态方法,而__init__是一个实例方法    
__new__方法会返回一个创建的实例,而__init__什么都不返回    
只有在__new__返回一个cls的实例时,后面的__init__才能被调用    
当创建一个新实例时调用__new__,初始化一个实例时用__init__

48.#%a.bf,a表示浮点数的打印长度,b表示浮点数小数点后面的精度

你可能感兴趣的:(python)