老男孩python全栈s21-day08-第一次考试

  1. 列举常见的操作系统及公司线上服务器用的操作系统(2分)
常见操作系统:win xp,win7,win8,win 10,ubuntu,redhat,centos
线上服务器用:centos
  1. 简述位和字节的关系(1分)
1字节=8位
  1. is和==的区别(2分)

    ==:判断值是否相等
    is:判断内存地址是否一致
    
  2. pass的作用(1分)

    不做任何事情,跳过,空的代码占位。
    
  3. 列举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
    
  4. 变量命名规范和建议(3分)

    1. 字母数字下划线,数字不能开头。
    2. 不能用关键字
    3. 建议用_连接多个字符
    4. 见名知意
    
  5. 简述深浅拷贝(3分)

    浅拷贝:只拷贝第一层
    深拷贝:拷贝所有层中的可变类型
    
  6. 解释型语言和编译型语言区别(2分)

    解释型语言:逐行边解释边执行,程序执行效率会比较低。python,PHP
    编译型语言:将代码编译成一个文件,然后再执行编译后的文件。程序执行效率相比解释型语言会高一些。C,C++,Golang
    
  7. 列举你了解的数据类型及他具有的方法,每种最多写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
    
  8. 列举你了解的转换为bool值为False常见的值(2分)

None,[],0,(),{},set(),""
  1. 简述一下三个变量的区别(2分)

    v1=(1)
    v2 =(1,)
    v3 = 1
    
    v1 和v3相等
    v2 为元组,其中有一个元素是1
    

12.写代码实现将字符串v=“全栈21期”反转。(3分)

v[::-1]
  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)
  1. 看代码写结果(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
    
  2. 写代码实现将字符串 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]
    
  3. 实现一个整数乘法计算器。(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. 看代码写结果(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]]
    
  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()
    
    

在这里插入图片描述

机试题

  1. 写代码实现(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)
  1. 车牌区域划分,请根据车牌信息,分析出各省的车牌持有数量。(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)
    
  2. 写代码实现(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()
  1. 请使用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("")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值