程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(1)

Python面试题(十六)

发布于2019-07-17 19:31     阅读(1937)     评论(0)     点赞(14)     收藏(9)


1、取出两个升序数组中的最小的一半的元素组成一个新的升序数组。

map(lambda x, y: x if x < y else y, a, b)
答案

 

2、用至少2种不同的方式删除一个list里面的重复元素

a = [1, 2, 2, 4, 34, 3, 4, 56, 65, 456, 5, 6456, 456, 54, 45, 6, 464, 564]
# 方法一
new_list3 = list(set(a))

# 方法二
new_list = []
for num in a:
    if num not in new_list:
        new_list.append(num)

# 方法三
dict1 = dict.fromkeys(a)
new_list2 = dict1.keys()
答案

 

3、利用线程池(10个线程)实现一个并行打印10行信息的程序,打印This is thread xx.(注:xx为线程id)

 

4、关系型数据库的事务隔离级别有哪些,分别有什么影响?

1、未提交读(Read Uncommitted) 
    直译就是"读未提交",意思就是即使一个更新语句没有提交,但是别的事务可以读到这个改变.这是很不安全的。允许任务读取数据库中未提交的数据更改,也称为脏读。 
2、提交读(Read Committed) 
   直译就是"读提交",可防止脏读,意思就是语句提交以后即执行了COMMIT以后别的事务就能读到这个改变. 只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 
3、可重复读(Repeatable Read): 
   直译就是"可以重复读",这是说在同一个事务里面先后执行同一个查询语句的时候,得到的结果是一样的.在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别消除了不可重复读,但是还存在幻象读 
4、串行读(Serializable) 
   直译就是"序列化",意思是说这个事务执行的时候不允许别的事务并发执行. 完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞
 
四,隔离级别对事务并发的控制 
下表是各隔离级别对各种异常的控制能力:


丢失更新    脏读    非重复读    二类丢失更新(覆盖更新)    幻像读
未提交读     Y    Y    Y    Y    Y
提交读     N    N    Y    Y    Y
可重复读     N    N    N    N    Y
串行读     N    N    N    N    N
答案

 

5、请用python编写函数find_string,从文本中搜索并打印内容,要求支持通配符星号和问号。

例子:

>>>find_string('hello\nworld\n','wor')

['wor']

>>>find_string('hello\nworld\n','l*d')

['ld']

>>>find_string('hello\nworld\n','o?')

['or']

 

6、请为find_string编写单元测试

7、已有一个字典列表,如下:

li = [
    {'id': '1.1', 'content': "14"},
    {'id': '1.2', 'content': "15"},
    {'id': '1.3', 'content': "16"},
    {'id': '1.4', 'content': "17"},
    {'id': '1.5', 'content': "18"},
]

请写一个类:

abc = x()
>>abc['1.1']
14
class x(UserDict):

    def __init__(self):
        super().__init__()
        for dic in li:
            # print(dic)
            self.data.update({dic['id']:dic['content']})

abc = x()
print(abc['1.1'])
答案

 8、如何快速对学生的成绩进行评级:(源自Fluent Python)

  60分以下评为F

  60-70评为D

  ...

  90分以上为A

import bisect
import sys


def grade(score, breakpoint=[60, 70, 80, 90], grades = 'FDCBA'):
    i = bisect.bisect(breakpoint, score)
    return grades[i]

if __name__ == '__main__':
    level = grade(64)
    print(level)
答案

 

 

  



所属网站分类: 技术文章 > 博客

作者:玛利亚

链接:https://www.pythonheidong.com/blog/article/1900/4b23a443c89895401a28/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

14 0
收藏该文
已收藏

评论内容:(最多支持255个字符)