延期一个月之后,今天,1071万考生终于走入考场。
这届高考太难了,不仅考学生,更是考验疫情的防控能力。
但是说到难,2018年浙江省教育厅的一个决定,让不少人感叹真难!
原来早在2017年底,就有消息称浙江省信息技术课程改革方案已经出台,确定将Python纳入浙江省信息技术高考!
纳尼?Python纳入高考?为什么?怎么考?想想都很难!
经了解,才明白,原来是纳入高考选考!
虽然是选考,但是看看现在市面上涌现了那么多少儿编程培训机构,可见编程越来越向低龄人群进军。
可以预见,编程正像当年的英语,是顺应了时代需求发展起来的,未来全民必备的能力!
我们不妨思考一下,当Python遇上高考后,会发生什么?
考题会是什么样?
未来,Python全面被纳入高考的那一天,我们的考题也会变成这样:
问题1:下面代码中func1(a)的结果是:
def func1(a):
sums = sum(map(lambda x: x + 1, a[-3:]))
return sums
a = [1,2,3,5,4,1,5]
func1(a)
A 9
B 13
C 10
问题2:有如下两个列表:
list1 = [(2),(0),(1),(8) ]
list2 = [(2,),(0,),(1,),(8,)]
那么,type(list1[0])和type(list2[0])分别是:
A int tuple
B int int
C 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 11
B 6
C 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 True
B True True
C True False
问题5:下面代码的输出结果为:
import copy
a = [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 list
f1 = append_list(1)
f2 = append_list(2, [])
f3 = append_list('Python')
A [1, 'Python']
B ['Python']
C [1, 2, 'Python']
问题7:下面代码中 func3() + func4()的结果为:
x = 10
def func3():
x = 3
return x**2
def func4():
return x + 5
func3() + func4()
A 24
B 21
C 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可视化带大家模拟一下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()
选考物理、化学、生物的学生的成绩呈正态分布,大多数学生的成绩集中于中间,成绩两端学生的人数分布较少。
而选考文科类(历史、地理、政治)学科的学生的成绩呈偏态分布,一段线以下的人数占比较大,尤其历史和地理学科上这种趋势更加明显。
本科上线率:
通过计算各科所有选择的人中有多少人的总分在一段线以上,发现,选考物理的学生的上线率最高,达到了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%。
需要注意的是,山东2020年高考的正式选科时间是5.25-29,而模拟考的时间在1月,因此上述数据只能作为学生选科的重要参考。
双一流高校录取情况分析:
我们统计了近三年双一流高校在山东的理工类专业录取最低分,位次靠前的依次是北京大学,复旦大学,上海交通大学,浙江大学,中国科学技术大学。
我们统计了近三年双一流高校在山东的文史类专业录取最低分,位次靠前的依次是清华大学,北京大学,上海交通大学,复旦大学,中国人民大学。
双一流高校专业录取情况分析:
#南丁格尔图
pie_Nightingale(sci_top10['专业'].values.tolist(),
sci_top10['频数'].values.tolist(),
'录取最低分排名\n前10的理工类专业',
'理科专业top10.html')
我们统计了双一流高校录取最低分所对应的专业频次,结果发现,理工类专业中工科实验班的出现频次最高,双一流高校中有25个学校的录取最低分所对应的专业是工科实验班。
我们同样统计了双一流高录取最低分所对应的文史类专业的频次,结果发现,文史类专业中日语出现的频次最高,双一流高校中有25个学校的录取最低分对应的专业是日语。
怎么样?是不是很有参考价值。
告诉你高考为什么这么难?
我们首先看下1977-2018年历年的录取人数和未录取(落榜)人数变化情况,本文数据均来自于网络公开高考数据:
可以看到1977年恢复高考之后的几年,由于种种原因,高考人数到达了一个比较高的点,随后有所下降。
到2000年之后,高考的人数有了进一步的提升,录取人数也随之大幅提升,2008、2009达到了顶峰(此时心疼自己1秒),2010年之后参与高考的人数趋于平稳。
通过上图也可以发现,早期的高考难度之高,未录取人数是录取人数的数倍之多,而且早期的高考实际上在开始之前有预选的过程,能够参加高考的考生实际上已经经过了一轮大浪淘沙的过程。
随着教育改革,越来越多的考生有机会通过高考接受更进一步的教育。
我们通过下面的百分比图,对于录取率的变化进一步加深认知:
看到这不禁对老爸发出由衷的赞叹,作者参与高考时的录取率已经是老爸参加时的数倍之多,相较于老爸那个时候的“千军万马过独木桥”,作者过的独木桥已经要宽敞了好多。
部分代码如下:
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录取率:
可以看到,不同省份的985和211录取率有着比较明显的差距,12个省份的985录取率低于1.5%,安徽,河南,江苏和贵州更是低于1.2%,作为山东考生的作者也不由得表示“自愧不如”。
即使是录取率最高的省份,985和211的录取率也只是5.8%和13.9%,结合现在各大企业在招人要求中对985和211的要求,高考真的并没有真的变得简单。
高考人数
除了名校录取率低之外,高考人数之多也是横亘在考生面前需要跨过的一个挑战。
由于参与高考人数非常多,对于考试精细度就有了非常高的要求,可能一个细节的失误就会在全省的排名中下降非常多。
同样,我们看下各省2018年参与高考的人数:
河南省2018年的高考人数达到了86.5万,86.5万这个数据也超过了世界上接近2/3的国家人口数量。广东、山东、四川三个省的高考人数也超过了50万。
由于参与高考的人数众多,这些省的高考几乎都是“肉搏战”。
高考题目难
除了名校录取率低,竞争人数多,另一个让广大考生为之“折服”的就是那些难度大到放飞自我的题目。
其中一个省份的题目难度几乎是所有考生公认的最高,那就是江苏省,包括小编所在山东省在内的很多其他省的老师,都会告诉学生不需要关注江苏的历年题目,因为本省的考试题目不会那么难。
除了题目难度大,江苏高考改革的力度和速度也是冠绝全国,我们整理了一份江苏省2000年以来的历年高考改革的路线图:
看到这些模式的名称,可能大家已经有些眩晕,也深切体会到能从江苏高考中杀出重围的都是勇士。
既然已经眩晕,不如就眩晕到底,下面是一道江苏省高考的真题,自行体验难度:
数学、物理这种大杀器都无需出场,只需一道作文题在作者这种“语文天残”看来就已经slay全场。
前面我们说了那么多高考的困难之处,是不是考生们真的就手足无措了呢,实际上并不是,只需要手握一些高考专属“杀器”就可以迎刃而解(以上纯属虚构)
高考“杀器”
五年高考三年模拟
此杀器的使用方法无需赘述,只需把其全部吃透,虽然这也不表示高考就一定会有好成绩。希望各位考生努力复习,切勿如同书名一样“五年高考,三年模拟”。
葛老师
葛老师乃高考中的超级大杀器,其威力可以参考下图,正所谓人不在江湖,但江湖上始终流传着他的传说:
由于葛老师过于强大,切勿幻想能将葛老师像“五年高考、三年模拟“那样吃透之后融会贯通,最好的方法就是“走为上计”,B站上的广大考生已经开始通过弹幕进行了实践:
虽然我们前面假想了各种Python与高考碰撞出的火花,但是实际上,不管是Python,还是高考,都是为我们的人生创造机遇的!
最后祝愿广大考生都能够放平心态,在高考中发挥所学,不留遗憾!