Linux环境变量隔代,python基础题 - osc_vwtuqll7的个人空间 - OSCHINA - 中文开源技术交流社区...
47、metaclass作用?以及应用场景?
metaclass,直译为元类,简单的解释就是:当我们定义了类以后,就可以根据这个类创建出实例,
所以:先定义类,然后创建实例。但是如果我们想创建出类呢?那就必须根据metaclass创建出类,
所以:先定义metaclass,然后创建类。换句话说,你可以把类看成是metaclass创建出来的“实例”
48、用尽量多的方法实现单例模式。
1、基于__new__()方法
class Person:
def __new__(cls, *args, **kwargs):
if not hasattr(cls,cls._instance):
# cls._instance = object.__new__(cls)
cls._instance = super().__new__(cls)
return cls._instance
2、基于模块导入方式,现在一个py文件中写好一个类,实例化一个对象。以后用这个类直接导入这个模块就是单例模式。
3、基于装饰器方法实现
def singleton(cls, *args, **kwargs):
instance_dic = {}
def inner(*args, **kwargs):
if cls not in instance_dic:
instance_dic['cls'] = cls(*args, **kwargs)
return instance_dic['cls']
return inner
@singleton
class Person:
pass
49、装饰器的写法以及应用场景。
装饰器的写法:
def wrapper(func):
def inner(*args,**kwargs):
'被装饰之前的操作'
ret = func(*args,**kwargs)
'被装饰之后的操作'
return ret
return inner
装饰器的应用场景:
比如注册登录、插入日志,性能测试,事务处理,缓存等等场景 类装饰器的写法:
class Foo():
... def __init__(self, func): # 初始化函数中传入函数对象的参数
... self._func = func
... def __call__(self): # 定义__call__方法,直接实现装饰功能
... start_time = time.time()
... self._func()
... end_time = time.time()
... print('花费了 %.2f' % (end_time - start_time))
...
>>> @Foo # bar=Foo(bar)
... def bar():
... print('bar函数的执行时间为:')
... time.sleep(2.5)
...
>>> bar() # bar=Foo(bar)(),没有嵌套关系了,直接执行Foo的 __call__方法,实现装饰功能
50、什么是Python的单元测试?
Python中的单元测试框架被称为unittest。它支持共享设置,自动化测试,测试关机代码,测试集合等。
51、在Python中unittest是什么?
从列表,元组,字符串等序列类型中选择一系列项目的机制被称为unittest。
52、__new__和__init__的区别
53、什么是Python中的模块和包?
在Python中,模块是构造程序的方式。每个Python程序文件都是一个模块,它导入其他模块,如对象和属性。
Python程序的文件夹是一个模块包,包可以有模块或子文件夹。
54、怎样才能跨模块共享全局变量?
要在单个程序的模块之间共享全局变量,请创建一个配置模块。在应用程序的所有模块中导入配置模块,该模块将作为跨模块的全局变量提供。
55、解释如何在Unix上创建一个Python脚本可执行文件?
要在Unix上创建Python脚本可执行文件需要做两件事情:
Script文件的模式必须是可执行的
第一行必须以#(#!/ usr / local / bin / python)开头
56、Python垃圾回收机制
Python GC主要使用引用计数(reference counting)来跟踪和回收垃圾。在引用计数的基础上,通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用问题,通过“分代回收”(generation collection)以空间换时间的方法提高垃圾回收效率。
这将返回范围[0,1)中的随机浮点数
57、解释如何访问用C语言编写的Python模块?
你可以通过下面的方法访问一个用C写成的模块,
Module = = PyImport_ImportModule(“”);
58、提到使用Python的五个好处?
Python包含了大多数互联网平台(如电子邮件,HTML等)的巨大标准库。
Python不需要显式的内存管理,因为解释器本身将内存分配给新变量并自动释放它们
由于使用方括号而提供易读性
易于初学者学习
具有内置的数据类型,可以节省编程时间和工作量,从而声明变量。
59、解释什么是Flask及其好处?
Flask是一个基于“Werkzeug,Jinja 2和良好意图”BSD许可的web微型框架,Werkzeug和jingja是它的两个依赖项。
Flask是微观框架的一部分。这意味着它将很少或不依赖于外部库,它使框架轻而易举,更新和安全漏洞更少。
60、Django,Pyramid和Flask有什么区别?
Flask是一个“微框架”,主要用于需求更简单的小型应用程序。在Flask中,你必须使用外部库。
Pyramid是为更大的应用程序建立的。它提供了灵活性,并让开发人员为他们的项目使用正确的工具。开发人员可以选择数据库,URL结构,模板样式等等。Pyramid可重新配置。
像Pyramid一样,Django也可以用于更大的应用程序。 它包括一个ORM。
61、Flask-WTF是什么,有什么特点?
Flask-WTF提供了与WTForms的简单集成,功能包括
与wtforms集成
使用csrf令牌安全形式
全球csrf保护
Reptcha支持
与Flask Uploads一起使用的文件上传
62、给定字典进行排序
给定dict = {'a':3,'bc':5,'c':3,'asd':4,'33':56,'d':0}
根据其键值进行排序
sorted(dict.items(),key = lambda i:i[0],reverse = True)
list2 = [[1,2],[4,6],[3,1]]
list2.sort(key = lambda x:x[0],reverse = False)
print list2
63、列出5个python标准库
os:提供了不少与操作系统相关联的函数
sys: 通常用于命令行参数
re: 正则匹配
math: 数学运算
datetime:处理日期时间
64、谈下python的GIL
GIL 是python的全局解释器锁,同一进程中假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程无法运行,等该线程运行完后其他线程才能运行。如果线程运行过程中遇到耗时操作,则解释器锁解开,使其他线程运行。所以在多线程中,线程的运行仍是有先后顺序的,并不是同时进行。
多进程中因为每个进程都能被系统分配资源,相当于每个进程有了一个python解释器,所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大
65、两个栈实现一个队列&两个队列实现一个栈
# 两个栈实现队列
# 入队:元素进栈A
# 出队:先判断栈B是否为空,为空则将栈A中的元素 pop 出来并 push 进栈B,再栈B出栈,如不为空则栈B直接出栈
class QueueWithTwoStacks(object):
def __init__(self):
self._stack1 = []
self._stack2 = []
def appendTail(self,x):
self._stack1.append(x)
def deleteHead(self):
if self._stack2:
return self._stack2.pop()
else:
if self._stack1:
while self._stack1:
self._stack2.append(self._stack1.pop())
return self._stack2.pop()
else:
return None
# 两个队列实现一个栈
# 进栈:元素入队列A
# 出栈:判断如果队列A只有一个元素,则直接出队。否则,把队A中的元素出队并入队B,直到队A中只有一个元素,再直接出队。为了下一次继续操作,互换队A和队B。
class Stock:
def __init__(self):
self.queueA=[]
self.queueB=[]
def push(self, node):
self.queueA.append(node)
def pop(self):
if len(self.queueA)==0:
return None
while len(self.queueA)!=1:
self.queueB.append(self.queueA.pop(0))
self.queueA,self.queueB=self.queueB,self.queueA #交换是为了下一次的pop
return self.queueB.pop()
66、10个Linux常用命令
ls pwd cd touch rm mkdir tree cp mv cat more grep echo
31、两个列表[1,5,7,9]和[2,2,6,8]合并为[1,2,2,3,6,7,8,9]
32、用python删除文件和用linux命令删除文件方法
33、log日志中,我们需要用时间戳记录error,warning等的发生时间,请用datetime模块打印当前时间戳 “2018-04-01 11:38:54”
34、数据库优化查询方法
35、请列出你会的任意一种统计图(条形图、折线图等)绘制的开源库,第三方也行
36、写一段自定义异常代码
37、正则表达式匹配中,(.*)和(.*?)匹配区别?
38、简述Django的orm
39、[[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]
40、x="abc",y="def",z=["d","e","f"],分别求出x.join(y)和x.join(z)返回的结果
41、举例说明异常模块中try except else finally的相关意义
42、python中交换两个数值
43、举例说明zip()函数用法
44、a="张明 98分",用re.sub,将98替换为100
45、写5条常用sql语句
46、a="hello"和b="你好"编码成bytes类型
47、[1,2,3]+[4,5,6]的结果是多少?
48、提高python运行效率的方法
49、简述mysql和redis区别
50、遇到bug如何处理
51、1、正则匹配,匹配日期2018-03-20
url='https://sycm.taobao.com/bda/tradinganaly/overview/get_summary.json?dateRange=2018-03-20%7C2018-03-20&dateType=recent1&device=1&token=ff25b109b&_=1521595613462'
52、list=[2,3,5,4,9,6],从小到大排序,不许用sort,输出[2,3,4,5,6,9]
53、写一个单列模式
54、保留两位小数
题目本身只有a="%.03f"%1.3335,让计算a的结果,为了扩充保留小数的思路,提供round方法(数值,保留位数)
55、求三个方法打印结果
56、列出常见的状态码和意义
57、分别从前端、后端、数据库阐述web项目的性能优化
58、使用pop和del删除字典中的"name"字段,dic={"name":"zs","age":18}
59、列出常见MYSQL数据存储引擎
60、计算代码运行结果,zip函数历史文章已经说了,得出[("a",1),("b",2),("c",3),("d",4),("e",5)]
61、简述同源策略
62、简述cookie和session的区别
63、简述多线程、多进程
64、简述any()和all()方法
65、IOError、AttributeError、ImportError、IndentationError、IndexError、KeyError、SyntaxError、NameError分别代表什么异常
66、python中copy和deepcopy区别
67、列出几种魔法方法并简要介绍用途
68、C:\Users\ry-wu.junya\Desktop>python 1.py 22 33命令行启动程序并传参,print(sys.argv)会输出什么数据?
69、请将[i for i in range(3)]改成生成器
70、a = " hehheh ",去除收尾空格
71、举例sort和sorted对列表排序,list=[0,-1,3,-10,5,9]
72、对list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],使用lambda函数从小到大排序
73、使用lambda函数对list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],输出结果为
[0,2,4,8,8,9,-2,-4,-4,-5,-20],正数从小到大,负数从大到小
74、列表嵌套字典的排序,分别根据年龄和姓名排序
75、列表嵌套元组,分别按字母和数字排序
76、列表嵌套列表排序,年龄数字相同怎么办?
77、根据键对字典排序(方法一,zip函数)
78、根据键对字典排序(方法二,不用zip)
79、列表推导式、字典推导式、生成器
80、最后出一道检验题目,根据字符串长度排序,看排序是否灵活运用
81、举例说明SQL注入和解决办法
82、s="info:xiaoZhang 33 shandong",用正则切分字符串输出['info', 'xiaoZhang', '33', 'shandong']
83、正则匹配以163.com结尾的邮箱
84、递归求和
85、python字典和json字符串相互转化方法
86、MyISAM 与 InnoDB 区别:
87、统计字符串中某字符出现次数
88、字符串转化大小写
89、用两种方法去空格
90、正则匹配不是以4和7结尾的手机号
91、简述python引用计数机制
92、int("1.4"),int(1.4)输出结果?
93、列举3条以上PEP8编码规范
94、正则表达式匹配第一个URL
95、正则匹配中文
96、简述乐观锁和悲观锁
97、r、r+、rb、rb+文件打开模式区别
98、Linux命令重定向 > 和 >>
99、正则表达式匹配出
www.itcast.cn
Linux环境变量隔代,python基础题 - osc_vwtuqll7的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐
- python 条件表达式换行_Python基础语法 - LongKing-Xu的个人空间 - OSCHINA - 中文开源技术交流社区...
python基础语法 一.标识符 在Python中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. 在Python中的标识符是区分大小写的. 在Python中以下划线开头的标识符是有 ...
- 关于linux内存管理说法不正确,Linux自我检测题 - osc_8wyy9cyu的个人空间 - OSCHINA - 中文开源技术交流社区...
因为工作需要开始使用Linux,决定跟着刘超老师学习趣谈Linux操作系统,记录下他出的12个练习题,把这套题目当作一个工具,在后面的不断学习中,一个个解答这些问题,还要时常回过头来检测一下自己,对照 ...
- jmu-python-函数-找钱_python函数题 - osc_wv1mxwu2的个人空间 - OSCHINA - 中文开源技术交流社区...
请大家严格按照下面顺序编写圆形生成器程序. : 定义函数getCircleArea(r),可以对指定r计算圆面积.计算公式math库的pi*r*r. 定义函数get_rList(n),功能:输入n个值 ...
- linux中nfs存储权限,NFS权限管理 - 麦苗的个人空间 - OSCHINA - 中文开源技术交流社区...
对于NFS中权限管理的理解,首先需要熟悉Linux中关于文件或文件夹的访问控制策略,其次要认识NFS中服务器如何控制客户端的访问. 默认情况下,Linux对于文件或文件夹的权限管理分为所属者(ownu ...
- linux rmi端口,RMI 两个端口 - 差不多先生的个人空间 - OSCHINA - 中文开源技术交流社区...
在项目中使用rmi,发布到linux,unix,由于开了防火墙.需要配置防火墙端口.刚开始配置了一个固定端口,死都连接不通,后来同netstat -antup |grep pid 查看进程监听的端口, ...
- linux冒泡算法程序,用蛮力法解决冒泡排序 - linux-tao的个人空间 - OSCHINA - 中文开源技术交流社区...
冒泡排序是蛮力法的另一个经典体现. 算法思想:比较列表中相邻的元素,如果是逆序的话,就交换他们的位置.重复多次之后,最大的元素就排到了最后一个位置.第二遍操作将第二个元素排到了倒数第二个位置上,这样一 ...
- mysql mtq_MySQL基础知识 - osc_r3mtqivi的个人空间 - OSCHINA - 中文开源技术交流社区
01)查看当前存在的全部数据库 show databases; 02)创建数据库 create database 数据库名称; 03)查看创建好的数据库信息 show create database ...
- 计算机硬件知识大赛,计算机硬件基础知识 - osc_v8xs2czi的个人空间 - OSCHINA - 中文开源技术交流社区...
一.编程 1.什么是编程?为何要编程? 编程就是程序员用计算机所能理解的表达方式(即编程语言)来将自己的思维逻辑写下来,编程的结果就是一堆文件,这些文件称之为软件或程序. 2.什么是编程语言? 语言就 ...
- java 写入环境变量_Java环境变量配置 - import_key的个人空间 - OSCHINA - 中文开源技术交流社区...
Java 环境变量和路径 在 Solaris 系统上,必须先设置 JAVA_HOME 和 PATH 环境变量,Sun Management Center 3.6 安装向导.设置向导和 Java 控制台 ...
最新文章
- linux(Ubuntu/Centos) iproute 路由IP地址等命令集合,查看端口链接
- Java有线程安全的set吗?
- 分享你的见解与经验|RocketMQ Summit 2022 议题征集中
- JDK 8 新特性 之 Lambda表达式
- 在Ubuntu 16.04环境下安装Docker-CE(附视频教程)
- SpringMVC 返回json的两种方式
- Java原子操作类AtomicInteger应用场景
- latex填充段落之间的留白
- Microsoft Edge 83 稳定版发布
- 每隔一段时间自动执行一次某个方法(使用线程)[C#]
- 图像处理与计算机视觉经典文章
- 远程管理 Mac OSX 设备
- Docker Redis 安装
- 分类算法学习(一)——KNN算法的原理及简单实现
- java ee课程目标
- 记:判断三个点是否在一条直线上
- qq企业邮箱怎么删除邮件服务器,腾讯企业邮箱如何删除邮件,有什么要注意的呢?...
- python2.7实现简单日记本,兼容windows和linux
- linux函数参数的长度限制,关于命令行长度限制
- Word高版本打开低版本显示兼容模式
热门文章
- 图像变换-图像拉伸、收缩、扭曲、旋转[1] - 仿射变换(cvWarpAffine)
- 梯度下降,损失函数-讲的很好
- php手绘功能,基于纯CSS3的6种手绘涂鸦按钮效果
- 服务器 声音文件 nginx,docker nginx搭建视频音频服务器
- 3字节转换为有符号整型C语言,3.C语言整型数据
- php 返回数组 键名,php array_keys 返回数组的键名
- hive python udf_python udf方法
- 计算机键盘的设计原理图,人体工程学键盘的设计原理
- php框架where条件使用,where条件
- 这里提供了在Linux上显示某个进程的线程的几种方式