小明使用Flask Web框架搭建了一个家庭监控报警系统。 智能终端通过摄像头、红外线传感器、烟雾传感器收集数据,当烟雾数据达到一定值,或者红外线传感器检测到有人入侵时,均会向用户手机发送短信预警信息,用户使用手机浏览器查看监控信息。系统结构示意图如图所示。
while True:
va1 = pin1.read_ digital () #采集红外传感器信号
#处理采集到的信号,代码略
sleep (500)
下列说法正确的是( )
s = "China'
t =[1,3,2]
res =“”
for i in range (len(s)):
m = t[i % len(t)]
n = ord(s[i]) + m
res=res+chr(n)
print (res)
运行该程序段后,输出的结果是( )
若队列的数据元素为“Python”,则输出的顺序是( )
def pal(s): # 判断回文字符串
st=[“”]*100
top=.-1
k=len(s)//2
for i in range (k) :
top += 1
st [top] = s[i]
if len(s)%2=1:
for i in range(k,len(s)):
tmp = st[top]
top -= 1
if
return False
return True
上述程序段中方框处可选语句为:
①k=k+1
②k=k-1
③tmp=s[i]
④tmp!=s[i]
则程序中(1)、(2)处的语句依次可为( )
import random
nums =[0] *6
for i in range (6):
nums [i] = random.randint(1, 10)
i=0
j = len(nums) - 1
while i< j:
if nums[i]%2==0 and nums[j]%2==1:
nums[i],nums[j] = nums[j], nums[i]
elif nums[i] % 2 == 1:
i=i+1
elif nums[j] % 2 == 0:
j=j-1
print (nums)
执行该程序段后,下列输出结果中不可能的是( )
df = pd. read_ excel ("Scores. xlsx")
df1 = df. groupby("选科", as_ index=False)
df2 = df1. 学号. #统计各选科组合的人数
df2 = df2. rename (columns={"学号":"人数"})
plt. bar() #绘制柱形图
plt. title("选科人数最多的前8个组合") #设置图表标题
plt. show()
空调自动管理系统程序包含Web服务蹈哺程序和智能终雄程序部分组成。具体程序代码如下,请根据要求回答以下问题。
Web服务器端程序部分:
From flask import Tlask, render_template request #导入Flask库函数
DATABASE = 'tdata.db'
app = Flask(_name_)
@app.route("/")
def index( ):
#代码略
@app.route("/input")
def add_ data():
sid = int (request.args.get("id"))
svalue = float (request. args. get("val"))
#打开数据库,并将接收的数据存储到数据库中,代码略
if_ name_ =="_main_":
app. run (host="192.168.0.100", port=80)
智能终端程序部分:
#设置连接服务器参数并与智能终端建立无线连接,代码略
while True:
va1 = pin0. read_ analog( )
temp = round(va, / 1024 * 3000 / 10.24, 1)
errno, resp =0b1oq. get("input?id=1&val=" + str (temp), 10000)
#根据errno和resp的返回值控制执行器,每5秒采集一次数据,代码略
def control ( ):
#lst存储最后60条数据中的温度(最后5分钟的数据)
#svalue为当前温度
cnt=0
if svalue<28 and flag="on":
return "off"
for i in range(len(1st)):
if lst[i]>=30:
cnt+=1
else:
break
if :
return "on"
bp=startpos ( ) #输入起点坐标
dirt = [] #移动方向
step =[] #移动距离
readdata () #从data. csv文件中读取移动数据
pos=[bp] #从起点开始存储所有经过点的x、y坐标
for i in range (0, 1en (dirt)): #利用预置数据移动
tmp = move (pos[i], dirt[i], step[i])
pos. append (tmp)
print ("经过的位置点如下所示: ","\n", pos)
if tmp == #判断能否返回起点
print("可以直接返回起点位置!")
else:
print("不能直接返回起点位置!", end=")
stpx=gettimes (pos[0] [0], pos[-1][0])
stpy=gettimes (pos[0][1], pos[-1][1])
print("至少需要移动"+ str(stpx+stpy) +"次才能返回起点位置!")
def startpos( ):
x=int(input('输入起点的x坐标:'))
y=int(input('输入起点的y坐标:'))
return
def readdata( ):
import csv
f=open(" data. csv", "r", encoding="utf-8 ")
f_ csv = csv.reader (f)
title = next(f_csv) #标题行
for line in f_csv:
dirt. append (1ine[0])
step.appnd()
f.close( )
def move(pos, dr, lg): #位置移动
new_ pos = [0, 0]
if dr == "U":
x =0; y=1
elif dr = "D":
x=0; y=-1
elif dr = "L":
x =-1; y=0
elif dr="R":
x=1; y=0
new_ pos[0] = pos[0]+x*lg
,
return new_ pos
def gettimes(p1, p2) :
p=abs(p1-p2)//5
if abs(p1-p2)%5!=0:
return p