美文网首页
2020-08-15 做测试

2020-08-15 做测试

作者: 波波要改变自己呀 | 来源:发表于2020-08-15 15:31 被阅读0次

    考虑到自己学习是在是没有方向,不知道怎么系统去学。

    同时也确实有一些数据分析岗位需要的知识没有掌握,决定报了一个班。

    今天做了一套测试题,认识到自己很多东西没有运用都忘了。

    想想自己才刚毕业7个多月,还是学的IT专业有点惭愧。

    为了以后好好努力吧。

    附上测试题以及笔记:

    SQL:

    基础检测部分:

    1. 查询在 SC 表存在成绩的学生信息,要求显示学号id、姓名、出生年月、性别、课程id、分数(10分)

    【一次过】

    
    select s.SId,s.Sname,s.Sage,s.Ssex,c.CId,c.score
    
    from Student s right join SC c
    
    on s.SId=c.SId;
    
    

    答案

    
    select
    
    a.*,   
    
    b.* 
    
    from student a 
    
    inner join sc b 
    
    on a.sid=b.sid;
    
    

    不会用 table.*

    1. 查询各个同学的总成绩和平均分(10分)

    【一次过】

    select s.SId,s.Sname,sum(c.score),avg(c.score) from
    
    Student s right join SC c
    
    on s.SId=c.SId
    
    group by s.SId,s.Sname;
    
    1. 查询每门课都有几个学生(10分)
    
    select c.CId,c.Cname,count(SC.score)
    
    from Course c
    
    join SC
    
    on c.CId=SC.CId
    
    group by c.CId,c.Cname;
    

    第一次做的时候忘了用on

    1. 查询同时存在"01"课程和"02"课程的学生情况 (10分)

    不会,附上答案

    select 
    *   
    from sc a   
    inner join sc b       
    on a.sid=b.sid and a.cid='01' and b.cid='02';
    

    知识漏洞:一个表的自连接

    1. 查询「李」姓老师的数量(like的用法)(20分)
    
    select count(Tid)
    
    from Teacher
    
    where Tname like "李%";
    
    1. 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩(20分)
    
    select s.SId, s.Sname, avg(SC.score) as avgScore
    
    from Student s
    
    join SC
    
    on s.Sid=SC.SId
    
    group by s.SId, s.Sname
    
    having avgScore>=60;
    
    1. 查询"01"课程比"02"课程成绩高的学生的信息及课程分数 (20分)

    【错】

    
    select * from
    (select * from Student join SC on Student.SId=SC.SId where SC.CId="01") sone
    join
    (select * from Student join SC on Student.SId=SC.SId where SC.CId="02") stwo
    on sone.Sid=stwo.Sid
    where sone.score>stwo.score;
    
    select
      *   
    from sc a   
    left join student d      
    on a.sid=d.sid   
    inner join sc b       
    on a.sid=b.sid and a.cid='01' and b.cid='02'  
    where a.score>b.score;
    

    知识漏洞:还是一个表的自连接

    进阶部分:
    此部分选做,完成上面部分即可,如果完成也一起计分

    1. 查询存在"01"课程但可能不存在"02"课程的情况(不存在时显示为 null ) (10分)

    2. 查询不存在"01"课程但存在"02"课程的情况(10分)

    python:

    基础检测部分:

    1. 定义一个列表:

    array = [‘d’,’a’,’t’,’a’,’_’’f’,’r’,’o’,’g’],请使用空白字符把内容都拼接起来(列表 join 的用法)(20分)

    (没看懂题目是要打印出来的意思)

    
    array = ['d','a','t','a','_','f','r','o','g']
    print(" ".join(array))
    
    1. 定义一个字典:

    dict = {"english":60,"math":80,"music":100} ,请遍历字典按照 “englist的分数为:60” 的方式打印各科成绩(字典属性 items 的用法)(20分)

    不会

    dict = {"english":60,"math":80,"music":100}
    for key,value in dict.items():
             print("%s的分数是:%s"%(key,value))
    
    1. 求1-100 的累加和(while循环)(20分)
    total=0
    i=1
    while i <=100:
        total+=i
        i+=1
    print(total)
    
    1. 输出【1,100】 之间的偶数(for循环判断)(20分)

    太久没用了都忘了余数用%,好难过都不敢说自己学过python了

    for i in range(1,101):
        if i%2!=1 :
            print(i)
    
    1. 定义一个计算面积的 area 函数,函数有 width、height 长宽两个参数,使得传入长宽就可以打印出面积(函数的定义)(20分)
    def area(width,height):
        return width*height
    area(3,2)
    

    进阶部分:此部分选做,完成上面部分即可,如果完成也一起计分

    1. 打印出所有的”水仙花数”,所谓”水仙花数”是指一个三位数(100-999),其各位数字立方和等于该数本身。例如:153是一个”水仙花数”,因为153=1的三次方+5的三次方+3的三次方。(10分)
    for i in range(100,999):
        if i == int(str(i)[0])**3+int(str(i)[1])**3+int(str(i)[2])**3:
            print(i)
    
    1. 请用面对对象的思想编写一个小游戏,人狗大站,2个角色,人和狗,游戏开始后,生成2个人,3条狗,互相混战,人被狗咬了会掉血,狗被人打了也掉血,狗和人的攻击力,具备的功能都不一样。(定义 类+对象方法)(10分)

    应该算是开放题,但是我觉得条件太少直接放弃了

    class People():
        agressivity = 10
        life_value = 100
    
        def __init__(self,name):
            self.name = name
    
        def attack(self,dog):
            dog.life_value -= 10
    
        def __str__(self):
            return '人%s剩余生命值:%s,状态值%s'%(self.name,self.life_value,self.agressivity)
    
    class Dogs():
        agressivity = 15
        life_value = 80
    
        def __init__(self,name):
            self.name = name
    
        def attack(self,people):
            people.life_value -= 10
    
        def __str__(self):
            return '狗%s剩余生命值:%s,状态值%s'%(self.name,self.life_value,self.agressivity)
    
    p1 = People('Tom')
    p2 = People('Jack')
    d1 = Dogs('niker')
    d2 = Dogs('geeker')
    d3 = Dogs('chaox')
    
    print(p1)
    print(p2)
    
    p1.attack(d1)
    print(d1)
    

    手动题:

    1. pandas 读取文件 order_info_utf.csv 保存到 mysql 库中(使用 read_csv +to_sql 函数)(10分)

    mysql表结构为:

    CREATE TABLE `orderinfo` (
    
    `orderid` int(11) NOT NULL,
    
    `userid` int(11) DEFAULT NULL,
    
    `isPaid` varchar(100) DEFAULT NULL,
    
    `price` float DEFAULT NULL,
    
    `paidTime` varchar(30) DEFAULT NULL)
    

    放弃了因为知道python怎么用pandas.read_csv(),但不会链接数据库
    知识漏洞:不会python链接数据库

    import pandas as pd
    import sqlalchemy
    
    
    engine=sqlalchemy.create_engine('mysql+pymysql://root:mysql@localhost:3306/data')
    
    # 读取数据
    df=pd.read_csv('order_info_utf.csv',names=['orderid','userid','ispaid','price','paidtime'])
    
    # 写入数据到 mysql
    # 还有参数if_exists,表示有则插入
    df.to_sql('orderinfo',engine,index=False,if_exists='append')
    

    相关文章

      网友评论

          本文标题:2020-08-15 做测试

          本文链接:https://www.haomeiwen.com/subject/hssadktx.html