一、选择题:
1、如果变量x=9,那么,请选择x//=3的结果是(A):
A:3 B:6 C:9 D:Error
2、在python解释器中,'a' + 'b' + 1的执行结果是(D):
A:'ab1' B:'ab+1' C:'a+b1' D:Error
3、python解释器中,range(3)的结果是(A):
A:0,1,2 B:1,2,3 C:3 D:Error
4、python解释器执行s = 'abcd'.replace('ab','cd'),s的结果是(B):
A:'abad' B:'cdcd' C:'aabb' D:'abcd'
5、计算一下这个1 > 2 and 3 or 6的结果(D):
A:True B:False C:3 D:6
6、'alex'用utf-8编码需要几个字节表示(A):
A:4 B:5 C:6 D:7
7、python解释器执行'{0},{2},{1}'.format('a','b','c')的结果为(B):
A:'abc' B:'a,c,b' C:'abc' D:'a,b,c'
8、python3解释器执行s = 'ABCD'.lower s的结果是():
A:'abcD' B:'abCd' C:'abcd' D:语法错误
9、现有列表 val = [1,2,3,4,5,6,7,8,9,0],那么python3解释器执行val[:3]的结果(A):
A:[1,2,3] B:[1,2,] C:[1,2,3,4] D:语法错误
10、现有列表 l1 = [1,2,3,4,5,6,7,8,9,0],那么python3解释器执行l1[1:4] = 'abcd'后l1的结果(B):
A:['a','b','c','d',5,6,7,8,9,0] B:[1,'a','b','c','d',5,6,7,8,9,0]
B:[1,'a','b','c','d',6,7,8,9,0] D:语法错误
11、下列说法正确的是(AB):
A:字典的键是唯一的 B:字典没有切片的功能
C:集合里面的元素必须是可变的数据类型 D:元组为只读列表,只能进行增和查。
12、下列表达正确的是(BD):
A:字典中的keys()方法是将字典的所有键都存放至一个列表中。
B:给一个列表extend('ab3'),实际上是添加了'a','b','3'三个字符串
C:在命令行窗口中,s1='alex@',s2='alxe@',s1与s2共用一个内存地址
D:for循环中可以使用continue
13、下列表达式正确的是(ABC):
A:a = ('alex') a是字符串
B:l1=[1,2,3] l2=l1 l1.append(666) print(l2)结果是[1,2,3,666]
C:l1=[22,33,44] l2=l1[:] l1与l2的关系是浅copy
D:集合是无序的不重复的,里面的元素要求是不可哈希的
14、选出你认为正确的答案(BD):
A:is比较的是数值相同。
B:在循环字典时给字典添加一个键值对会报错
C:dic={}
dic.fromkeys('abc',666),最终dic为{'a':666,'b':666,'c':666}
D:len测量的结果是键值对的个数
15:下列说法正确的是():
A:python2x与python3x默认编码都是unicode
B:for循环中不存在else
C:while循环为无限循环,所以循环次数都是无限次的
D:str的split方法默认是按照空白进行分割
二、填空题
1、4 or 5 > 7 and 1的结果是: 4
2、获取list的元素个数和向末尾追加元素所用的方法是: len()、append()
3、tu=(1,2,3),将此元素转化成列表: list(tu)
4、list = [1,2,3,4,5] print(list[3:1]) 答案是: []
5、'钓鱼丝alex'用utf-8编码占_13_个字节
6、删除字典的键值对所用的方法: pop() popitems() del clear()
7、列举两个不可变的数据类型: int bool str tuple
三、简答题
1、is和==的区别?
is是判断内存地址 ==是判断左右两端的值
2、写出三个可以表示False值得数据?
0 {} “” [] tuple() set() None
3、list和tuple有什么不同?
list是可变的列表 tuple是不可变的,只读列表。
4、解释一下,位、字节、字符:
位:bit,最小的数据单元
字节:byte,8bit=1byte
字符:单一的文字符号
5、python中什么数据类型存在小数据池中?小数据池有什么作用?
int(整数)和str(字符串) 作用:节省内存空间
6、在python3x版本中,s1 = '老男孩',如何将s1转化成utf-8的bytes类型?转化成功之后,得到了s2,
如何将s2转化成gbk的bytes类型?
s1 = '老男孩'
bs = s1.encode("utf-8")
s2 = bs.decode("utf-8")
bbs = s2.encode("GBK")
print(bbs)
7、l = [1,1,2,2,3,4,5,5,6,6,7,8]将此列表去重?
set(l)
8、'1,2,3'如何变成['1','2','3']? ['1','2','3']如何变成'1,2,3'?
s = '1,2,3'
s1 = s.split(",")
print(s1)
s2 = ",".join(s1)
print(s2)
9、lis = [['k',['qwe',{'k1':['tt',3,'1']},89],'ab']]
(1)将列表lis中的'tt'变成大写
lis = [['k',['qwe',{'k1':['tt',3,'1']},89],'ab']]
lis[0][1][1]['k1'][0] = lis[0][1][1]['k1'][0].upper()
print(lis)
(2)将列表中的3通过数字相加在转换成字符串的方式变成'100'
lis = [['k',['qwe',{'k1':['tt',3,'1']},89],'ab']]
lis[0][1][1]['k1'][1] = str(lis[0][1][1]['k1'][1] + 97)
print(lis)
(3)将列表中的字符串'1'通过字符串的拼接的方式变成'101'
lis = [['k',['qwe',{'k1':['tt',3,'1']},89],'ab']]
lis[0][1][1]['k1'][2] = lis[0][1][1]['k1'][2] + '01'
print(lis)
10、dic = {'k1':'v1','k2':['alex','sb'],(1,2,3):{'k3':['2',100,'wer']}}
(1)将'k2'对应的值的最后面添加一个元素'23'
dic = {'k1':'v1','k2':['alex','sb'],(1,2,3):{'k3':['2',100,'wer']}}
dic['k2'].append("23")
print(dic)
(2)将'k2'对应的值的第一个位置插入一个元素'a'
dic = {'k1':'v1','k2':['alex','sb'],(1,2,3):{'k3':['2',100,'wer']}}
dic['k2'].insert(0,"a")
print(dic)
(3)将(1,2,3)对应的值添加一个键值对'k4':'v4'
dic = {'k1':'v1','k2':['alex','sb'],(1,2,3):{'k3':['2',100,'wer']}}
dic[(1,2,3)]["k4"] = "v4"
print(dic)
四、编程题:
1、分别使用while循环和for循环计算1-3+5-7+9-11...99的结果:
fu = 1
sum = 1
for el in range(1,100,2):
sum += fu * el
fu = -fu
print(sum)
2、有字符串'jay:周杰伦|jj:林俊杰|gg:太白|sb:alex'处理成字典"jay:周杰伦|jj:林俊杰|gg:太白|sb:alex"。
s = 'jay:周杰伦|jj:林俊杰|gg:太白|sb:alex'
s1 = s.split("|")
dic = {}
for el in s1:
k,v = el.split(":")
dic[k] = v
print(dic)
3、实现一个整数加法计算题:如content=input("请输入内容:") 如用户输入:5+8+7...(最少输入两个数相加),
将最后的计算结果添加到此字典中(替换None):dic={'最终的计算结果是':None}
dic={'最终的计算结果是':None}
content=input("请输入内容:")
content = content.replace(" ","")
li = content.split("+")
sum = 0
for el in li:
sum = sum + int(el)
dic['最终的计算结果是'] = sum
print(dic)
4、开发敏感词过滤程序,提示用户不停的评论内容,如果用户输入的内容中包含特殊的字符则将用户输入的敏感词替换成
成相等长度的*,(苍老师替换成***),并添加到列表中,如果用户输入的内容中没有敏感词则直接添加到列表中,最终将
列表中的全部内容进行打印。敏感词列表:li = ["苍老师","京东热","武藤兰","波多野结衣","alex"]
li = ["苍老师","京东热","武藤兰","波多野结衣","alex"]
lis = []
while 1:
content = input("请输入你的评论:(输入Q退出)").upper()
for el in li:
if el in content:
content = content.replace(el,"*"*len(el))
lis.append(content)
print(lis)
if content == "Q":
break
5、让用户随机输入10个数,将这10个数保存在列表中,将所有大于55的值保存在第一个key值中,将小于55的值保存在第二个key值中。
unt = 1
dic = {}
while count <= 10:
num = int(input("请输入十个数(第%d个数):" %count))
if num > 55:
dic.setdefault("k1",[]).append(num)
else:
dic.setdefault("k2",[]).append(num)
count += 1
print(dic)
6、车牌区域划分,给出一下车牌和地点信息对照,请根据车牌信息,分析出各省的车牌持有量。
cars = ['鲁A234','鲁B234','京B345','黑C456','黑C565','沪B456','黑C567']
locations = {'沪':'上海','京':'北京','黑':'黑龙江','鲁':'山东','鄂':'湖北','湘':'湖南'}
dic = {}
for el in cars:
dic[locations[el[0]]] = dic.get(locations[el[0]],0) + 1
print(dic)
7、按要求完成下列转化:
list3 = [
{'name':'alex','hobby':'抽烟'},
{'name':'alex','hobby':'喝酒'},
{'name':'alex','hobby':'汤头'},
{'name':'alex','hobby':'Massage'},
{'name':'wusir','hobby':'喊麦'},
{'name':'wusir','hobby':'街舞'}
]
list4 = [
{'name':'alex','hobby_list':['抽烟','喝酒','汤头','Massage']},
{'name':'wusir','hobby_list':['喊麦','街舞']}
]
result = []
for el in list3: # {"name": "alex", "hobby": "喝酒"},
for new_el in result: # {"name": "alex", "hobby_list": ["抽烟","喝酒"]},
if el['name'] == new_el['name']:
new_el['hobby_list'].append(el['hobby'])
break
else:
result.append({'name':el['name'] , "hobby_list":[el['hobby']] })
print(result)
-----------------------------------------------------------------------
dic3 = {}
dic4 = {}
list3_new = []
for el in list3:
if el['name'] == 'alex':
dic3.setdefault('name','alex')
dic3.setdefault('hobby_list', []).append(el["hobby"])
elif el['name'] == 'wusir':
dic4.setdefault('name', 'wusir')
dic4.setdefault('hobby_list',[]).append(el["hobby"])
list3_new.append(dic3)
list3_new.append(dic4)
list3 = list3_new
print(list3)