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

   pygame模块提供了等函数;random模块用于产生;sys模块包含了跟Python相关的函数。
  调用函数,将返回一个窗口。如果想在窗口上绘制或是放置对象,需要指定这个对象在窗口的即坐标。pygame中的坐标系原点在,水平方向为轴,垂直方向为轴。
要将显示一个有背景色的窗口改为显示一个有背景图片的窗口应将*处改为两句,请填写在①②处。

screen.fill((255,255,0))    #窗口填充黄色*

      #加载背景图像

  #将背景图画在窗口

pygame.display.update()        #窗口刷新

某餐厅推出优惠活动,凡到店消费的顾客均可随机抽取三份小菜中的一份 ,20元以上再赠送一个“荷包蛋”。请用Python程序解决问题。

import random

def coupon(money):

        ①       

    if 0< money <= 20:

        return food

    elif money > 20:

        

appetizer = ["话梅花生","拍黄瓜","凉拌三丝"]

payment = float(input("输入您的消费金额:"))

      ②      

print("赠送的小菜为:"+result)

  1. (1) 若输入的消费金额是30元,程序输出的可能结果有 种,写出程序的运行结果:
  2. (2) 在程序划线处应填写的代码是什么?
       ②
  3. (3) 将程序代码中加框处的语句改为: 是否可行 (选填:“是”或“否");请说明原因:
有Python程序段如下:

import pandas as pd

df1=pd. DataFrame([[10, 20], [30, 40]], columns=['A','B'])

df2=pd. DataFrame([50, 60], [70, 80]], columns=['A',B'])

df=df1. append(df2,ignore_ index= True)

print(df)

该程序段运行后输出结果为(    )

A . B . C . D .
某全英文教材文件"textbook.txt"内容如图所示。编写Python程序,分析该书中的单词使用情况。程序代码如下,请回答下面问题。

 

  1. (1) 图1中单词的间隔有 。
  2. (2) 自定义函数cleantext( )的功能是
  3. (3) 在划线处填入合适代码,完善程序。

    import pandas as pd

    def cleantext( ):

        txt = open("textbook.txt","r"). read( )

        txt=     ①            #将字符串中所有大写字母转为小写

        for ch in '! ( );:''',.? ' :

            txt = txt.replace(ch,"")       #用空格替代ch的值

        return txt

    booktxt = cleantext( )

    words = booktxt. split( )

    #以空格为分隔符分割文本并生成列表

    counts= { }

    for word in words:

        counts[word]=counts. get( word,0)+1

    items= -list(counts. items( ))    #返回所有键值对信息,生成列表

    df= pd.DataFrame(items,columns=['word','times'])

    df1= df.sort _values('word')

    df1.plot( x='word', y='times', kind='line', igsize=(8,3))

    df2=    ②       

    print('文件中出现的不同单词数:',     ③          )

    print(df2[:10])

     ② ③ 

  4. (4) 运行程序,输出结果如图2所示,绘制的图形如图3所示。结合两图分析,该教材中出现次数超过50次的单词有哪些?这些单词有什么特征?

  5. (5) 若将该教材中单词的掌握程度分为“非常熟练”“熟练”“一般”三类输 出,请完善下表。

    掌握程度

    程序末尾须添加的输出语句

    非常熟练(出现10次以上)

    熟练(出现2~10次)

    一般(出现1次)

python中引入第三方库使用(     )语句
A . if B . for C . while D . import
在BXY中输入代码如图所示。

下载并运行该代码,下列关于代码执行效果描述正确的是(    )

A . 按下micro:bit主板上的按钮A,蜂鸣器发出的声音时长会增加 B . 按下micro:bit主板上的按钮B,蜂鸣器发出的声音频率会降低 C . 不按micro:bit主板上的按钮B,蜂鸣器发出的声音时长和频率都不变 D . 不按micro:bit主板上的按钮A,蜂鸣器发出的声音时长和频率都改变
将温湿度传感器连接到micro:bit终端获取温湿度数据,代码如下:

from microbit import sleep            #导入microbit函数库

import dht11

while True:

     temp, hum= <dht11.read(2)    #获取传感器的温度和湿度数据

     print("temp = %d C" %temp)

     print("bum = ", hum)

     sleep(100)                      #等待

下列说法正确的是(    )

A . 每间隔100秒钟获取传感器温度数据,并存储到变量temp中 B . 传感器获取温度值是字符型的数据 C . 温湿度传感器连接到主板的pin2端口 D . 当前输出的数据仅为采集到的温度数据
在用Python编程对数据进行分析的时候,代码pandas.DataFrame.sum执行的操作是(   )
A . 返回所有列的和 B . 返回所有行的和 C . 返回所有数据中的最大值 D . 返回所有数据中的最小值
在Python中要生成随机数,应该使用(    )。
A . math 模块 B . random模块 C . numpy 模块 D . pygame 模块
小明参加课外活动小组,对盆栽中某一枝条做好标记,记录28天内该枝条的生长情况,每周日记录一次,四次记录结果分别为8.8cm、10.1cm、10.9cm、11.4cm。他使用Python编码。制作了关于枝条长度(单位:cm)的柱形图,代码及柱形图如下图所示,代码空白处应填。 (       )

A . "8.8,10.1,10.9,11.4" B . "8.8","10.1","10.9","11.4" C . 8.8,10.1,10.9,11.4 D . [8.8,10.1,10.9,11.4]
numpy是一个科学计算包,其中包括很多数学函数。
某同学想给老师们制作一个课堂随机抽学生回答问题的程序,据此回答下面小题。
  1. (1) 先要解决的问题是把全班50名同学的姓名输入到一个列表s中,以下能解决该问题的程序段是(     )
    A . s=""

    s=input("请输入一个姓名并回车")*50

    B . s=[]

    for x in range(50):

       s=s+[input('请输入一个姓名并回车')]

    C . s=""

    for x in range(50):

        s+=input("请输入一个姓名并回车")

    D . for x in range(50):

        s=[]

        s=s+[input('请输入一个姓名并回车')]

  2. (2) 名单输入后,下面解决抽名字的问题了,下列程序段能解决自动随机抽取一位同学姓名的是(     )

    ①import random

    print(random.choice(s))

    ②import random

    n=random.randint(0,49)

    print(s[n])

    ③import random

    for n in range(50):

        print(s[n])

    ④import random

    n=int(input("请输入0-49间任意整数:"))

    print(s[n])

    A . ①② B . ①③ C . ②④ D . ③④ 
某次测试的excel文件成绩表如图1所示。

图1

  1. (1) 已知有200名同学参加了本次测试。小明想把全体同学的信息平均分放在D202单元格,那么在D202单元格输入的公式为
  2. (2) 现在要求用python增加“总分”列数据,然后求每个班总分的平均分(如图图2),最后绘制每班总分平均分的垂直柱形图(如图3)。请在程序①②选择合适的代码

    图2

    图3

    import pandas as pd

    import matplotlib.pyplot as plt

    #图表中文显示处理,代码略

    df=pd.read_excel("test.xlsx")

    score=[]

    for i in df.values:

      js=   ①            #①处请选择  (填字母):A . df["信息"]+ df["通用"] / B . i[3]+i[4]

      score.append(js)

      df["总分"]=score

      df1=df.groupby("班级",as_index=False) ["总分"].mean()

      plt.title("期中技术平均分")

      plt.   ②   (df1["班级"],df1["总分"],width=0.5)        #②处请选择   (填字母):A . plot / B . bar /C . scatter

图像的存储和处理在计算机内部的是采用二进制的形式,一幅图像常常由分辨率、颜色深度的方式来存储,Python的PIL模块能够直接读取图像中每个像素点的颜色信息,一般采用 RGB(红:0~255,绿:0~255,蓝:0~255)的方式表示颜色。现有一幅红字白底图像1.bmp,基本信息如下:

1 bmp

1 bmp属性截图

#程序段 1:

from PIL import Image

import numpy as np

import matplotlib.pyplot as plt

img=np.array(Image.open('1.bmp').convert("L"))

rows,cols=img.shape#获取图像的行数和列数

for i in range(rows):

for j in range(cols):

if img[i,j]>128:

img[i,j]=0 #设置为黑色

else:

img[i,j]=1 #设置为白色

plt.figure("1.bmp")

plt.imshow(img,cmap="gray") #以灰度模式显示

plt.axis("off")

plt.show()

说明:以上程序段1实现将1.bmp 以黑底白字显示

请根据以上信息回答下列问题:

  1. (1) 程序段1运行过程中,变量j的值范围是
  2. (2) 程序段2调试时出现“IndexError: index 128 is out of bounds for axis 1 with size 128”的提示,则上述程序出现这个错误的语句是

    A. rows,cols=img.shape                        B. for i in range(rows)

    C. img[i,j],img[i,cols-j]=img[i,cols-j],img[i,j]       D. plt.imshow(img,cmap="gray")

    应该修改为:

  3. (3) 将第(2)题表述的错误修改正确后,程序段2运行后图片呈现的内容:

    #程序段 2:

    from PIL import Image

    import numpy as np

    import matplotlib.pyplot as plt img=np.array(Image.open('1.bmp').convert("L"))

    rows,cols=img.shape

    for i in range(rows):

    for j in range(cols//2):

    img[i,j],img[i,cols-j]=img[i,cols-j],img[i,j]

    plt.figure("hh")

    plt.imshow(img,cmap="gray")

    plt.axis("off")

    plt.show()

某班级学习委员编写了一个随机抽取学生的程序,用于辅助班级作业检查。具体功能如下,班级名单存储在文件“mingdan.csv”中,输入抽取的学生数k,则输出随机抽取的学生名单。文件“名单”部分界面如图a所示,程序运行结果如图b所示。python程序代码如下,请回答下列问题。

图 a

图 b

from random import randint   import csv

k = int(input("请输入抽取人数: print("抽取人员名单为: ")

f = open("mingdan.csv")

f_csv = csv.reader(f)

dic = {}

num = 0

for row in f_csv:

  if num == 0:"))

    print(row[0]," ",row[1])

    num += 1

    continue

  dic[num] = [row[0],row[1]]

  num += 1

  f.close()

  num -= 1

  i = 0

while i < k:

  luck =      ①    

  

  print(dic[luck][0],      ③     )

  i += 1

  if num == i + 1:

    Break

  1. (1) 请在划线处填入合适代码。

        ②   ③

  2. (2) 如果删除加框处代码,则对程序造成的影响为                      (单选,填字母)
    A . 程序出现语法错误,无法正常运行 B . 当k<=num时,输出数据可能少于k行 C . 当k<=num时,输出数据可能多于k行 D . 输出的数据中,可能存在重复的人员
matplotlib模块是Python中最出色的绘图库,其中show函数的作用是(     )。
A . 将点对连线 B . 将绘制的图像窗口显示出来 C . 设置图像标题 D . 设置坐标轴标题
如下 Python 程序段:

from flask import Flask app = Flask( name )

@app.route('/')

def index( ):

return "<p>Hello World!</p>"

if __name__== ' main ':

app.run(host='127.0.0.1',port=80)

以下有关该程序段的说法不正确的是(  )

A . 该程序中导入的flask模块一种小型 Web 网络应用框架 B . app=Flask( name )用于创建应用实例 C . @app.route('/')用于创建表单 D . 程序正确运行时,可以在浏览器地址栏输入“127.0.0.1”来查看显示的内容
有如下 Python 程序。

from random import randint

a=[0]*6

for i in range(6):

  a[i]=randint(1, 10)

  for i in range(6):

    if a[i]%2==0 and i%2== 0:

      a[i] += 1

    elif i%2==1:

      a[i]=a[i]+a[i- 1]

print(a)

程序运行后,输出结果可能是 (    )

A . [8, 11, 7, 3, 11, 14] B .   [9, 13, 7, 13, 11, 14] C . [9, 8, 11, 13, 7, 15] D .   [9, 13, 7, 13, 10, 8]