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

numpy是一个科学计算包,其中包括很多,如、矩阵计算方法、、线性代数等。
   Pygame.display的功能是访问;Pygame.event的功能是;Pygame.font的功能是使用;Pygame.image的功能是
Pygame自带了一个监听类循环,不断检查用户的操作,这个循环在程序运行过程期间持续工作。仔细阅读理解如下代码填写括号内容

while True:

  for event in pygame.event.get():          #(

    if event.type==pygame.QUIT:          #(

      sys.exit()                  #退出程序

    if event.type==pygame.MOUSEBUTTONDOWN: #(

要将显示一个有背景色的窗口改为显示一个有背景图片的窗口应将*处改为两句,请填写在①②处。

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

  )  #加载背景图像

(  ) #将背景图画在窗口

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

显示游戏程序的得分,方法为:先定义显示字体,然后将score显示出来。为了增加代码的复用性,以便游戏循环中状态更新时反复调用,可以定义成一个函数showscore。

def ():        #定义函数,显示分数

textfont=() #字体为Arial,大小30

#生成平滑的红色字符串

t=()('score:'+str(score),True, (255,0,0))

screen.blit(t,[50,50])     #在窗口显示

matplotlib模块是一个。matplotlib的绘图原理很简单,利用画线函数就可以在直角平面内轻松地将坐标点对连接成平滑曲线。
Pygame自带了一个监听类循环,不断检查用户的操作,这个循环在程序运行过程期间持续工作。仔细阅读理解如下代码填写括号内容。

while True:

  for event in pygame.event.get():     #  

    if event.type==pygame.QUIT:          # 

      sys.exit()                  #退出程序

    if event.type==pygame.MOUSEBUTTONDOWN: #

以下哪项是一个绘图库模块(    )
A . Numpy B . Matplotlib C . Plot D . arange
下列可以导入Python模块的语句是(    )
A . import module B . input module C . print module D . def module
根据表中的命令提示,阅读以下Python程序段,描述程序实现的过程。

命令

说明

turtle.forward(distance)

向当前画笔方向移动distance像素长度

turtle.backward(distance)

向当前画笔相反方向移动distance像素长度

turtle.right(degree)

顺时针移动degree°

turtle.left(degree)

逆时针移动degree

turtle.pencolor()

返回当前画笔颜色,传人参数设置画笔颜色

import turtle

t=turtle. pen()

turtle. bgcolor("white*")

colors=["red","green" "blue"]

for x in range(3):   

    turtle. pencolor(colors[x%3])

    turtle. eft(120)

    turtle. forward(150)

调用模块不正确的(   )
A . os.system( ) B . random.sample( ) C . mymodule.match_num( ) D . sys.sleep( )
time模块是一个。time.sleep(10)是10秒。
以下描述中最适合用计算机编程来处理的是(    )
A . 确定放学回家的路线 B . 处理一张数码照片 C . 计算10000以内的奇数和 D . 在因特网上查找歌曲
matplotlib模块是Python中最出色的绘图库,功能很完善。调用 matplotlib.pyplot时,坐标系可以根据数值范围自动生成。阅读下列程序代码。

import numpy as np #加载numpy模块并取名为np

import matplotlib.pyplot as plt

x=np.arange(0,2*np.pi,0.01)

y=np.sin(x) 

plt.plot(x,y)

plt.title('sin(x)') 

plt.xlabel('X')

plt.ylabel('Y')  

plt.show() 

下列选择错误的是(    )

A . import matplotlib.pyplot as plt ,加载matplotlib.pyplot并取名为plt B . x=np.arange(0,2*np.pi,0.01)为x轴区间 C . plt.plot(x,y),显示x轴、y轴 D . plt.show()显示图像
以下程序引入Python的math模块,使用math模块下的floor函数对命令行输入的实数进行取整。请将程序补充完整。

n=input(“请输入一个实数:”)

n2= math. floor(float(n))

print(n2)

使用pandas编程处理数据DF1,下列选项能实现行列转置的操作是(     )
A . DF1.T B . DF1.columns C . DF1.values D . DF1.index
小张用Python爬虫程序从百度招聘网站中爬取了IT行业的招聘信息存储在“行业分析.xlsx”文件中,并对数据进行了预处理,现用Excel软件进行数据分析,部分界面如图a所示。

图 a

  1. (1) 为统计各学历在招聘信息中的岗位数,选中H2单元格输入公式,然后利用自动填充完成I2:L2的数据计算,发现结果计算有误,请修改H2单元格中的计算公式 。(提示:COUNTIF函数用于对指定区域中符合指定条件的单元格计数。如:=COUNTIF(E2:E393,H1)表示计算E2:E393区域中学历为“博士”的人数)
  2. (2) 将C列、D列数据复制并粘贴到新的Excel表格cs.xlsx中,根据其中的数据利用Python 程序计算出如图b所示结果,并建立如图c所示的图表,请在划线处填入合适的代码。

    图 b

    图 c

    pandas as pd

    import matplotlib.pyplot as plt

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

    g=df.groupby(‘type’,as_index=False)

    datas=

    print(round(datas,2))

    name= datas[‘type’]

    colleges=datas[‘salary’]

    plt. (name, colleges)

    plt.show( )

matplotlib模块是一个。matplotlib中的子库所提供的函数可以快速绘图和设置图表的坐标轴、坐标轴刻度、图例等。
从离地500米的空中自由落下一个小球,求从开始落下的时刻起,小球在最后1秒内的位移(重力加速度g以9.8米/秒2计)。程序如下,回答以下问题。

import math

h = 500

g = 9.8

t = math.sqrt(2*h/g)

hx = g*(t-1)*(-1)/2

hh = h-hx

print(“小球最后1秒下落的位移是:”, hh, "m")

  1. (1) 该程序代码中使用了库,库的名称是(   )。
    A . Limport B . math C . sqrt D . Print
  2. (2) 该程序代码中使用了常量,它的名称是(   )。
    A . h B . t C . 500 D . Hh
  3. (3) 该程序代码中使用了变量hh,它的数据类型是(   )。
    A . int B . float C . 列表 D . 字符串
  4. (4) 该程序中print(“小球最后1秒下客的位移是:”,hh,“m”),其中“m”的数据类型是(   )。
    A . int B . float C . 列表 D . 字符串
  5. (5) 该程序使用了物理公式计算空中自由落下个小球的位移,采用的算法处(   )。
    A . 解析算法 B . 穷举算法 C . 递归法 D . 选择排序
创意机器⼈⼤赛——捡硬币。⽐赛规则如下:

1)在⽐赛场地上放置了n个硬币,每个硬币的位置均不相同,各位置坐标(x,y)保存在⽂本⽂件中(如图所示,放置了5个硬币,⽂本中坐标按x,y升序排列);

2)机器⼈在两个硬币位置间⾛直线,从起点(0,0)出发,按硬币x坐标从⼩到⼤去捡,若x坐标相同,则按y坐标从⼩到⼤捡;取⾛其中的n-1个硬币,总⾏⾛距离最短的机器⼈将获得⽐赛的冠军。

例:如图a所示,p2直接到p4则代表p3处硬币未取。

图a

图b

图c

完成该项⽬分以下⼏个步骤:

  1. (1) 读取坐标数据。

    从⽂本⽂件中读取硬币的坐标(x、y),分别存储在列表 x 和y 中。请在划线处填⼊合适的代码。

    f=open("position.txt",'r')      #从⽂件中读取坐标位置

    x=[0];  y=[0]      #将原点坐标分别存储在x、y 列表中

    line=f.readline()         #取出一⾏数据

    #从⽂本⽂本中读取硬币的位置,并存储在 x、y 列表中

    while line:

    data=line.split(",")       #以逗号为分隔符转换成列表

    x.append(int(data[0]))

    line=f.readline( )

    f.close()       #关闭⽂件

  2. (2) 编写函数,计算两点间的距离。请在划线处填⼊合适的代码。

    from math import sqrt

    def  dist(x1,y1,x2,y2):      #计算(x1,y1)到(x2,y2)的距离

    d=

    return d

  3. (3) 设计算法与程序实现。

    机器⼈取⾛n-1个硬币经过的最短距离公式可以描述为:

    其中:为机器⼈取⾛n-1个硬币⾛的最短距离;为机器⼈取⾛n个硬币经过的距离之和;为机器⼈未取第i个硬币少⾛的路程;Max为求中的最⼤值。

    根据上述算法编写的Python程序如下,请在划线处填⼊合适的代码。

    n=len(x) : long=0

    for i in range(1, n):

      long=long+dist(x[i-1], y[i-1], x[i], y[i])

     

      ansi=n-1

      for i in range(2, n):

        d1=dist(x[i-2],y[i-2],x[i-1],y[i-1])

        d2=dist(x[i-1],y[i-1],x[i],y[i])

        d3=dist(x[i-2],y[i-2],x[i],y[i])

        dx=          #计算未取第i-1 个硬币少⾛的路程。

    if dx>maxd:

        maxd=dx

        ansi=i-1

        print("机器⼈⾏⾛的最短距离为:"+str(round(, 4))) print("未取⾛的硬币的位置为:(",x[ansi],",",y[ansi],")")

  4. (4) 调试和异常处理

    当最后一个硬币未取为最短距离时,上述程序运⾏结果不正确。加框处代码有误,请修改。