From 6e447efb56c65f87cd4c2b15b0208374ae1f0169 Mon Sep 17 00:00:00 2001 From: wdhxm52 <1010524947@qq.com> Date: Mon, 14 Oct 2019 11:28:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=B4=BE=E5=85=B4=E6=98=8E=20HTTPS?= =?UTF-8?q?=E4=B8=8D=E6=B8=85=E6=A5=9A=20=E6=B5=8F=E8=A7=88=E5=99=A8?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E6=95=B4=E4=B8=AA=E8=BF=87=E7=A8=8B=E6=A8=A1?= =?UTF-8?q?=E7=B3=8A=20linux=E5=91=BD=E4=BB=A4=E6=AC=A0=E7=BC=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- python-interview-2019-3.md | 84 ++++++++++++++++++++++++++++++++------ 1 file changed, 71 insertions(+), 13 deletions(-) diff --git a/python-interview-2019-3.md b/python-interview-2019-3.md index 66cf49b..289e416 100644 --- a/python-interview-2019-3.md +++ b/python-interview-2019-3.md @@ -2,7 +2,7 @@ > **答题要求**:将该项目从[地址1]()或[地址2]()**fork**到自己的[GitHub]()或[Gitee](https://gitee.com)仓库并在线填写答案,完成后以发送合并请求(**Pull Request**)的方式提交自己的工作成果,时间120分钟。 -#### 答题人: +#### 答题人: 贾兴明 #### 题目: @@ -17,7 +17,9 @@ 答案: ``` - + [('a', 1), ('b', 2), ('c', 3), ('d', 4)] + {1: 'item1', 3: 'item9'} + 9 ``` 2. 下面的Python代码会输出什么。 @@ -32,7 +34,7 @@ 答案: ``` - + 13 ``` 3. 对于第2题的代码,如果要实现相同的功能,用生成式应该怎么写? @@ -40,7 +42,7 @@ 答案: ```Python - + int(sum([x // 2 for x in [item for item in items if x ** 2 > 150]])) ``` 4. 用一行代码实现将字符串`k1:v1|k2:v2|k3:v3`处理成字典`{'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}`。 @@ -48,7 +50,8 @@ 答案: ```Python - + str1 = 'k1:v1|k2:v2|k3:v3' + {item.split(':')[0]:item.split(':')[1] for item in str1.split('|') ``` 5. 写一个装饰函数的装饰器,实现如果函数的返回值是字符串类型,就将该字符串每个单词的首字母大写(不用考虑非英文字符串的情况)。 @@ -56,7 +59,15 @@ 答案: ```Python - + import re + def wor(func): + def f1(*args, **kwargs): + result = func(*args, **kwargs) + if result[0] in re'[A-Z]': + return result + else: + return result. + return f1 ``` 6. 下面的字典中保存了某些公司股票的代码(字典中的键)及价格(字典中的值,以美元为单位),用一行代码从中找出价格最高的股票对应的股票代码,再用一行代码将股价高于100美元的股票创建成一个新的字典。 @@ -78,7 +89,8 @@ 答案: ```Python - + [k for key, value in prices.items() if value == max(prices.values())] + {key:value for key, value in prices.items() if value > 100} ``` 7. 写一个函数,返回删除列表中重复元素后的新列表,要求保留原有列表元素的顺序。 @@ -86,7 +98,14 @@ 答案: ```Python - + def del(list1): + if len(list1) < 2: + return list1 + powr = [] + for item in list1: + if item not in powr: + powr.append(item) + return powr ``` 8. 写一个函数,该函数的参数是一个保存字符串的列表,列表中某个字符串出现次数占列表元素总数的半数以上,找出并返回这个字符串。 @@ -94,7 +113,13 @@ 答案: ```Python - + def func(list_str): + df = Counter(list_str) + str_num = [] + for item in df: + if item.values() > len(list_str) // 2: + str_num.append(item.keys()) + return str_num ``` 9. MySQL关系型数据库中有三张表分别表示用户、房源和租房记录,表结构如下所示。 @@ -146,7 +171,33 @@ 答案: ```SQL - + 查询租过编号为1055的房源的用户姓名。 + select + username + from tb_user + where userid=( + selece + userid + from tb_record + where houseid=1055); + 查询租过三套以上房子且登记了手机号码的用户姓名。 + select + username + from tb_user + where userid=( + select + userid + from tb_record + where count(userid) > 3 and exist(usertel)); + 查询2018年被租过两次以上目前仍然处于出租状态且面积超过50平米的房源编号和标题。 + select + houseid, title + from tb_house t1 + where area > 50 inner join ( + select + houseid + from tb_record + where indate > '2017-12-31' and outdate < '2019-01-01' and count(houseid) > 2) t2 t1.houseid=t2.houseid; ``` 10. 请阐述访问一个用Django或Flask开发的Web应用,从用户在浏览器中输入网址回车到浏览器收到Web页面的整个过程中,到底发生了哪些事情,越详细越好。 @@ -154,7 +205,14 @@ 答案: ``` - + 1.浏览器请求 + 2.域名解析 + 3.服务器路由匹配 + 4.封装request请求 + 5.开始执行相应的视图函数 + 6.通过模型层去数据库读写数据 + 7.对数据进行封装返回 + 8.浏览器解析数据显示页面 ``` 11. 请阐述HTTPS的工作原理以及TCP是如何保证端到端可靠传输的。 @@ -162,7 +220,7 @@ 答案: ``` - + 给请求加SSL证书 ``` 12. 在Linux系统中,假设Nginx的访问日志位于`/var/log/nginx/access.log`,该文件的每一行代表一条访问记录,每一行都由若干列(以制表键分隔)构成,其中第1列记录了访问者的IP地址,如下所示。请用一行命令找出最近的100000次访问中,访问频率最高的IP地址及访问次数。 @@ -181,5 +239,5 @@ 答案: ```Shell - + cat ``` \ No newline at end of file -- Gitee From fb70c47bdefd67dc7bd0c8e4a06648f2ab5533e9 Mon Sep 17 00:00:00 2001 From: wdhxm52 <1010524947@qq.com> Date: Mon, 14 Oct 2019 11:36:12 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=B4=BE=E5=85=B4=E6=98=8E=20HTTPS?= =?UTF-8?q?=E4=B8=8D=E6=B8=85=E6=A5=9A=20=E6=B5=8F=E8=A7=88=E5=99=A8?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E6=95=B4=E4=B8=AA=E8=BF=87=E7=A8=8B=E6=A8=A1?= =?UTF-8?q?=E7=B3=8A=20linux=E5=91=BD=E4=BB=A4=E6=AC=A0=E7=BC=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- python-interview-2019-3.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python-interview-2019-3.md b/python-interview-2019-3.md index 289e416..6a237cc 100644 --- a/python-interview-2019-3.md +++ b/python-interview-2019-3.md @@ -51,7 +51,7 @@ ```Python str1 = 'k1:v1|k2:v2|k3:v3' - {item.split(':')[0]:item.split(':')[1] for item in str1.split('|') + {item.split(':')[0]:item.split(':')[1] for item in str1.split('|')} ``` 5. 写一个装饰函数的装饰器,实现如果函数的返回值是字符串类型,就将该字符串每个单词的首字母大写(不用考虑非英文字符串的情况)。 @@ -66,7 +66,7 @@ if result[0] in re'[A-Z]': return result else: - return result. + return result.capitalzip() return f1 ``` -- Gitee