Python3 小實(shí)例,問(wèn)答機(jī)器人

2022-04-24 17:34 更新

小實(shí)例,問(wèn)答機(jī)器人

基礎(chǔ)知識(shí)學(xué)了其實(shí)也有一段時(shí)間了,做幾個(gè)小的實(shí)例還是綽綽有余的。今天我們就一起實(shí)操,寫(xiě)一個(gè)問(wèn)答機(jī)器人吧

問(wèn)題來(lái)了,要做一個(gè)問(wèn)答機(jī)器人我們首先得知道會(huì)用到哪些學(xué)到的知識(shí)點(diǎn):

  • 字典:存儲(chǔ)機(jī)器人的相關(guān)對(duì)話(huà)內(nèi)容,讓機(jī)器人有相關(guān)的“記憶”
  • 循環(huán)(嵌套循環(huán)):一直去響應(yīng)我們對(duì)應(yīng)的問(wèn)題
  • 判斷: 執(zhí)行流程操作

搞清楚了機(jī)器人的相關(guān)運(yùn)作流程之后就開(kāi)搞吧,流程是比較復(fù)雜的,不過(guò)相信你能搞定。上栗子:

  1. #/usr/bin/env python3
  2. #coding:utf-8
  3. dict = {
  4. "你好" : "你好",
  5. "很高興見(jiàn)到您" : "我也很能高興見(jiàn)到你",
  6. "你喜歡吃什么水果 " : "我喜歡橘子",
  7. "你今年多大了" : "27 歲了",
  8. "你很漂亮" : "謝謝"
  9. }
  10. flag = ('c')
  11. work = True
  12. print('你好,我是python機(jī)器人')
  13. print('你有時(shí)間跟我聊聊嗎')
  14. while flag == 'c' or 't':
  15. flag = input("你可以選擇是否跟我聊天(c),還是決定練習(xí)下我的對(duì)話(huà)能力(t),或者讓我推下(l)?(c/t/l)")
  16. if flag == "t":
  17. question = input("請(qǐng)輸入你想問(wèn)的:")
  18. answer = input("請(qǐng)輸入問(wèn)題答案:")
  19. dict[str(question)] = str(answer)
  20. print("學(xué)習(xí)成功")
  21. print("現(xiàn)在我已經(jīng)學(xué)會(huì)了%d個(gè)問(wèn)題"%len(dict))
  22. continue
  23. elif flag == 'c':
  24. if len(dict) == 0:
  25. print("現(xiàn)在我還不會(huì)回答任何問(wèn)題,請(qǐng)先讓我學(xué)習(xí):")
  26. continue
  27. chat_word = input("謝謝你跟我聊天,你想對(duì)我說(shuō)點(diǎn)什么?:")
  28. for key in sorted(dict.keys()):
  29. if str(chat_word) == key:
  30. work = True
  31. print(dict[key])
  32. break
  33. else:
  34. work = False
  35. if work == False:
  36. print("Sorry,這個(gè)問(wèn)題我回答不上來(lái)")
  37. work = True
  38. elif flag == 'l':
  39. print("好的,那我們下次再聊")
  40. break
  41. else:
  42. print("請(qǐng)輸入提示指令")
  43. continue

這是講字典,循環(huán),判斷結(jié)核的比較好的一個(gè)實(shí)例;為了方便你以后能靈活使用相關(guān)技術(shù),希望能夠多思考將這些知識(shí)點(diǎn)組合運(yùn)用起來(lái)轉(zhuǎn)化稱(chēng)自己的思路,不斷的練習(xí)方能起到學(xué)以致用。我們的 Python 初級(jí)課程差不多也就到這了,接下來(lái)將會(huì)進(jìn)入到中級(jí)課程當(dāng)中

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)