【Python八股文系列】:100个Python的面试/笔试高频考点
后台-插件-广告管理-内容页头部广告(手机) |
Python的100个面试/笔试高频考点
本文主要整理了关于Python的面试/笔试的一些考点,可用于查漏补缺。
涉及到的一些Python进阶知识,可以查看专栏学习:《Python进阶》
\quad
\quad
1. 解释型和编译型语言的区别
- 编译型语言:把做好的源程序全部编译成二进制的可运行程序。然后,可直接运行这个程序。如:C,C++ ;
- 解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!如:Python。
注意:Java 有些特殊,java程序也需要编译,但是没有直接编译成为机器语言,而是编译称为字节码,然后用解释方式执行字节码。
\quad
\quad
2. 简述下 Python 中的字符串、列表、元组和字典
- 字符串(str):字符串是用引号括起来的任意文本,是编程语言中最常用的数据类型。
- 列表(list):列表是有序的集合,可以向其中添加或删除元素。
- 元组(tuple):元组也是有序集合,元组中的数无法修改。即元组是不可变的。
- 字典(dict):字典是无序的集合,是由键值对(key-value)组成的。
- 集合(set):是一组 key 的集合,每个元素都是唯一,不重复且无序的。
\quad
\quad
3. 简述上述数据类型的常用方法
字符串:
- 切片:'luobodazahui'[1:3]
- format:"welcome to luobodazahui, dear {name}"format(name="baby")
- join:可以用来连接字符串,将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串。'-'.join(['luo', 'bo', 'da', 'za', 'hui'])
- String.replace(old,new,count):将字符串中的 old字符替换为 New字符,count为替换的个数 'luobodazahui-haha'.replace('haha', 'good')
- split:切割字符串,得到一个列表
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
列表:
- 切片,同字符串
- append和 extend向列表中添加元素
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 删除元素 del:
- 根据下标进行删除pop:删除最后一个元素
- remove:根据元素的值进行删除
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 元素排序 sort:是将list按特定顺序重新排列,默认为由小到大,参数 reverse=True可改为倒序,由大到小。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- reverse:是将list逆置。
字典:
- 清空字典 dict.clear()
- 1
- 2
- 3
- 4
- 指定删除:使用 pop方法来指定删除字典中的某一项(随机的)。
- 1
- 2
- 3
- 4
- 5
- 6
- 遍历字典
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- fromkeys用于创建一个新字典,以序列中元素做字典的键,value为字典所有键对应的初始值。
- 1
- 2
- 3
\quad
\quad
4. 简述 Python 中的字符串编码
计算机在最初的设计中,采用了8个比特(bit)作为一个字节(byte)的方式。一个字节能表示的最大的整数就是255,如果要表示更大的整数,就必须用更多的字节。最早,计算机只有 ASCII 编码,即只包含大小写英文字母、数字和一些符号,这些对于其他语言,如中文,日文显然是不够用的。后来又发明了Unicode,Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。UTF-8 是隶属于 Unicode 的可变长的编码方式。
在 Python 中,以 Unicode 方式编码的字符串,可以使用 encode() 方法来编码成指定的 bytes,也可以通过 decode()方法来把 bytes编码成字符串。
>>> "你好".encode('utf-8') b'\xe4\xbd\xa0\xe5\xa5\xbd' >>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') "你好"- 1
- 2
- 3
- 4
\quad
\quad
5. 一行代码实现数值交换
>>> a, b = 1, 2 >>> a, b = b, a >>> print(a, b)- 1
- 2
- 3
\quad
\quad
6. is 和 == 的区别
==是比较操作符,只是判断对象的值(value)是否一致,而 is 则判断的是对象之间的身份(内存地址)是否一致。对象的身份,可以通过 id() 方法来查看。
>>> c = d = [1, 2] >>> e = [1, 2] >>> print(c is d) True >>> print(c == d) True >>> print(c is e) False >>> print(c == e) True- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
只有 id一致时,is比较才会返回 True,而当 value一致时,== 比较就会返回 True。
\quad
\quad
7. Python 函数中的参数类型
位置参数,默认参数,可变参数,关键字参数。
\quad
\quad
8. *arg 和 **kwarg 作用
允许我们在调用函数的时候传入多个实参
>>> def test(*arg, **kwarg): ... if arg: ... print("arg:", arg) ... if kwarg: ... print("kearg:", kwarg) ... >>> test('ni', 'hao', key='world') arg: ('ni', 'hao') kearg: {'key': 'world'}- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
可以看出,*arg 会把位置参数转化为 tuple,**kwarg 会把关键字参数转化为 dict。
\quad
\quad
9. 获取当前时间
>>> import time >>> import datetime >>> print(datetime.datetime.now()) 2022-09-12 19:51:24.314335 >>> print(time.strftime('%Y-%m-%d %H:%M:%S')) 2022-09-12 19:51:24- 1
- 2
- 3
- 4
- 5
- 6
\quad
\quad
10. PEP8 规范
简单列举10条:
- 尽量以免单独使用小写字母’l’,大写字母’O’,以及大写字母’I’等容易混淆的字母。
- 函数命名使用全部小写的方式,可以使用下划线。
- 常量命名使用全部大写的方式,可以使用下划线。
- 使用 has或 is前缀命名布尔元素,如: is_connect = True; has_member = False。
- 不要在行尾加分号,也不要用分号将两条命令放在同一行。
- 不要使用反斜杠连接行。
- 方法定义之间空1行,顶级定义之间空两行。
- 如果一个类不继承自其它类,就显式的从object继承。
- 内部使用的类、方法或变量前,需加前缀_表明此为内部使用的。
- 要用断言来实现静态类型检测。
\quad
\quad
11. Python 的深浅拷贝(
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |