Size: a a a

Сообщество Python Программистов

2020 October 21

V

Valrii in Сообщество Python Программистов
$name$
Он же на серьёзе примет этот совет, дурачок шоле?)
Для гуманитарий самое то
источник

ВП

Винни Пух.d in Сообщество Python Программистов
Бензофуран Гетероцикл
Конкретно. Что и как ты с этой кучкой токенов собираешься делать.
для начала, разделить по строкам, чтобы не мешалось. Потом - спарсить всё так, чтобы, к примеру, Variable(c), Operator(=), Integer(1) свернулось в токен VariableAssign(key, value)
источник

$

$name$ in Сообщество Python Программистов
Valrii
Для гуманитарий самое то
Ну да, и будет он как хауди хо код с интернета качать и с умным видом преподносить, типа сам сделал 🌚
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Винни Пух.d
для начала, разделить по строкам, чтобы не мешалось. Потом - спарсить всё так, чтобы, к примеру, Variable(c), Operator(=), Integer(1) свернулось в токен VariableAssign(key, value)
Вау, дерево получилось!
источник

ВП

Винни Пух.d in Сообщество Python Программистов
Винни Пух.d
для начала, разделить по строкам, чтобы не мешалось. Потом - спарсить всё так, чтобы, к примеру, Variable(c), Operator(=), Integer(1) свернулось в токен VariableAssign(key, value)
хотя, с деревьями действительно лучше. Хотя бы не надо будет искать самые приоритетные действия на ходу
источник

ВП

Винни Пух.d in Сообщество Python Программистов
Бензофуран Гетероцикл
Вау, дерево получилось!
а, хм... И правда...
источник

ВП

Винни Пух.d in Сообщество Python Программистов
ну штош, тогда сделаю полномасштабное дерево
источник

ВП

Винни Пух.d in Сообщество Python Программистов
шоб на этапе выполнения, не волноваться за приоритеты выражений
источник

V

Valrii in Сообщество Python Программистов
$name$
Ну да, и будет он как хауди хо код с интернета качать и с умным видом преподносить, типа сам сделал 🌚
Ну а что ему 2000 тысячи страниц Марка Лутца прочитать?) что бы написать эссэ на 2 листа
источник

$

$name$ in Сообщество Python Программистов
Valrii
Ну а что ему 2000 тысячи страниц Марка Лутца прочитать?) что бы написать эссэ на 2 листа
Ему не эссэ надо, а сменить профессию
источник

А

Айван in Сообщество Python Программистов
Pavel Belyavtsev
Пацаны, помогите, пожалуйста, может знает кто?
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Винни Пух.d
шоб на этапе выполнения, не волноваться за приоритеты выражений
А можно делать и стеком
источник

$

$name$ in Сообщество Python Программистов
$name$
Ему не эссэ надо, а сменить профессию
Да, ему надо прочитать минимум 300 страниц марка Лутца, чтобы быть хотябы не ебланом
источник

ВП

Винни Пух.d in Сообщество Python Программистов
Бензофуран Гетероцикл
А можно делать и стеком
хм. Напишу обе реализации, и сравню по скорости
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Бензофуран Гетероцикл
А можно делать и стеком
Могу на том же примере кода показать
источник

ВП

Винни Пух.d in Сообщество Python Программистов
Винни Пух.d
хм. Напишу обе реализации, и сравню по скорости
в теории, со стеком тоже довольно удобно выполнять, и менее затратно, так как не нужна будет рекурсия
источник

ВП

Винни Пух.d in Сообщество Python Программистов
Бензофуран Гетероцикл
Могу на том же примере кода показать
та я видел, как ты это реализовывал
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Бензофуран Гетероцикл
На входе
""""a = 1
b = 2
c = a+b
print(c)"""


На выходе уже типа
[Variable("a"), Operator("="), Literal("1"), Endline(), Variable("b"), Operator("="), Literal("1"), Variable("c"), Operator("="), Variable("a"), Operator("+") Variable("b"), Endline(), Variable("print"), OpenParenthesis(), Variable("c"), CloseParenthesis()]
Language:
py3


Source:
from dis import dis
c = """a = 1
b = 2
c = a+b
print(c)"""
dis(c)


Result:
  1           0 LOAD_CONST               0 (1)
             2 STORE_NAME               0 (a)

 2           4 LOAD_CONST               1 (2)
             6 STORE_NAME               1 (b)

 3           8 LOAD_NAME                0 (a)
            10 LOAD_NAME                1 (b)
            12 BINARY_ADD
            14 STORE_NAME               2 (c)

 4          16 LOAD_NAME                3 (print)
            18 LOAD_NAME                2 (c)
            20 CALL_FUNCTION            1
            22 POP_TOP
            24 LOAD_CONST               2 (None)
            26 RETURN_VALUE
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Бензофуран Гетероцикл
Language:
py3


Source:
from dis import dis
c = """a = 1
b = 2
c = a+b
print(c)"""
dis(c)


Result:
  1           0 LOAD_CONST               0 (1)
             2 STORE_NAME               0 (a)

 2           4 LOAD_CONST               1 (2)
             6 STORE_NAME               1 (b)

 3           8 LOAD_NAME                0 (a)
            10 LOAD_NAME                1 (b)
            12 BINARY_ADD
            14 STORE_NAME               2 (c)

 4          16 LOAD_NAME                3 (print)
            18 LOAD_NAME                2 (c)
            20 CALL_FUNCTION            1
            22 POP_TOP
            24 LOAD_CONST               2 (None)
            26 RETURN_VALUE
Вот тебе на стеке
источник

Р

РомаК in Сообщество Python Программистов
Бензофуран Гетероцикл
add(5)(4)(3)(2)(1) эквивалентно
_ = add(5)
_ = _(4)
_ = _(3)
_ = _(2)
_ = _(1)
то есть мы в add вызываем add но уже со следующим аргументом. и это не рекурсия
источник