首页 > 编程语言 >2-面试题:python

2-面试题:python

时间:2023-04-12 21:26:36浏览次数:41  
标签:面试题 协程 迭代 python 生成器 对象 线程 进程

1、python对象的比较和拷贝?

答:'=='操作符比较对象之间的值是否相等;'is'操作符比较的是对象的身份标识是否相等,即它们是否是同一个对象,是否指向同一个内存地址; 比较操作符'is'的速度效率,通常优于'==';

浅拷贝和深拷贝:

浅拷贝,将原对象或原数组的引用直接赋值给新对象、新数组,新对象/数组只是原对象的一个引用;

深拷贝,创建一个新的对象和数组,将原对象的各项属性的”值“拷贝过来,是"值"而不是"引用";

2、什么是迭代器和生成器?

答:容器是可迭代对象(字符串、列表、元组、集合、字典),可迭代对象调用iter()函数,可以得到一个迭代器。迭代器可以通过next()函数来得到下一个元素,从而支持遍历;

生成器是一种特殊的迭代器,使用生成器可以写出更加清晰的代码;合理使用生成器,可以降低内存占用、优化程序结构、提高程序速度;python2、3实现生成器的方式分别是协程和async await;

3、面向过程和面向对象的区别?

答:面向过程,效率高,耦合度高,扩展性低;(注重实现这个功能的步骤和因果关系)

面向对象,效率差,耦合度低,扩展性高;(每个单元都实现成对象,各个对象之间协作起来形成一个系统)

4、进程、线程、协程的区别?

协程是单线程;协程由用户决定,在哪些地方交出控制权,切换到下一个任务;

线程是指进程内的一个执行单元,也是进程内的可调度实体;

1.地址空间,线程是进程内的一个执行单元,进程内至少有一个线程,它们共享进程的地址空间,而进程有自己独立的地址空间;

2.资源拥有,进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源;

3.线程是处理器调度的基本单位,而进程不是;

4.二者均可并发执行;

5.每个独立的线程有一个程序运行的入口、顺序执行序列和成簇出口,但线程不能够独立执行,必须依存于应用程序中;

多进程,使用multiprocessing,使用多核cpu;

多线程,使用threading,完成IO密集型并发操作;

协程,使用gevent,用于非阻塞异步并发;

标签:面试题,协程,迭代,python,生成器,对象,线程,进程
From: https://www.cnblogs.com/testerxm/p/17311271.html

相关文章

  • c sharp与python通信
    最近在学unity,想在unity调用python。因此学习了使用udp来建立通信。python发送,csharp接收python代码importsocketimporttimesock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)serverAddressPort=("127.0.0.1",10086)#5052定义localhost与端口,当然可......
  • 摸鱼用python代码收集每天大瓜内容信息,并发送到自己的邮箱
    本篇文章内容主要为如何用代码,把你想要的内容,以邮件的形式发送出去内容可以自己完善,还可以设置一个定时发送,或者开机启动自动运行代码代理注册与使用注册账号并登录生成api将自己电脑加入白名单http://api.tianqiip.com/white/add?key=xxx&brand=2&sign=xxx&ip=输入自己电脑的ip地......
  • 面试题:python
    列表和元组的区别列表是动态的,长度可变,可以对元素进行增、删、改操作;列表存储空间略大于元组,性能略逊于元组;元组是静态的,长度大小固定,不可以对元素进行增、删、改操作;元组相对于列表更加轻量级,性能稍优;字典和集合字典是有序的数据结构,而集合是无序的,其内部的哈希表存储结构,......
  • python习题-筛法求素数
    【题目描述】用户输入整数n和m(1<n<m<1000),应用筛法求[n,m]范围内的所有素数。【基本思想】用筛法求素数的基本思想是:把从2到N的一组正整数从小到大按顺序排列。从中依次删除2的倍数、3的倍数、5的倍数,直到根号N的倍数为止,剩余的即为2~N之间的所有素数。【源代码程序】defsie......
  • python(十一):小型数据库:shelve
     Python中shelve模块是对象持久化保存方法,将对象保存到文件里面,缺省(即默认)的数据存储文件是二进制的,可以作为一个简单的数据存储方案。使用时,只需要使用open函数获取一个shelf对象,然后对数据进行增删改查操作,在完成工作、并且将内存存储到磁盘中,最后调用close函数变回将......
  • python习题-验证6174猜想
    【题目描述】1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律:对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,并且这个操作最多不会超过7次。请编写程序验证这个猜想。【源代码程序】de......
  • python习题-杨辉三角
    【题目描述】输出n(0<n)行杨辉三角形,n由用户输入。【源代码程序】n=int(input("请输入要打印的杨辉三角的行数:"))#初始化杨辉三角的第一行triangle=[[1]]#循环生成杨辉三角foriinrange(1,n):#初始化当前行的第一个元素为1row=[1]#循环生成当......
  • 20230412-Python-pycharm使用技巧
     1.新建文件,自动生成代码       2.自动补齐自定义段落        3.修改注释颜色        ......
  • Python的函数的缺省值参数(空列表)之坑
    Fromhttps://www.jianshu.com/p/9f899d829562 defadd(x,lst=[]):ifnot(xinlst):lst.append(x)returnlstlist1=add(1)print(list1)list2=add(2)print(list2)list3=add(3,[11,12,13,14])print(list3)list4=add(4)print(list4......
  • Python程序笔记20230304
    抛硬币实验random模块importrandomrandom.randint(a,b)返回一个随机整数N,范围是:a<=N<=brandom.choice("ilovefishc")从"ilovefishc"这个字符串中随机选出一个字符。编写一个双色球的开奖模拟程序importrandomred=random.sample(range(1,34),6)blue=r......