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

   matplotlib模块是一个。matplotlib的绘图原理很简单,利用画线函数就可以在直角平面内轻松地将(x,y)坐标点对连接成平滑曲线。
以下是牛顿迭代程序,认真阅读,填写横线内容。

import math

a=float(input("请输入方程系数a:"))

b=float(input("请输入方程系数b:"))

c=float(input("请输入方程系数c:"))

d=b*b-4*a*c

if :

    x1=(-b+math.sqrt(d))/(2*a)

    x2=(-b-math.sqrt(d))/(2*a)

    print("方程有两个不同的解",x1,x2)

elif :

    x1=-b/(2*a)

    print("方程有两个相同的解",x1)

else:

print("方程无解")

要达到在窗口显示不同位置的福字,需要完成两个步骤:(1)在新的位置;(2)把原来的图像。要“擦掉”某个图像,可以选择它,通常采用或者用来覆盖的方式。
Pygame.display的功能是访;Pygame.event的功能是;Pygame.font的功能是使用;Pygame.image的功能是
要将显示一个有背景色的窗口改为显示一个有背景图片的窗口应将*处改为两句,请填写在下划线处。

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

               #加载背景图像

                #将背景图画在窗口

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

用Python程序实现统计随机数出现的次数。若随机产生30个[0,9]的整数,统计数字0~9出现的次数。以下是部分Python程序段,请回答下列问题: .

import random

def check(a):

b=[0]*10     #初始化列表b,列表元素为10个0

for i in range(0,len(a)):

            ①        

return b

list=[0]*30

for i in range(0,30):

    num = random.randint(0,9)

           ②         

print(list)

print("0~9数字依次出现次数.:"       ③        )

  1. (1) check函数的功能是
  2. (2) 程序中划线处应填入的代码是什么?

     ② ③ 

下列Python程序用于研究数学函数的图象,绘制的图形如图所示。程序中①②③处应填写的代码为( )

import matplotlib.pyplot as plt

import numpy as np

# numpy. linspace(start, stop, num=50)

#产生从start到stop的等差数列,num为元素个数,默认50个

x = np.linspace(0, 1, 50)

y1=x**2

y1=**2

y2 = np.sqrt(x)

y3=x**5

plt.figure( )

    ①   

    ②   

    ③   

plt.legend( )

plt.show( )

A . ①plt. plot(x, y1) ②plt. scatter(x, y2) ③plt. scatter(x, y3) B . ①plt. plot(x, y1, label="y1 = x**2") ②plt. scatter(x, y2, label="y2 = np. sqrt(x)") ③plt. satter(x, y3, label="y3 = x**5") C . ①plt. scatter(x, y, label="y1=x**2") ②plt. plot(x, y2, labe1="y2 = np. sqrt(x)") ③plt. scatter(x, y3, label="y3=x**5") D . ①plt. scatter(x, y1) ②plt. scatter(x, y2) ③plt. plot(x, y3)
哥德巴赫在1742年提出了以下猜想:任何一个大于2的偶数都可以写成两个质数之和,请完善代码帮助哥德巴赫验证他的猜想。

import math

def ss(n):

    Flag=True

    i=2

    while i <= int(math.sqrt(n))and Flag:

        if

            Flag = False

       

    return Flag

n=int(input(“输入一个大于2的偶数”))

for i in rang(2,n//2+1):

    if

        print(str(n)+"="+str(i)+"+"+str(n-i))

如果输入“8”则结果显示

计算机在0~1000中随机产生一个数,试试看你要多少次才能猜中,阅读下列程序.

import random

num=random.randint(1,  ①  )

mynum=int(input('请输入mynum='))

n=1

while not(  ②  ):

    n= n+1

    if mynum<num:

        print("输入的数小了")

    elif mynum>num:

        print("输入的数大了")

    print("输入不正确,请再次输入")

    mynum=int(input('请输入mynum='))

print("你猜对了!","一共用了",n,"次") 

input("运行完毕,请按回车键退出...")

下列说法正确的是(    )

A . ①填写999 B . ①填写1000 C . ①填写1001,②填写mynum== num D . ②填写mynum!= num
某市普通高中选课数据如图1所示,学生从地理、化学、生物等科目中选择三门作为高考选考科目,“1”表示已选择的选考科目。使用Python编程分析每所学校各科目选考的总人数、全市各科选考总人数及其占比,经过程序处理后,保存结果如图2

图1

图2

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

import pandas as pd

import itertools

#读数据到pandas的 DataFrame结构中

df=   ①     (”xk73.csv”,sep=‘.’,header=‘infer’,encoding=‘utf-8’)

km=[‘物理’ ,‘化学’ ,‘生物’ ,‘政治’ ,‘历史’ ,‘地理’ ,‘技术’ ]

#按学校分组计数

sc=df.groupby(‘    ②     ’,as_index=False).count( )

#对分组计数结果进行合计,合计结果转换为 DF结构并转置为行

df_sum=pd.DataFrame(data=sc.sum()).T

df_sum[‘学校代码’]=‘合计’

#增加"合计"行

result=sc.append(df_sum)

#百分比计算

df_percent=df_sum

df_percent[‘学校代码’]=‘比例’

for k in km:

per=df_percent.at[0,k]/zrs

  df_percent[k]=per

  #增加"百分比"行

result=result.append(df_percent)

#删除"姓名"列

result=   ③   

#修改"学生编号"为"总人数"

result=result.rename(columns={‘学生编号’:‘总人数’})
#保存结果,创建 Excel文件.生成的 Excel文件

result.to_excel("学校人数统计.xlsx")

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

     ② ③ 

  2. (2) 加框处语句的作用是
以下程序引入Python的math模块,使用math模块下的floor函数对命令行输入的实数进行取整。请补全该程序段。

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

n2= math. floor(float(n))

print(n2)

小智在分析应用功能组成后,根据功能需求编写了如下网络应用Python代码:

from flask import Flask,render_template,request

app =                

@app.route("/")

def index():

#显示“主页”页面,代码略

@app.route("/introduce")

def introduce():

#显示“介绍”页面,代码略

@app.route("/exercise",methods=["GET","POST"])

def exercise():

#显示“练习”页面,代码略

@app.route("/top")

def toplist():

#显示“排行榜”页面,代码略

if __name__ == "__main__":

app.             

  1. (1) 请在划线处补充代码。
  2. (2) 请用实线将下列访问的“在线加法练习系统”功能的URL与相应的路由及视图函数连接起来。(答案填写格式如:A-d 、B-a)

    A.//127.0.0.1:5000/top

    toplist()

    a.@app.route("/top")

    B.//127.0.0.1:5000/

    exercise()

    b.@app.route("/exercise",methods=["GET","POST"])

    C.//127.0.0.1:5000/exercise

    introduce()

    c.@app.route("/introduce")

    D.//127.0.0.1:5000/instance

    index()

    d.@app.route("/")

                                                       

  3. (3) 在Flask Web应用框架中,可以通过网页模板来显示内存变量的值或对象等,以下在模板文件index.html中用于显示内存变量xxjs值的正确代码为           
    A . {{xxjs}} B . {{#xxjs#}} C . {{%xxjs%}} D . {%xxjs%}
完善以下程序代码完成下题。

程序描述:2公里(包括2公里)内,起步价为5元,超过2公里部分(不足整公里的,向上取整),每公里1.6元。

代码如下:

Import   ①    #引用math库

s=  ②  (input("请输入你要去目的地距离出发点的公里数:))

If  ③  :  #2公里(包括2公里)内

   cost =5

else:

  cost = 5+math.ceil(s-2) *1.6

print("你的打的费用是", cost,“元)

①处的语句是,②处的语句是,③处的语句是

①A.math    B.Numpy    C.time    D.Matplotlib

②A.Float    B.Int    C.str    D.Math

③A.s≤2    B.s<=2    C.s>2    D.s≥2

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函数创建一个等比数列
某程序功能如下输入n,生成n*n的方阵,存于列表a,内容为1至9的随机整数。再对以(x0,y0)和(x1, y1)为对角顶点的矩形区域中的数据进行水平翻转,并将变换后的二维数组以矩阵形式输出。再输入小于n的四个数字(如a,b,c,d,四者关系必须满足a<c,b<d),用逗号间隔: 2,1,6,5 则左上角为a[1][2] ,右下角为a[5][6],则运行程序后,运行界面如图所示。

  1. (1) 以上图为例,如果输入左上角+右下角的坐标为:2,3,7,5。水平翻转后,则元素a[3][4]的值在新数组保存在元素a[][](填写下标)中。
  2. (2) 代码如下并完成填空。

    #生成n*n的矩阵

    import random

    n=int(input(‘输入n,产生n*n的方阵:’ ))

    a=[[random.randint(1,9) for i in range(n)] for j in range(n)]

    for i in a:

      print(i)

    print( )

    x,y=[],[]

    xy=input("请输入左上角+右下角坐标:") #输入左上角坐标+右下角坐标,用逗号分隔数字。如:"2,1,14,13"

    xy=xy+","

    c,j=0,0

    for i in range(len(xy)):

      if xy[i]==",":

        if :

          x.append(int(xy[j:i]))

        else:

          y.append(int(xy[j:i]))

       

        c=c+1

    for i in range(y[0],y[1]+1,1):

      for j in range(x[0],(x[0]+x[1])//2+1,1):

        a[i][j],a[i][]=a[i][],a[i][j]

    for i in range(len(a)):

      print(a[i])

Python中的pyame模块是专门用来开发游戏的,其中pygame.display.set_caption(接福游戏)的功能是(    )。
A . 设置当前窗口标题栏的名称 B . 创建一个指定大小的窗口 C . 更新当前窗口 D . 从文件加载新图片
下列关于Python中numpy模块的说法错误的是(       )。
A . numpy是一个科学计算包 B . numpy中包含了很多数学函数,如三角函数、矩阵计算方法等 C . numpy模块中的arrange函数可以创建一个等差数列 D . numpy模块可以画函数图象
小明对入栈、出栈规则研究发现,若有n个数字1,2,3,……,n按由小到大的顺序入栈,则出栈序列必须遵循下述原则:当数字x出栈后,则在x后出栈的小于x的所有数字必定以降序排列,比x大的数字可以夹杂在该降序序列中。现编写Python程序,按上述原则验证一个随机产生的出栈序列是否可能,程序运行界面如图所示。

  1. (1) 根据题意,若有7个数字入栈,则出栈序列“3→2→5→4→7→1→6”是 (单选,填字母:A .可能 / B .不可能)
  2. (2) 实现上述功能的Python程序代码如下,程序中加框处代码有错,请改正。

    import random

    n=int(input('请输入入栈元素的个数:'))

    data=[i+1 for i in range(n)]

    random.shuffle(data)     #将序列的所有元素随机排序

    s=''

    for i in range(n):

      s+=str(data[i])+'→'

      print('随机产生的出栈序列为:'+ )      #去除最后多余的'→'

      flag=True; i=0

    while i<n-1 and flag:

         ①   

      for j in range(i+1,n):

        if data[j]<data[i]:

          if data[j]<x:

            x=data[j]

          else:

               ②   

        break

        i+=1

    if flag:

      print('该出栈序列是可能的!')

    else:

      print('该出栈序列是不可能的!')

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

哪个库可以绘制如图的直方图(    )

A . Math B . wordcloud C . pandas D . pyplot
下面这段程序是绘制函数图象的,其中plot函数可以绘制线形图

1

2

3

4

5

6

7

8

9

import numpy as np

import matplotlip.pyplot as plt

x=np.linspace(0,10, 100)

y=np.sin(x)

plt.title("sin(x)")

plt.plot(x,y,color="r",linewindth="2")

plt.show( )

以下图形哪一个是该程序绘制出来的(    )

A . B . C . D .