100 个基本 Python 面试问题第四部分(61-80)
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-61:如何在运行时为 Class 属性赋值?
我们可以在运行时指定属性的值。我们需要添加一个 init 方法并将输入传递给对象构造函数。请参阅以下示例来说明这一点。
>>> class Human:
def __init__(self, profession):
self.profession = profession
def set_profession(self, new_profession):
self.profession = new_profession
>>> man = Human("Manager")
>>> print(man.profession)
Manager
Q-62:Python 编程中的继承是什么?
继承是一种 OOP 机制,它允许对象访问其父类功能。它将基类功能传递给孩子。
我们故意抽象出不同类中的相似代码。
公共代码在基类中,子类对象可以通过继承访问它。看看下面的例子。
class PC: # 基类
processor = "Xeon" # 通用属性
def set_processor(self, new_processor):
processor = new_processor
class Desktop(PC): # 派生类
os = "Mac OS High Sierra" # 个性化属性
ram = "32 GB"
class Laptop(PC): # 派生类
os = "Windows 10 Pro 64" # 个性化属性
ram = "16 GB"
desk = Desktop()
print(desk.processor, desk.os, desk.ram)
lap = Laptop()
print(lap.processor, lap.os, lap.ram)
输出:
Xeon Mac OS High Sierra 32 GB
Xeon Windows 10 Pro 64 16 GB
Q-63:Python 中的组合是什么?
组合也是 Python 中的一种继承。它打算从基类继承,但有点不同,即通过使用基类的实例变量作为派生类的成员。
见下图。
为了演示组合,我们需要实例化类中的其他对象,然后使用这些实例。
class PC: # 基类
processor = "Xeon" # 通用属性
def __init__(self, processor, ram):
self.processor = processor
self.ram = ram
def set_processor(self, new_processor):
processor = new_processor
def get_PC(self):
return "%s cpu & %s ram" % (self.processor, self.ram)
class Tablet():
make = "Intel"
def __init__(self, processor, ram, make):
self.PC = PC(processor, ram) # 作品
self.make = make
def get_Tablet(self):
return "Tablet with %s CPU & %s ram by %s" % (self.PC.processor, self.PC.ram, self.make)
if __name__ == "__main__":
tab = Tablet("i7", "16 GB", "Intel")
print(tab.get_Tablet())
输出是:
Tablet with i7 CPU & 16 GB ram by Intel
Q-64:Python 程序中的错误和异常是什么?
错误是程序中可能导致其异常退出的编码问题。
相反,异常的发生是由于外部事件的发生中断了程序的正常流程。
Q-65:你如何在 Python 中使用 Try/Except/Finally 处理异常?
Python 制定了 Try、Except、Finally 结构来处理错误和异常。我们将缩进的不安全代码括在 try 块下。我们可以将回退代码保留在 except 块中。任何打算最后执行的指令都应该在 finally 块下。
try:
print("在 try 块中执行代码")
print(exception)
except:
print("进入except块")
finally:
print("到达最后一个区块")
输出是:
在 try 块中执行代码
进入except块
到达最后一个区块
Q-66:你如何为 Python 中的预定义条件引发异常?
我们可以根据某些条件引发异常。
例如,如果我们希望用户只输入奇数,否则会引发异常。
# 示例 - 引发异常
while True:
try:
value = int(input("输入一个奇数-"))
if value%2 == 0:
raise ValueError("由于无效输入退出!!!")
else:
print("输入的值为: %s" % value)
except ValueError as ex:
print(ex)
break
输出是:
输入一个奇数- 2
由于无效输入退出!!!
输入一个奇数- 1
输入的值为: 1
输入一个奇数-
Q-67:什么是 Python 迭代器?
Python 中的迭代器是类似数组的对象,允许在下一个元素上移动。我们在遍历循环时使用它们,例如在“for”循环中。
Python 库没有。的迭代器。例如,一个列表也是一个迭代器,我们可以在它上面启动一个 for 循环。
Q-68:Iterator 和 Iterable 有什么区别?
列表、元组、字典和集合等集合类型都是可迭代对象,而它们也是可迭代容器,在遍历时返回迭代器。
以下是一些高级 Python 面试问题。
Q-69:什么是 Python 生成器?
Generator 是一种函数,它让我们指定一个函数,它的作用类似于迭代器,因此可以在“for”循环中使用。
在生成器函数中,yield 关键字替代了 return 语句。
def fn():
return "简单的 Python 函数"
def generate():
yield "Python 生成器函数"
print(next(generate()))
输出是:
Python 生成器函数
Q-70:Python 中的闭包是什么?
Python 闭包是由另一个函数返回的函数对象。我们使用它们来消除代码冗余。
在下面的例子中,我们编写了一个简单的乘法闭包。
def multiply_number(num):
def product(number):
'product() here is a closure'
return num * number
return product
num_2 = multiply_number(2)
print(num_2(11))
print(num_2(24))
num_6 = multiply_number(6)
print(num_6(1))
输出是:
22
48
6
Q-71:Python 中的装饰器是什么?
Python 装饰器使我们能够动态地向给定对象添加新行为。在下面的示例中,我们编写了一个简单的示例来显示函数执行前后的消息。
def decorator_sample(func):
def decorator_hook(*args, **kwargs):
print("函数调用前")
result = func(*args, **kwargs)
print("函数调用后")
return result
return decorator_hook
@decorator_sample
def product(x, y):
"两个数相乘的函数"
return x * y
print(product(3, 3))
输出是:
函数调用前
函数调用后
9
Q-72:你如何在 Python 中创建字典?
让我们以建筑工地统计为例。为此,我们首先需要使用冒号(“:”)拆分键值对。键应该是不可变类型,也就是说,我们将使用不允许在运行时更改的数据类型。我们将从整数、字符串或元组中进行选择。
但是,我们可以采用任何类型的值。为了区分数据对,我们可以使用逗号(“,”)并将整个内容保留在花括号({…})中。
>>> site_stats = {'site': 'tecbeamers.com', 'traffic': 10000, "type": "organic"}
>>> type(site_stats)
<class 'dict'>
>>> print(site_stats)
{'type': 'organic', 'site': 'tecbeamers.com', 'traffic': 10000}
Q-73:你如何在 Python 中读取字典?
要从字典中获取数据,我们可以使用键直接访问。我们可以在提到字典对应的变量名后使用方括号 […] 将“key”括起来。
>>> site_stats = {'site': 'tecbeamers.com', 'traffic': 10000, "type": "organic"}
>>> print(site_stats["traffic"])
我们甚至可以调用 get 方法从字典中获取值。它还让我们设置一个默认值。如果缺少密钥,则会发生 KeyError。
>>> site_stats = {'site': 'tecbeamers.com', 'traffic': 10000, "type": "organic"}
>>> print(site_stats.get('site'))
tecbeamers.com
Q-74:如何在 Python 中遍历字典对象?
我们可以使用“for”和“in”循环来遍历字典对象。
>>> site_stats = {'site': 'tecbeamers.com', 'traffic': 10000, "type": "organic"}
>>> for k, v in site_stats.items():
print("The key is: %s" % k)
print("The value is: %s" % v)
print("++++++++++++++++++++++++")
输出是:
The key is: type
The value is: organic
++++++++++++++++++++++++
The key is: site
The value is: tecbeamers.com
++++++++++++++++++++++++
The key is: traffic
The value is: 10000
++++++++++++++++++++++++
Q-75:你如何在 Python 中向字典添加元素?
我们可以通过使用新键修改字典来添加元素,然后为其设置值。
>>> #设置一个空白字典
>>> site_stats = {}
>>> site_stats['site'] = 'google.com'
>>> site_stats['traffic'] = 10000000000
>>> site_stats['type'] = 'Referral'
>>> print(site_stats)
{'type': 'Referral', 'site': 'google.com', 'traffic': 10000000000}
我们甚至可以在 update() 方法的帮助下连接两个字典以获得更大的字典。
>>> site_stats['site'] = 'google.co.in'
>>> print(site_stats)
{'site': 'google.co.in'}
>>> site_stats_new = {'traffic': 1000000, "type": "social media"}
>>> site_stats.update(site_stats_new)
>>> print(site_stats)
{'type': 'social media', 'site': 'google.co.in', 'traffic': 1000000}
Q-76:如何在 Python 中删除字典的元素?
我们可以使用 del() 方法删除字典中的键。
>>> site_stats = {'site': 'tecbeamers.com', 'traffic': 10000, "type": "organic"}
>>> del site_stats["type"]
>>> print(site_stats)
{'site': 'google.co.in', 'traffic': 1000000}
我们可以使用的另一种方法是 pop() 函数。它接受密钥作为参数。另外,第二个参数,如果键不存在,我们可以传递一个默认值。
>>> site_stats = {'site': 'tecbeamers.com', 'traffic': 10000, "type": "organic"}
>>> print(site_stats.pop("type", None))
organic
>>> print(site_stats)
{'site': 'tecbeamers.com', 'traffic': 10000}
Q-77:你如何检查字典中键的存在?
我们可以使用 Python 的“in”运算符来测试 dict 对象中是否存在键。
>>> site_stats = {'site': 'tecbeamers.com', 'traffic': 10000, "type": "organic"}
>>> 'site' in site_stats
True
>>> 'traffic' in site_stats
True
>>> "type" in site_stats
True
早些时候,Python 还提供了已被弃用的 has_key() 方法。
Q-78:Python 中列表推导式的语法是什么?
列表推导式的签名如下:
[ expression(var) for var in iterable ]
例如,下面的代码将返回从 10 到 20 的所有数字并将它们存储在一个列表中。
>>> alist = [var for var in range(10, 20)]
>>> print(alist)
Q-79:Python 中字典理解的语法是什么?
字典的语法与列表推导式的语法相同,但不同之处在于它使用大括号:
{ aKey, itsValue for aKey in iterable }
例如,下面的代码将返回所有数字 10 到 20 作为键,并将这些数字的相应平方存储为值。
>>> adict = {var:var**2 for var in range(10, 20)}
>>> print(adict)
Q-80:Python 中生成器表达式的语法是什么?
生成器表达式的语法与列表推导式匹配,但不同之处在于它使用括号:
( expression(var) for var in iterable )
(表达式(var) for var in iterable )
例如,下面的代码将创建一个生成器对象,该对象在使用时生成 10 到 20 的值。
>>> (var for var in range(10, 20))
at 0x0000000003668728>
>>> list((var for var in range(10, 20)))
总结——100 个基本 Python 面试题
我已经写了很长一段时间的技术博客,这是我的一篇面试题分享。希望你们会喜欢!这里汇总了我的全部原创及作品源码: Github
- 点赞
- 收藏
- 关注作者
评论(0)