当前位置: 首页 > news >正文

python制作小程序制作流程,用python编写一个小程序

这篇文章主要介绍了python制作小程序代码宠物运输,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

 

1 importtkinter2 importtkinter.messagebox3 importmath4 classJSQ:5

6

7 def __init__(self):8 #创建主界面

9 self.root =tkinter.Tk()10 self.root.minsize(270, 330)11 self.root.maxsize(270, 330)12 self.root.title('小可乐的计算器')13 #定义一个变量赋值给页面label

14 self.result =tkinter.StringVar()15 #界面先显示个0

16 self.result.set(0)17 #设置一个全局变量 运算数字和符号的列表

18 self.lists =[]19 #添加一个判断是否按下运算符号的标志

20 self.isPressSign =False21 #添加一个判断是否运算完毕的标志,如果运算完毕在获取数字的方法中会清空上一轮运算结果

22 self.islistsclear =False23 #添加一个判断百分号是否使用的功能

24 self.isbaifenhao =False25 #为了下面的百分号方法使用(在百分号中为按下运算符号之后的数字)

26 self.num1 = ''

27 #定义一个全局变量(获取百分好的结果)为了在"=’运算的时候输出

28 self.result3 =None29 #获取运算符号之前的数字

30 self.num = ''

31 #获取运算符号给百分好方法使用

32 self.sign1 = ''

33 self.layout()34 self.menubar()35 #将窗口一直显示

36 self.root.mainloop()37

38 defmenubar(self):39 #创建总菜单

40 allmenu =tkinter.Menu(self.root)41 #创建子菜单

42 filemenu = tkinter.Menu(allmenu, tearoff=0)43 #在子菜单里添加文件

44 filemenu.add_command(label='标准型(T) Alt+1',command = lambda: self.func2())45 filemenu.add_command(label='科学性(S) Alt+2',command = lambda: self.func2())46 filemenu.add_command(label='程序员(p) Alt+3',command = lambda: self.func2())47 filemenu.add_command(label='统计信息(A) Alt+4',command = lambda: self.func2())48 #创建分割线

49 filemenu.add_separator()50 filemenu.add_command(label='历史记录(Y) Ctrl+H',command = lambda: self.func2())51 filemenu.add_command(label='数学分组(I)',command = lambda: self.func2())52 filemenu.add_separator()53 filemenu.add_command(label='基本(B) Ctrl+F4',command = lambda: self.func2())54 filemenu.add_command(label='单位转换(U) Ctrl+U',command = lambda: self.func2())55 filemenu.add_command(label='日期计算(D) Ctrl+E',command = lambda: self.func2())56 #在子菜单里再创建一个菜单

57 filemenunei = tkinter.Menu(filemenu, tearoff=0)58 #在子菜单里的菜单添加文件

59 filemenunei.add_command(label='抵押(M)',command = lambda: self.func2())60 filemenunei.add_command(label='汽车租赁(V)',command = lambda: self.func2())61 filemenunei.add_command(label='油耗(mpg)(F)',command = lambda: self.func2())62 filemenunei.add_command(label='油耗(1/100km)(U)',command = lambda: self.func2())63 #将子菜单里的菜单添加到子菜单里

64 filemenu.add_cascade(label='工作表(W)', menu=filemenunei)65 #添加退出功能

66 filemenu.add_command(label='退出', command=self.root.quit)67 #将子菜单添加到总菜单里

68 allmenu.add_cascade(label='查看(V)', menu=filemenu)69 #再创建一个子菜单

70 editmenu = tkinter.Menu(allmenu, tearoff=0)71 #在子菜单里添加文件

72 editmenu.add_command(label='复制(C)',command = lambda: self.func2())73 editmenu.add_command(label='粘贴(P)',command = lambda: self.func2())74 #创建分割线

75 editmenu.add_separator()76 #在子菜单里创建一个菜单

77 editmenunei = tkinter.Menu(editmenu, tearoff=0)78 #在子菜单里的菜单添加文件

79 editmenunei.add_command(label='复制历史记录(I)', stat='disable')80 editmenunei.add_command(label='编辑(E) F2', stat='disable')81 editmenunei.add_command(label='取消编辑(N) Esc', stat='disable')82 editmenunei.add_command(label='清除(L) Ctrl+Shift+D', stat='disable')83 #将子菜单里的菜单添加到子菜单

84 editmenu.add_cascade(label='历史记录(H)', menu=editmenunei)85 #将子菜单添加到总菜单

86 allmenu.add_cascade(label='编辑(E)', menu=editmenu)87 #创建第三个子菜单

88 helpmenu = tkinter.Menu(allmenu, tearoff=0)89 #在第三个子菜单里添加文件

90 helpmenu.add_command(label='查看帮助(v) F1',command = lambda: self.func2())91 #创建分割线

92 helpmenu.add_separator()93 helpmenu.add_command(label='关于计算器(A)',command = lambda: self.func2())94 #将第三个子菜单添加到总菜单中

95 allmenu.add_cascade(label='帮助(H)', menu=helpmenu)96 #将总菜单布局到主窗口

97 self.root.config(menu=allmenu)98

99 #下面代码用于页面布局

100 deflayout(self):101 #显示结果的标签

102 label = tkinter.Label(self.root, textvariable=self.result, bg='white', font=('黑体', 10), anchor='e')103 label.place(x=20, y=10, width=230, height=30)104

105 btnmc = tkinter.Button(self.root, text='MC',command = lambda: self.func2())106 btnmc.place(x=20, y=50, width=30, height=30)107

108 btnmr = tkinter.Button(self.root, text='MR',command = lambda: self.func2())109 btnmr.place(x=70, y=50, width=30, height=30)110

111 btnms = tkinter.Button(self.root, text='MS',command = lambda: self.func2())112 btnms.place(x=120, y=50, width=30, height=30)113

114 btnmjia = tkinter.Button(self.root, text='M+',command = lambda: self.func2())115 btnmjia.place(x=170, y=50, width=30, height=30)116

117 btnmjian = tkinter.Button(self.root, text='M-',command = lambda: self.func2())118 btnmjian.place(x=220, y=50, width=30, height=30)119

120 btnjiantou = tkinter.Button(self.root, text='←', command=lambda: self.jiantou())121 btnjiantou.place(x=20, y=90, width=30, height=30)122

123 btnce = tkinter.Button(self.root, text='CE', command=lambda: self.CE())124 btnce.place(x=70, y=90, width=30, height=30)125

126 btnc = tkinter.Button(self.root, text='C', command=lambda: self.clears())127 btnc.place(x=120, y=90, width=30, height=30)128

129 btnzhengfu = tkinter.Button(self.root, text='±', command=lambda: self.zhenffu())130 btnzhengfu.place(x=170, y=90, width=30, height=30)131

132 btnkaigen = tkinter.Button(self.root, text='√', command=lambda: self.sqrts())133 btnkaigen.place(x=220, y=90, width=30, height=30)134

135 btn7 = tkinter.Button(self.root, text='7', command=lambda: self.pressNum('7'))136 btn7.place(x=20, y=130, width=30, height=30)137

138 btn8 = tkinter.Button(self.root, text='8', command=lambda: self.pressNum('8'))139 btn8.place(x=70, y=130, width=30, height=30)140

141 btn9 = tkinter.Button(self.root, text='9', command=lambda: self.pressNum('9'))142 btn9.place(x=120, y=130, width=30, height=30)143

144 btnchu = tkinter.Button(self.root, text='/', command=lambda: self.pressCompute('/'))145 btnchu.place(x=170, y=130, width=30, height=30)146

147 btnbaifen = tkinter.Button(self.root, text='%', command=lambda: self.baifenhao())148 btnbaifen.place(x=220, y=130, width=30, height=30)149

150 btn4 = tkinter.Button(self.root, text='4', command=lambda: self.pressNum('4'))151 btn4.place(x=20, y=170, width=30, height=30)152

153 btn5 = tkinter.Button(self.root, text='5', command=lambda: self.pressNum('5'))154 btn5.place(x=70, y=170, width=30, height=30)155

156 btn6 = tkinter.Button(self.root, text='6', command=lambda: self.pressNum('6'))157 btn6.place(x=120, y=170, width=30, height=30)158

159 btncheng = tkinter.Button(self.root, text='*', command=lambda: self.pressCompute('*'))160 btncheng.place(x=170, y=170, width=30, height=30)161

162 btnfenshu = tkinter.Button(self.root, text='1/X', command=lambda: self.fenshu())163 btnfenshu.place(x=220, y=170, width=30, height=30)164

165 btn1 = tkinter.Button(self.root, text='1', command=lambda: self.pressNum('1'))166 btn1.place(x=20, y=210, width=30, height=30)167

168 btn2 = tkinter.Button(self.root, text='2', command=lambda: self.pressNum('2'))169 btn2.place(x=70, y=210, width=30, height=30)170

171 btn3 = tkinter.Button(self.root, text='3', command=lambda: self.pressNum('3'))172 btn3.place(x=120, y=210, width=30, height=30)173

174 btnjian = tkinter.Button(self.root, text='-', command=lambda: self.pressCompute('-'))175 btnjian.place(x=170, y=210, width=30, height=30)176

177 btndenghao = tkinter.Button(self.root, text='=', command=lambda: self.pressEqual())178 btndenghao.place(x=220, y=210, width=30, height=70)179

180 btn0 = tkinter.Button(self.root, text='0', command=lambda: self.pressNum('0'))181 btn0.place(x=20, y=250, width=80, height=30)182

183 btndian = tkinter.Button(self.root, text='.', command=lambda: self.pressNum('.'))184 btndian.place(x=120, y=250, width=30, height=30)185

186 btnjia = tkinter.Button(self.root, text='+', command=lambda: self.pressCompute('+'))187 btnjia.place(x=170, y=250, width=30, height=30)188

189 #数字函数(获取数字的函数)

190 defpressNum(self,num):191 #下面的百分好会用到

192 self.num1 =num193 #判断是否按下运算符号

194 if self.isPressSign ==False:195 pass

196 #如果按下运算符号界面归0

197 else:198 self.result.set(0)199 self.isPressSign =False200 #判断运算是否完毕

201 if self.islistsclear ==False:202 #获取面板上原有的数字

203 oldNum =self.result.get()204 #判断原有数字是否为零

205 if oldNum == '0':206 #将传入的数字显示

207 self.result.set(num)208 else:209 #原来的数字加上现在输入的数字

210 newNum = oldNum +num211 self.result.set(newNum)212 #运算完毕界面自动清空

213 else:214 #lists.clear()#如果添加这行代码就不能在上一轮运算结果的基础上运算了

215 self.result.set('0')216 self.islistsclear =False217 self.result.set(num)218

219 #运算操作(获取运算符号然后将数字和符号添加到列表中)

220 defpressCompute(self,sign):221 #获取界面上的数字

222 ifTrue:223 #获取输入运算符之前的数字

224 self.num =self.result.get()225 #将数字加入列表之中

226 self.lists.append(self.num)227 #将运算符加入到列表之中

228 self.lists.append(sign)229 #将运算符赋值给sign1(下面的百分号方法会用到)

230 self.sign1 =sign231 #将是否按下运算符号标志改成True

232 self.isPressSign =True233 #在刚开始的时候添加一个负号(-)用于正负好转换使用

234 #如果列表第一位为0

235 if self.lists[0] == '0':236 #如果列表第二位为"-’

237 if self.lists[1] == '-':238 self.result.set('-')239 #设置运算符号的状态

240 self.isPressSign =False241

242 #获取运算结果(将列表内的值转换为字符串,然后将字符串用python代码执行)

243 defpressEqual(self):244 #获取当前页面的数字

245 curnum =self.result.get()246 self.lists.append(curnum)247 #将列表中的数据转换为字符串

248 computeStr = ''.join(self.lists)249 #将字符串用python代码执行

250 endNum =eval(computeStr)251 #界面显示结果

252 self.result.set(endNum)253 #如果百分号标志触发

254 if self.isbaifenhao ==True:255 #界面显示self.result3

256 self.result.set(self.result3)257 #运算结束后将列表清空

258 self.lists.clear()259 #将运算标志改成True

260 self.islistsclear =True261

262 #清空运算

263 defclears(self):264 self.lists.clear()265 self.result.set('0')266

267 #删除上一位数字

268 defCE(self):269 self.result.set('0')270

271 #用于更改数的正负值

272 defzhenffu(self):273 self.result1 =self.result.get()274 self.result.set(float(self.result1) * (-1))275 self.islistsclear =True276

277 #用于开平方运算

278 defsqrts(self):279 result1 =self.result.get()280 self.result.set(math.sqrt(float(result1)))281 self.lists.clear()282 self.islistsclear =True283

284 #用于求x/9的值

285 deffenshu(self):286 result1 =self.result.get()287 self.result.set(1 /float(result1))288 self.islistsclear =True289

290 #用于求百分号功能的方法

291 defbaifenhao(self):292 listss =[]293 #判断如果输入一个数没输运算符号的话界面自动归零

294 if len(self.lists) < 1:295 self.result.set(0)296 else:297 #获取输入运算符号之前的数字

298 a1 =float(self.num)299 #获取运算符号

300 a2 =self.sign1301

302 #再次获取输入运算符号之前的数字

303 a3 =float(self.num)304

305 a4 = '*'

306 #算出最后一个数字的百分数

307 a6 = float(self.num1) / 100

308

309 #算出百分号的那个结果

310 resultmuqian = a3 *a6311 #总结果

312 resultbai = str(a1) + a2 + str(a3) + a4 +str(a6)313 #将字符串用python代码执行

314 self.result3 =eval(resultbai)315 #在界面上按下%符号是显示的结果

316 self.result.set(resultmuqian)317 #改变百分号的标志

318 self.isbaifenhao =True319

320 #箭头的意义删除后一位数字

321 defjiantou(self):322 result1 =self.result.get()323 result1 =list(result1)324 del result1[-1]325 result1 =str(result1)326 self.result.set(result1)327

328 deffunc2(self):329 tkinter.messagebox.askokcancel(title = '略过',message='没实现')330

331

332 myjsq = JSQ()

好了,以上便是利用Python代码实现一个计算器小程序的过程。

相关文章:

python制作小程序制作流程,用python编写一个小程序

这篇文章主要介绍了python制作小程序代码宠物运输&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 1 importtkinter2 importtkinter.messagebox3 importmath4 classJSQ:5 6 7 d…...

Github 创建自己的博客网站

参考pku大佬视频制作&#xff0c;附上B站视频&#xff1a;【GitHub Pages 个人网站构建与发布】 同时还参考了&#xff1a;【Python版宝藏级静态站点生成器Material for MkDocs】 GitHub Pages 介绍 内容参考&#xff1a;GitHub Pages - 杨希杰的个人网站 (yang-xijie.githu…...

Windows上安装 jdk 环境并配置环境变量 (超详细教程)

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…...

高效构建 vivo 企业级网络流量分析系统

作者&#xff1a;vivo 互联网服务器团队- Ming Yujia 随着网络规模的快速发展&#xff0c;网络状况的良好与否已经直接关系到了企业的日常收益&#xff0c;故障中的每一秒都会导致大量的用户流失与经济亏损。因此&#xff0c;如何快速发现网络问题与定位异常流量已经成为大型企…...

认识awk

awk 认识awk awk是一种编程语言&#xff0c;用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件&#xff0c;或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能&#xff0c;是linux/unix下的一个强大编程工具。它在命令行…...

【C#学习笔记】数组和索引器

文章目录 数组单维数组多维数组交错数组 索引器类上的索引器方法1方法2 接口中的索引器 数组 数组具有以下属性&#xff1a; 数组可以是一维、多维或交错的。创建数组实例时&#xff0c;将建立纬度数量和每个纬度的长度。 这些值在实例的生存期内无法更改。数值数组元素的默认…...

常见距离计算的Python实现

常见的距离有曼哈顿距离、欧式距离、切比雪夫距离、闵可夫斯基距离、汉明距离、余弦距离等&#xff0c;用Python实现计算的方式有多种&#xff0c;可以直接构造公式计算&#xff0c;也可以利用内置线性代数函数计算&#xff0c;还可以利用scipy库计算。 1.曼哈顿距离 也叫城市…...

开发运营监控

DevOps 监控使管理员能够实时了解生产环境中的元素&#xff0c;并有助于确保应用程序平稳运行&#xff0c;同时提供最高的业务价值&#xff0c;对于采用 DevOps 文化和方法的公司来说&#xff0c;这一点至关重要。 什么是开发运营监控 DevOps 通过持续开发、集成、测试、监控…...

食品小程序的制作教程

在今天的互联网时代&#xff0c;小程序已经成为了各行业推广和销售的重要途径。特别是对于食品行业来说&#xff0c;拥有一个专属的小程序商城可以带来更多的用户和销售机会。那么&#xff0c;如何制作一个完美的食品小程序呢&#xff1f;下面就跟随我来一步步教你&#xff0c;…...

Kubernetes(K8s)从入门到精通系列之十三:软件负载平衡选项

Kubernetes K8s从入门到精通系列之十三&#xff1a;软件负载平衡选项 一、软件负载平衡选项二、keepalived and haproxy三、keepalived配置四、haproxy配置五、选项 1&#xff1a;在操作系统上运行服务六、选项 2&#xff1a;将服务作为静态 Pod 运行 一、软件负载平衡选项 当…...

数据特征选择 | Matlab实现具有深度度量学习的时频特征嵌入

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 数据特征选择 | Matlab实现具有深度度量学习的时频特征嵌入。 深度度量学习尝试学习非线性特征嵌入或编码器,它可以减少来自同一类的示例之间的距离(度量)并增加来自不同类的示例之间的距离。 以这种方式工作的…...

浅谈webpack

文章目录 Webpackwebpack的工作原理webpack的构建流程Webpack的基本功能有哪些Webpack常用配置 Webpack Webpack是一个现代的JavaScript应用程序静态模块打包工具。它是一个用于构建和打包前端资源的工具&#xff0c;可以将多个模块和资源&#xff08;如JavaScript、CSS、图片…...

【 stable diffusion LORA模型训练最全最详细教程】

个人网站&#xff1a;https://tianfeng.space/ 文章目录 一、前言二、朱尼酱的赛博丹炉1.介绍2.解压配置3.使用训练准备首页设置上传素材查看进度 三、秋叶的lora训练器1.下载2.预处理3.参数调配 一、前言 其实想写LORA模型训练很久了&#xff0c;一直没时间&#xff0c;总结…...

蓝桥杯上岸每日N题 第八期 (全球变暖)!!!

蓝桥杯上岸每日N题第八期(全球变暖)&#xff01;&#xff01;&#xff01; 同步收录 &#x1f447; 蓝桥杯上岸必背&#xff01;&#xff01;&#xff01;(第五期BFS) 大家好 我是寸铁&#x1f4aa; 冲刺蓝桥杯省一模板大全来啦 &#x1f525; 蓝桥杯4月8号就要开始了 &am…...

CSS基础介绍笔记1

官方文档 CSS指的是层叠样式&#xff08;Cascading Style Sheets&#xff09;地址&#xff1a;CSS 教程离线文档&#xff1a;放大放小&#xff1a;ctrl鼠标滚动为什么需要css&#xff1a;简化修改HTML元素的样式&#xff1b;将html页面的内容与样式分离提高web开发的工作效率&…...

https请求异常引发(Received fatal alert: unrecognized_name):如何快速解决项目中问题?

总结思考&#xff1a;如何做一个出色的开发者&#xff1f; 首先我们要承认我们大部分程序员是应用开发&#xff0c;不是操作系统、协议、框架开发等这类底层开发者。 其一&#xff1a;是否能快速定位问题。如找到出现问题的代码&#xff0c;bug出现在哪一行&#xff0c;哪个应…...

小程序 view下拉滑动导致scrollview滑动事件失效

小程序页面需要滑动功能 下拉时滑动&#xff0c;展示整个会员卡内容&#xff0c; 下拉view里包含了最近播放&#xff1a;有scrollview&#xff0c;加了下拉功能后&#xff0c;scrollview滑动失败了。 <view class"cover-section" catchtouchstart"handletou…...

《ROS2》教程

参考资料&#xff1a; 古月居 B站视频&#xff1a; https://www.bilibili.com/video/BV16B4y1Q7jQ/?spm_id_from333.999.0.0 对应资料&#xff1a;https://book.guyuehome.com/ ROS之前最好有点ROS1的基础&#xff0c;跳转门&#xff1a;ROS-https://www.bilibili.com/video/B…...

抖音seo源码开发源代码搭建分享

抖音SEO源码开发涉及到以下几个方面&#xff1a; 前端开发&#xff1a;包括抖音SEO页面的设计与布局&#xff0c;以及需要使用到的前端技术&#xff0c;如HTML、CSS、JavaScript等。 后端开发&#xff1a;包括抖音SEO页面的数据获取和处理&#xff0c;以及需要使用到的后端技术…...

MATLAB——使用建立好的神经网络进行分类程序

学习目标&#xff1a;使用建立好的神经网络&#xff08;训练好并保存&#xff0c;下次直接调用该神经网络&#xff09;进行分类 clear all; close all; P[-0.4 -0.4 0.5 -0.2 -0.7;-0.6 0.6 -0.4 0.3 0.8]; %输入向量 T[1 1 0 0 1]; …...

Spring5.2.x 源码使用Gradle成功构建

一 前置准备 1 Spring5.2.x下载 1.1 Spring5.2.x Git下载地址 https://gitcode.net/mirrors/spring-projects/spring-framework.git 1.2 Spring5.2.x zip源码包下载&#xff0c;解压后倒入idea https://gitcode.net/mirrors/spring-projects/spring-framework/-/…...

iOS永久签名工具 - 轻松签使用教程

轻松签是一款IOS端免费的IPA签名和安装工具&#xff0c;最新版可以不用依赖证书对ipa永久签名&#xff0c;虽然现在用上了巨魔&#xff08;TrollStore&#xff09;- 是国外iOS开发人员opa334dev发布的一款工具&#xff0c;可以在不越狱的情况下&#xff0c;安装任何一款APP。 …...

如何申请中国境内提供金融信息服务业务许可

依据《外国机构在中国境内提供金融信息服务管理规定》《外国机构在中国境内提供金融信息服务申请许可说明》等政策&#xff0c;外国机构在中国境内提供金融信息服务业务许可要求如下&#xff1a; 金融信息服务定义 所称的外国机构&#xff0c;是指外国金融信息服务提供者。 …...

Java多线程(六)

目录 一、什么是线程安全问题 二、产生线程安全问题的原因 三、解决线程安全问题的方法 3.1 join()等待 3.2 synchronized加锁 3.3 wait()和notify() 3.4 volatile关键字 一、什么是线程安全问题 在操作系统中&#xff0c;线程的调度是随机的&#xff08;抢占式执行&#xff0…...

ceil(),floor(),round()函数C++详解

ceil&#xff08;&#xff09; ceil()函数是这样的&#xff1a; double ceil(double x) ceil函数可以把x上取整。 例子&#xff1a; #include <bits/stdc.h> using namespace std; int main() {double a, b;cin >> a >> b;printf("ceil(%.2f) %.2…...

自动化处理,web自动化测试处理多窗口+切换iframe框架页总结(超细整理)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 web 自动化之处理…...

企业服务器数据库中了devos勒索病毒怎么办如何解决预防勒索病毒攻击

随着科学技术的不断发展&#xff0c;计算机可以帮助我们完成很多重要的工作&#xff0c;但是随之而来的网络威胁也不断提升。近期&#xff0c;我们收到很多企业的求助&#xff0c;企业的服务器数据库遭到了devos勒索病毒攻击&#xff0c;导致系统内部的许多重要数据被加密无法正…...

three.js学习

三大组建&#xff1a;场景(scene),相机(camera),渲染器(renderer) 创建三要素代码&#xff1a; var scene new THREE.Scene(); // 场景 var camera new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000); // 透明相机 var renderer new THR…...

Vue3 第一节 Vue3简介以及创建Vue3工程

1.Vue3简介以及Vue3带来了什么 2.创建Vue3.0工程并分析Vue3工程结构 3.setup函数 4.ref函数 5.reactive函数 一.Vue3简介以及Vue3带来了什么 ① Vue3简介 2020年9月18日&#xff0c;Vue.js发布3.0版本&#xff0c;代号&#xff1a;One Piece&#xff08;海贼王&#xff0…...

用docker 部署springboot项目

# 加入java FROM bitnami/java # WORKDIR /usr/local/test/boot-work#镜像内的工作目录 WORKDIR /usr/local/test# ENV workPath /usr/local/test/boot-work# 宿主的当前目录 boot-v1.jarjar 拷贝到 WORKDIR下boot.jar ADD boot-v1.jar boot.jar # 暴露80端口 EXPOSE 80 # 启动…...