import random
import jieba
class Robot():
def __init__(self, name):
print('*' * 18 + '启动成功' + '*' * 18)
self.name = name
self.say_hi = ['你好', 'Hi', 'Hello', 'hi', 'hello', '好久不见']
self.say_bye = ['再见', 'Bye', 'bye', 'Bye-bye', 'Byebye', '再会', '回见', '88', '下次见']
def chat(self):
flag = False
while True:
msg = input('你说:')
jieba.load_userdict('words_dict.txt')
words = jieba.lcut(msg)
for word in words:
if word in self.say_hi:
print('{}说:{}'.format(self.name, random.choice(self.say_hi)))
break
elif word in self.say_bye:
print('{}说:{}'.format(self.name, random.choice(self.say_bye)))
flag = True
break
else:
print('{}说:我听不懂'.format(self.name))
if flag:
break
class DianCan(Robot): ##自定义点餐机器人类,继承机器人类
def __init__(self,name): #构造方法
Robot.__init__(self,name) #继承父类Robot所有属性
self.cai = {'面条':15,'果盘':22,'饺子':18,'宫保鸡丁':33} #新增属性菜品
self.choice = [] #新增属性已选择菜品
def serve(self): #定义点餐实例方法
flag = False
print('顾客您好!{}为您提供点餐服务'.format(self.name))
while True:
msg = input('你说:')
jieba.load_userdict('words_dict.txt')
words = jieba.lcut(msg)
for word in words:
if word in self.cai: #如果输入的词中有菜单中的菜名
self.choice.append(word) #将菜名加到已经选择的菜单中
print('马上为您准备{}稍等'.format(word)) #提示马上准备xx
break
elif word in self.say_bye:
print('{}说:祝您用餐愉快'.format(self.name)) #说再见相关的话回复用餐愉快
flag = True
break
else:
print('{}说:我听不懂'.format(self.name))
if flag:
break
def jisuan(self): #定义计算实例方法
money = 0 #设置价格伟0
for i in self.choice: #遍历选择菜品的列表
money = money+self.cai[i] #将对应菜品的价格加起来
print('{}说:您一共消费{}元'.format(self.name,money))
can = DianCan('点餐机器人') #实例化点餐机器人对象can,传入name参数-点餐机器人
can.serve() #对象can调用serve点餐方法
print(can.choice) #打印选择的菜品
can.jisuan() #对象can调用jisuan计算方法结账