Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
GLaD0S
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 32
1

Не срабатывает elif

12.02.2017, 14:00. Просмотров 935. Ответов 5
Метки нет (Все метки)

Здравствуйте. Такая проблема- if срабатывает не зависимо от истинности (либо выдает ошибку) и elif не срабатывает вообще
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#словарь у которого "ключ-значение" "русское слово-английское слово"
englishWords={"дом":"house",
              "видеть":"see",
              "окно":"window",
              "дверь":"door",
              "яблоко":"apple",
              "думать":"think",
              "книга":"book",
              "мы":"we",
              "наш":"our",
              "желтый":"yellow",
              "улица":"street",
              "привет":"hello"}
 
#словарь у которого "ключ-значение" "английское слово-русское слово"
russianWords={"house":"дом",
              "see":"видеть",
              "window":"окно",
              "door":"дверь",
              "apple":"яблоко",
              "think":"думать",
              "book":"книга",
              "we":"мы",
              "our":"наш",
              "yellow":"желтый",
              "street":"улица",
              "hello":"привет"}
 
while 1: #безконечный цикл 
    
    #вводим слово
    word=input("Введите слово ")
    #проверяем, если слово содержит английскую букву, значит введено английское слово и выполнять поиск
    # ключа в библиотеке russianWords
    if "y" or "s" or "d" or "f" or "g" or "h" or  "k" or "l" in word:
        print(word,russianWords[word])  #в этой строке оно видит ошибку
 
    #если слово содержит русскую букву, значит введено русское слово и выполнять поиск ключа
    #в библиотеке englishWords
    elif "т" or "в" or  "п" or "и" or "б" or "л" or "д" or "к" or "н" or "м" in word:
        print(word,englishWords[word])
Проблема в том, что когда вводишь русское слово, выдает ошибку ключа (не находит оно ключ) т.е. оно не заходит в часть кода elif и показывает ошибку в строке 36.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2017, 14:00
Ответы с готовыми решениями:

Elif в Python 3.5.2
простенькая задачка: if pH==7.0: print (pH,"Water") elif...

Ошибка после elif
Приветствую всех, возникла вот такая проблемка, взялся поучить Python, поставил...

Python 3.2 оператор if else elif
Ввожу пример из книги саммерфилда : x=int(input()) if x<100: print("medium")...

Как сделать if ... elif ... else ... ?
Хочу, чтобы по кругу выполнялся блок if else, пока не станет истинным...

В чем ошибка? Ругается на elif
import math tip=input("Введите название фигуры =") if tip=="круг": ...

5
oldnewyear
411 / 409 / 157
Регистрация: 21.05.2016
Сообщений: 1,320
12.02.2017, 14:08 2
Лучший ответ Сообщение было отмечено GLaD0S как решение

Решение

Python
1
if "y" or "s" or "d" or "f" or "g" or "h" or  "k" or "l" in word:
Эта строчка эквивалентна
Python
1
if True or True or True or True or True or True or True or "l" in word:
1
GLaD0S
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 32
12.02.2017, 14:15  [ТС] 3
Еб-today)))) Сколько раз на подобной фигне уже завтыкивал )))) Спасибо. Админ, проблема решена
0
alex925
2671 / 2278 / 630
Регистрация: 19.03.2012
Сообщений: 8,830
12.02.2017, 14:23 4
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
dictionary = {
    "дом": "house",
    "видеть": "see",
    "окно": "window",
    "дверь": "door",
    "яблоко": "apple",
    "думать": "think",
    "книга": "book",
    "мы": "we",
    "наш": "our",
    "желтый": "yellow",
    "улица": "street",
    "привет": "hello",
    "house": "дом",
    "see": "видеть",
    "window": "окно",
    "door": "дверь",
    "apple": "яблоко",
    "think": "думать",
    "book": "книга",
    "we": "мы",
    "our": "наш",
    "yellow": "желтый",
    "street": "улица",
    "hello": "привет"
}
 
while True:
    word = input("Введите слово ")
    try:
        print(word, dictionary[word])
    except KeyError:
        print('Такого слова нет в словаре')
0
GLaD0S
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 32
12.02.2017, 14:35  [ТС] 5
alex925, да можно и так. Но мне принципиально важно было найти косяк именно в том коде который я написал (т.е. что б английские и русские слова были в разных библиотеках). К тому-же питон я изучаю только месяц и try и ошибки я еще не проходил.
0
alex925
2671 / 2278 / 630
Регистрация: 19.03.2012
Сообщений: 8,830
12.02.2017, 14:47 6
GLaD0S, try нужен и в том коде, что ты выложил, это не какое-то особое решения для 1 общего словаря.
0
12.02.2017, 14:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2017, 14:47

Посчитать количество слов используя только for range, while, if, elif, else
Помогите пожалуйста решить: "Посчитать количество слов во введенной...

Узнать, является ли фраза палиндромом используя только: while, if, elif , else
Подскажите, как узнать, является ли фраза палиндромом (исключая пробелы и знаки...

Даны два числа . Выыедите сообщение о его знаке.Эту задачу решени с использованием касадных инструкций if.elif.else
Даны два числа . Выыедите сообщение о его знаке.Эту задачу решить с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru