Задать вопрос
@Sidorenko-ml

Почему в некоторых случаях не работает логический оператор «And»?

Вот такой код:

def Very_expensive_product(file):
    pr = []
    names_pr = []
    with open('{}'.format(file), 'r', newline='') as csvfile:
        reader = csv.DictReader(csvfile)
        for row in reader:
            pr.append(float(row['Цена,руб.']) and names_pr.append(str(row['Имя товара']))

Сталкиваюсь не первый раз уже, но не понимаю в чем дело. В этом коде добавляются только данные в список pr.
В names_pr все так же пусто остается. Если без "and" писать, опустив строку ниже, то все работает. Почему так? Почему с "and" не работает?
  • Вопрос задан
  • 101 просмотр
Подписаться 1 Простой 2 комментария
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
bool(pr.append(float(row['Цена,руб.'])) == False
так что вторая проверка даже не стартует, т.к. первая вернула False

https://docs.python.org/3/library/stdtypes.html#bo...
This is a short-circuit operator, so it only evaluates the second argument if the first one is true.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽