从事嵌入式系统软硬件设计工作已有将尽20年的时间,在进行硬件目标板调试时,常需要上位机软件支持。在进行上位机软件程序的设计时,采用过VB、VB.net和C++等多种语言,偶然的机会发现Python,接触后,立刻感觉到它的强大,现在我的上位机软件编程只用Python。本系列教程将从基于硬件的上位机软件设计的角度着手,系统介绍Python语言,希望读者通过本系列教程的学习,能够对Python语言立刻学以致用,真正将所学知识应用到项目实践中。
开发环境:Visual Studio Code
操作系统:Microsoft Window 7
Python版本:3.7
参考教材:Python快速编程入门,黑马程序员,人民邮电出版社,2017年9月第1版
备注:教程仅适合初学者,高手请绕过
一、判断输入的数字是正数、零、还是负数
1、PyQt设计界面:
2、对象命名:
3、源程序:
# 系统包
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
# 项目包
from Ui_MainWindow import Ui_MainWindow
class CMainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self, parent = None):
super(CMainWindow, self).__init__(parent)
self.setupUi(self)
# 主窗体设置
self.show()
def Judge(self):
a = int(self.txtNumber.text())
if a >= 0:
if a == 0:
self.labResult.setText("结果:你输入的数字是0")
else:
self.labResult.setText("结果:你输入的数字是正数")
else:
self.labResult.setText("结果:你输入的数字是负数")
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
MainWindow = CMainWindow()
sys.exit(app.exec_())
4、注解:
(1)Python中if语句的一般形式如下所示:
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
(2)每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
(3)使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
(4)在Python中没有switch – case语句。
5、练习:
编写程序换算狗的年龄对应人的年龄,算法:0岁的狗=》小于14岁的人;1岁的狗=》14岁;2岁的狗=》22岁;2岁以上的狗换算公式为human = 22 + (age -2)*5。
二、求3个数字的最大数
1、PyQt设计界面:
2、对象命名:
3、源程序:
# 系统包
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
# 项目包
from Ui_MainWindow import Ui_MainWindow
class CMainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self, parent = None):
super(CMainWindow, self).__init__(parent)
self.setupUi(self)
# 主窗体设置
self.show()
def Max(self):
a = int(self.txtNumber1.text())
b = int(self.txtNumber2.text())
c = int(self.txtNumber3.text())
max = a
if max < b:
max = b
if max < c:
max = c
self.txtMaxNumber.setText(str(max))
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
MainWindow = CMainWindow()
sys.exit(app.exec_())
4、练习
编写程序,求4个数字中的最大数。
任何问题,只需在此文章的评论处留言即可,我将尽力解答,不要试图采用其它的联系方式,我一概不理会。
原创性文章,转载请注明出处CSDN:http://blog.csdn.net/qingwufeiyang12346。