Как дать переменным в списке свои собственные переменные, чтобы случайно выбрать из

1

Я пытаюсь создать ИИ, которому вы обучаете, и вы задаете вопросы, и, если он не знает, он задаст вам и предложит ответ, и я просто не смогу получить несколько ответов на один вопрос.

Я как бы пробовал вложенные списки, но выбор случайным образом затрудняется, и я не думаю, что это было правильно.

quest=[]
ans=[]
loop=0
newword=['Oh, I dont know this!','Hmm Ive never heard of that.','idk','owo whats this?','Im still learning.']
running=True
while running==True:
  a=input('Ask a question')
  if a in quest:
    while loop<=len(quest):
      if a==quest[loop]:
        print(ans[loop])
        break
      else:
        loop=loop+1
  else:
    quest.append(a)
    b=input(newword[randint(0,4)]+' You tell me, '+a)
    ans.append(b)

"b" - это ответ на вопрос пользователю. В приведенном выше утверждении if он просто проверяет, есть ли заданный вопрос в списке. "а" представляет заданный вопрос.

Если я спрашиваю "Как дела?" он добавляет его в список вопросов и спрашивает меня в ответ. Со временем я хочу, чтобы у него было больше одного ответа на этот вопрос. так что он будет случайным образом выбирать из хорошего или плохого, т.д. У меня есть вопросы в цикле. мне просто нужно соединить несколько ответов с каждым вопросом.

  • 0
    Я, вероятно, могу дать вам полезный class namedtuple или dict для решения этой проблемы, но мне нужен лучший пример. Пожалуйста, предоставьте несколько входных данных и ожидаемый результат для этих входных данных.
Теги:

2 ответа

1

Возможно, я не понимаю вопроса здесь, но что-то вроде словаря не работает?

dict = {}
dict["your question or reference to your question number"] = []
dict["your question or reference to your question number"].append(b)
0

Что вам нужно сделать, это вернуть вопрос человеку, независимо от того, знает ли ИИ ответ на него. Если этого не произойдет, он узнает свой первый ответ. Если он уже знает, он добавит новый ответ.

import numpy as np

known_questions_and_answers = {}
reactions_to_a_new_question = ["Oh, I don't know this!", "Hmm I've never heard of that.", "idk", "owo what this?", "I'm still learning."]

while True:
    question = input('Ask a question')

    if question in known_questions_and_answers.keys():
        print(np.random.choice(known_questions_and_answers[question])) # Print one answer, randomly chosen in a list of valid answers.
    else:
        print(np.random.choice(reactions_to_a_new_question)) # React to an unknown question.
        known_questions_and_answers[question] = []

    answer = input(f"You tell me, {question}?") # Return the question.
    known_questions_and_answers[question].append(answer) # Append new question-answer pair.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню