diff --git a/python-interview-2019-3.md b/python-interview-2019-3.md index 66cf49b285eb715a22bbd1a8cd1e798f52b5097a..8aa225a1a67d455062b72b7c39a32b4d59ec5e52 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分钟。 -#### 答题人: +#### 答题人:蒲世玉 #### 题目: @@ -16,9 +16,13 @@ 答案: - ``` + ~~~python + [(a,1),(b,2),(c,3),(d,4)] + {4,16} + 8 + ~~~ + - ``` 2. 下面的Python代码会输出什么。 @@ -32,7 +36,7 @@ 答案: ``` - + 13 ``` 3. 对于第2题的代码,如果要实现相同的功能,用生成式应该怎么写? @@ -40,7 +44,7 @@ 答案: ```Python - + print(sum(x) for x in items if x**2>150) ``` 4. 用一行代码实现将字符串`k1:v1|k2:v2|k3:v3`处理成字典`{'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}`。 @@ -48,7 +52,7 @@ 答案: ```Python - + dict(sprint(":",'=',split('k1:v1|k2:v2|k3:v3', '|')) ``` 5. 写一个装饰函数的装饰器,实现如果函数的返回值是字符串类型,就将该字符串每个单词的首字母大写(不用考虑非英文字符串的情况)。 @@ -56,7 +60,12 @@ 答案: ```Python - + def decorate(func): + def reson(*args, **kwargs): + result = func() + if type(result) == 'str': + return result.title() + return result ``` 6. 下面的字典中保存了某些公司股票的代码(字典中的键)及价格(字典中的值,以美元为单位),用一行代码从中找出价格最高的股票对应的股票代码,再用一行代码将股价高于100美元的股票创建成一个新的字典。 @@ -78,7 +87,8 @@ 答案: ```Python - + print(max(prices,key=lambda x: x.values()) + new_prices={x for x in prices if x.values()>100} ``` 7. 写一个函数,返回删除列表中重复元素后的新列表,要求保留原有列表元素的顺序。 @@ -86,7 +96,12 @@ 答案: ```Python - + def func(list_1): + new_list = [] + for item in list_1: + if item not in new_list: + new_list.append(item) + return new_list ``` 8. 写一个函数,该函数的参数是一个保存字符串的列表,列表中某个字符串出现次数占列表元素总数的半数以上,找出并返回这个字符串。 @@ -94,7 +109,13 @@ 答案: ```Python + fron collections import Counter + def func(str_list): + list_count = Counter(str_list) + for index in len(list_count): + if list_count[index] > len(str_list)//2: + return str_list[index] ``` 9. MySQL关系型数据库中有三张表分别表示用户、房源和租房记录,表结构如下所示。 @@ -146,6 +167,21 @@ 答案: ```SQL + select username + from tb_user + where userid=( + select userid + from tb_record + where houseid=1055 + ); + + select u.username + from tb_record as r + inner join tb_user as u + on u.usertel is not null + group by userid + having count(u.userid) gte 3; + ``` @@ -154,7 +190,7 @@ 答案: ``` - + 返回一个url,调用views中的函数,通过模型层与数据库交互,返回视图,实现数据持久化 ``` 11. 请阐述HTTPS的工作原理以及TCP是如何保证端到端可靠传输的。 @@ -162,7 +198,7 @@ 答案: ``` - + https可靠的安全传输,遵守ssh协议,把数据分成小段传输, ``` 12. 在Linux系统中,假设Nginx的访问日志位于`/var/log/nginx/access.log`,该文件的每一行代表一条访问记录,每一行都由若干列(以制表键分隔)构成,其中第1列记录了访问者的IP地址,如下所示。请用一行命令找出最近的100000次访问中,访问频率最高的IP地址及访问次数。