100 个基本 Python 面试问题第五部分(81-100)
100 个基本的 Python 面试问题第四部分(61-80)
Q-1:什么是 Python,使用它有什么好处,你对 PEP 8 有什么理解?
Q-2:以下 Python 代码片段的输出是什么?证明你的答案。
Q-3:如果程序不需要动作但在语法上需要它,可以在 Python 中使用的语句是什么?
Q-4:在 Python 中使用“~”获取主目录的过程是什么?
Q-5:Python 中可用的内置类型有哪些?
Q-6:如何在 Python 应用程序中查找错误或执行静态分析?
Q-7:什么时候使用 Python 装饰器?
Q-8:列表和元组的主要区别是什么?
Q-9:Python 如何处理内存管理?
Q-10:lambda 和 def 之间的主要区别是什么?
Q-11:使用 python reg 表达式模块“re”编写一个 reg 表达式来验证电子邮件 ID?
Q-12:你认为以下代码片段的输出是什么?代码中有错误吗?
Q-13:Python 中有 switch 或 case 语句吗?如果不是,那么相同的原因是什么?
Q-14:Python 用来迭代数字序列的内置函数是什么?
Q-15:Python 的 try-except 块中可能有哪些可选语句?
Q-16:Python 中的字符串是什么?
Q-17:Python 中的切片是什么?
Q-18:Python 中的 %s 是什么?
Q-19:字符串在 Python 中是不可变的还是可变的?
Q-20:Python 中的索引是什么?
Q-21:Python 中的文档字符串是什么?
Q-22:Python 编程中的函数是什么?
Q-23:Python 中有多少基本类型的函数?
Q-24:我们如何用 Python 编写函数?
Q-25:Python 中的函数调用或可调用对象是什么?
Q-26:Python 中的 return 关键字是做什么用的?
Q-27:Python 中的“按值调用”是什么?
Q-28:Python 中的“按引用调用”是什么?
Q-29:trunc() 函数的返回值是多少?
Q-30:Python 函数必须返回一个值吗?
Q-31:Python 中的 continue 有什么作用?
Q-32:Python 中 id() 函数的用途是什么?
Q-33:*args 在 Python 中有什么作用?
Q-34:**kwargs 在 Python 中做什么?
Q-35:Python 有 Main() 方法吗?
Q-36: __ Name __ 在 Python 中有什么作用?
Q-37:Python 中“end”的目的是什么?
Q-38:什么时候应该在 Python 中使用“break”?
Q-39:Python 中的 pass 和 continue 有什么区别?
Q-40:len() 函数在 Python 中有什么作用?
Q-41:chr() 函数在 Python 中有什么作用?
Q-42:ord() 函数在 Python 中有什么作用?
Q-43:Python 中的 Rstrip() 是什么?
Q-44:Python 中的空格是什么?
Q-45:Python 中的 isalpha() 是什么?
Q-46:你如何在 Python 中使用 split() 函数?
Q-47:Python 中的 join 方法有什么作用?
Q-48:Title() 方法在 Python 中有什么作用?
Q-49:是什么让 CPython 与 Python 不同?
Q-50:哪个包是最快的 Python 形式?
Q-51:Python 语言中的 GIL 是什么?
Q-52:Python 如何实现线程安全?
Q-53:Python 如何管理内存?
Q-54:Python 中的元组是什么?
Q-55:Python 编程中的字典是什么?
Q-56:Python 中的 set 对象是什么?
Q-57:字典在 Python 中有什么用?
Q-58:Python 列表是链表吗?
Q-59:Python 中的 Class 是什么?
Q-60:Python 类中的属性和方法是什么?
Q-61:如何在运行时为 Class 属性赋值?
Q-62:Python 编程中的继承是什么?
Q-63:Python 中的组合是什么?
Q-64:Python 程序中的错误和异常是什么?
Q-65:你如何在 Python 中使用 Try/Except/Finally 处理异常?
Q-66:你如何为 Python 中的预定义条件引发异常?
Q-67:什么是 Python 迭代器?
Q-68:Iterator 和 Iterable 有什么区别?
Q-69:什么是 Python 生成器?
Q-70:Python 中的闭包是什么?
Q-71:Python 中的装饰器是什么?
Q-72:你如何在 Python 中创建字典?
Q-73:你如何在 Python 中读取字典?
Q-74:如何在 Python 中遍历字典对象?
Q-75:你如何在 Python 中向字典添加元素?
Q-76:如何在 Python 中删除字典的元素?
Q-77:你如何检查字典中键的存在?
Q-78:Python 中列表推导式的语法是什么?
Q-79:Python 中字典理解的语法是什么?
Q-80:Python 中生成器表达式的语法是什么?
Q-81:你如何用 Python 编写条件表达式?
Q-82:你对 Python 枚举了解多少?
Q-83:Python 中 globals() 函数有什么用?
Q-84:为什么在 Python 中使用 zip() 方法?
Q-85:Python 编程中的类或静态变量是什么?
Q-86:三元运算符在 Python 中是如何工作的?
Q-87:“self”关键字有什么作用?
Q-88:在 Python 中复制对象有哪些不同的方法?
Q-89:Python 中文档字符串的用途是什么?
Q-90:您将使用哪个 Python 函数将数字转换为字符串?
Q-91:你如何用 Python 调试程序?是否可以单步执行 Python 代码?
Q-92:列出一些用于调试 Python 程序的 PDB 命令?
Q-93:调试 Python 程序的命令是什么?
Q-94:你如何在 Python 中监控程序的代码流?
Q-95:为什么以及何时在 Python 中使用生成器?
Q-96:yield 关键字在 Python 中有什么作用?
Q-97:如何将列表转换为其他数据类型?
Q-98:在没有明确提及的情况下,你如何计算列表中每个项目的出现次数?
Q-99:什么是 NumPy,它比 Python 中的列表好在哪里?
Q-100:在 Python 中创建空的 NumPy 数组有哪些不同的方法?
直接跳到末尾 去领资料
Q-81:你如何用 Python 编写条件表达式?
我们可以将以下单个语句用作条件表达式。
如果条件是其他语句,则为默认状态
>>> no_of_days = 366
>>> is_leap_year = "Yes" if no_of_days == 366 else "No"
>>> print(is_leap_year)
Yes
Q-82:你对 Python 枚举了解多少?
在使用迭代器时,有时我们可能有一个用例来存储迭代次数。Python 通过提供一个称为 enumerate() 的内置方法让我们很容易地完成这项任务。
enumerate() 函数将计数器变量附加到可迭代对象,并将其作为“枚举”对象返回。
我们可以直接在“for”循环中使用这个对象,或者通过调用 list() 方法将它转换成一个元组列表。它具有以下签名:
enumerate(iterable, to_begin=0)
Arguments:
iterable: array type object which enables iteration
to_begin: the base index for the counter is to get started, its default value is 0
alist = ["apple","mango", "orange"]
astr = "banana"
list_obj = enumerate(alist)
str_obj = enumerate(astr)
print("list_obj type:", type(list_obj))
print("str_obj type:", type(str_obj))
print(list(enumerate(alist)) )
print(list(enumerate(astr, 2)))
输出是:
list_obj type: <class 'enumerate'>
str_obj type: <class 'enumerate'>
[(0, 'apple'), (1, 'mango'), (2, 'orange')]
[(2, 'b'), (3, 'a'), (4, 'n'), (5, 'a'), (6, 'n'), (7, 'a')]
Q-83:Python 中 globals() 函数有什么用?
Python 中的 globals() 函数将当前全局符号表作为字典对象返回。
Python 维护一个符号表来保存有关程序的所有必要信息。此信息包括程序使用的变量、方法和类的名称。
此表中的所有信息都保留在程序的全局范围内,Python 允许我们使用 globals() 方法检索它。
Signature: globals()
Arguments: None
# 举例: globals() function
x = 9
def fn():
y = 3
z = y + x
# 调用 globals() 方法
z = globals()['x'] = z
return z
# 测试代码
ret = fn()
print(ret)
输出是:
12
Q-84:为什么在 Python 中使用 zip() 方法?
zip 方法允许我们映射多个容器的相应索引,以便我们可以将它们用作单个单元。
Signature:
zip(*iterators)
Arguments:
Python iterables or collections (e.g., list, string, etc.)
Returns:
A single iterator object with combined mapped values
# 举例: zip() 方法
emp = [ "tom", "john", "jerry", "jake" ]
age = [ 32, 28, 33, 44 ]
dept = [ 'HR', 'Accounts', 'R&D', 'IT' ]
# 调用 zip() 来映射值
out = zip(emp, age, dept)
# 转换所有值以按设置打印它们
out = set(out)
# 显示最终值
print ("The output of zip() is : ",end="")
print (out)
输出是:
The output of zip() is : {('jerry', 33, 'R&D'), ('jake', 44, 'IT'), ('john', 28, 'Accounts'), ('tom', 32, 'HR')}
Q-85:Python 编程中的类或静态变量是什么?
在 Python 中,所有对象共享公共类或静态变量。
但是对于不同的对象,实例或非静态变量是完全不同的。
C++和Java等编程语言需要使用static关键字将变量作为类变量。但是,Python 有一种独特的方式来声明静态变量。
在类声明中使用值初始化的所有名称都成为类变量。那些在类方法中获得赋值的成为实例变量。
# 举例
class Test:
aclass = 'programming' # A class variable
def __init__(self, ainst):
self.ainst = ainst # An instance variable
# CSStudent 类的对象
test1 = Test(1)
test2 = Test(2)
print(test1.aclass)
print(test2.aclass)
print(test1.ainst)
print(test2.ainst)
# 也可以使用类名访问类变量
print(Test.aclass)
输出是:
programming
programming
1
2
programming
Q-86:三元运算符在 Python 中是如何工作的?
三元运算符是条件语句的替代。它将真值或假值与您需要测试的语句组合在一起。
语法类似于下面给出的语法。
[onTrue] if [条件] else [onFalse]
x, y = 35, 75
smaller = x if x < y else y
print(smaller)
Q-87:“self”关键字有什么作用?
“self” 是一个Python关键字,其表示保持对象的实例的变量。
在几乎所有面向对象的语言中,它都作为隐藏参数传递给方法。
Q-88:在 Python 中复制对象有哪些不同的方法?
Python中有两种复制对象的方法。
copy.copy() 函数
- [ ] 它将文件从源复制到目标。
- [ ] 它将返回参数的浅拷贝。
copy.deepcopy() 函数 - [ ] 它还生成从源到目标的对象副本。
- [ ] 它将返回您可以传递给函数的参数的深层副本。
Q-89:Python 中文档字符串的用途是什么?
在 Python 中,文档字符串就是我们所说的文档字符串。它设置了记录 Python 函数、模块和类的过程。
Q-90:您将使用哪个 Python 函数将数字转换为字符串?
要将数字转换为字符串,可以使用内置函数str()。如果您需要八进制或十六进制表示,请使用内置函数oct() 或hex()。
💡也请检查。
Q-91:你如何用 Python 调试程序?是否可以单步执行 Python 代码?
是的,我们可以使用 Python 调试器 ( pdb ) 来调试任何 Python 程序。如果我们使用pdb启动一个程序,那么它甚至可以让我们单步执行代码。
Q-92:列出一些用于调试 Python 程序的 PDB 命令?
以下是一些用于开始调试 Python 代码的 PDB 命令。
- 添加断点(b)
- 恢复执行©
- 分步调试(s)
- 移至下一行(n)
- 列出源代码(l)
- 打印表达式§
Q-93:调试 Python 程序的命令是什么?
以下命令有助于在调试模式下运行 Python 程序。
$ python -m pdb python-script.py
Q-94:你如何在 Python 中监控程序的代码流?
在 Python 中,我们可以使用 sys 模块的settrace() 方法来设置跟踪挂钩并监视程序内部的函数。
您需要定义一个跟踪回调方法并将其传递给settrace() 函数。回调应指定三个参数,如下所示。
import sys
def trace_calls(frame, event, arg):
# 'call' 事件发生在函数执行之前。
if event != 'call':
return
# 接下来,检查帧数据和打印信息。
print 'Function name=%s, line num=%s' % (frame.f_code.co_name, frame.f_lineno)
return
def demo2():
print 'in demo2()'
def demo1():
print 'in demo1()'
demo2()
sys.settrace(trace_calls)
demo1()
Q-95:为什么以及何时在 Python 中使用生成器?
Python 中的生成器是一个返回可迭代对象的函数。我们可以使用yield 关键字迭代生成器对象。但是我们只能这样做一次,因为它们的值不会持久存在于内存中,它们会即时获取值。
生成器使我们能够保持函数或步骤的执行,只要我们想保留它。然而,这里有几个例子说明使用生成器是有益的。
- 我们可以用生成器替换循环,以有效地计算涉及大数据集的结果。
- 当我们不想要所有结果并希望推迟一段时间时,生成器很有用。
- 我们可以用生成器代替回调函数,而不是使用回调函数。我们可以在函数内部编写一个循环,做与回调相同的事情,并将它变成一个生成器。
Q-96:yield 关键字在 Python 中有什么作用?
yield
关键字可以将任何函数转换成发电机。它的工作原理类似于标准的 return 关键字。但它总是会返回一个生成器对象。此外,一个方法可以多次调用yield 关键字。
请参阅下面的示例。
def testgen(index):
weekdays = ['sun','mon','tue','wed','thu','fri','sat']
yield weekdays[index]
yield weekdays[index+1]
day = testgen(0)
print next(day), next(day)
# 输出: sun mon
Q-97:如何将列表转换为其他数据类型?
有时,我们不会按原样使用列表。相反,我们必须将它们转换为其他类型。
将列表转换为字符串。
我们可以使用”.join() 方法将所有元素合并为一个并作为字符串返回。
weekdays = ['sun','mon','tue','wed','thu','fri','sat']
listAsString = ' '.join(weekdays)
print(listAsString)
# 输出: sun mon tue wed thu fri sat
把一个列表变成一个元组。
调用 Python 的tuple() 函数将列表转换为元组。
此函数将列表作为其参数。
但是请记住,将列表变成元组后我们无法更改列表,因为它变得不可变。
weekdays = ['sun','mon','tue','wed','thu','fri','sat']
listAsTuple = tuple(weekdays)
print(listAsTuple)
# 输出: ('sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat')
把一个列表变成一个集合。
将列表转换为集合会带来两个副作用。
- Set 不允许重复条目,以便转换将删除任何此类项目。
- 集合是有序集合,因此列表项的顺序也会改变。
但是,我们可以使用set() 函数将列表转换为 Set。
weekdays = ['sun','mon','tue','wed','thu','fri','sat','sun','tue']
listAsSet = set(weekdays)
print(listAsSet)
# 输出: set(['wed', 'sun', 'thu', 'tue', 'mon', 'fri', 'sat'])
将列表变成字典。
在字典中,每一项都代表一个键值对。因此,转换列表并不像转换其他数据类型那样简单。
但是,我们可以通过将列表分成一组对,然后调用zip() 函数将它们作为元组返回来实现转换。
将元组传递给dict() 函数最终会将它们变成字典。
weekdays = ['sun','mon','tue','wed','thu','fri']
listAsDict = dict(zip(weekdays[0::2], weekdays[1::2]))
print(listAsDict)
# 输出: {'sun': 'mon', 'thu': 'fri', 'tue': 'wed'}
Q-98:在没有明确提及的情况下,你如何计算列表中每个项目的出现次数? 与集合不同,列表可以包含具有相同值的项目。
在 Python 中,列表有一个count() 函数,它返回特定项目的出现次数。
计算单个项目的出现次数。
weekdays = ['sun','mon','tue','wed','thu','fri','sun','mon','mon']
print(weekdays.count('mon'))
# 输出: 3
计算列表中每个项目的出现次数。
我们将使用列表推导式和count() 方法。它将打印每个项目的频率。
weekdays = ['sun','mon','tue','wed','thu','fri','sun','mon','mon']
print([[x,weekdays.count(x)] for x in set(weekdays)])
# 输出: [['wed', 1], ['sun', 2], ['thu', 1], ['tue', 1], ['mon', 3], ['fri', 1]]
Q-99:什么是 NumPy,它比 Python 中的列表好在哪里?
NumPy 是一个用于科学计算的 Python 包,可以处理大数据量。它包括一个强大的 N 维数组对象和一组高级函数。
此外,NumPy 数组优于内置列表。
- NumPy 数组比列表更紧凑。
- 使用 NumPy 读取和写入项目更快。
- 使用 NumPy 比使用标准列表更方便。
- NumPy 数组更高效,因为它们增强了 Python 中列表的功能。
Q-100:在 Python 中创建空的 NumPy 数组有哪些不同的方法?
我们可以应用两种方法来创建空的 NumPy 数组。
创建空数组的第一种方法。
import numpy
numpy.array([])
第二种方法创建一个空数组。
# 创建一个空数组
numpy.empty(shape=(0,0))
总结——100 个基本 Python 面试题
我已经写了很长一段时间的技术博客,这是我的一篇面试题分享。希望你们会喜欢!这里汇总了我的全部原创及作品源码: Github
- 点赞
- 收藏
- 关注作者
评论(0)