@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" не работает?
  • Вопрос задан
  • 99 просмотров
Решения вопроса 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.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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