练手代码,还有好多要优化的地方,请各位指导。
from pywebio.output import * from pywebio.pin import * from builtins import str from pywebio import start_server #定义变量 i = "电阻色环依次为:" j = "" k = "" def buttont(): put_table([ ['请依次选择电阻色环颜色', put_buttons(['黑', '棕',"红","橙","黄","绿","蓝","紫","灰","白","金","银","无色"],οnclick=[hei,zong,hong,cheng,huang,lv,lan,zi,hui,bai,jin,yin,wuse])], [put_buttons(["重新选择颜色"],οnclick=[dels]),put_buttons(["确定"],οnclick=[enter])], ]) #单击对应颜色按钮反馈函数 def hei(): with use_scope("a", clear=True): global i,j #global 为声明全局变量的关键字,若不加声明会报错 i= i+"黑" put_markdown(i) j= j+"0" put_markdown(j) def zong(): with use_scope("a", clear=True): global i,j,k i = i + "棕" put_markdown(i) j = j + "1" put_markdown(j) def hong(): with use_scope("a", clear=True): global i,j,k i = i + "红" put_markdown(i) j = j + "2" put_markdown(j) def cheng(): with use_scope("a", clear=True): global i,j i = i + "橙" put_markdown(i) j = j + "3" put_markdown(j) def huang(): with use_scope("a", clear=True): global i,j i = i + "黄" put_markdown(i) j = j + "4" put_markdown(j) def lv(): with use_scope("a", clear=True): global i,j,k i = i + "绿" put_markdown(i) j = j + "5" put_markdown(j) def lan(): with use_scope("a", clear=True): global i,j,k i = i + "蓝" put_markdown(i) j = j + "6" put_markdown(j) def zi(): with use_scope("a", clear=True): global i,j,k i = i + "紫" put_markdown(i) j = j + "7" put_markdown(j) def hui(): with use_scope("a", clear=True): global i,j i = i + "灰" put_markdown(i) j = j + "8" put_markdown(j) def bai(): with use_scope("a", clear=True): global i,j i = i + "白" put_markdown(i) j = j + "9" put_markdown(j) def jin(): with use_scope("a", clear=True): global i,j,k i = i + "金" put_markdown(i) j = j + "-1" put_markdown(j) def yin(): with use_scope("a", clear=True): global i,j,k i = i + "银" put_markdown(i) j = j + "-2" def wuse(): with use_scope("a", clear=True): global i,k i = i + "无色" put_markdown(i) put_markdown(j) #查询电阻阻值及误差值 def enter(): with use_scope("a", clear=False): global i,j,m,k #最后一环不是无色的五环电阻 if len(i) == 13 and i[11:13] !="无色": if i[12] == "棕": k = "允许误差:正负1%" elif i[12] == "红": k = "允许误差:正负2%" elif i[12] == "绿": k = "允许误差:正负0.5%" elif i[12] == "蓝": k = "允许误差:正负0.25%" elif i[12] == "紫": k = "允许误差:正负0.1%" elif i[12] == "金": k = "允许误差:正负5%" elif i[12] == "银": k = "允许误差:正负10%" elif i[12:14] == "无色": k = "允许误差:正负20%" else: k = "第五色环颜色输入错误" if j[3] != "-": m = int(j[0:3])*(10**int(j[3])) put_markdown(" # 您查询的是五环电阻,电阻阻值为:"+ str(m) +"欧姆,"+ k) else: m = round(float(int(j[0:3]) * (10 ** int(j[3:5]))),2) put_markdown(" # 您查询的是五环电阻,电阻阻值为:" + str(m) + "欧姆,"+ k) #最后一环不是无色的四环电阻 elif len(i) == 12 and i[10:12] != "无色": if i[11] == "棕": k = "允许误差:正负1%" elif i[11] == "红": k = "允许误差:正负2%" elif i[11] == "绿": k = "允许误差:正负0.5%" elif i[11] == "蓝": k = "允许误差:正负0.25%" elif i[11] == "紫": k = "允许误差:正负0.1%" elif i[11] == "金": k = "允许误差:正负5%" elif i[11] == "银": k = "允许误差:正负10%" elif i[11:13] == "无色": k = "允许误差:正负20%" else: k = "第四色环颜色输入错误" if j[2] != "-": m = int(j[0:2]) * (10 ** int(j[2])) put_markdown(" # 您查询的是四环电阻,电阻阻值为:" + str(m) + "欧姆, " + k) else: m = round(float(int(j[0:2]) * (10 ** int(j[2:4]))), 2) put_markdown(" # 您查询的是四环电阻,电阻阻值为:" + str(m) + "欧姆, " + k) #最后一环是无色的五环电阻 elif len(i) == 14 and i[12:14] == "无色": if j[2] != "-": m = int(j[0:3]) * (10 ** int(j[3])) put_markdown(" # 您查询的是五环电阻,电阻阻值为:" + str(m) + "欧姆, " + "允许误差:正负20%") else: m = round(float(int(j[0:3]) * (10 ** int(j[3:5]))), 2) put_markdown(" # 您查询的是五环电阻,电阻阻值为:" + str(m) + "欧姆, " + "允许误差:正负20%") #最后一环是无色的四环电阻 elif len(i) == 13 and i[11:13] == "无色": if j[2] != "-": m = int(j[0:2]) * (10 ** int(j[2])) put_markdown(" # 您查询的是四环电阻,电阻阻值为:" + str(m) + "欧姆, " + "允许误差:正负20%") else: m = round(float(int(j[0:2]) * (10 ** int(j[2:4]))), 2) put_markdown(" # 您查询的是四环电阻,电阻阻值为:" + str(m) + "欧姆, " + "允许误差:正负20%") else: toast("🔔 电阻色环选择的数量不够或超过,不能查询!") #重新输入,变量复位 def dels(): with use_scope("a", clear=True): global i,j,k i = "电阻色环依次为:" j = "" k = "" put_markdown(i) #在本机运行 if __name__ == "__main__": buttont() #局域网运行 # start_server(main, port=8080, debug=True) # start_server(buttont, host="172.16.0.230", port=2022)