我正在創建一個可以與之交談的機器人。我正在使用函數來檢查是否使用某些單詞,因此有答覆。我在一個函數內部執行此操作,並使用return來打印回覆。如果有兩件事說我希望它能夠說出他們兩個,問題是我一旦回覆答覆功能不會繼續。有什麼方法可以返回一個值然後繼續?這是主要的重點,並在我的整個代碼之後。一旦我回復了答覆,該功能不會繼續。有什麼方法可以返回一個值然後繼續?
# Reply
if thank == True:
return "It's my pleasure\n"
if greet == True:
return "How are you?\n"
和主代碼:
# Chat Bot
import random
print("Hi!\n")
greetings = ["hi","hey","hello","yo","wassup"]
thanks = ["cheers","thanks","thx"]
def reply(x):
greet = False
# Greetings
for item in greetings:
if item in x:
greet = True
# Thanks
thank = False
for item in thanks:
if item in x:
thank = True
# Reply
if thank == True:
return "It's my pleasure\n"
if greet == True:
return "How are you?\n"
else:
randomAnswers = ["I like cheese.", "That's Cool.", "You are a robot.", "I am not a robot.", "I like music.", "I want to visit australia.","Do you like me?","You're cool."]
num = random.randint(0, len(randomAnswers) - 1)
return randomAnswers[num]
while 1:
userMessage = input("Message: ").lower()
print()
print(reply(userMessage))
感謝這應該工作,我應該想到那個我自己! – Ashley
您還應該考慮包裝重複性邏輯以啓用測試。所有這些'用於列表中的x:如果輸入'行中的x可以被移動到諸如'is_input_in'的函數。 –
我也會這樣做肖恩感謝。另外Martjin感謝更正random.choice驚訝我以前從未遇到過。 – Ashley