本节概要:
经常因为早上不知道吃啥好,所以写了这么一个小程序,用于随机搭配早餐。
一、在python尝试测试
设计思路 |
---|
A、创建早餐字典 B、随机获取2个早餐编号 C、通过早餐的ID来剔除2个早餐出现重复 D、通过for遍历出获取2个早餐的信息即key,value分别对应的是名称,和价格,进行计算得到结果 |
import random
#定义早餐的存储字典
zaocan_dict = {
"1": {"肉肠": 4}, "2": {"蛋肠": 4}, "3": {"肉蛋肠": 4},
"4": {"炒米粉": 3}, "5": {"炒河粉": 3}, "6": {"炒面": 3},
"7": {"小笼包": 4}, "8": {"蒸饺": 4}, "9": {"糯米鸡": 4},
"10": {"糯米卷": 1.5}, "11": {"白馒头": 1}, "12": {"马拉糕": 1.5},
"13": {"烧麦": 1.5}, "14""油条": 1.5, "15": {"白粥小碗": 2},
"16": {"白粥大碗": 3}, "17": {"叉烧包": 1}, "18": {"肉包": 1},
"19": {"豆沙包": 1}, "20": {"奶黄包": 1}, "21": {"菜包": 1},
"22": {"黑糖馒头": 1}, "23": {"豆浆": 1}, "24": {"茶叶蛋": 1.5},
}
#避免操作出现重复的样式
while True :
#获取随机商品2个
choice_one = random.randint(1, 23)
choice_two = random.randint(1, 23)
if choice_one == choice_two :
continue
else:
print(choice_one)
print(choice_two)
break
#通过随机的编号得到2个商品信息
zaocan_one = zaocan_dict.get(str(choice_one))
zaocan_two = zaocan_dict.get(str(choice_two))
#测试结果为商品信息
print(zaocan_one)
print(zaocan_two)
for goods_one,value_one in zaocan_one.items():
for goods_two,value_two in zaocan_two.items():
#验证早餐最终搭配为2个,总价格多少
# print(f"您选择的早餐为:{goods_one}+{goods_two}")
# print(f"总价格为: {value_one+value_two}元")
#方法2
print(goods_one+"+"+goods_two)
print(value_one+value_two)
#TODO 用户预期心理价格
运行的结果:
二、通过GUI操作/Pyqt5
一、在上面已经在文件当中进行了处理,并且能够得到结果,那么下一步就是来通过GUI来设计ui了,打开这个小兄弟
那么用到的label等如图所示:
完成的设计如这样,保存名称跟我窗口的显示一直一致就好了
二、配置槽函数:
我这里就直接将第一部分设计的程序,定义了一个zaocan()函数对应
三、设计完成执行生存mainForm.py文件
在刚刚设计的ui文件目录下,执行这条语句,会生成一个mainForm.py文件
foods_chocie.py 是整合ex01.py 定义成一个zaocan()函数
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QFileDialog, QMainWindow
from mainForm import Ui_MainWindow
import random
class PyQtMainEntry(QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.a = ""
self.b = ""
def zaocan(self):
"""早餐处理"""
#早餐商品信息储存
zaocan_dict = {
"1":{"肉肠":4},"2":{"蛋肠": 4},"3":{"肉蛋肠": 4},
"4":{"炒米粉":3},"5":{"炒河粉":3} ,"6":{"炒面":3},
"7":{"小笼包":4} ,"8":{"蒸饺":4 },"9":{"糯米鸡":4},
"10":{"糯米卷":1.5 },"11":{"白馒头":1} ,"12":{"马拉糕":1.5 },
"13":{"烧麦":1.5} , "14""油条":1.5 ,"15":{"白粥小碗":2},
"16":{"白粥大碗":3} ,"17":{"叉烧包": 1},"18":{"肉包":1 },
"19":{"豆沙包": 1},"20":{"奶黄包":1} ,"21":{"菜包":1 },
"22":{"黑糖馒头":1 },"23":{"豆浆":1} ,"24":{"茶叶蛋":1.5 },
}
# 避免操作出现重复的商品
while True:
# 获取随机商品2个
choice_one = random.randint(1, 23)
choice_two = random.randint(1, 23)
if choice_one == choice_two:
continue
else:
break
# 通过随机的编号得到2个商品信息
zaocan_one = zaocan_dict.get(str(choice_one))
zaocan_two = zaocan_dict.get(str(choice_two))
# 遍历出2个商品信息的key,values
for goods_one, value_one in zaocan_one.items():
for goods_two, value_two in zaocan_two.items():
self.a = str(goods_one+"+"+goods_two)
self.b = str(value_one+value_two)
self.lineEdit_1.setText(self.a)
self.lineEdit_2.setText(self.b)
#https://blog.csdn.net/cpf945/article/details/90215725### 参考学习链接
# 获取用户输入承受价格范围 TODO
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = PyQtMainEntry()
window.show()
sys.exit(app.exec_())
运行这个文件就能操作了