目前学习进度
兴趣使然,这两天开始学习Python与QT5.
1.学习观看了 python 变量 基本运算符 条件 循环 输入输出 等相关语法视频。
2.pyqt5 环境搭建
3.学习了用 QtDesigner 创建简单ui布局,并转化为.py文件
本次任务目标
编写猜年龄小游戏
1.年龄在18-25之间随机生成
2.用户有三次猜测机会,猜对提示“猜中了”,猜错三次后再猜提示重新开始,点击重新开始,显示重新开始,重新拥有三次机会。
3.有对应的GUI
代码
import sys
import guess
import random
from PyQt5.QtWidgets import QApplication,QMainWindow
age = str(random.randrange(18, 25))
a4 = 3
print('你一共有%d次机会,猜一下我的年龄(18-25):\n' % (a4))
def run_guess():
global a4
guess_age = ui.textEdit.toPlainText()
if 1<=a4<=3:
if age == guess_age:
print("猜对了!")
ui.textBrowser.setText('猜对了!')
a4 = 3
else:
print('猜错了')
ui.textBrowser.setText('猜错了')
a4 -= 1
print('别气馁!你还有%d次机会:\n' % (a4))
ui.textBrowser.setText('猜错了,别气馁!你还有%d次机会:\n' % (a4))
else:
print('机会用完了,请重新开始游戏')
ui.textBrowser.setText('机会用完了,清重新开始游戏')
return
def Restart():
print('重新开始游戏')
ui.textBrowser.setText('重新开始游戏')
global a4
a4 =3
print('你一共有%d次机会猜一猜年龄是:\n' % (a4))
if __name__ == '__main__':
# 从当前应用运行才会继续
app = QApplication(sys.argv)
# 创建QAPPLICATION类的实例,argv获取命令行参数
mainWindow = QMainWindow()
ui = guess.Ui_MainWindow()
ui.setupUi(mainWindow)
ui.textBrowser.setText('你一共有%d次机会,猜一下我的年龄(18-25):\n' % (a4))
ui.pushButton_2.clicked.connect(run_guess) # 按键点击信号连接run-guess槽
ui.pushButton_3.clicked.connect(Restart)
mainWindow.show()
# 显示窗口
sys.exit(app.exec_())
# 进入程序主循环,并且通过exit函数保证安全退出
效果演示
问题与总结
1.在用input 和 textEdit.toPlainText 通过命令窗口和文本框获取 用户输入数据时 得到的是字符串型,在做算术运算前需要eval自动转换,或者强制转换。
2.用global可以定义全局变量,自定义函数某global变量与外面某变量名称一致时,他们就是同一变量,不用global,即使长得一样,也不是同一个变量。
3.程序结构有些另类,等学习了类和对象,可优化。