架构
实战:基于 RocketMQ 的电商高并发秒杀场景
“秒杀”这一业务场景在如今已经不是什么新鲜名词,它本质上属于短时突发性高并发访问问题,业务特点如下: 1. 定时触发,流量在瞬间突增 2. 秒杀请求中常常只有部分能够成功 3. 秒杀商品数量往往有限,不能超卖,但能接受少卖 4. 不要求立即返回真实下单结果 秒杀场景下,短时突发大流量的访问很容易对系统造成较大的访问压力,因此我们需要采取一定的措施对系统进行改造或者定制。 解决的思路就是“异步化”。而 RocketMQ 恰恰是实现业务异步化、削峰填谷的利器。 本篇 Chat 就是围绕高并发秒杀的实战场景,通过图解、编码、案例分析等方式对 RocketMQ 如何在实战中落地做一个较为详细的讲解。主要内容如下: 1. 了解“秒杀”业务的特点; 2. 学习“秒杀”业务的流程; 3. 分析“秒杀”业务的解决方案; 4. 使用 RocketMQ 进行“秒杀”收单; 5. 使用 RocketMQ 进行“秒杀”发单; 6. 自定义消息协议; 7. RocketMQ 集群搭建及管控台 console 的使用等。 --- 作者介绍: 李伟,Apache RocketMQ 北京社区联合发起人, RocketMQ 社区 Python 客户端负责人。对分布式系统设计和研发有丰富经验,对消息队列有深刻理解。目前在VIPKIP担任架构师,负责 VIPKID 消息平台的探索、研发和创新。 武文良,Apache RocketMQ 社区核心贡献者,高阳捷迅后端高级工程师。在电商充值、支付等核心交易链路研发经验丰富,尤其擅长商品秒杀等高并发场景系统设计与开发。
RocketMQ · RocketMQ
250 人已加入
架构
【线下活动 - 深圳】RocketMQ 官方开发者沙龙(深圳站)
本次沙龙是由 RocketMQ 官方主办,5 位重量级技术大牛,带来超级干货的实力分享,赶快来👉[报名参加](https://www.huodongxing.com/event/2500788490911)。 > <font color=#626262 size=2> 若您无法到场参加,但又希望与讲师交流,欢迎订阅本场 Chat,大家可以与讲师在技术群交流,入群的同学即可获得 **GitChat 礼券**。</font> > <font color=#F98D6A size=2> GitChat 作为 RocketMQ 社区内容合作伙伴,将共同维护此 RocketMQ 技术群。现社区讲师已经就位,等待热爱开源技术的 IT 人,赶快订阅本场 Chat 入群吧!!!</font> <font color=#3daad6>**嘉宾及主题:**</font> **1. 厉启鹏 ·《Apache RocketMQ 101》** > <font color=#626262 size=3>**个人简介:**个人简介:厉启鹏,Apache RocketMQ中国社区发起人,Linux OpenMessaging Advisory Board Member,阿里百年技术大学讲师。具有多年分布式消息系统等中间件架构设计及研发经验,对云计算机分布式系统有深刻理解,目前负责RocketMQ的研发以及社区生态建设。</font> > <font color=#626262 size=3> **内容简介:**Apache RocketMQ 101 是开发者进入 RocketMQ 世界的第一堂课。101 会介绍 RocketMQ 的基本情况包括发展历史、生态规划、社区动态,同时阐述 RocketMQ 的概念模型、功能特点以及基本使用方法,最后会讲解 RocketMQ 多云场景支持的最佳实践。</font> **2. 杜恒 ·《基于 RocketMQ Connect 构建全新数据流转处理平台》** > <font color=#626262 size=3>**个人简介:**个人简介:杜恒,Apache RocketMQ PMC Member/Committer, OpenMessaging TSC Member ,具有多年消息系统、微服务等中间件架构设计及研发经验,对云计算及分布式系统有深刻理解,目前负责 Apache RocketMQ 以及OpenMessaging 的研发以及标准建设工作。</font> > <font color=#626262 size=3> **内容简介:**RocketMQ Connect 是基于 OpenMessaging Connect 标准构建的一种用于在 RocketMQ 和其他系统之间可扩展的、可靠的流式传输数据的工具,可以更快捷和简单地将大量数据集合移入和移出 RocketMQ 的连接器,并进行简单的数据处理。</font> **3. 徐江 ·《Apache RocketMQ 在金融证券行业中的应用实践》** > <font color=#626262 size=3>**个人简介:**个人简介:徐江,Apache RocketMQ Committer,RocketMQ CPP客户端负责人,开源爱好者,曾先后就职于华为、腾讯和招商证券,具有多年高并发高可靠服务框架和分布式系统架构设计及研发经验,对消息中间件具有深刻理解。</font> > <font color=#626262 size=3> **内容简介:**消息中间件已然成为软件行业的标配,主要用于消息通信、异步化、业务解耦和肖峰填谷等等作用,结合金融证券行业的业务和数据特点,本次分享主要包含以下内容:</font> > <font color=#626262 size=3>1. RocketMQ 应用于券商中的具体场景</font> > > <font color=#626262 size=3>2. RocketMQ 支持的多种特性结合应用场景的实践</font> > > <font color=#626262 size=3>3. RocketMQ 使用过程中遇到问题及解决办法</font> **4. 陈子昂 ·《RocketMQ 在微服务架构体系的应用实践》** > <font color=#626262 size=3>**个人简介:**陈子昂,10多年 IT 研发经历,曾先后就职于民航系统、汽车金融、快消品和保健品行业的系统设计与研发工作,擅长微服务应用架构、高可用架构设计、稳定性工具研发,包括主要参与了引进推动阿里 RocketMQ 的落地工作。</font> > <font color=#626262 size=3> **内容简介:**微服务中台已经成为很多企业最为重要的技术基础设施,随着业务的发展,功能、服务越来越多,如何协调线上运行的各个服务,保障服务的 SLA 是一个很大的挑战。</font> **5. 陈广胜 ·《微众银行消息总线的架构演进》** > <font color=#626262 size=3>**个人简介:**陈广胜,微众银行资深技术专家,Linux OpenMessaging TSC Member,Apache RocketMQ Contributor,开源爱好者。负责云原生微服务、消息中间件、AIOps 等相关中台技术建设,支撑金融场景下的分布式海量业务处理,曾参与运营商云和大数据平台建设。</font> > <font color=#626262 size=3> **内容简介:**微众银行消息总线底层用到了RocketMQ,在这个基础上,我们做了很多增强的特性以及架构的调整,比如同步调用,灰度发布,同城多活,消息代理,消息超时,熔断,流量灰度,消息鉴权,Namesrv 一致性同步,TOPIC 的治理等,在可靠性方面,做到了在线平滑升级,故障机器的秒级容错等,这些特性都在生产经过检验,后续逐步开源出来。</font> 时间:2019.07.27(周六) 13:00-18:00 地点:深圳市南山区沙河西路 1819 号深圳湾科技生态园 7 栋 A 座微众银行 <font color=#3daad6>【本次线下活动报名:</font>👉[请戳这里](https://www.huodongxing.com/event/2500788490911)👈<font color=#3daad6>】</font> <font color=#3daad6>**相关活动:**</font>[《实战:基于 RocketMQ 的电商高并发秒杀场景》](https://gitbook.cn/gitchat/activity/5d1d6171bdaa30360df3b138) <img src="https://images.gitbook.cn/FvL4DJ5sp8IlXXjYrIa7umJyDin3" width = 99% height = 99% />
RocketMQ · RocketMQ
65 人已加入
职场
如何在一夜之间获得成功:我「从无到有」的 5 年 [英文版]
>「所谓忠告就是一部自传,别无他物。」——詹姆斯 · 阿尔图切尔 把过去的想法和轶事重新拿出来写成书或者文章是很简单的。但是把你遇到的困境,以一种与他人相关的方式说出来,则是一件更加困难但却有益的事。我想做的,就是以这样的方式讲讲**我的故事**。 我仍然处在「正在进行时」,但是我已经取得了很多让我为之骄傲的成就:我写了几本书、找到了我热爱的事业、我在上千人面前演讲,我还为喜欢我作品的人建立了一个平台。我可以轻松把我经历中不符合大牛身份的部分粉饰过去,就像那些在一夜之间成名的牛人所分享的通往成功的「3 个小诀窍」,但这对你没有好处。 成功和小花招、小诀窍,甚至短期策略都没有关系。成功的真谛在于枯燥但有效的理念,比如努力、耐心,以及重复。这个你已经知道了,但有时候你需要有人为你拨开窗帘,把这个过程展示给你看。 在这篇文章中,我将把我从破产到获得成功的 5 年经历分步骤讲给你听,包括我遇到的挫折、产生的困惑,以及我从中吸取的宝贵经验。 现在的我仍然没有停止脚步,我还要做得更好。成功地提升自己并不是终点,而是一种持续演进的状态。只要我还活着,我就会一直追逐自己的目标,因为这才是生命最好的状态。 PS:此文曾获得 4000 多次点赞,别错过 ------ 作者:Ayodeji Awosika Medium 资深博主。一个热爱写作的人,出版了 [*The Destiny Formula*](https://www.amazon.com/Destiny-Formula-Purpose-Strengths-Successful-ebook/dp/B019ZJG6JU/ref=sr_1_3?keywords=Ayodeji+Awosika&qid=1560324656&s=gateway&sr=8-3), [*You 2.0*](https://www.amazon.com/You-2-0-Reinvent-Yourself-Transformation-ebook/dp/B06XY3GFDS/ref=sr_1_1?keywords=Ayodeji+Awosika&qid=1560324386&s=gateway&sr=8-1) 等书,个人网站:<http://ayotheauthor.com>
Chat 三人行 · GitChat 特色栏目
493 人已加入
编程语言
Python 常见的 170 道面试题全解析:2019 版
最近在刷面试题,所以需要看大量的 Python 相关的面试题,从大量的题目中总结了很多的知识,同时也对一些题目进行拓展了,但是在看了网上的大部分面试题不是很满意,一个是有些部分还是 Python2 的代码,另一个就是回答的很简单,有些关键的题目,也没有点出为什么,最重要的是还有一些复制粘贴根本就跑不通,这种相信大家深有体会吧,这样就导致我们可能需要去找其他人发的类似的教程。难受啊,所以我决定针对市面上大多的 Python 题目做一个分析,同时也希望大家尽可能的做到举一反三,而不是局限于题目本身。大概就这样吧,有你看过的题目也有你没看到过的。 <div class="output_wrapper" id="output_wrapper_id" style="font-size: 15px; color: rgb(0, 0, 0); line-height: 1.5; word-spacing: 1px; letter-spacing: 1px; font-family: 'Microsoft YaHei'; background-image: linear-gradient(90deg, rgba(50, 0, 0, 0.05) 3%, rgba(0, 0, 0, 0) 3%), linear-gradient(360deg, rgba(50, 0, 0, 0.05) 3%, rgba(0, 0, 0, 0) 3%); background-size: 20px 20px; background-position: center center;"> <h3 id="hchat" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; border-bottom: 2px solid rgb(239, 112, 96); font-size: 1.3em;"><span style="font-size: inherit; line-height: inherit; margin: 0px; display: inline-block; font-weight: normal; background: rgb(239, 112, 96); color: rgb(255, 255, 255); padding: 3px 10px 1px; border-top-right-radius: 3px; border-top-left-radius: 3px; margin-right: 3px;">通过本场 Chat,你将获得如下知识点:</span><span style="display: inline-block; vertical-align: bottom; border-bottom: 36px solid rgb(239, 235, 233); border-right: 20px solid transparent;"> </span></h3> <ul style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; padding-left: 32px; list-style-type: disc;"> <li style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; margin-bottom: 0.5em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">掌握 Python 的基础语法</span></li> <li style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; margin-bottom: 0.5em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">语法常见的 Python 应用场景</span></li> <li style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; margin-bottom: 0.5em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">掌握 Python 闭包的使用以及装饰器的使用</span></li> <li style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; margin-bottom: 0.5em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">生成器和迭代器的使用</span></li> <li style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; margin-bottom: 0.5em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">常见的设计模式的使用</span></li> <li style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; margin-bottom: 0.5em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">深浅拷贝的区别</span></li> <li style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; margin-bottom: 0.5em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">线程、进程、协程的使用</span></li> <li style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; margin-bottom: 0.5em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">了解 Python 中的元编程和反射</span></li> <li style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; margin-bottom: 0.5em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">常考的数据结构和算法</span></li> <li style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; margin-bottom: 0.5em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">爬虫相关知识,网络编程基本知识等</span></li> </ul> <h3 id="h-1" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; border-bottom: 2px solid rgb(239, 112, 96); font-size: 1.3em;"><span style="font-size: inherit; line-height: inherit; margin: 0px; display: inline-block; font-weight: normal; background: rgb(239, 112, 96); color: rgb(255, 255, 255); padding: 3px 10px 1px; border-top-right-radius: 3px; border-top-left-radius: 3px; margin-right: 3px;">所有题目</span><span style="display: inline-block; vertical-align: bottom; border-bottom: 36px solid rgb(239, 235, 233); border-right: 20px solid transparent;"> </span></h3> <h4 id="h-2" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; font-size: 1.2em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">语言特性</span></h4> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">1.谈谈对 Python 和其他语言的区别<br>2.简述解释型和编译型编程语言<br>3.Python 的解释器种类以及相关特点?<br>4.说说你知道的Python3 和 Python2 之间的区别?<br>5.Python3 和 Python2 中 int 和 long 区别?<br>6.xrange 和 range 的区别?</p> <h4 id="h-3" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; font-size: 1.2em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">编码规范</span></h4> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">7.什么是 PEP8?<br>8.了解 Python 之禅么?<br>9.了解 docstring 么?<br>10.了解类型注解么?<br>11.例举你知道 Python 对象的命名规范,例如方法或者类等<br>12.Python 中的注释有几种?<br>13.如何优雅的给一个函数加注释?<br>14.如何给变量加注释?<br>15.Python 代码缩进中是否支持 Tab 键和空格混用。<br>16.是否可以在一句 import 中导入多个库?<br>17.在给 Py 文件命名的时候需要注意什么?<br>18.例举几个规范 Python 代码风格的工具</p> <h4 id="h-4" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; font-size: 1.2em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">数据类型</span></h4> <h5 id="h-5" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; font-size: 1em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">字符串</span></h5> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">19.列举 Python 中的基本数据类型?<br>20.如何区别可变数据类型和不可变数据类型<br>21.将"hello world"转换为首字母大写"Hello World"<br>22.如何检测字符串中只含有数字?<br>23.将字符串"ilovechina"进行反转<br>24.Python 中的字符串格式化方式你知道哪些?<br>25.有一个字符串开头和末尾都有空格,比如“ adabdw ”,要求写一个函数把这个字符串的前后空格都去掉。<br>26.获取字符串”123456“最后的两个字符。<br>27.一个编码为 GBK 的字符串 S,要将其转成 UTF-8 编码的字符串,应如何操作?<br>28. (1)s="info:xiaoZhang 33 shandong",用正则切分字符串输出['info', 'xiaoZhang', '33', 'shandong'](2) a = "你好 中国 ",去除多余空格只留一个空格。<br>29. (1)怎样将字符串转换为小写 (2)单引号、双引号、三引号的区别?</p> <h5 id="h-6" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; font-size: 1em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">列表</span></h5> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">30.已知 AList = [1,2,3,1,2],对 AList 列表元素去重,写出具体过程。<br>31.如何实现 "1,2,3" 变成 ["1","2","3"]<br>32.给定两个 list,A 和 B,找出相同元素和不同元素<br>33.[[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]<br>34.合并列表[1,5,7,9]和[2,2,6,8]<br>35.如何打乱一个列表的元素?</p> <h5 id="h-7" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; font-size: 1em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">字典</span></h5> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">36.字典操作中 del 和 pop 有什么区别<br>37.按照字典的内的年龄排序</p> <pre style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;"><code class="hljs bash" style="overflow-wrap: break-word; margin: 0px 2px; line-height: 18px; font-size: 14px; font-weight: normal; word-spacing: 0px; letter-spacing: 0px; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 0px; color: rgb(169, 183, 198); background: rgb(40, 43, 46); overflow-x: auto; padding: 0.5em; display: block !important; white-space: pre !important; word-wrap: normal !important; word-break: normal !important; overflow: auto !important;">d1&nbsp;=&nbsp;[<br>&nbsp;&nbsp;&nbsp;&nbsp;{<span class="hljs-string" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(238, 220, 112); word-wrap: inherit !important; word-break: inherit !important;">'name'</span>:<span class="hljs-string" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(238, 220, 112); word-wrap: inherit !important; word-break: inherit !important;">'alice'</span>,&nbsp;<span class="hljs-string" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(238, 220, 112); word-wrap: inherit !important; word-break: inherit !important;">'age'</span>:38},<br>&nbsp;&nbsp;&nbsp;&nbsp;{<span class="hljs-string" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(238, 220, 112); word-wrap: inherit !important; word-break: inherit !important;">'name'</span>:<span class="hljs-string" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(238, 220, 112); word-wrap: inherit !important; word-break: inherit !important;">'bob'</span>,&nbsp;<span class="hljs-string" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(238, 220, 112); word-wrap: inherit !important; word-break: inherit !important;">'age'</span>:18},<br>&nbsp;&nbsp;&nbsp;&nbsp;{<span class="hljs-string" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(238, 220, 112); word-wrap: inherit !important; word-break: inherit !important;">'name'</span>:<span class="hljs-string" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(238, 220, 112); word-wrap: inherit !important; word-break: inherit !important;">'Carl'</span>,&nbsp;<span class="hljs-string" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(238, 220, 112); word-wrap: inherit !important; word-break: inherit !important;">'age'</span>:28},<br>]<br></code></pre> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">38.请合并下面两个字典 a = {"A":1,"B":2},b = {"C":3,"D":4}<br>39.如何使用生成式的方式生成一个字典,写一段功能代码。<br>40.如何把元组("a","b")和元组(1,2),变为字典{"a":1,"b":2}</p> <h5 id="h-8" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; font-size: 1em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">综合</span></h5> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">41.Python 常用的数据结构的类型及其特性?</p> <pre style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;"><code class="hljs makefile" style="overflow-wrap: break-word; margin: 0px 2px; line-height: 18px; font-size: 14px; font-weight: normal; word-spacing: 0px; letter-spacing: 0px; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 0px; color: rgb(169, 183, 198); background: rgb(40, 43, 46); overflow-x: auto; padding: 0.5em; display: block !important; white-space: pre !important; word-wrap: normal !important; word-break: normal !important; overflow: auto !important;"><span class="hljs-section" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">A:{1:0,2:0,3:0}</span><br><span class="hljs-section" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">B:{"a":0,&nbsp;"b":0,&nbsp;"c":0}</span><br><span class="hljs-section" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">C:&nbsp;{(1,2):0,&nbsp;(2,3):0}</span><br><span class="hljs-section" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">D:&nbsp;{[1,2]:0,&nbsp;[2,3]:0}</span><br></code></pre> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">42.如何交换字典 {"A":1,"B":2}的键和值?<br>43.Python 里面如何实现 tuple 和 list 的转换?<br>44.我们知道对于列表可以使用切片操作进行部分元素的选择,那么如何对生成器类型的对象实现相同的功能呢?<br>45.请将[i for i in range(3)]改成生成器<br>46.a="hello"和 b="你好"编码成 bytes 类型<br>47.下面的代码输出结果是什么?</p> <pre style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;"><code class="hljs ini" style="overflow-wrap: break-word; margin: 0px 2px; line-height: 18px; font-size: 14px; font-weight: normal; word-spacing: 0px; letter-spacing: 0px; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 0px; color: rgb(169, 183, 198); background: rgb(40, 43, 46); overflow-x: auto; padding: 0.5em; display: block !important; white-space: pre !important; word-wrap: normal !important; word-break: normal !important; overflow: auto !important;"><span class="hljs-attr" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">a</span>&nbsp;=&nbsp;(<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">1</span>,<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">2</span>,<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">3</span>,[<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">4</span>,<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">5</span>,<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">6</span>,<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">7</span>],<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">8</span>)<br><span class="hljs-attr" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">a[2]</span>&nbsp;=&nbsp;<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">2</span><br></code></pre> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">48.下面的代码输出的结果是什么?</p> <pre style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;"><code class="hljs ini" style="overflow-wrap: break-word; margin: 0px 2px; line-height: 18px; font-size: 14px; font-weight: normal; word-spacing: 0px; letter-spacing: 0px; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 0px; color: rgb(169, 183, 198); background: rgb(40, 43, 46); overflow-x: auto; padding: 0.5em; display: block !important; white-space: pre !important; word-wrap: normal !important; word-break: normal !important; overflow: auto !important;"><span class="hljs-attr" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">a</span>&nbsp;=&nbsp;(<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">1</span>,<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">2</span>,<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">3</span>,[<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">4</span>,<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">5</span>,<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">6</span>,<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">7</span>],<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">8</span>)<br><span class="hljs-attr" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">a[3][0]</span>&nbsp;=&nbsp;<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">2</span><br></code></pre> <h4 id="h-9" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; font-size: 1.2em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">操作类题目</span></h4> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">49.Python 交换两个变量的值<br>50.在读文件操作的时候会使用 read、readline 或者 readlines,简述它们各自的作用<br>51.json 序列化时,可以处理的数据类型有哪些?如何定制支持 datetime 类型?<br>52.json 序列化时,默认遇到中文会转换成 unicode,如果想要保留中文怎么办?<br>53.有两个磁盘文件 A 和 B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件 C 中。<br>54.如果当前的日期为 20190530,要求写一个函数输出 N 天后的日期,(比如 N 为 2,则输出 20190601)。<br>55.写一个函数,接收整数参数 n,返回一个函数,函数的功能是把函数的参数和 n 相乘并把结果返回。<br>56.下面代码会存在什么问题,如何改进?</p> <pre style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;"><code class="hljs python" style="overflow-wrap: break-word; margin: 0px 2px; line-height: 18px; font-size: 14px; font-weight: normal; word-spacing: 0px; letter-spacing: 0px; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 0px; color: rgb(169, 183, 198); background: rgb(40, 43, 46); overflow-x: auto; padding: 0.5em; display: block !important; white-space: pre !important; word-wrap: normal !important; word-break: normal !important; overflow: auto !important;"><span class="hljs-function" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">def</span>&nbsp;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">strappend</span><span class="hljs-params" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(255, 152, 35); word-wrap: inherit !important; word-break: inherit !important;">(num)</span>:</span><br>&nbsp;&nbsp;&nbsp;&nbsp;str=<span class="hljs-string" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(238, 220, 112); word-wrap: inherit !important; word-break: inherit !important;">'first'</span><br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">for</span>&nbsp;i&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">in</span>&nbsp;range(num):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str+=str(i)<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">return</span>&nbsp;str<br></code></pre> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">57.一行代码输出 1-100 之间的所有偶数。<br>58.with 语句的作用,写一段代码?<br>59.python 字典和 json 字符串相互转化方法<br>60.请写一个 Python 逻辑,计算一个文件中的大写字母数量<br>61. 请写一段 Python连接 Mongo 数据库,然后的查询代码。<br>62.说一说 Redis 的基本类型。<br>63. 请写一段 Python连接 Redis 数据库的代码。<br>64. 请写一段 Python 连接 MySQL 数据库的代码。<br>65.了解 Redis 的事务么?<br>66.了解数据库的三范式么?<br>67.了解分布式锁么?<br>68.用 Python 实现一个 Reids 的分布式锁的功能。<br>69.写一段 Python 使用 Mongo 数据库创建索引的代码。</p> <h4 id="h-10" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; font-size: 1.2em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">高级特性</span></h4> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">70.函数装饰器有什么作用?请列举说明?<br>71.Python 垃圾回收机制?<br>72.魔法函数 __call__怎么使用?<br>73.如何判断一个对象是函数还是方法?<br>74.@classmethod 和@staticmethod 用法和区别<br>75.Python 中的接口如何实现?<br>76.Python 中的反射了解么?<br>77.metaclass 作用?以及应用场景?<br>78.hasattr() getattr() setattr()的用法<br>79.请列举你知道的 Python 的魔法方法及用途。<br>80.如何知道一个 Python 对象的类型?<br>81.Python 的传参是传值还是传址?<br>82.Python 中的元类(metaclass)使用举例<br>83.简述 any()和 all()方法<br>84.filter 方法求出列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]<br>85.什么是猴子补丁?<br>86.在 Python 中是如何管理内存的?<br>87.当退出 Python 时是否释放所有内存分配?</p> <h4 id="h-11" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; font-size: 1.2em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">正则表达式</span></h4> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">88.使用正则表达式匹配出&lt;html&gt;&lt;h1&gt;www.baidu.com&lt;/html&gt;中的地址<br>a="张明 98 分",用 re.sub,将 98 替换为 100<br>89.正则表达式匹配中(.*)和(.*?)匹配区别?<br>90.写一段匹配邮箱的正则表达式</p> <h4 id="h-12" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; font-size: 1.2em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">其他内容</span></h4> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">91.解释一下 python 中 pass 语句的作用?<br>92.简述你对 input()函数的理解<br>93.python 中的 is 和==<br>94.Python 中的作用域<br>95.三元运算写法和应用场景?<br>96.了解 enumerate 么?<br>97.列举 5 个 Python 中的标准模块<br>98.如何在函数中设置一个全局变量<br>99.pathlib 的用法举例<br>100.Python 中的异常处理,写一个简单的应用场景<br>101.Python 中递归的最大次数,那如何突破呢?<br>102.什么是面向对象的 mro<br>103.isinstance 作用以及应用场景?<br>104.什么是断言?应用场景?<br>105.lambda 表达式格式以及应用场景?<br>106.新式类和旧式类的区别<br>107.dir()是干什么用的?<br>108.一个包里有三个模块,demo1.py, demo2.py, demo3.py,但使用 from tools import *导入模块时,如何保证只有 demo1、demo3 被导入了。<br>109.列举 5 个 Python 中的异常类型以及其含义<br>110.copy 和 deepcopy 的区别是什么?<br>111.代码中经常遇到的*args, **kwargs 含义及用法。<br>112.Python 中会有函数或成员变量包含单下划线前缀和结尾,和双下划线前缀结尾,区别是什么?<br>113.w、a+、wb 文件写入模式的区别<br>114.举例 sort 和 sorted 的区别<br>115.什么是负索引?<br>116.pprint 模块是干什么的?<br>117.解释一下 Python 中的赋值运算符<br>118.解释一下 Python 中的逻辑运算符<br>119.讲讲 Python 中的位运算符<br>120.在 Python 中如何使用多进制数字?<br>121.怎样声明多个变量并赋值?</p> <h4 id="h-13" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; font-size: 1.2em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">算法和数据结构</span></h4> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">122.已知:</p> <pre style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;"><code class="hljs ini" style="overflow-wrap: break-word; margin: 0px 2px; line-height: 18px; font-size: 14px; font-weight: normal; word-spacing: 0px; letter-spacing: 0px; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 0px; color: rgb(169, 183, 198); background: rgb(40, 43, 46); overflow-x: auto; padding: 0.5em; display: block !important; white-space: pre !important; word-wrap: normal !important; word-break: normal !important; overflow: auto !important;"><span class="hljs-attr" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">AList</span>&nbsp;=&nbsp;[<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">1</span>,<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">2</span>,<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">3</span>]<br><span class="hljs-attr" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">BSet</span>&nbsp;=&nbsp;{<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">1</span>,<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">2</span>,<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">3</span>}<br></code></pre> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">(1) 从 AList 和 BSet 中 查找 4,最坏时间复杂度那个大?<br>(2) 从 AList 和 BSet 中 插入 4,最坏时间复杂度那个大?<br>123.用 Python 实现一个二分查找的函数<br>124.python 单例模式的实现方法<br>125.使用 Python 实现一个斐波那契数列<br>126.找出列表中的重复数字<br>127.找出列表中的单个数字<br>128.写一个冒泡排序<br>129.写一个快速排序<br>130.写一个拓扑排序<br>131.python 实现一个二进制计算<br>132.有一组“+”和“-”符号,要求将“+”排到左边,“-”排到右边,写出具体的实现方法。<br>133.单链表反转<br>134.交叉链表求交点<br>135.用队列实现栈<br>136.找出数据流的中位数<br>137.二叉搜索树中第 K 小的元素</p> <h4 id="h-14" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; font-size: 1.2em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">爬虫相关</span></h4> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">138.在 requests 模块中,requests.content 和 requests.text 什么区别<br>139.简要写一下 lxml 模块的使用方法框架<br>140.说一说 scrapy 的工作流程<br>141.scrapy 的去重原理<br>142.scrapy 中间件有几种类,你用过哪些中间件<br>143.你写爬虫的时候都遇到过什么?反爬虫措施,你是怎么解决的?<br>144.为什么会用到代理?<br>145.代理失效了怎么处理?<br>146.列出你知道 header 的内容以及信息<br>147.说一说打开浏览器访问 www.baidu.com 获取到结果,整个流程。<br>148.爬取速度过快出现了验证码怎么处理<br>149.scrapy 和 scrapy-redis 有什么区别?为什么选择 redis 数据库?<br>150.分布式爬虫主要解决什么问题<br>151.写爬虫是用多进程好?还是多线程好? 为什么?<br>152.解析网页的解析器使用最多的是哪几个<br>153.需要登录的网页,如何解决同时限制 ip,cookie,session(其中有一些是动态生成的)在不使用动态爬取的情况下?<br>154.验证码的解决(简单的:对图像做处理后可以得到的,困难的:验证码是点击,拖动等动态进行的?)<br>155.使用最多的数据库(mysql,mongodb,redis 等),对他的理解?</p> <h4 id="h-15" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; font-size: 1.2em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">网络编程</span></h4> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">156.TCP 和 UDP 的区别?<br>157.简要介绍三次握手和四次挥手<br>158.什么是粘包? socket 中造成粘包的原因是什么? 哪些情况会发生粘包现象?</p> <h4 id="h-16" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; font-size: 1.2em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">并发</span></h4> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">159.举例说明 conccurent.future 的中线程池的用法<br>160.说一说多线程,多进程和协程的区别。<br>161.简述 GIL<br>162.进程之间如何通信<br>163.IO 多路复用的作用?<br>164.select、poll、epoll 模型的区别?<br>165.什么是并发和并行?<br>166.一个线程 1 让线程 2 去调用一个函数怎么实现?<br>167.解释什么是异步非阻塞?<br>168.threading.local 的作用?</p> <h4 id="hgit" style="color: inherit; line-height: inherit; padding: 0px; margin: 1em 0px; font-weight: bold; font-size: 1.2em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">Git 面试题</span></h4> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0.5em 0px;">169.说说你知道的 git 命令<br>170.git 如何查看某次提交修改的内容</p></div>
陈祥安 · 高级爬虫工程师
1836 人已加入
微信扫描登录