4.4 综合问题的解决 知识点题库

下面是随机点名器的代码设计,大致可分为四个模块。一是导入相应模块,二是窗体界面元素的产生及布局和有关属性设置,三是打开“点名册.txt”,读取并保存姓名数据,四是设计两个按钮的单击事件代码。以下是部分代码,认真阅读,补充完成下列程序。

from           #导入tkinter模块

import tkinter.messagebox           #导入弹窗库模块

import random                       #导入随机数模块

import datetime                     #导入日期时间模块

root = Tk()                         #创建主窗口

root.title("随机点名器")            #设置窗口标题

root.geometry('808x280+300+200')    #设置窗口大小及位置

root.resizable(0,0)                 #禁止调整窗口大小

var=StringVar()                     #定义StringVar()类型

var1=StringVar()

c=("点名册.txt",'r')          #以只读模式打开文件

a=c.readlines()                     #读取文件全部内容

c.                      #关闭文件

b=[]                                #b作为列表a的备份

   迭代法也称,是用计算机解决问题的一种基本方法。迭代通常是为了接近并达到所需的目标或结果。每一次对过程的称为一次“迭代”,而每一次迭代得到的会被用来作为下一次迭代的
  要达到在窗口显示不同位置的福字,需要完成两个步骤: ⑴在新的位置上;⑵把原来的图像。要“擦掉”某个图像,可以选择它,通常采用或者用来覆盖的方式。
numpy是一个科学计算包,其中包括很多,如、矩阵计算方法、、线性代数等。
(   )库中有两个主要的数据结构,一维数组(Series)和二维数组(DataFrame)结构。
A . Numpy B . Pandas C . Scipy D . Matplotlib
os模块是一个。os.system(“cls”)语句作用
下列(     )不属于Python网络数据采集程序使用的扩展库。
A . System B . SciPy C . Pandas D . Matplotlib
在Python模块库中有大量模块可供使用,要想使用这些文件,就需要用(    )语句把指定模块导入当前程序中。
A . move B . in C . import D . print
小范在服务器端编写FlaskWeb框架的Python程序,访问该系统的Web地址为//17/.1.1.200:88部分代码如下:

from flask import Flask, render_ template      #导入Flask库

app = Flask(_ name_ )

   ①  

def index( ):

#获取数据库中传感器采集的数据,并存储在变量temp中,代码略

if   ②  

app.run(host=   ③   )

  1. (1) 为实现上述功能,请在划线处填入合适的代码。

     ② ③ 

  2. (2) 简单描述方框处代码的功能:
使用Python语言编写某信息系统,数据存放在SQLite数据库中,将ssex值为“man”的所有记录转换为JSON格式文件,代码如下:

#数据库中获取数据存储在列表中

import json       #导入json函数库

   ①          #导入SQLite函数库

conn = sqlite3.connect("test.db")

json_ info=[]          #变量json_info存储记录数据

cur = conn.cursor( )

sql= "select * fromstd   ②   "        #查询ssex字段值为“man”的所有记录

cur.execute(sql)

json_ info = cur.fetchal( )          #将符合记录数据保存到变量json_info

conn.commit( )

cur.close( )

conn.close( )

#将记录转换为json格式的数据

file = open('b.json', 'w', encoding-'utf-8')     #打开json格式文件

json.dump(  ③   , file)      #将变量json_info转换为json格式保存到文件中

file.close( )

请回答下列问题:

  1. (1) 当前使用的数据库文件名称是,访问的数据表名为
  2. (2) 转换为JSON格式的数据后存储的文件名是
  3. (3) 结合实现上述功能的Python程序,请在划线处填入合适的代码。

     ② ③ 

小明编写基于Flaskweb框架的Python程序,系统的主界面如图1所示,系统包括数学计算与信息查询两个子系统。其中,数学计算子系统实现将两个整数(20位以内)相加的功能。例如:在文本框中分别输入两个数,如“875393642”和“83735927363”,单击“计算”按钮后,程序将计算结果显示在网页中。程序运行界面如图2所示。

实现上述功能的Python程序代码如下:

#导入编写Flask web框架的外部连接库

from flask import Flask, render_ template

from flask_ wtf import FlaskForm

from flask_ bootstrap import Bootstrap

from wtforms import SubmitField, StringField

from wtforms.validators import DataRequired

app = Flask(name_)

app.config['SECRET_ KEY']= 'xxx_sss 1276589'

bootstrap = Bootstrap(app)

#读取网页的表单输入的数值,存储到变量txt和变量txt1中

class NameForm(FlaskForm):

  txt = StringField(加数1:, validators=[DataRequired( )])

  txt1 = StringField(加数2:, validators=[DataRequired( )])

  submit = SubmitField(计算')

  #设置访问"/"目录路由命令

@app.route("/)

def index( ):

mtxt= '简易信息系统'

return render_ template(  ①  )

#设置访问"/sx"目录路由命令

@app.route(/sx', methods='GET', 'POST'])

def index_ sx( ):

adata= 0

bdata =0

    myform = NameForm( )

    if myform.validate_on_ submit( ):

        adata = int (myform.txt.data)

        bdata = int (myform.txt1.data)

    returm render_ template('t3.html', form-myform, txt=adata+bdata)   #调用“t3.htm1”网页模板

if_ name_ =='_main_':

      ②   #运行程序对象实例

结合上述代码,请回答下列问题:

  1. (1) 若该系统打开的首页为“index.html" ,①处应填写的代码为
  2. (2) 客户端用浏览器访问数学计算子系统,其调用的网页模板文件名为
  3. (3) 划线②处是运行程序对象实例,应填写的代码为
  4. (4) 若首页"index.html"文件中有如下超链接代码:

    '其他代码略

    <body>

        <a href="/sx">数学计算<br> </a>

        <a href="/cx">信息查询</a></center>

    结合系统运行图,则访问“信息查询子页面”的URL为

  5. (5) 结合代码中的虚线框。

    虚线框处定义函数名:

    该函数的功能:

    该函数中变量txt的作用:

若两个素数之差为 2,则该对素数称为双胞胎数,如 3,5 就是一对双胞胎数。编写 python 程序,实现如下功能:输入 n 的值,统计显示 n 以内的所有双胞胎数。程序运行界面如图所示:

实现上述功能的程序如下,请在划线处填入合适的代码。

import math

def isprime(x):

   

    for i in range(2,int(math.sqrt(x))+1):

        if x % i = = 0 :

             f=False

     return f

n=int(input("请输入一个正整数n:"))

c=0

k=3

while k < = n-2:

    if isprime( k ) and :

        c + = 1

        print("第"+ str( c ) +"对双胞胎数:", k ,'和',k+2)

    

print("共有"+str(c)+"对双胞胎数")

numpy是一个科学计算包,其中包含很多数学函数,如三角函数、矩阵计算方法等。arange函数是该模块中的函数,下列说法错误的是(     )
A . 可以用arange函数创建一个等差数列 B . arange函数如在0~2π之间每隔0.01取个值,则可以用arange(0,2* numpy.pi,0.01)来表示,其中numpy.pi表示π C . Import numpy as np后,x=np,arange(0,2* numpy.pi,0.01),可以将x应用到y=np.sin(x)图像绘制 D . 可以用arange函数创建一个等比数列
有一段 Python代码及其运行结果如下

小明在代码中插入了语句“df_delc=df.drop(0)”, 其余不做修改,那么运行这段修改后的代码,其运行结果为( )

A . A B . B C . C D . D
某Python程序段如下:

import random

fibo=[1]*11

for i in range(2, 11):

    fibo[i] = fibo[i - 1] + fibo[i - 2]

n = random.randint(1, 10)

print (fibo[n])

运行该程序段,输出结果不可能是(    )

A . 1 B . 21 C . 35 D . 89
下列关于信息编程加工的描述中,错误的是(    )。
A . 利用某种计算机语言,编写程序解决问题 B . 所有编程能解决的问题,用现有的工具软件都可以解决 C . 编程加工需要编写程序代码 D . 对数据进行排序,可以使用Excel软件,也可以编程实现
超市收银系统一般由收银机、条码称及数据服务器组成,收银机通过扫描条形码来录入购物信 息, 打印购物小票进行结算。超市的商品一般分为两种类型:计件商品和计重商品,商品的条形码信息中还需要包含商品类别识别码,用于识别商品类型。某次购物条码图和清单如下:

  1. (1) 根据以上条码图和购物小票信息,如果客户购买了 1kg 仔排,条码秤打印出来的条码编码是
  2. (2) 购物结算清单中的下列信息来自数据服务器的是(多选题)      
    A . 商品名称 B . 商品单价 C . 会员积分 D . 商品重量 E . 商品总金额
  3. (3)

    以上是解决这个问题而设计的一种算法,该算法中①处该填写, 该算法中②处填写

    A.  ty!=‘01’    B. ty==‘01’    C. ty!=01    D. ty==01

  4. (4) 根据此算法,编写如下代码实现收银机功能(用输入字符串;‘end’模拟“结算”按钮,用键盘输入条形编码模拟扫描输入,把购物清单输出到文本文件list txt模拟打印购物清单):

    sp={}      #商品信息字典

    #此处代码功能从数据服务器中获取商品信息字典 sp,sp 的结构为{'商品货号':'商品名称,商品单价'}

    alljg=0.0 #保存结算总金额

    sn=input('请输入商品条形码:')

    #######################################################

    #完成购物清单文本文件头处理 f=open('list.txt', 'r+')     #打开文本文件

    list.txt f.truncate()     #清空文本文件内容

    f.write('货号\t\t 商品名称\t 数量\t 单价\t 金额\n')

    ########################################################

    while    ▲    

    ty=sn[0:2]    #获取商品类型

    hn=sn[2:7]    #获取商品货号

    if  hn in sp:

    mc=sp[hn].split(', ')[0] #获取商品名称

    dj=float(sp[hn].split(', ')[1])    #获取商品单价 if

    ty!= '01':

    sl=1.0

    jg=dj

    else:

    sl=float(sn[12:14]+'. '+sn[14:17])

         ▲   

    print('{:<10s}{:<20s}{:^10.3f}*{:^10.2f}={:^10.2f}'.format(hn, mc, sl, dj, jg))

    #按格式输出内容,主要目的保持输出的内容上下按类别对齐

    f.write(hn + '\t\t' + mc + '\t' + str(sl) + '*\t' + str(dj) + '=\t' + str(jg) + '\n')

    #往文本文件中写入购物记录信息

    alljg+=jg

    else:

    print('商品货号有误,请核对后重新输入')

       ▲   

    print('小计:{:.2f}'.format(alljg))

    f.write('---------------------------------------\n') #文本文件输出分割线

    f.write('小计:'+str(alljg))     #往文本文件中写入总计信息

    f.close#关闭 list.txt 文件

    横线处代码应填

有全球票房前100的电影信息如下“票房前100名.xlsx”表:

图1

  1. (1) “票房前100名.xlsx”属于(填字母:A .结构化\ B .非结构化 \  C .半结构化)数据。
  2. (2) 如想要筛选得到该表内复仇者联盟各部剧的信息,以下可以操作的是              (多选题)
    A . B . C . D .
  3. (3) 要用Python实现如图2所示图表,代码如下,请在程序①②③划线处填入合适的代码。

    图2

    import pandas as pd

    import matplotlib.pyplot as plt

    df=pd.read_excel("票房前100名.xlsx")

    yplx=input("输入影片类型:")       

    df1= df[]       #对df取某类型电影的数据

    df2=df1.sort_values("总票房",ascengding=False).       #按总票房降序并取前5名

    x=df2["影片名"]

    y=

    plt.bar(x,y)

    plt.title(yplx+"类全球总票房前5")     #设置图标题

    plt.show() #显示图

小王开发基于Python的FlaskWeb框架开发室内光线强度监测信息系统,系统程序及相关的子系统都部署在Web服务器端,网站框架如图所示。

该系统的客户端无需专门的应用程序,用户工作界面通过浏览器来实现,应用程序基本上都集中于服务器端。

  1. (1) 由上述材料可知,服务器端的IP地址为,该系统的实现架构属于(选填:C/S 架构、B/S架构)。
  2. (2) 实现上述系统的服务器端Python程序如下:

    from flask import Flask, render_template,request    #导入Flask库函数

    app=Flask(_name_)

    @app.route("/")

    def index():

    #获取采集的数据并存储到列表变量 data,代码略

    return render_template("index.html",data= )

    @app.route("/ ",methods=["GET"])       #数据采集子页面路由命令

    def get():

    id=int(request.args.get("id")) d=float( )

    #获取 URL 中“id=1”后的数据“1”

    #变量 d 存储采集到的光线数据

    #打开数据库, 并将接收的数据存储到数据库中,代码略

    return "数据存储成功! "

    #其他系统子页面路由, 代码略

    if _name_=='_main_':

    app.run ( )

某城市正在举行“迎亚运邮票设计大赛”作品的微信投票活动,共有6件作品参与投票,现要选出得票最高的作品。每人每票最多可投3件作品(一张选票中投票超过3件作品则该选票无效)。本次投票共收到七万多条数据,小萌已将投票数据整理为csv文件,如图a所示,并将选票处理结果可视化,如图b所示。

  1. (1) 小萌先进行抽象建模与算法的设计,请补充完整划线处的内容。

    将csv文件中的数据存储到二维数组result[i][j],表示第i张选票第j件作品的票选数据,一维数组ps[i]表示作品i的最终得票数。依次处理所有选票数据,用sumx统计某张选票中“1”的个数,当可判断该选票有效,否则无效。若选票有效则对应的作品票数加1,最后将选票结果用图表呈现。

  2. (2) 为实现上述功能,请在划线①②处填入合适的代码。

    import numpy

    import matplotlib.pyplot as plt

    result=numpy. loadtxt ("toupiao.csv", encoding="utf-8", delimiter=",",s kiprows=1)

    #将csv文件转化为二维数组,skiprows=1表示忽略第一行数据

    n=len(result)  #获取result的行数(收到的投票数)

    zp=["作品1", "作品2", "作品3", "作品4", "作品5", "作品6"]

    ps=[0]*6

    for i in range(n):

     

       for j in range(6):

          sumx+=result[i][j]

       if  sumx<=3:

          for j in range(6):

            

    plt. rc("font", **{"family": "SimHei"})  #设置图表中的文字字体

    for x, y in zip(zp, ps):                #zip函数用于显示数字标签

       plt. text(x, y, "%d" %y, ha="center", va="bottom", fontsize=14)

    plt. title("迎亚运邮票设计大赛")

        #绘制垂直柱形图

    plt. show()

  3. (3) 方框处应选择的代码为(   )(单选,填字母)
    A . plt. bar(zp, ps) B . plt. plot(zp, ps)  C . plt. scatter(zp, ps)