2020-08-15 做测试

2020-08-15  本文已影响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')
上一篇下一篇

猜你喜欢

热点阅读