当Python遇上高考,会发生什么?

384 篇文章 17 订阅
368 篇文章 15 订阅

延期一个月之后,今天,1071万考生终于走入考场。

这届高考太难了,不仅考学生,更是考验疫情的防控能力。

但是说到难,2018年浙江省教育厅的一个决定,让不少人感叹真难!

原来早在2017年底,就有消息称浙江省信息技术课程改革方案已经出台,确定将Python纳入浙江省信息技术高考!

当Python遇上高考,会发生什么?

纳尼?Python纳入高考?为什么?怎么考?想想都很难!

经了解,才明白,原来是纳入高考选考!

虽然是选考,但是看看现在市面上涌现了那么多少儿编程培训机构,可见编程越来越向低龄人群进军。

可以预见,编程正像当年的英语,是顺应了时代需求发展起来的,未来全民必备的能力!所以想学的同学,有必要听一下这位老师的课、领取python福利奥,想学的同学可以到梦雅老师的围鑫(同音):前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。

我们不妨思考一下,当Python遇上高考后,会发生什么?

当Python遇上高考,会发生什么?

考题会是什么样?

未来,Python全面被纳入高考的那一天,我们的考题也会变成这样:

问题1:下面代码中func1(a)的结果是:

def func1(a):    sums = sum(map(lambda x: x + 1, a[-3:]))    return sumsa = [1,2,3,5,4,1,5]func1(a)A 9B 13C 10

问题2:有如下两个列表:

list1 = [(2),(0),(1),(8) ]list2 = [(2,),(0,),(1,),(8,)]

那么,type(list1[0])和type(list2[0])分别是:

A int tupleB int intC tuple tuple

问题3:下面代码中func2(a)的结果是:

def func2(a):    b = {}    b = b.fromkeys(a)    return (len(b.keys()))a = [1,2,4,2,4,1,6,5,2,3,1]print (func2(a))A 11B 6C 5

问题4:定义如下的字符串和列表:

a = 'I love PythonSomething!'b = 'I love PythonSomething!'c = [1, 2, 3]d = [1, 2, 3]

那么,a is b和c is d的结果分别是:

A False TrueB True TrueC True False

问题5:下面代码的输出结果为:

import copya = [2,[0,1],8]b = copy.copy(a)a[1].append(3)print(b)c = copy.deepcopy(a)a[1].append(4)print (c)A [2, [0, 1, 3], 8]  [2, [0, 1, 3], 8]B [2, [0, 1, 3], 8]  [2, [0, 1, 4], 8]C [2, [0, 1, 4], 8]  [2, [0, 1, 4], 8]

问题6:下面代码中f3的输出结果为:

def append_list(val, list=[]):    list.append(val)    return listf1 = append_list(1)f2 = append_list(2, [])f3 = append_list('Python')A [1, 'Python']B ['Python']C [1, 2, 'Python']

问题7:下面代码中 func3() + func4()的结果为:

x = 10def func3():    x = 3    return x**2def func4():    return x + 5func3() + func4()A 24B 21C 115

问题8:下面代码中stu2.score的结果为:

class Student:    score = []stu1 = Student()stu2 = Student()stu1.score.append(99)stu1.score.append(96)stu2.score.append(98)A [99, 96, 98]B [98]C [99, 98]

问题9:二分查找是非常经典的算法。已经有如下定义,请完善代码,实现二分查找算法:

def binary_search(list, item):    '''    :param list: 列表    :param item: 要查找的元素    :return: item在list中的索引,若不在list中返回None    '''

问题10:爬虫是Python的一大应用方向。请通过Python抓取猫眼电影或者豆瓣电影评分前100的电影信息。

怎么样?这些考题你是否能Hold住?

当Python遇上高考,会发生什么?

预测分数和录取情况

就手上有的数据,以本次山东模拟考的成绩进行深入数据分析,用python可视化带大家模拟一下2020高考分数和录取情况。

(代码较长,故只展示部分)

不同考生成绩分布图:

首先对山东新高考模拟考的成绩进行总体描述:

fig = make_subplots(rows=4,cols=2, #4行2列                    subplot_titles=('所有考生',"物理", "历史", "化学", "地理", "生物", "政治"),                   specs=[[{'colspan': 2},None],[{},{}],[{},{}],[{},{}],                         ])  #specs参数定义了如何分配视图区间, 本案例中的“specs=[[{}, {}],[{'colspan': 2},None]]”表示其他行的两个子图平均分配区间, 第一行的第一个子图占据 2列的区间, 并且不存在第二个子图fig.add_trace(go.Scatter(    x = raw_data['分数段'],     y = raw_data['所有考生本段人数'],    fill = 'tozeroy',    mode = 'lines',        marker = dict(        size = 8,        color =   'rgb(88, 182, 192)'     )),    row=1, col=1,    )#保存图片img_file = os.path.join(img_dir, 'img1.svg')fig.write_image(img_file, scale=1)fig.show()

当Python遇上高考,会发生什么?

选考物理、化学、生物的学生的成绩呈正态分布,大多数学生的成绩集中于中间,成绩两端学生的人数分布较少。

而选考文科类(历史、地理、政治)学科的学生的成绩呈偏态分布,一段线以下的人数占比较大,尤其历史和地理学科上这种趋势更加明显。

本科上线率:

当Python遇上高考,会发生什么?

通过计算各科所有选择的人中有多少人的总分在一段线以上,发现,选考物理的学生的上线率最高,达到了67%,而选考历史的学生的上线率较低,只有37%。

选考科目情况:

#所有考生的科目选择情况sum_people = raw_data['所有考生累计人数'].iloc[-1]subj_select = []subj_name = ['物理','化学','生物','历史','地理','政治']subj_select_percent = pd.DataFrame(index = subj_name,columns=['比例'])for i in subj_name:    singel_subj = raw_data['选考'+i+'累计人数'].iloc[-1]    singel_percent = round(singel_subj/sum_people,4)*100    subj_select.append(singel_percent)    subj_select_percent.loc[i, '比例'] = singel_percent

在此次模拟考中,分数在150分以上的考生共有489567人,其中选考地理的人数最多,选考比率为63.6%,选考政治的人数最少,选考比率只有34.31%,而备受大家关注的选考物理的比率为41.59%。

当Python遇上高考,会发生什么?

需要注意的是,山东2020年高考的正式选科时间是5.25-29,而模拟考的时间在1月,因此上述数据只能作为学生选科的重要参考。

双一流高校录取情况分析:

当Python遇上高考,会发生什么?

我们统计了近三年双一流高校在山东的理工类专业录取最低分,位次靠前的依次是北京大学,复旦大学,上海交通大学,浙江大学,中国科学技术大学。

当Python遇上高考,会发生什么?

我们统计了近三年双一流高校在山东的文史类专业录取最低分,位次靠前的依次是清华大学,北京大学,上海交通大学,复旦大学,中国人民大学。

双一流高校专业录取情况分析:

#南丁格尔图pie_Nightingale(sci_top10['专业'].values.tolist(),                sci_top10['频数'].values.tolist(),                '录取最低分排名\n前10的理工类专业',                 '理科专业top10.html')

当Python遇上高考,会发生什么?

我们统计了双一流高校录取最低分所对应的专业频次,结果发现,理工类专业中工科实验班的出现频次最高,双一流高校中有25个学校的录取最低分所对应的专业是工科实验班。

当Python遇上高考,会发生什么?

我们同样统计了双一流高录取最低分所对应的文史类专业的频次,结果发现,文史类专业中日语出现的频次最高,双一流高校中有25个学校的录取最低分对应的专业是日语。

怎么样?是不是很有参考价值。

当Python遇上高考,会发生什么?

告诉你高考为什么这么难?

我们首先看下1977-2018年历年的录取人数和未录取(落榜)人数变化情况,本文数据均来自于网络公开高考数据:

当Python遇上高考,会发生什么?

可以看到1977年恢复高考之后的几年,由于种种原因,高考人数到达了一个比较高的点,随后有所下降。

到2000年之后,高考的人数有了进一步的提升,录取人数也随之大幅提升,2008、2009达到了顶峰(此时心疼自己1秒),2010年之后参与高考的人数趋于平稳。

通过上图也可以发现,早期的高考难度之高,未录取人数是录取人数的数倍之多,而且早期的高考实际上在开始之前有预选的过程,能够参加高考的考生实际上已经经过了一轮大浪淘沙的过程。

随着教育改革,越来越多的考生有机会通过高考接受更进一步的教育。

我们通过下面的百分比图,对于录取率的变化进一步加深认知:

当Python遇上高考,会发生什么?

看到这不禁对老爸发出由衷的赞叹,作者参与高考时的录取率已经是老爸参加时的数倍之多,相较于老爸那个时候的“千军万马过独木桥”,作者过的独木桥已经要宽敞了好多。

部分代码如下:

setwd('D:/爬虫/高考')data = read_excel('历年录取率.xlsx')data_year = melt(data,id.vars = '年份',measure.vars = c('录取','未录取'),variable.name='录取情况', value.name='人数(万)')ggplot(data_year,aes(x=年份,y=`人数(万)`,fill=录取情况))+      geom_area(position = 'stack')+      ggtitle('历年高考人数统计(1977-2018)')+ theme_wsj()+       theme(axis.text.x = element_text(size=15),            axis.text.y = element_text(size=15),            axis.title =element_text(size=15),            plot.title = element_text(hjust=0.5,size=25,face='bold'),            panel.grid = element_blank(),            legend.position = 'top',            legend.title = element_blank(),            legend.text = element_text(size=15),            panel.background = element_blank(),            axis.line = element_blank(),            axis.ticks = element_blank()            )+xlim(1977,2018)

说到这,似乎大家会认为现在的高考并不困难,录取率已经到达了8成左右,通过高考已经成了家常便饭,如果你真的这样认为,想太多了。

我们下面就进一步去分析高考数据,为大家列举横亘在高考生面前的三座大山:

三座“大山”

名校录取率

前面我们提到的录取率有了显著的提升,然而录取率实际上是包括了所有的录取情况,同时包含了本科以及专科的录取情况。

真正的“211”,“985”名校的竞争实际上还是异常激烈的,特别是在一些处于“地狱模式”的高考省份(由于没有在网上找到海南省的相关数据,我们选取了其他三十个省份、直辖市的数据):

下面就为大家对比各个省份2018年的985、211录取率:

当Python遇上高考,会发生什么?

当Python遇上高考,会发生什么?

可以看到,不同省份的985和211录取率有着比较明显的差距,12个省份的985录取率低于1.5%,安徽,河南,江苏和贵州更是低于1.2%,作为山东考生的作者也不由得表示“自愧不如”。

即使是录取率最高的省份,985和211的录取率也只是5.8%和13.9%,结合现在各大企业在招人要求中对985和211的要求,高考真的并没有真的变得简单。

高考人数

除了名校录取率低之外,高考人数之多也是横亘在考生面前需要跨过的一个挑战。

由于参与高考人数非常多,对于考试精细度就有了非常高的要求,可能一个细节的失误就会在全省的排名中下降非常多。

同样,我们看下各省2018年参与高考的人数:

当Python遇上高考,会发生什么?

河南省2018年的高考人数达到了86.5万,86.5万这个数据也超过了世界上接近2/3的国家人口数量。广东、山东、四川三个省的高考人数也超过了50万。

由于参与高考的人数众多,这些省的高考几乎都是“肉搏战”。

高考题目难

除了名校录取率低,竞争人数多,另一个让广大考生为之“折服”的就是那些难度大到放飞自我的题目。

其中一个省份的题目难度几乎是所有考生公认的最高,那就是江苏省,包括小编所在山东省在内的很多其他省的老师,都会告诉学生不需要关注江苏的历年题目,因为本省的考试题目不会那么难。所以想学的同学,有必要听一下这位老师的课、领取python福利奥,想学的同学可以到梦雅老师的围鑫(同音):前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。

除了题目难度大,江苏高考改革的力度和速度也是冠绝全国,我们整理了一份江苏省2000年以来的历年高考改革的路线图:

当Python遇上高考,会发生什么?

看到这些模式的名称,可能大家已经有些眩晕,也深切体会到能从江苏高考中杀出重围的都是勇士。

既然已经眩晕,不如就眩晕到底,下面是一道江苏省高考的真题,自行体验难度:

当Python遇上高考,会发生什么?

数学、物理这种大杀器都无需出场,只需一道作文题在作者这种“语文天残”看来就已经slay全场。

前面我们说了那么多高考的困难之处,是不是考生们真的就手足无措了呢,实际上并不是,只需要手握一些高考专属“杀器”就可以迎刃而解(以上纯属虚构)

高考“杀器”

五年高考三年模拟

当Python遇上高考,会发生什么?

此杀器的使用方法无需赘述,只需把其全部吃透,虽然这也不表示高考就一定会有好成绩。希望各位考生努力复习,切勿如同书名一样“五年高考,三年模拟”。

葛老师

葛老师乃高考中的超级大杀器,其威力可以参考下图,正所谓人不在江湖,但江湖上始终流传着他的传说:

当Python遇上高考,会发生什么?

由于葛老师过于强大,切勿幻想能将葛老师像“五年高考、三年模拟“那样吃透之后融会贯通,最好的方法就是“走为上计”,B站上的广大考生已经开始通过弹幕进行了实践:

当Python遇上高考,会发生什么?

虽然我们前面假想了各种Python与高考碰撞出的火花,但是实际上,不管是Python,还是高考,都是为我们的人生创造机遇的!

最后祝愿广大考生都能够放平心态,在高考中发挥所学,不留遗憾!所以想学的同学,有必要听一下这位老师的课、领取python福利奥,想学的同学可以到梦雅老师的围鑫(同音):前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值