智能农业大棚通过传感器、控制器、网络设施和计算机程序来实现大棚的自动化管理。例如,自动温度控制系统中的温度传感器每隔一定时间采集大棚中的温度,一旦温度超过预设的最高温度40℃,控制系统会启动通风和喷水系统实现降温;如果温度低于预设的最低温度18℃,控制系统会启动加热器,给大棚升温。
①import sqlite3;
②conn.commit( );
③c.execute(sql);
④c.close( );⑤conn.close();
⑥c = conn.cursor( );
⑦conn = sqlite3.connect("my.db")
⑧sql = "CREATE TABLE user(username TEXT,password TEXT)"
语句执行的先后顺序正确的是( )
b = [[92,2],[98,4],[91,1],[88,0],[95,3]]
head=0
p=0
while b[p][1]!=head:
print(b[p][0],end=",")
p=b[p][1]
print(b[p][0])
运行该程序段, 输出的内容为( )
c = "1/23//45///6"
t = ""
flag = True
s=0
for i in range(len(c)):
if c[i]=="/":
if flag:
s+=int(t)
t=""
flag = not flag
else:
t+=c[i]
执行上述程序段后,变量s的值是( )
import random
a = [8,6,1,3,2,9]
k = random.randint(1,3)
for i in range(k,k+2):
if a[i]<a[i-1]:
a[i],a[i-1]=a[i-1],a[i]
执行该程序段后,a 对象的内容不可能是( )
import import import
pandas as pd
os,jieba,re,random,wordcloud
matplotlib.pyplot as plt
from PIL import Image
wzdir = "./2021 浙江高考满分作文/"
wz = os.listdir(wzdir) #获得文件夹中所有文件的名称列表
wzrd = ①
f=open(wzdir+wzrd[0],encoding="utf-8")
dd=f.read ()
f.close()
#使用正则表达式去除文章中的标点符号
ss = re.sub("[、,。:“”;?\n]","",dd)
wb = jieba.lcut(ss,cut_all=True)
word = {}
for i in wb:
t =i.strip()
if len(t)>1:
if t in word:
word[t]+=1
else:
②
wc = wordcloud.WordCloud(font_path="msyh.ttc", width=800, height=600) wc.background_color="white"
wc.fit_words (word)
img = wc.to_array()
plt.rcParams['font.sans-serif']=['SimHei'] plt.figure()
plt.imshow(img)
plt.axis(False)
plt.title(wzrd[0].split(".")[0])
③
#支持中文显示
②③
该系统的客户端无需专门的应用程序,用户工作界面通过浏览器来实现,应用程序基本上都集中于服务器端。
from flask import Flask, render_template,request #导入Flask库函数
app=Flask(_name_)
@app.route("/")
def index():
#获取采集的数据并存储到列表变量 data,代码略
return render_template("index.html",data= )
@app.route("/ ",methods=["GET"]) #数据采集子页面路由命令
def get():
id=int(request.args.get("id")) d=float( )
#获取 URL 中“id=1”后的数据“1”
#变量 d 存储采集到的光线数据
#打开数据库, 并将接收的数据存储到数据库中,代码略
return "数据存储成功! "
#其他系统子页面路由, 代码略
if _name_=='_main_':
app.run ( )
①原始数据中,某数不为0且相邻无重复,压缩数据用该数据表示;②原始数据中,某数为0且相邻无重复,压缩数据用两个数表示,第1个为0,第2个为0;③原始数据中,某数据相邻有重复,压缩数据用3个数表示:第1个为0,第2个为重复数的个数,第3个为该数本身。
根据上述压缩方法,对应的解压缩方法示例如图所示。
小明学习了Python的PIL、matplotlib和numpy等模块知识后,现有图像文件“台州.bmp”,该文件的颜色模式为RGB,将该图像文件的每个像素点转换成灰度值(值为整数)后,使用上述压缩方法进行压缩并保存为文本文件。颜色RGB值转灰度值的公式如下:
灰度值=0.299×红色颜色分量+0.587×绿色颜色分量+0.114×蓝色颜色分量
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
img = np.array(Image.open("台州.bmp"))
row,cols,rgb = img.shape
s=[]
for i in range(row):
for j in range(cols):
r,g,b = img[i,j]
hdz =
s.append(hdz)
ss = []:j = 0
while j<len(s)-1:
if s[j]!=s[j+1]:
if s[j]!=0:
ss.append(s[j])
else:
ss.extend() #extend 函数用于在列表末尾一次性追加另一个序列中的多个值
j+=1
else:
c = s[j]
for k in range(j+1,len(s)) :
if c!=s[k]:
break
else:
ss.extend([0,k-j,s[j]])
j=k
if j!=len(s):
ss.append(s[j])
f = open("台州 255.txt","w+")
f.write(",".join(map(str,ss)))
f.close()
分析:在数学运算表达式中,运算符总是置于与之相关的两个运算对象之间,在计算结果时,要考虑括号、运算符号的优先性。为了程序实现的方便,波兰逻辑学家J.Lukasiewicz提出了另一种表示法,将运算符置于其运算对象之后,没有括号,不用考虑运算符号的优先性。这种表达式称为后缀表达式,又叫逆波兰表达式。
如表达式“682-2*3÷+”是四则运算式“6+(8-2)*2÷3”的逆波兰表达式。为了处理方便, 规定表达式中的数均为小于 10 的正整数, 运算符为+ - * ÷。
⑴抽象建模
设计两个栈bds、fh,栈bds用来存放表达式,栈fh用来暂时存放运算符。从左往右扫描四则运算式,遇到数字时,入栈bds;遇到运算符号时,根据运算符号的优先级设计进栈与出栈。
四则运算式“6+(8-2)*2÷3”转换规则的模拟过程如表1所示:
表 1
结合表1的操作过程,用栈bds和栈fh记录每个操作后的栈内情况(见下图),那么在操作2中栈fh里有内容为(请从栈底到栈顶顺序书写)。
⑵设计算法
基于问题的抽象与建模,解决该问题的主要算法描述如下:
从左往右遍历四则运算式s(设中间变量为ch):
1)当ch是数字,直接入栈bds;
2)当ch是运算符:
a.若ch为左括号时,直接入栈fh;
b.若ch为右括号时,则将栈fh元素弹出,压入栈bds,直到遇到左括号(左括号只弹出,不压入栈bds);
c.若ch为其它运算符时,如果运算符ch优先级大于栈fh中栈顶元素的优先级(或栈fh为空),直接入栈fh;否则,将栈fh元素依次弹出,并压入栈bds,直到运算符ch优先级大于栈fh中栈顶元素的优先级(或栈fh为空);
3)将栈bds中元素依次出栈,即为该四则运算s的后缀表达式。
⑶编写程序
实现上述功能的 Python 代码如下,请在划线处填入合适代码。
yxj = {"+":1,"-":1,"*":2,"÷":2} #运算规则的优先级
s = input("请输入四则运算式: ")
fh = [""]*100 #存储运算符
topfh = -1
bds = [""]*100 #存储表达式
top=-1
for ch in s:
if ch.isdigit(): #字符串只包含数字则返回 True 否则返回 False
top+=1
bds[top]=ch
elif ch == "(":
topfh +=1
fh[topfh]=ch
elif ch == ")":
while True:
tmp = fh[topfh]
topfh-=1
if tmp=="(":
top+=1
bds[top]=tmp
elif ch in yxj:
if topfh==-1 or fh[topfh]=="(":
topfh += 1
fh[topfh]=ch
elif :
topfh+=1
fh[topfh]=ch
else:
while fh[topfh]!="(" and topfh!=-1:
if yxj[fh[topfh]]>=yxj[ch]:
top+=1
bds[top]=fh[topfh]
topfh-=1
else:
break
topfh+=1
while topfh!=-1:
top+=1
bds[top]=fh[topfh]
topfh-=1
print("后缀表达式:","".join(bds[:top+1]))