Как через if проверить если значение есть в списке?

Александр

Новичок
Пользователь
Апр 10, 2020
5
0
1
Python:
import webbrowser
import random
import win32com.client
import speech_recognition as sr
speaker=win32com.client.Dispatch("SAPI.SpVoice")

privet=["Здравствуйте","Приветствую вас","Рад снова вас видеть","Здравия желаю"]
privet1=random.choice(privet)
command1=("Введите вашу команду:")
vk=["vk","VK","Vk","Вк","ВК","вк"]

def talk(word):
    print(word)
    speaker.Speak(word)
def govor(word):
    speaker.Speak(word)

   
talk(privet1)
govor(command1)
command=input(command1)


if vk in command:
    print("вк")
   
   
   
   
Ошибка:'in <string>' requires string as left operand, not list
 
Последнее редактирование модератором:

Vlad_SD

Активный пользователь
Пользователь
Апр 7, 2020
91
45
18
Сравнение можно реализовать например так:
Python:
import random

privet = ["Здравствуйте", "Приветствую вас", "Рад снова вас видеть", "Здравия желаю"]
privet_random = random.choice(privet)
user_command = input("Введите вашу команду:")
vk_names = ["vk", "вк"]


if user_command.lower() in vk_names:
    print("Вконтакте")

в вашей программе условие будет работать только в таком случае (когда весь список будет элементом command)
Например так:
Python:
vk=["vk","VK","Vk","Вк","ВК","вк"]
command = [["vk","VK","Vk","Вк","ВК","вк"], 'значение1', 'значение2']

if vk in command:
    print('вк')
 
Последнее редактирование:

Student

throw exception
Команда форума
Администратор
Апр 2, 2020
195
103
43
Москва
Вижу вы используете все возможные варианты ввода от пользователей. Лучше всего конвертировать буквы в нижний регистр .lower() и удалить пробелы по сторонам .strip().

Python:
cmd = input("Введите вашу команду:").lower().strip()

if cmd in ["vk", "вк"]:
    print("OK")
 
  • Мне нравится
Реакции: Vlad_SD и shishkinav

Форум IT Специалистов