相关试卷
-
1、程序的基本结构不包括( )。A、顺序结构 B、逻辑运算结构 C、选择结构 D、循环结构
-
2、执行下列语句后的结果是什么 ( )
>>>a="123"
>>>print("123"+a)
A、123123 B、"123" 123 C、123 123 D、语法错误 -
3、关于以下程序代码,说法正确的是( )。
a=1
b=0
while a<101:
b=b+a
a=a+1
print(b)
A、该程序的作用是求1到101的累加和 B、变量b的作用是累加计算1到100的和 C、该程序循环计算了101次 D、以上都不对 -
4、在Python中,语句x=input(‘请输入你的身高:’)的数据类型是( )A、整数型 B、浮点数型 C、字符型 D、引用型
-
5、编程解决“百钱买百鸡”的问题,下列工作过程,最恰当的是( )。A、分析问题,编写程序,设计算法,运行程序 B、分析问题,设计算法,编写程序,运行程序 C、设计算法,编写程序,提出问题,运行程序 D、设计算法,提出问题,编写程序,运行程序
-
6、下列表达式结果为真(True)的是( )A、9>2 and 0 B、3<5 or 4>5 C、not 16>15 D、20<19 and 87>100
-
7、以下选项中不符合 Python 语言变量命名规则的是( )A、am B、in C、_AI D、str1
-
8、执行下列语句后的显示结果是( )
>>>a=[1,2,3]
>>>a.append(5)
>>>print(a)
A、[1,2,3] B、[1,2,3,5] C、[5] D、[1,2,5] -
9、拟在屏幕上打印输出“Hello World”,以下选项中正确的是( )A、print("Hello World") B、print(Hello World) C、printf(“Hello World”) D、printf(‘Hello World’)
-
10、在python中,range(1,6)表示的范围是( )A、1,2,3,4,5,6 B、0,1,2,3,4,5 C、1,2,3,4,5 D、0,1,2,3,4
-
11、以下选项中不符合 Python 语言变量命名规则的是( )A、am B、3_1 C、_AI D、str1
-
12、在Python中,x=2.6,表达式 int(x) 的结果是( )A、3 B、2.6 C、2.0 D、2
-
13、在python中,下面代码的输出结果是( )
x=10
y=3
print(x%y)
A、3 B、13 C、30 D、1 -
14、运行下列Python语句,输出结果为( )。
a="hello"
b=2
print(a+b)
A、2 B、hello2 C、hello+2 D、以上选项都不正确 -
15、在python语言中以下哪一项是取余运算的运算符( )A、* B、/ C、// D、%
-
16、决策树是一种通过树形结构进行分类的人工智能预测模型,如根据图1所示“气象特点与游客是否来游乐场的关系”绘制的图2所示的决策树树形结构:
图 1
图 2
通过了解当天的是否有风、天气、温度和湿度这4个节点参数即可预测当天是否有人来游乐场。不同的节点划分顺序可以绘制不同的决策树,为了选出最优的节点划分顺序,需要采用“信息熵”与“信息增益”指标。
信息熵,又称香农熵,被用来度量信息量的大小,信息熵越大表示信息量越大;
信息增益,表示样本经某节点划分后的信息熵变化大小。我们绘制决策树时应当逐次选择信息增益最大的节点作为当前节点。
对于有n个信息的样本D,记第k个信息发生的概率为??,信息熵计算公式为E(D)=− ∑? ?????2(??)
例如游乐场14个样本中“去”(9个)、“不去”(5个),则信息熵
若样本按“是否有风”节点划分,“是”(6个,其中3个去,3个不去)信息熵=
“否”(8个,其中6个去,2个不去)信息熵=
=0.811;经过此节点划分后的信息增益=原始信息熵−按此节点划分后样本信息熵比例和
。
(1)、根据上述描述与题图1,则“天气”节点中的“多云”信息熵是 。(2)、实现求首次划分节点的程序如下,请在划线处填入合适的代码:def cal(lst): #计算样本 lst 的信息熵
x,y,z=0,len(lst),0 #x表示该样本信息熵,y表示该样本数量,z表示某信息发生的概率
num={}
for i in lst:
if i not in num:
num[i]+=1
for k in num:
z=num[k]/y #计算该信息发生的概率
x-=z*log(z,2) #根据公式计算信息熵,log(b,a)等价于 logab
return x def check(x,y):
#根据节点x,对样本 y 进行划分,返回示例:{'否': [1, 1, 0, 0, 1, 1, 1, 1], '是': [1, 1, 0, 1, 0, 0]},代码略
dic={'是否有风': ['否', '否', '否', '否', '否', '否', '否', '否', '是', '是', '是', '
是', '是', '是'],
'天气': ['多云', '多云', '晴', '晴', '晴', '雨', '雨', '雨', '多云', '多云', '晴', '晴', '雨', '雨'],
'温度': [28, 27, 29, 22, 21, 21, 20, 24, 18, 22, 26, 24, 18, 21], '湿度': [78, 75, 85, 90, 68, 96, 80, 80, 65, 90, 88, 63, 70, 80],
'是否前往': [1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0]} xm=list(dic.keys())
entropy=cal(dic[xm[-1]]) #调用函数计算样本原始信息熵 entropy #计算各节点信息增益
m=0;p=""
col=xm[:-1] #“是否前往”是结果项,不参与计算
for i in col:
size=len(dic[i]);entropy_1=0
zyb= #调用函数对样本 dic 按照当前节点进行划分
for j in zyb: #根据划分情况逐个求子样本信息熵并按比例累加
entropy_1+=len(zyb[j])/size*cal(zyb[j])
zy=entropy-entropy_1
print(i,"的信息增益:",zy)
if zy>m: #计算最大信息增益与信息增益最大的节点
m=zy
print("信息增益最大的节点:",p)
-
17、某网站对信息进行加密解密,选择页面“index.html”如图1,加密页面“jia.html”如图2,解密页面“jie.html”如图3。在选择页面点击相应按钮,选择加密或解密。
图 1
图 2
图 3
选择加密时,在明文文本框中输入明文,点击“加密”按钮,网页显示密文与对应的密钥。加密规则为打乱明文对应的索引作为密钥,再利用该索引逐个取明文字符连接成密文,例如:明文为“信息技术”,若被打乱的索引为[2,0,1,3],则密文为“技信息术”,密钥为“2,0,1,3”
选择解密时,在密文文本框中输入密文,密钥文本框输入密钥,点击“解密”按钮,网页显示明文。
(1)、该网络应用属于架构。(单选,填字母:A .B/S 架构,B .C/S 架构)(2)、若待解密文本为“自息爱信也我己爱”,密钥为“2, 7, 1, 6, 4, 0, 3, 5”,则解密结果是。(3)、实现该功能的 python 程序如下,请在划线处填入合适的代码:from flask import render_template,request,Flask
import random
app=Flask(name) #创建应用实例@app.route('/') #选择页面路由def index():
return render_template('') #加密功能代码略,以下为解密代码:
@app.route('/jiemi1/',methods=["GET","POST"]) def jiemi1():
wb=request.form["wb"] #变量 wb 存储密文,变量 keyo 存储密钥keyo=request.form["key"] #利用 request 获取网页文本框内容,返回示例:“2,0,1,3”
keyn=list(map(int,keyo.split(","))) #将字符串 keyo 转换为数值列表,示例:[2,0,1,3]
result=""
for i in range(len(keyn)):
for j in range(len(keyn)):
if:
break
result+=wb[j]
return render_template("jie.html",WB=wb,KEY=keyo,RESULT=result) if_name_=="_main_":
-
18、小张同学为了更好地了解冬奥会,从网上收集了历届冬奥会各个项目比赛信息,收集到的部分数据如图1所示:
图 1
图 2
为分析数据,小张编写了如下程序:
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
plt.rcParams['font.sans-serif']=['SimHei'] #使图形中的中文标签正常显示df=pd.read_csv("dongao.csv")
#删除所有未获得奖牌的记录,并将奖牌列中的"G"修改为"金牌","S"修改为"银牌","B"修改为"铜牌"
jp={'G':'金牌','S':'银牌','B':'铜牌'}
for i in df.index:
if ① :
df=df.drop(i)
else:
df.at[i,'奖牌']=jp[df.at[i,'奖牌']]
#对输入国家每届的奖牌数进行统计,并制作相应图表,如图2所示:nt=input("请输入国家名称:")
df1=df[df['国家']==nt]
df3=pd.DataFrame(df2) #将分组后的数据生成新的二维结构,索引为“届次”,列标题为“奖牌”
x=df3.index
y= ②
plt.title(nt+"历年冬奥会奖牌趋势图") plt. ③ (x,y)
plt.show()
(1)、在划线处填上合适的代码。① ② ③
(2)、为了最后能显示某国历届冬奥会奖牌变化,需在加框处添加的语句为 (多选)A、df2=df1.groupby('奖牌')df2=df1.届次.count()
B、df2=df1.groupby('届次')df2=df2['奖牌'].count()
C、df2=df1.groupby('奖牌')['届次'].count( ) D、df2=df1.groupby('届次').奖牌.count( ) -
19、小墩和小融打乒乓球,利用Micro:bit主板的LED阵列实时显示比分情况(如图1所示,2个方框分别表示小墩和小融比分区,每个亮点表示1分),并在BXYPythonEditor软件的串口中实时输出对局输赢情况(如图2所示)。
操作步骤:小墩得1分,按下Micro:bit主板的按钮A,左侧比分区亮点加1;小融得1分,按下按钮B,右侧比分区亮点加1。一局比赛初始比分为0:0,每一局中先达到10分的选手可以赢得该局。
(1)、实现上述功能的程序代码如下,请在划线处填入合适的代码:from microbit import * def bf(x,y):
#在 led 板上显示比分情况,代码略
m=0:n=0 #m表示小墩得分,n表示小融得分
while True:
if button_a.is_pressed(): #若按钮A被按下,则小墩得1分
m+=1
elif button_b.is_pressed(): #若按钮B被按下,则小融得1分
n+=1
if:
if m>n:
print("第", i, "局:小墩赢,比分:", m, ":" ,n)
else:
print("第", i, "局:小融赢,比分:", m, ":", n)
i+=1; m, n=0,0
bf(m,n)
sleep(200) #设置程序运行间隔为200毫秒
(2)、根据上述程序,下列比分情况不可能出现的是 。A、B、
C、
D、
-
20、虚线框处可以合并为一个条件表达式,下列表达式中符合该条件的是( )A、i//3==0 or i//5!=0 B、i%3==0 or i%5!=0 C、i//3==0 and i//5!=0 D、i%3==0 and i%5!=0