Pull to refresh
-28
@longclapsread⁠-⁠only

User

Send message
Вы не можете скорость своего обучения и время на поиск первой работы.
Мы-то можем, а вот вы — слава богу нет. А то было бы совсем стрёмно.
Слово «пёстрый» означает «с хаотичными вкраплениями разных цветов». Рукописи гг не делают так со стенами, присмотритесь к иллюстрациям, это — не конфети.
Вообще такой стиль характерен для желтой прессы. Нормальный ход, нуачо?
Все стены камеры, в которой Кристофер Хейвенс отбывает срок, испещрены бумажными листками с формулами.

испещрять

  • делать очень пёстрым, разноцветным; испестрять
  • размечать, покрывать знаками, пометами (текст книги, записки и т. п.)

В оригинале were covered, с переводом справится и шестиклассник. Переводчика понесло.

Кто-то сделает одну задачку за 5 минут, а кто-то за 35.
Если это, конечно, не учебный процесс — тогда идите до конца )
Не вижу противоречия — учиться можно до полного просветления, а решать рабочие проблемы желательно в срок. В императивном стиле почти всякий джун что-нибудь да изобразит, а в декларативном может и застрять. Я вот об этом.
Парсинг даты регулярками — задача надуманая чуть менее, чем парсинг ими html/xml. Зато знание стандартной библиотеки избавляет от многих страданий. Python:
import re
from datetime import date

def parce_date(s: str) -> date:
    try:
        return date.fromisoformat(
            re.sub(r'^(\d\d)\.(\d\d)\.(\d{4})$', r'\3-\2-\1', s))
    except ValueError as e:
        raise e  # тут пишем обработчик, какой хотим

print(parce_date('05.08.2015')) #  ok
print(parce_date('99.99.2000')) #  error
Я бы дополнил статью пояснением, когда не следует применять регулярки: «Если у вас не получается за 5/10/15 минут решить вашу задачу с помощью регулярки, решайте её иным способом. Если это, конечно, не учебный процесс — тогда идите до конца )»
complexes.sort(lambda candidate_complex: score_complex(candidate_complex))
Хорошая, жирная лямбда. Неужто в ИТМО такому учат?
… непрерывные функции – такие, у которых нет резких разрывов, или точек перегиба. Среди таких функций – знакомые операции вроде синуса

image

Речь шла о разрывах и изломах (cusp, острый выступ).
Всё верно, вот только в статье возвращается функция, а вы написали генератор.
Чтобы получить схожий результат, нужно вызывать композицию его с next(), как-то так:
def fibonacci():
    fib1, fib2 = 0, 1
    while True:
        fib1, fib2 = fib2, fib1 + fib2
        yield fib1

f = fibonacci()
for _ in range(10):
    print(next(f))
Oberon2 и Component Pascal куда-то потерялись.
Картинка Для Пущей Важности
Посмотрим, что под капотом:
from dis import dis

def foo():
    import math
    return math.pi

def bar():
    from math import pi
    return pi

dis(foo)
dis(bar)
Выхлоп будет примерно таким:
          foo()                |             bar()
                               |
#     import math              |  #     from math import pi
 0 LOAD_CONST       1 (0)      |   0 LOAD_CONST        1 (0)      
 2 LOAD_CONST       0 (None)   |   2 LOAD_CONST        2 (('pi',))
 4 IMPORT_NAME      0 (math)   |   4 IMPORT_NAME       0 (math)
 6 STORE_FAST       0 (math)   |   6 IMPORT_FROM       1 (pi)
                               |   8 STORE_FAST        0 (pi)
                               |  10 POP_TOP
#     return math.pi           |     
 8 LOAD_FAST        0 (math)   |  
10 LOAD_ATTR        1 (pi)     |  # return pi  
12 RETURN_VALUE                |  12 LOAD_FAST         0 (pi)
                               |  14 RETURN_VALUE  
Действительно, в обоих вариантах модуль импортируется целиком, что неудивительно — в модуле может быть код инициализации (а может и не быть).

Видна также выгода от импорта аттрибута модуля — при обращении к нему экономится аж целый LOAD_ATTR. Это очень быстрый опкод, но иногда хочется еще быстрее.
from timeit import timeit

setup = """
import math
from math import pi
def foo(): return math.pi
def bar(): return pi
def baz(): return __import__('math').pi"""

print(timeit('foo()', setup=setup))
print(timeit('bar()', setup=setup))
print(timeit('baz()', setup=setup))
Выхлоп:
0.09096475400019699
0.06547341800069262
0.221324110999376
Первая половина статьи почти дословно упёрта отсюда, график — отсюда. Достойная публикация.
Обратная сторона оффлайн популярности: Марк Чепмен убил Джона Леннона.
Заголовок огонь, Life News аплодирует.
Исходный однострочник прекрасен, нет слов. И всё же заметьте, что в авторской постановке задачи, как и в авторском тестовом наборе, о сложносочинённых инициалах речи нет. Иногда это важно.
Мне показалось, вы интересовались скоростью решения. Надо полагать, более не интересуетесь. Ну и ладно.
А всё же согласитесь, моё решение еще и читабельно.
Так побыстрее будет:
def f0():
    return [f'{name[0]}.{surname[0]}.' for name, surname
            in map(str.split, celebrities)]
Светыч — это типа Татьяныч?
Ох уж эта молодость! Дискету как, часто в дисковод вставляешь? По-прежнему читается? Ну орёл!

Знакомые удивляются, как это — заголовок «Проблема логических языков программирования», и не строки кода? Не считывают они, что весь текст статьи — код на эзотерическом языке 'Эпилог', языке кинетическом, кларнетическом, протяжном.

И память для этого нужна на самом памятном уровне, иные уровни здесь не вытянут.

p.s. для дочитавших досюда — закрывающий тэг \сарказм.
Счет появился не просто чтобы считать, а чтобы посчитать какие-то объекты.

Воистину ерунду. Объекты для счёта построены, товарищ прапорщик.

Information

Rating
Does not participate
Registered
Activity