Python面试题和技巧

最近学习Python知识发现忘记的很快而且每次找都比较麻烦,所以特意开始写笔记记录
里面都是一些个人整理收集觉得有用或者面试频率比较高的知识点,希望对大家有用,
不定期整理
具体链接

一,Python中_new__()与_init__()的区别

  1. _new__()用于创建实例,_init__()用于初始化实例,
  2. _new__()至少有一个cls,代表当前类;_init()至少有一个参数self,就是这个__new()返回的实例,_init__()在_new__()的基础上完成一些初始化的操作。
  3. _new__()必须有返回值,返回实例对象;_init__()不需要返回值。

二,Python列表[1,2,3,4]有多少种排列组合方式?

import itertools
lists = [1,2,3]
for i in itertools.permutations(lists,3):
    print(i)

运行程序输出:

(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)

三,Python装饰器实现简单单例模式

def singleton(cls,*args,**kwargs):
    instance = {}
    def _singleton()
        if cls not in instance:
            instance[cls] = cls(*args,**kwargs)
        return instance[cls]
    return _singleton

@singleton
class Test(object):
    def __init__(self):
        self.name = "Admin"
if __name__ == "__main__":
    P1 = Test()
    P2 = Test()
    print(P1,"\n",P2)
    print(P1==P2)

运行程序输出:

<__main__.Test object at 0x000001919D1C47B8> 
<__main__.Test object at 0x000001919D1C47B8>
True

四,@property装饰器的作用?

  • 定义私有类属性
    将property与装饰器结合实现属性私有化(更简单安全的实现get和set方法)
class Student(object):
    @property #相当于property.getter(score) 或者property(score)
    def score(self):
        return self.score
    @score.setter #相当于score = property.setter(score)
    def score(self,value):
        if not isinstance(value,int):
            return ValueError("Score must be an integer")
        if value < 0 or value > 100:
            return ValueError("Score must between 0~100")
if __name__ == "__main__":
    stu = Student()
    stu.score = 78 #相当于setter(score)设置分数
    print(stu.score) #相当于getter(score)获取分数

运行程序输出:

78

五,如何将字典的键值对互换?

  • 遍历方法
d1 = {"A":8,"B":65,"C":56}
d2 = {}
for key,value in d1.items():
    d2[value] = key
print(d2)
  • 字典推导式
d1 = {"A":8,"B":65,"C":56}
d2 = {key:value for value,key in d1.items()}
print(d2) 
  • zip函数
d1 = {"A":8,"B":65,"C":56}
d2 = dict(zip(d1.values(),d1.keys()))
print(d2)

运行程序输出:

{8: 'A', 65: 'B', 56: 'C'}

六,网络协议HTTP与HTTPS区别?

HTTP:是互联网上应用最广泛的一种网络协议,一个客户端和服务器请求应答的标准,用于从WWW服务器传输超文本到本地浏览器的传输协议。
HTTPS:是以安全为目标的HTTP通道,简单讲就是HTTP的安全版,即HTTP加入了SSL层,因此加密的详细内容就需要SSL。HTTPS 协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性

七,JSON与XML的区别?

  • JSON
{
    "name":"Tony",
    "score":89,
    "school":"清华”
}
  • XML
<student>
    <name>Tony</name>
    <score>89</score>
    <school>清华</school>
</student>

XML是一种扩展标记语言,可用来标记数据,定义数据类型,但XML不能描述数组;
JSON是一种轻量级数据交互格式,与Python中的字典非常相似,都是key-value的形式,而且JSON,dict可以通过dumps,loads互转。

八,MySQL如何备份和恢复数据?

  1. 备份库
#语法:mysql -h (数据库地址) -u (用户名) -p (数据库名) > 目录名:/xxx.sql
#windows下快捷键win + R 输入cmd回车(确认)在交互环境输入下面语句然后回车:
mysql -h localhost -u root -p mydb > D:/backup.sql
  1. 恢复库
#恢复的话很简单只需要将">"改为"<"即可,如下:
mysql -h localhost -u root -p mydb < D:/backup.sql

注意!
localhost代表你本机的IP地址,如果你的mysql在别的服务器上那就是服务器的IP地址,因为这里我mysql在我电脑上所以直接localhost即可,
root 一般默认即可,无需更改
mydb就是我自己建的库名,
这个代表你将要备份数据库到哪个路径下名字是什么,后缀以.sql结尾
这里需要注意的是如果你有一个备份需要恢复到某个库(比如mydb),当这个库不存在的时是需要你先建立一个mydb库才能恢复的

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ko-walski

太难了,求鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值