当前课程知识点:Python 交互式程序设计导论 > 第2周 > B 课程视频(输入框、全局变量) > 输入框
返回《Python 交互式程序设计导论》慕课在线视频课程列表
Hi,大家好,欢迎大家回到Python课堂。
在上次课中,我和大家一同构建了一个简单的计算器
实现了加法、减法、显示等功能。
说到这,有人会说,这不是计算器,
计算器应该允许我们输入数据才对。
是的,那么在这节课中,我们将解决这个问题。
我将教会大家如何使用输入框。
届时,大家会发现
我们创建的计算器和真实的计算器基本一致。
好,下面开始我们今天的课程。
我们已经给出来了一个计算器的模板。
在上节课的基础上,我们已经增加了乘法和除法。
我们先来运行一下。
我们可以看到,显示、交换、加法、
减法、乘法、除法,
这几个功能按钮都完成了,没问题。
那么这节课我们的任务是如何使用输入框来进行计算器的数据输入。
和我们的按钮有点类似,我们在这里增加一个按钮,
然后这里面有按钮的名称、按钮所执行的函数是什么。
我们的输入框和它的语法结构类似,
也是要有一个输入框的名称,输入框所使用的函数是什么。
增加输入框的语法我已经写在这里了,
就是注册输入框,frame.add_input。
注意:我们的button注册时frame.add_button,
如果是输入框就是frame.add_input。
这里是输入框的名称,我们输入,
注意是英文符号,"请输入数据"。
好,这个地方我们要执行的是,
当我们点击输入框时,
它得到的数据时哪个函数呢?
例如,我们写一个enter函数。
另一个参数,我们也给它一个100,
这是可选的。
为了整齐,注意:所有的地方都没有问题,
就在这里有一个问题。
是什么呢?我们给出的这个enter函数现在还没有定义,
所以它显示为红色。
好,我们来定义这个enter函数。
这个enter函数和我们前面定义过的button函数是有所区别的。
我们点enter之后,我们会得到一个数据,
这个数据是要想办法传到我们的store或者是operand里的,
所以这里我们会获得一个参数input。
我们想把获得的这个参数输入到operand里,
或者是store里。这时我们需要对operand和store这两个全局变量进行声明。
我们希望的是,operand等于input,我们来输出一下。
运行,看一看是不是我们想要的。
我们发现,除了按钮以外,我们多了一个输入框。请输入数据。
比如说,我们输20。大家看,operand就等于20。
这个时候,我们想输入后,store的值是不是也应该被输入?
这时候,我们利用交换的按钮。
这个按钮的作用是把operand的值传递给store。
当我再次输入数据的时候,
第二个输入数据的值就变成了operand的值,
即变成了操作数的值。
我们点一下交换,store就变成了20,operand变成了10。
为了看到更清楚,我们把这两个值都初始化为0。
我们再来运行一下。显示,两个数都是0。
我输入一个数17,敲一下回车键。
发现operand的值是17。
我们交换一下,store等于17,operand等于0。
我们再给operand一个值,3,然后敲回车,
然后我们发现获得数据原来是这么简单。
好,store的值也有了,operand的值也有了,
我们把它们相加一下。17加3,我们知道应该是20。
哦,这里出错了,17加3不是20,这里变成了173。
这里没有报语法错误,但是计算的结果有错误。
那我们再来看一下减法。
这时候我们发现报语法错误了。
我们来看一下错误提示。它说类型错误。
对于字符串,我们不能用减法去操作。
为什么我们刚才用加法没有报错。
因为我们知道字符串的加表示是把字符串连接起来。
17,它认为是一个字符串。3,也认为是一个字符串。
17和3连接起来就是173。
注意:这里我们有一个小提示。
注册输入框事件时,是一个text input,
即我们输入的是一个文本而不是数据。
怎么样把文本转换成数据,
前面的课程我们已经讲过。
很简单,就是把得到的文本,
我们用强制类型转换函数转换一下。
修改后,再次运行。看一看。
输入17,敲回车键,没有问题。
输入3,敲回车键,没有问题。
我们把这两个数加一下,发现没有交换。
交换后再加一下,20,没有问题。
减一下,20减17,结果是3,没有问题。
乘一下,3乘以17,结果是51,没有问题。
除一下,也没有问题。
我们再来输入数据。
因为我们的计算器除了接收整形数据外,
还可以接收浮点型数据。
又报错了!我们来看看这个错误。
int()函数不能对字符串2.7进行转换,
也就是说它在类型转换时出错了。
那既然不能用int()函数,我们就用float()函数。
再运行,输入13,敲回车。
交换一下,让被操作数是13,操作数是0。
输入操作数是7,加一下,没问题;
减一下,没问题;乘一下,没问题;
除一下,没问题。
我们输入一个小数,做加法,没问题;
减法,没问题;乘法,没问题;除法,没问题。
到此为止,我们的一个简单计算器就完成了。
希望通过这个例子,大家对按钮和输入框事件有所熟悉。
好,今天的课程就到这里,下次再见。
-课程简介
--课程简介
-A 课程视频(算数操作符及表达式)
--绪论
-B 课程视频(变量及赋值)
--变量
--项目提交
-C 辅助视频(计算机结构、Python开发环境安装)
-D 辅助视频(如何提交项目)
--项目提交
-第0周--小测验
-本周项目:"我喜欢Python"
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
--项目提交
-A 课程视频(函数)
--函数
--其它操作符
--随机函数
-B 课程视频(逻辑及表达式)
--逻辑值和比较
--条件
--编程技巧
-第1周--小测验
-本周项目:“老虎杠子鸡虫”游戏
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(Python交互式应用)
--事件驱动编程
--按钮
-B 课程视频(输入框、全局变量)
--输入框
--编程技巧
-第2周--小测验A
-第2周--小测验B
-本周项目:猫咪藏在哪个房间
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(画布绘图)
--画布和图形绘制
--字符串处理
--图片和音效
-B 课程视频(计时器)
--计时器
--交互式绘图
--“神奇时钟”游戏
--编程技巧
-第3周--小测验A
-第3周--小测验B
-本周项目:“神奇时钟”
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(列表)
--列表
--键盘输入
--碰撞和反射
-B 课程视频(键盘控制)
--速度控制
--运动
--编程技巧
--“桌上冰球”游戏
-第4周--小测验A
-第4周--小测验B
-本周项目:“桌上冰球”游戏
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(鼠标输入、列表进阶)
--鼠标输入
--Video
--Video
--Video
-B 课程视频(字典和图片)
--Video
--Video
--Video
--Video
-第5周--小测验A
-第5周--小测验B
-本周项目:“世界杯八强连连看”
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(类)
--华容道中的类
-B 课程视频(平铺图片)
--平铺图片
--理解对象
--编程技巧
--“华容道”游戏
-第6周--小测验A
-第6周--小测验B
-本周项目:“华容道”游戏
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(类进阶及文件操作)
--集合
--文件操作
--文字块类
--处理停止的文字块
-B 课程视频(游戏状态控制)
--游戏记分规则
--编程技巧
-第7周--小测验A
-第7周--小测验B
-本周项目:决战三字经
--游戏说明
--程序说明
--编程步骤
--评分标准
--项目模板
-A、课程视屏(精灵集合)
--Video
--精灵类
--战士类
--编程技巧
-B、课程视屏(动画)
--精灵碰撞
--精灵动画
--编程技巧
--保卫家园游戏
-第8周--小测验
-本周项目:守卫家园
--游戏说明
--程序说明
--编程步骤
--评分标准
--项目模板