Зачем IDE говорит о вводе временной переменной?

Рейтинг: 0Ответов: 0Опубликовано: 06.02.2023

Зачем IDE выделяет генератор?

res = 1
[res := res * int(i) for i in input().split()]
print(res)

и говорит, что его надо оформлять вот так:

res = 1
var = [res := res * int(i) for i in input().split()]
print(res)

UPD (ответ-вопрос на комментарии):

Ок. Если PyCharm недоволен, что я использую списковое сокращение, тогда почему он во это пропускает:

def demo_func(x):
    return x
[demo_func(i) for i in range(10)]

А это уже нет:

[i for i in range(10)]

Как по мне - он должен тогда либо второй вариант не подчеркивать, либо тогда и 1ый блокировать...

UPD 2:

Получается какая-то дискриминация кода программиста, ведь IDE не выделяет такую запись:

map(int, input().split())

UPD 3:

Сделал замеры (5 раз) и через for получается работает быстрее:

[res := res * int(i) for i in [j for j in range(1000000)]]

Его итоги:

time work: 0:00:00.265001
time work: 0:00:00.218998
time work: 0:00:00.246997
time work: 0:00:00.237997
time work: 0:00:00.253999

Против такого:

for i in [j for j in range(1000000)]:
    res *= i

Его итоги:

time work: 0:00:00.180997
time work: 0:00:00.190002
time work: 0:00:00.163006
time work: 0:00:00.156005
time work: 0:00:00.169000

UPD 4:

Скрин, от IDE: введите сюда описание изображения введите сюда описание изображения

UPD 5: Скрин то, что хочет видеть IDE: введите сюда описание изображения

Ответы

Ответов пока нет.