@MrBrainop
Начал изучать html, Python и QT Designer

Как исправить ошибка TypeError: 'in ' requires string as left operand, not tuple?

Вот код:
cmds = {
"hello": ('привет', 'хай'),
"whats": ('как дела', 'твои дела'),
"name":  ('твоё имя', 'как тебя зовут')
}

def makeSomething(task):
	if cmds["hello"] in task:
		say("Ну привет!")

	elif cmds["what"] in task:
		say("Как дела")

	elif cmds["name"] in task:
		say('Меня зовут **')


Вот логи:
Traceback (most recent call last):
  File "C:\Users\***\Desktop\Assistant\commands.py", line 56, in <module>
    makeSomething(command())
  File "C:\Users\***\Desktop\Assistant\commands.py", line 42, in makeSomething
    if cmds["hello"] in task:
TypeError: 'in <string>' requires string as left operand, not tuple


Из-за чего ошибка и как исправить?
  • Вопрос задан
  • 4990 просмотров
Решения вопроса 2
shabelski89
@shabelski89
engineer
Вы не показали главное, значение task.
Но тут и так ясно, что в task передается строка, а оператор IN работает со списками, кортежами, словарями...
заменить IN на == , ну это не учитывая остальных ошибок кода.
Ответ написан
SoreMix
@SoreMix Куратор тега Python
yellow
'in ' requires string as left operand, not tuple?

'in' требует строку в качестве левого операнда, не кортеж


Решение: использовать строку в качестве левого операнда, не кортеж.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы