c语言面试题目,C语言面试笔试题
全世界有800多万Python开发者。每天都有成千上万的新学习者加入Python社区。残酷的事实是,只有10-20%的人能成为优秀的开发者,找到好工作。为什么?是因为他们解决不了一些高级的面试问题。接下来我想和大家分享10个高频常见的重要Python问题。
1.有什么区别。py和。pyc文件?Py文件是程序的源代码。Pyc文件是程序的编译字节。
编译Python。py文件并将其保存为. pyc文件。然后,Python虚拟机运行。
在运行主源代码之前,python会搜索编译好的。pyc版本文件,如果找到python,它将在虚拟机的帮助下运行。
如果没有,找到并编译。py文件,然后运行。py文件。基本上,pyc文件通过重新运行编译后的代码来节省编译时间。
2.什么是抽象?如何在Python上实现抽象?抽象用于向用户隐藏函数的内部功能。他们可以与函数交互以生成结果,但他们不知道结果是如何生成的。
简而言之,抽象是指隐藏与用户无关的数据,以降低程序的复杂性。Python可以使用ABC模块实现抽象。
类也可以作为其他类的基础。访问元素的唯一方法是使用继承,因为不能创建抽象类的对象。
从ABC到ABC,abstractmethodclasssparent(ABC):@ abstractmethoddefshow(self):pass class child(parent)33660说明了它的重要性。FrozenSets类似于集合,唯一的区别是它们是不可变的。
您可以随时修改集合中的元素,但是一旦创建了冷冻集,就不能对其进行修改。
也就是说,元素在创建后不能被添加、删除或更新。
Frozenset将iterable对象作为输入,并保持它们不变。冻结集是不可变的,可以用作字典的键。
Data={Name: Roger , Pin: 3056, act no :989234512234565 } fset=freezed set(data)print } FSS对新位置所做的更改也将反映在以前的位置中。比深度复制更快。
深度副本将对象的值存储在新位置。对新位置所做的更改不会反映在以前的位置。
用于显示id对象的内存地址。当然,以下示例中的地址在您的计算机上是不同的。
# light copy data=[1,2,3,4,5]updated _ data=data updated _ data . append(6)print(update _ data))[1,2,6]print(id(data))1677216 print(id)updated _ data)16777216 # # import copy=[1,2,3,4,5)updated _ data=copy . deepcopy(data)updated _ data . append(6)6)print)updated _ data)#[1,2,3,4酸洗就是
Unpickling通过逆向操作将字节流转换为python对象。通常称为反序列化。
使用python pickle.dump和pickle.load实现序列化和反序列化。
# picklingimportpickledata={ names :[ Karl , Robin , Lary], id:(g770531 , g 770532)} output)output . close)# # unpicklingimporation Rb (data=pickle . load(stream)print)data)({ names 3336366666)
], id: (g770531 , g70532 , g70533 ),薪金:[55600,88900,76000]} stream.close () 6 .什么是参数*args和**kwargs?*args和**kwargs都允许向函数传递可变数量的参数。当您不确定函数中要传递的参数数量时,会用到它们。
*args允许您向函数传递可变数量的参数。
add numbers(* numbers):sum=0 for numbers in numbers:sum=sumnumberprint( sum:,sum) addnumbers (3,5) # sum: 8addnumbers (5,6,7) # sum: 18 * * kwargs允许向函数传递可变数量的关键字参数。
Add numbers (* * data): sum=0for key,value in data . items():sum=sum value print( sum:,sum) add numbers (a=5,b=6) # sum: 11 add numbers (a=5,b=8,c=10)上下文管理器用于资源管理。它们允许您在需要时分配和释放资源。上下文管理器最常用和公认的例子是with语句。它主要用于打开和关闭文件。With允许在单行出现问题时打开和关闭文件。它的主要优点是可以保证文件正确关闭。
用(。/data.txt , w )作为f: f.write (hello) 8 .如何理解python中的实例方法、类方法和静态方法?在Python中,可以定义三种方法3354实例方法、类方法和静态方法。
实例方法:这是我们在创建类时创建的常用方法。这些方法与对象相关。这些方法的语法是def do_something(self),其中self是指实例对象。
类方法:与实例对象略有不同。它们被绑定到类,而不是类的对象。这些用于执行类任务,可以改变类的状态。我们用@classmethod装饰器创建一个类方法。
静态方法:指类中定义的方法,主要是为了程序逻辑的清晰。这些方法与类无关,也不需要类的实例。我们用@staticmethod装饰器创建一个静态方法。
9.什么是非局部变量和全局变量?它们都用来定义变量的范围。Global是在函数范围之外定义的变量。这个变量的值对于整个代码是相同的。它可以在程序中的任何地方使用。
Pi=3.14 ##全局变量def circle(radius):Area _ of _ circle=pi *(radius)* * 2 print(圆的面积为:,Area _ of _ circle) circle (7) #圆的面积为:153.85非局部是嵌套函数中使用的变量,没有定义局部作用域。如果改变非局部变量的值,局部变量的值也会改变。
def outer _ function():X= local _ variable def inner _ function():nonlocal X= nonlocal _ variable print( inner function:,X)inner _ function()print( outer function:,X)outer _ function()# inner function:nonlocal _ variable # outer function:nonlocal _ variable 10 .举个发电机的例子?生成器是一个返回可迭代对象的函数。生成器函数必须包含至少一条yield语句。Yield是Python中的一个关键字,用于从函数返回值,而不破坏其当前状态或对局部变量的引用。带有yield关键字的函数称为生成器。
当需要执行项目时,生成器只生成一次项目。它们的内存效率非常高,占用的内存空间也更少。
初学者可以将yield理解为另一种形式的返回,但它不是停止函数的执行,而是返回一个值。
Def on (limit): a,b=0,1 while a limit: yield a a,b=b,a b for x in fib on(10):print(x)# 1 2 3 5 8 13 21 34 55 89 python面试中的高频常见的10个问题上面分享了。我希望有一天你想跳槽或准备寻找它。
欢迎大家喜欢,收藏,支持!
pythontip,编码快乐!
微信官方账号:夸克编程
单击此处运行文本中的所有代码。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。