Это называется словом "литерал", в данном случае - списочный литерал.
Знание терминологи не обязательно для простых смертных, но весьма желательно для python разработчика с многолетним опытом и держателя профильного телеграм-канала. Объясню почему:
Литерал, как способ создания питон-объекта, существует не для только лишь всех. Хрестоматийный пример: множество из нескольких элементов можно задать литералом, напр {1, 2, 3}, но пустое множество создаётся только вызовом конструктора set(). Причина проста и естественна - для пустого множества не удалось придумать органично выглядящий и однозначно распознаваемый литерал.
В древности литералы существовали лишь для самых базовых типов, например чисел - ну как ты число сконструируешь? Т.е. можно конечно конструктором, вызов int() порождает 0, но один только ноль - этого мало. В питон литералы сразу завезли для списков и словарей, а множества (которые кстати тоже появились не сразу) изначально создавались только через конструктор, set([1, 2, 3]), и лишь потом для них придумали литералы, как синтаксический сахар.
В завершение хочется упомянуть, что кроме генераторов списков, ...
Есть и другие хорошие новости. Например, хотя для коллекции типа deque (очередь) нет литерала, и создавать её экземпляр приходится древним способом, deque([1, 2, 3]), для создания очереди можно воспользоваться генераторным выражением в качестве аргумента конструктора, deque(i * 2 for i in range(3)), что выглядит почти так же мило, как списочный генератор.
Оно не умеет отсекать тупиковые ветки, что достигается простым подтягиванием условий в тот цикл, где эти условия разрешимы. Если пофиксить это и еще пару косяков - решает мгновенно.
Боюсь-боюсь.
from itertools import permutations
# Define the possible attributes for each of the warehouses
colors = ["зеленый", "желтый", "синий", "белый", "красный"]
professions = ["каменщик", "портной", "электрик", "плотник", "программист"]
animals = ["леопард", "пума", "медведь", "тигр", "крокодил"]
foods = ["котлета", "хлеб", "пельмени", "макароны", "пицца"]
drinks = ["коньяк", "вино", "водка", "ром", "виски"]
# Generate all possible arrangements
for color_perm in permutations(colors):
if color_perm.index("желтый") - 1 != color_perm.index("синий"):
continue
for profession_perm in permutations(professions):
if profession_perm[0] != "плотник":
continue
if abs(color_perm.index("красный") - profession_perm.index("плотник")) != 1:
continue
if color_perm.index("зеленый") != profession_perm.index("каменщик"):
continue
for animal_perm in permutations(animals):
if profession_perm.index("портной") != animal_perm.index("леопард"):
continue
for food_perm in permutations(foods):
if food_perm[2] != "пельмени":
continue
if color_perm.index("желтый") != food_perm.index("котлета"):
continue
if profession_perm.index("электрик") != food_perm.index("хлеб"):
continue
for drink_perm in permutations(drinks):
# Check the given conditions
if drink_perm.index("коньяк") != animal_perm.index("пума"):
continue
if color_perm.index("белый") != drink_perm.index("вино"):
continue
if abs(drink_perm.index("водка") - animal_perm.index("медведь")) != 1:
continue
if abs(animal_perm.index("тигр") - drink_perm.index("вино")) != 1:
continue
if drink_perm.index("виски") != food_perm.index("макароны"):
continue
if profession_perm.index("программист") != drink_perm.index("ром"):
continue
# If all conditions are met, print the result
idx_pizza = food_perm.index("пицца")
idx_crocodile = animal_perm.index("крокодил")
profession_pizza = profession_perm[idx_pizza]
profession_crocodile = profession_perm[idx_crocodile]
print(
f"Кто ест пиццу: {profession_pizza}, "
f"кто держит крокодила: {profession_crocodile}"
)
Незачем искать идиотов где-то, рассмотрим ваш случай. Я сделал очень простое высказывание: статья не содержит никакой конкретики (не считать же конкретикой "простейшую задачку с LeetCode"). Я дал примеры такой конкретики, просто для масштаба, а вдруг поймёт.
Что понял он - пока не известно, вы же поняли нечто совершенно своё. Так бывает.
Во избежание дальнейших недоразумений давайте прекратим наш разговор. Как собеседник вы меня не интересуете.
Медианная зарплата — это уровень, выше и ниже которого получает доход одинаковое количество специалистов. Например, если медианная зарплата в команде из десяти человек — 150 000 ₽, это значит, что пять человек получают меньше 150 000 ₽, а пять — больше.
Люблю такое всякое. Главный по всем вопросам пропишет задней левой ногой определение - хоть стой, хоть падай.
Возьмем, к примеру, команду из двух человек, один с зарплатой 1р, другой - 1000р. Какова их медианная зарплата? Под определение подходит и 2р, и 999р.
Только не надо писать, что автор не это имел в виду. Что имел - то и написал, никто не неволил.
Ошибка в другом. Равномерно полезной документации не бывает. В поиске ответа на свой вопрос приходится продираться сквозь завалы бесполезных/давно известных сведений, и это, знаете-ли, утомляет. Выход найден, это интерактивные помощники вроде чатгпт, за ними будущее. За ними, а не за мастерами пера, уважаемый человек-оркестр.
Задача мне не понравилась, из пальца высосана, а самодовольства море разливанное.
def magic(x: int, y: int, z: int) -> int:
a = 1
b = 2
c = 3
return a * x + b * y + c * z
s = magic("a", "b", "c")
print(f'a={s.count("a")}, b={s.count("b")}, c={s.count("c")}')
Многие писали «загугли и найдёшь всё сама» и оскорбляли меня, вместо структурированного ответа.
Загугли и найдёшь всё сама. Просто это займёт много времени, гораздо больше, чем ты бы хотела. Терпи, пробуксовывай, не отступайся - барахтаться противно, но иначе никак.
Никакой ментор не утрёт все твои сопли. Сама, сама, сама.
С момента создания питона разработчики языков додумались, удивительное дело, в статически типизированных языках типа Kotlin выводить тип переменной из вида (написания) присваемого значения. Меньше синтаксического мусора, почти как в питоне).
Вольное присваивание аргументам функций в питоне значений произвольного типа - это удобное решение для скриптовых языков. В котлине сходной гибкости и выразительности добиваются созданием нескольких одноименных функций с разной сигнатурой, но писанины больше. Аннотирование функций в питоне подравнивает ситуацию по объёму писанины, но котлином его не делает, в смысле строгости и производительности. Так что присоединяюсь к автору статьи: хочешь типов - присмотрись к другим языкам.
... уход крупного игрока из России сподвигнет отечественных разработчиков улучшать качество своих продуктов. И это, по словам эксперта, пойдет рынку только на пользу.
Java - язык с непростой судьбой, начнём с того, что он задумывался как язык "для программирования бытовых электронных устройств" (wiki). Ему было трудно стать естественным, выразительным и красивым языком общего назначения, и он не смог. Многословный и суетливый старикан - так бы я его описал.
Его сильная сторона - то, что производимый им код исполняется на java-машине, а таковая машина портирована на все мыслимые архитектуры. Но за прошедшие годы многие это оценили и создали языки, генерирующие байткод для java-машины, есть даже реализация питона для неё, правда, она заброшена.
Я бы советовал глянуть в сторону Kotlin - современный, динамично развивающийся язык с прекрасной компиляцией в java-код и бесшовно интегрирующийся с java, мультипарадигменный, лаконичный и выразительный. Официальный язык для android-разработки. А зная его, вы автоматом будете знать и java - так уж оно устроено )
ps
Типизация: Мягкая
В питоне строгая динамическая типизация, а мягкая типизация существует только у вас в статье. Зачем, спрашивается? Недосуг заглянуть в ту же wiki?
А еще в numpy можно проводить арифметические операции над массивами различных размерностей:
выхлоп:
Для изучения данной темы рекомендую читать офф.документацию, ключевое слово broadcasting.
Это называется словом "литерал", в данном случае - списочный литерал.
Знание терминологи не обязательно для простых смертных, но весьма желательно для python разработчика с многолетним опытом и держателя профильного телеграм-канала. Объясню почему:
Литерал, как способ создания питон-объекта, существует не для только лишь всех. Хрестоматийный пример: множество из нескольких элементов можно задать литералом, напр
{1, 2, 3}
, но пустое множество создаётся только вызовом конструктораset()
. Причина проста и естественна - для пустого множества не удалось придумать органично выглядящий и однозначно распознаваемый литерал.В древности литералы существовали лишь для самых базовых типов, например чисел - ну как ты число сконструируешь? Т.е. можно конечно конструктором, вызов
int()
порождает0
, но один только ноль - этого мало. В питон литералы сразу завезли для списков и словарей, а множества (которые кстати тоже появились не сразу) изначально создавались только через конструктор,set([1, 2, 3])
, и лишь потом для них придумали литералы, как синтаксический сахар.Есть и другие хорошие новости. Например, хотя для коллекции типа
deque
(очередь) нет литерала, и создавать её экземпляр приходится древним способом,deque([1, 2, 3])
, для создания очереди можно воспользоваться генераторным выражением в качестве аргумента конструктора,deque(i * 2 for i in range(3))
, что выглядит почти так же мило, как списочный генератор.Оно не умеет отсекать тупиковые ветки, что достигается простым подтягиванием условий в тот цикл, где эти условия разрешимы. Если пофиксить это и еще пару косяков - решает мгновенно.
Боюсь-боюсь.
И что же, так 25 лет и живёте душа в душу? Прикольно.
Ну что он у коллег перестал спрашивать как-то проконтролировать можно. А вот насчет искать в интернете - как вы ему по рукам дали?
Незачем искать идиотов где-то, рассмотрим ваш случай. Я сделал очень простое высказывание: статья не содержит никакой конкретики (не считать же конкретикой "простейшую задачку с LeetCode"). Я дал примеры такой конкретики, просто для масштаба, а вдруг поймёт.
Что понял он - пока не известно, вы же поняли нечто совершенно своё. Так бывает.
Во избежание дальнейших недоразумений давайте прекратим наш разговор. Как собеседник вы меня не интересуете.
Вы о каких алгоритмах лепечете? Они, знаете, бывают разной сложности, каким-то обучают пятиклассников, каким-то - профильных второкурсников, еще каким-то - студентов постарше.
Вы сами-то какого полёта птица, с реализацией АВЛ-дерева справитесь без привлечения сторонних библиотек? А с привлечением? (шучу, конечно).
Нет ответа. Только уха лопух на КДПВ.
Люблю такое всякое. Главный по всем вопросам пропишет задней левой ногой определение - хоть стой, хоть падай.
Возьмем, к примеру, команду из двух человек, один с зарплатой 1р, другой - 1000р. Какова их медианная зарплата? Под определение подходит и 2р, и 999р.
Только не надо писать, что автор не это имел в виду. Что имел - то и написал, никто не неволил.
/mentor mode off.
Ошибка в другом. Равномерно полезной документации не бывает. В поиске ответа на свой вопрос приходится продираться сквозь завалы бесполезных/давно известных сведений, и это, знаете-ли, утомляет. Выход найден, это интерактивные помощники вроде чатгпт, за ними будущее. За ними, а не за мастерами пера, уважаемый человек-оркестр.
Задача мне не понравилась, из пальца высосана, а самодовольства море разливанное.
Без лоха и жизнь плоха.
Влепить RC-генератор, затем калибровать его к температуре (а есть датчик?) - ради чего? Чтобы сэкономить на кварце? Рука-лицо.
Загугли и найдёшь всё сама. Просто это займёт много времени, гораздо больше, чем ты бы хотела. Терпи, пробуксовывай, не отступайся - барахтаться противно, но иначе никак.
Никакой ментор не утрёт все твои сопли. Сама, сама, сама.
Питон, джава - какая разница! /sarcasm off.
https://github.com/yousseb/meld/tree/master/meld
25V входного нестабилизированного -> 12V выходного стабилизированного - это перебор. Героически отводить тепло с девайса с кпд менее 50% - такое себе.
А что, транса со вторичной обмоткой для двухполупериодного выпрямителя не нашлось?
С момента создания питона разработчики языков додумались, удивительное дело, в статически типизированных языках типа Kotlin выводить тип переменной из вида (написания) присваемого значения. Меньше синтаксического мусора, почти как в питоне).
Вольное присваивание аргументам функций в питоне значений произвольного типа - это удобное решение для скриптовых языков. В котлине сходной гибкости и выразительности добиваются созданием нескольких одноименных функций с разной сигнатурой, но писанины больше. Аннотирование функций в питоне подравнивает ситуацию по объёму писанины, но котлином его не делает, в смысле строгости и производительности. Так что присоединяюсь к автору статьи: хочешь типов - присмотрись к другим языкам.
Уж лучше мордокнижник (референс - чернокнижник).
фокусное расстояние - знаю. размерность - длина, метры например.
оптическую силы линзы - знаю. измеряется в диоптриях. диоптрия - это метр^(-1).
выходной диоптрии не бывает. я вам больше скажу - внутренняя диоптрия (она тоже в текст затесалась) - так вот, её тоже не существует. беда.
фокусной силы не бывает. что-то вы зарапортовались.
В тред призывается@AlexeyNadezhin, чел, сделавший из своего любопытства к лампочкам профессию.
Какой лютый глум.
Зачотный бред. А термостатический комп будет?
ps. Не поймите меня неправильно, может парни и придумали что-то дельное, но написанное - бред.
Java - язык с непростой судьбой, начнём с того, что он задумывался как язык "для программирования бытовых электронных устройств" (wiki). Ему было трудно стать естественным, выразительным и красивым языком общего назначения, и он не смог. Многословный и суетливый старикан - так бы я его описал.
Его сильная сторона - то, что производимый им код исполняется на java-машине, а таковая машина портирована на все мыслимые архитектуры. Но за прошедшие годы многие это оценили и создали языки, генерирующие байткод для java-машины, есть даже реализация питона для неё, правда, она заброшена.
Я бы советовал глянуть в сторону Kotlin - современный, динамично развивающийся язык с прекрасной компиляцией в java-код и бесшовно интегрирующийся с java, мультипарадигменный, лаконичный и выразительный. Официальный язык для android-разработки. А зная его, вы автоматом будете знать и java - так уж оно устроено )
ps
В питоне строгая динамическая типизация, а мягкая типизация существует только у вас в статье. Зачем, спрашивается? Недосуг заглянуть в ту же wiki?