小紅編寫基于Flask Web框架的Python校園空氣質量指數(AQI)監測系統,實現監測校園各采樣點AQI數據。校園的每個采樣點都使用相關傳感器采集PM2.5、PM1.0和PM10的值,然后計算當天的AQI。
(1)數據采集與傳輸。學校操場是4號監測點,每分鐘采集一次PM2.5、PM1.0和PM10的值。如圖所示為其中某一天的部分采集數據。

①AQI需先統計全天PM2.5采樣數據的平均值,然后根據平均值計算獲得。根據上圖所示的數據,PM2.5前3分鐘的平均值為 3939(填數值)。
②小紅編寫了數據處理子程序,實現計算每天的數據采集文件中的PM2.5的平均值和AQI,程序段如下:
f=open (“pm_d.txt”)#打開文件
def finds (c,st):#查找字符st在字符串c中的位置
for i in range (len (c) ):
if a:
return i
data=[];sum=0
for line in f.readline ( )( ):#按行讀取文件
if“PM2.5”in line:
w=finds (line,“:”)
d=b
data=data+[d]#將獲取的PM2.5數據保存到列表中
sum=sum+d
ave=sum//len (data)#計算PM2.5的平均值
#計算AQI,代碼略
f.close ( )
則程序中畫線處a、b應填入的代碼為:a c[i]==stc[i]==stb int(line[w+1:])int(line[w+1:]).
(2)數據存儲與呈現。該系統的主程序主要實現:用數據庫存儲每天各監測點上傳的AQI數值,訪問該系統的路由等功能。訪問該系統的URL為http://10.1.10.1:88/,并使用變量s傳遞查詢結果數據,用于“vews.jye.ai”網頁文件顯示。實現主程序的部分代碼如下:
from flask import Flask,render_template,request
app=Flask (_name_)
#數據處理子程序上傳的AQI數據,并存儲到數據庫data.jye.ai的路由代碼略
a#主頁面路由命令
def index ( ):
db=sqlite3.connect(“data.jye.ai”)
#游標變量cur連接等參數,代碼略
sql=“SELECT*FROM pm_b WHERE id=4”
cur.execute (sql)#查詢4號監測點AQI數據
data=cur.fetchall ( )
#數據庫執行和關閉,代碼略
return data#將data數據傳遞給參數變量s用于顯示在網頁中
if_name_==“_main_”:
app.jye.ai(b)#(選填)
請回答下列問題:
①分析程序可知,存儲每天的AQI的數據表名為 pm_bpm_b。
②為實現上述功能,程序中畫線a處應填入代碼為 @app.jye.ai(“/”)@app.jye.ai(“/”)。
③為實現上述功能,程序中畫線b處應填入的代碼為 BB
A.host=“10.1.10.1:88”,port=88
B.host=“10.1.10.1”,port=88
C.host=“http://10.1.10.1”,port=88
D.host=http://10.1.10.1,port=8000
④程序中加框處的代碼有誤,則能正確實現系統功能的代碼是 DD。
A.return s
B.return render_template(“vews.jye.ai”,s)
C.return render_template(“vews.jye.ai”,data)
D.return render_template(“vews.jye.ai”,s=data)
【考點】Python語言編程環境.
【答案】39;( );c[i]==st;int(line[w+1:]);pm_b;@app.jye.ai(“/”);B;D
【解答】
【點評】
聲明:本試題解析著作權屬菁優網所有,未經書面同意,不得復制發布。
發布:2024/6/27 10:35:59組卷:1引用:2難度:0.3
相似題
-
1.現有一個m*n的迷宮矩陣 maze(如圖 a),矩陣中有空格子(用1表示,可通行)和墻(用0表示,不可通行);在迷宮中通行的每一步移動操作,你可以往上,下,左或者右方向移動一個格子(不能進入墻所在的格子)。
你的目標是找到離entry(入口)最近的出口,并規劃入口到出口的行走路徑。(出口的含義是 maze邊界上的空格子。entry格子不算出口)。如果不存在這樣的路徑,請你返回-1;如果有,則展示entry到出口的行走路徑。
程序在正常執行后,運行結果如圖b所示:
●尋找最近出口位置的思路與算法:
預設:0墻 1空格子 2已探索
在廣度優先搜索的過程中,我們在隊列中保存[cx,cy,d]三元素列表,其中(cx,cy)為當前的行列坐標,d為當前坐標相對入口的距離(即需要移動的步數)。
當我們遍歷至(cx,cy)時,我們枚舉它上下左右的相鄰坐標(nx,ny)。此時可能有三種情況:
①(nx,ny)不屬于迷宮坐標或為墻,此時無需進行任何操作;
②(nx,ny)為迷宮的出口(在迷宮邊界且不為墻),此時應返回 nx,ny,d+1,即該出口的坐標以及相對入口的距離作為答案。
③(nx,ny)為空格子且不為出口,此時應將新坐標設置為已探索,并將其對應的三元素列表[nx,ny,d+1]加入隊列。
最終,如果不存在到達出口的路徑,我們返回-1作為答案。
1、若迷宮數據為maze=[[0,0,0,0,0],[1,1,1,1,0],[0,1,0,1,1],[0,1,1,1,0],[0,0,0,0,0]],則最少移動步數為
2、請將以下的程序代碼,補充完整。發布:2025/1/2 10:30:2組卷:1引用:1難度:0.4 -
2.又到植樹的季節,大人和小孩共100個,需要種100棵樹,每個大人每天能種3棵樹,三個小孩每天能合種1棵樹,大人小孩至少都有1位參加,問大人和小孩各有幾個,正好一天完成這個任務?
(1)大人和小孩個數最合理的范圍是
A.大人:5到33,小孩:1到99
B.大人:1到33,小孩:1到291
C.大人:1到33,小孩:3到99
D.大人:1到33,小孩:3到291
(2)設大人為a,小孩為b,匹配這個需求的條件是
A.a*3+b/3=100 and a+b=100
B.a*3+b/3=100 or a+b=100
C.a/3+b*3=100 and a+b=100
D.a/+b*3=100 or a+b=100
(3)算法的初始化部分已在提供的程序中完成。請在指定區域內編寫程序,完成題目要求的功能。完成VB程序的編寫,輸出符合條件的人數組合。(注意:程序編寫正確才能得分)Dim a As Integer,b As Integer 發布:2025/1/2 11:30:1組卷:1引用:1難度:0.3 -
3.查找與替換。從鍵盤上分別輸入要查找和替換的字符串,對文本文件進行查找與替換,替換后保存到新的文本文件中。完成查找與替換功能的思路是:首先可從待檢索文本文件“in.jye.ai”逐行讀取文本內容到列表text,然后從鍵盤上輸入查找的字符串key和替換的字符串new,對列表text中的元素逐個進行查找并替換,結果保存到列表result,最后將result 寫入文件“out.jye.ai”。
(1)主程序。
text=readfile(“in.jye.ai“)#讀入文件
key=input(“請輸入要查找的字符串:“)
new=input(“請輸入要替換的字符串:“)
result=[]
for line in text:
newline=replace(key,new,line)#替換
result.append(newline)#添加到列表
writefile(“out.jye.ai“,result)#寫入文件
該程序段采用的算法是
(2)讀寫文本文件,如下的readfile函數,逐行讀取文本文件數據存入列表并返回。請在橫線處填入合適的代碼。
def readfile(filename):
f=open(filename,encoding=“utf-8“)#打開文件
text=[]
line=f.readline( )#從文件中讀取一行
while line:
text.jye.ai(line)#添加到列表
line=f.readline( )
f.jye.ai( )
return
def writefile(filename,text):
#將text寫入filename文件,代碼略
(3)查找字符串,如下的findstr函數,在字符串line中從begin位置開始查找key在字符串line中的位置,請在橫線處填入合適的代碼。
def findstr(key,line,begin):
for i in range(begin,len(line)-len(key)+1):
if :
return i
return-1
(4)替換字符串。如下的replace函數,在字符串line中檢索所有的字符串key并替換為new,請在橫線處填入合適的代碼。
def replace(key,new,line):
begin=0
while begin<len(line)-len(key)+1:
pos=findstr(key,line,begin)
if pos==-1:
else:
line=line[0:pos]+new+line[pos+len(key):len(line)]
begin=pos+len(key)
return line發布:2025/1/2 10:30:2組卷:0引用:2難度:0.3