- 列举常见的操作系统及公司线上服务器用的操作系统(2分)
常见操作系统:win xp,win7,win8,win 10,ubuntu,redhat,centos
线上服务器用:centos
- 简述位和字节的关系(1分)
1字节=8位
-
is和==的区别(2分)
==:判断值是否相等 is:判断内存地址是否一致
-
pass的作用(1分)
不做任何事情,跳过,空的代码占位。
-
列举python2和Python3的所有区别(3分)
1.默认解释器的编码不一样,py2为ascii码,py3位unicode码。 2.输出 py2:print "" py3:print("") 3.整数长度 py2,int+long py3,int 4.输入 py3:input() py2:raw_input。 5.整除 py2:5/2=2 py3: 5/2=2.5
-
变量命名规范和建议(3分)
1. 字母数字下划线,数字不能开头。 2. 不能用关键字 3. 建议用_连接多个字符 4. 见名知意
-
简述深浅拷贝(3分)
浅拷贝:只拷贝第一层 深拷贝:拷贝所有层中的可变类型
-
解释型语言和编译型语言区别(2分)
解释型语言:逐行边解释边执行,程序执行效率会比较低。python,PHP 编译型语言:将代码编译成一个文件,然后再执行编译后的文件。程序执行效率相比解释型语言会高一些。C,C++,Golang
-
列举你了解的数据类型及他具有的方法,每种最多写5个方法(5分)
1. 整型int, 2. 字符串str:upper,lower,stripe,lstripe,rstripe,split,replace 3. 列表list: append,insert,pop,remove,extend 4. 元祖tuple 5. 字典dic:keys,values,items 6. 集合set:add,discard,difference,clear,intersection 7. 布尔bool
-
列举你了解的转换为bool值为False常见的值(2分)
None,[],0,(),{},set(),""
-
简述一下三个变量的区别(2分)
v1=(1) v2 =(1,) v3 = 1 v1 和v3相等 v2 为元组,其中有一个元素是1
12.写代码实现将字符串v=“全栈21期”反转。(3分)
v[::-1]
请根据索引获取上述结构中的1
info[0]['k1']
请根据索引获取上述结构中的‘oldboy’
info[0]['k2']['k9']
请根据索引获取上述结构中的44
info[1][3]
请根据索引获取上述结构中的“天天”
info[0]['k2']['k10'][1:]
请循环打印上述结构中的集合
for i in info[1]:
print(i)
请在上述结构中extra所在的字典中添加一个键值对,并设置键为:True, 值为“真”
info[4][2][True]=“真”
请在上述结构中[18,20]中添加一个整型元素:69
info[4][2]['extra'][2].append(69)
-
看代码写结果(5)
result= 1 >6 and 8 <9 ,请写出result的值
False
result = 1 or 2 , 请写出result 的值
1
result = 0 or True ,请写出result的值
True
result = 1 and 8 or True and 4 ,请写出result的值。
8
result = “Alex” or “” and “oldboy” , 请写出result的值。
Alex
-
写代码实现将字符串 v = “k1|v1,k2|v2,k3|v3…” 转换成字典{‘k1’:‘v1’,‘k2’:‘v2’,‘k3’:‘v3’…}(5分)
v = "k1|v1,k2|v2,k3|v3" v_dic={} v_list_tmp=[] for i in v.split(','): v_list_tmp=i.split('|') v_dic[v_list_tmp[0]]=v_list_tmp[1]
-
实现一个整数乘法计算器。(5分)
content = input("请输入内容:") #用户输入:5*99*999...或5 * 9 * 10 * 99 或 5 * 9 99 (含空白) # 请补充代码 content_list=[] result=1 content_list=content.split("*") for i in range(len(content_list)): result *= int(content_list[i].strip()) print(result)
-
看代码写结果(4分)
v1 = [1,2,3,4,5] v2 = [v1,v1,v1] v2[1][0]=111 v2[2][0]=222 print(v1) #[222,2,3,4,5] print(v2) #[[222,2,3,4,5],[222,2,3,4,5],[222,2,3,4,5]]
-
请将info中索引值为偶数的值使用“*”拼接起来,并写入到文件a.log中(5分)
info = ['你是','到底','是','不是','一个','魔鬼'] result ='*'.join(info[::2]) result_file = open('a.log',mode='w',encoding='UTF-8') result_file.write(result) result_file.close()
机试题
-
写代码实现(10分)
需求:读取一个100G的文件,检测文件中是否有关键字keys =[‘苍老师’,“小泽老师”,“alex”],如果有则替换成***,并写入到另外一个文件中。
keys =['苍老师',"小泽老师","alex"]
with open('data.txt',mode = 'r',encoding='utf-8') as f1, open('b.log',mode = 'w',encoding='utf-8') as f2:
for line in f1:
for key in keys:
if key not in keys:
continue
line = line.replace(key,'***')
f2.write(line)
-
车牌区域划分,请根据车牌信息,分析出各省的车牌持有数量。(10分)
cars = ['鲁A32448','鲁B12333','京B8989M','黑C49678','沪C49678','浙C49678','吉C49678','浙C49670','浙C49666'] #根据cars得到如下结构 #info = {'鲁': 2, '京': 1, '黑': 1, '沪': 1, '浙': 3, '吉': 1} info = {} for item in cars: if item[0] in info.keys(): info[item[0]] +=1 else: info[item[0]] = 1 print(info)
-
写代码实现(10分)
需求:读取文件内容,将文件构造成如下结构。
#data.txt文件内容如下
id,name,age,phone,job
1,alex,22,13651054608,IT
2,wusir,23,13304320533,Teacher
3,taibai,18,1333235322,IT
...
#利用文件操作,将其构造成如下数据类型。
info =
[{'id':'1','name':'alex','age':'22','phone':'13651054608','job':'IT'},....]
first_flag = True
info = []
init_dic = {}
with open('data.txt',mode= 'r',encoding='utf-8') as f1:
for line in f1:
if first_flag:
first_list = line.split(',')
first_flag = False
else:
line_list =line.split(',')
for i in range(len(first_list)):
init_dic[first_list[i].strip('\n')]=line_list[i].strip('\n')
info.append(init_dic)
init_dic = {}
print(info)
f1.close()
- 请使用for循环打印9*9乘法表(10分)
python for i in range(1,10): for j in range(1, i+1): print('%d*%d '%(i,j),end = '') print("")