1/3
2/3
3/3
【Python八股文系列】:100个Python的面试/笔试高频考点
鸡哔你e
编辑于 2023年06月03日 00:30

1. 解释型和编译型语言的区别

编译型语言:把做好的源程序全部编译成二进制的可运行程序。然后,可直接运行这个程序。如:C,C++ ;

解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!如:Python。

注意:Java 有些特殊,java程序也需要编译,但是没有直接编译成为机器语言,而是编译称为字节码,然后用解释方式执行字节码。

\quad

\quad

2. 简述下 Python 中的字符串、列表、元组和字典

字符串(str):字符串是用引号括起来的任意文本,是编程语言中最常用的数据类型。

列表(list):列表是有序的集合,可以向其中添加或删除元素。

元组(tuple):元组也是有序集合,元组中的数无法修改。即元组是不可变的。

字典(dict):字典是无序的集合,是由键值对(key-value)组成的。

集合(set):是一组 key 的集合,每个元素都是唯一,不重复且无序的。

\quad

\quad

3. 简述上述数据类型的常用方法

字符串:

切片:'luobodazahui&#​39;[1:3]

format:"welcome to luobodazahui, dear {name}"format(name=&#​34;baby")

join:可以用来连接字符串,将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串。'-&#​39;.join(['luo&#​39;, 'bo&#​39;, 'da&#​39;, 'za&#​39;, 'hui&#​39;])

String.replace(old,new,count):将字符串中的 old字符替换为 New字符,count为替换的个数 'luobodazahui-haha&#​39;.replace('haha&#​39;, 'good&#​39;)

split:切割字符串,得到一个列表

列表:

  1. 切片,同字符串

  2. append和 extend向列表中添加元素

3.删除元素 

  1. 根据下标进行删除pop:删除最后一个元素

  2. remove:根据元素的值进行删除

4.元素排序 :是将按特定顺序重新排列,默认为由小到大,参数 可改为倒序,由大到小。

:是将逆置。

字典:

  1. 清空字典 dict.clear()

2.指定删除:使用 方法来指定删除字典中的某一项(随机的)。

3.遍历字典

4.用于创建一个新字典,以序列中元素做字典的键,为字典所有键对应的初始值。

4. 简述 Python 中的字符串编码

计算机在最初的设计中,采用了8个比特(bit)作为一个字节(byte)的方式。一个字节能表示的最大的整数就是255,如果要表示更大的整数,就必须用更多的字节。最早,计算机只有 ASCII 编码,即只包含大小写英文字母、数字和一些符号,这些对于其他语言,如中文,日文显然是不够用的。后来又发明了Unicode,Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。UTF-8 是隶属于 Unicode 的可变长的编码方式。

在 Python 中,以 Unicode 方式编码的字符串,可以使用 encode() 方法来编码成指定的 bytes,也可以通过 decode()方法来把 bytes编码成字符串。

5. 一行代码实现数值交换

6. is 和 == 的区别

是比较操作符,只是判断对象的(value)是否一致,而  则判断的是对象之间的身份(内存地址)是否一致。对象的身份,可以通过  方法来查看。

只有 id一致时,is比较才会返回 True,而当 value一致时,== 比较就会返回 True。

7. Python 函数中的参数类型

位置参数,默认参数,可变参数,关键字参数。

8. *arg 和 **kwarg 作用

允许我们在调用函数的时候传入多个实参

可以看出,*arg 会把位置参数转化为 tuple,**kwarg 会把关键字参数转化为 dict。

9. 获取当前时间

10. PEP8 规范

简单列举10条:

1.以免单独使用小写字母’l’,大写字母’O’,以及大写字母’I’等容易混淆的字母。

2.函数命名使用全部小写的方式,可以使用下划线。

3.常量命名使用全部大写的方式,可以使用下划线。

4.使用 has或 is前缀命名布尔元素,如: is_connect = True; has_member = False。

5.不要在行尾加分号,也不要用分号将两条命令放在同一行。

6.不要使用反斜杠连接行。

7.方法定义之间空1行,顶级定义之间空两行。

8.如果一个类不继承自其它类,就显式的从object继承。

9.内部使用的类、方法或变量前,需加前缀_表明此为内部使用的。

10.要用断言来实现静态类型检测。