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

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

Войти через центр авторизации
Похожие вопросы