Pull to refresh
3
0
ничего не произойдет @Yahweh

Пользователь

Send message

Используйте скрипт из поста, sys.getsizeof для сложных типов не все

Я думаю YaakovTooth, и не только, хочет сказать что slots может только отсрочить проблему на какое-то время, а потом добавится ктоме timestamp еще несколько полей и проблему все равно прийдется решать более основательно.

Конечно никто тут кроме вас не знает вашу задачу и ее ограничения.


Но так на вскидку: неужели все эти кадры надо в памяти хранить, а не прочитал > обработал > при необходимости записал куда-то > выкинул из памяти > побежал дальше.

Да ладно у автора еще нормально, бывает и хуже


import sys
v = sys.version.replace("\n", "| ")
print(f'version: {v}')
print(f'string: {sys.getsizeof("")}')
print(f'number: {sys.getsizeof(11)}')
print(f'dict:   {sys.getsizeof({})}')

Out


version: 3.6.5 (default, Apr  1 2018, 05:46:30) | [GCC 7.3.0]
string: 49
number: 28
dict:   240

Я думаю в коде того кто не знает про slots и dict бутылочным горлышком будет далеко не slots, а более банальные вещи.
Хотя как на потребление памяти влияет slots в реальном коде, решаящем реальную задачу было бы интересно почитать. Только если этот реальный код не подогнан специально под slots, типа огромного количества объектов одного класа.

Можно немного сократить код, даже без разделения кода и его вывода как замечели выше


Заголовок спойлера
import operator
from math import sqrt

INPUT_TEXT = 'Enter the first and the last x-coordinates and a pace dividing them by a space:'
LENGTH = 10
COL_LENGTH = LENGTH + 2
DIAL_PRECISION = "{v:{d}>{l}.3g}"  # точность числа
DELIMITER = ' '
BAD_ROW = '{v:{d}^{l}}'.format(v='не сущ', l=LENGTH, d=DELIMITER)
HEADER_FORMAT = "|{d}{x:{d}^{l}}{d}|{d}{y1:{d}^{l}}{d}|{d}{y2:{d}^{l}}{d}|{d}{y3:{d}^{l}}{d}|"
ROW_FORMAT = HEADER_FORMAT.replace('^', '>')

def y1(x):
    return x ** 3 - 2 * x ** 2 + 4 * x - 8

def y2(x):
    return 1 - 1 / x ** 2

def y3(x):
    return sqrt(abs(y1(x) * y2(x)))

def myrange(from_, to, step=1):
    if step == 0:
        raise ValueError('Step must be != 0')
    op = operator.le if step > 0 else operator.ge
    while op(from_, to):
        yield from_
        from_ += step

def get_out(value):
    aux_value = DIAL_PRECISION.format(v=value, d=DELIMITER, l=LENGTH)
    return aux_value

def go():
    # from_x, to_x, pace_x = map(float, input(INPUT_TEXT).split())
    from_x, to_x, pace_x = -2, 2, 2

    if pace_x == 0 or (to_x - from_x) * pace_x < 0 or not abs(to_x - from_x):
        print("Incorrect input")
        exit(1)

    length_of_table_lower_bound = COL_LENGTH * 4 + 5
    min_y1_value, max_y1_value, x_copy = y1(from_x), y1(from_x), from_x
    negative_value_exists = False

    print('-' * length_of_table_lower_bound)
    print(HEADER_FORMAT.format(
        x='x', y1='y1', y2='y2', y3='y3', l=LENGTH, d=DELIMITER)
    )
    print('-' * length_of_table_lower_bound)

    for x_copy in myrange(from_x, to_x, pace_x):
        y1_cur_value = y1(x_copy)
        min_y1_value = ((min_y1_value > y1_cur_value) * y1_cur_value +
                       (min_y1_value <= y1_cur_value) * min_y1_value)
        max_y1_value = ((max_y1_value < y1_cur_value) * y1_cur_value +
                       (max_y1_value >= y1_cur_value) * max_y1_value)
        negative_value_exists += y1_cur_value < 0

        out_x = get_out(x_copy)
        out_y1 = get_out(y1_cur_value)
        out_y2 = get_out(y2(x_copy)) if x_copy else BAD_ROW
        out_y3 = get_out(y3(x_copy)) if x_copy else BAD_ROW
        print(ROW_FORMAT.format(x=out_x, y1=out_y1, y2=out_y2, y3=out_y3, d=DELIMITER, l=LENGTH))
        print('-' * length_of_table_lower_bound)

if __name__ == '__main__':
    go()
dial_precision = "{:10.6f}"  # точность числа
...
aux_x = dials_precision % x_copy
aux = len(aux_x) != int(dials_precision[1:3]) + 2
aux_2 = len(aux_x) == int(dials_precision[1:3]) + 1

vs


LENGTH = 10
DIAL_PRECISION = "{:{}.6f}"  # точность числа
...
aux_x = DIAL_PRECISION.format(x_copy, LENGTH)
aux = len(aux_x) != LENGTH + 2
aux_2 = len(aux_x) == LENGTH + 1

Лучше так


if pace_x == 0 or (to_x - from_x) * pace_x < 0 or to_x == from_x:
    print("Incorrect input")
    exit(1)
// какой-то код
Теперь нам нужно печатать сами значения. Для этого понадобиться цикл. Так как введенные данные могут быть дробными, использовать range не получится, поэтому я буду использовать обычный цикл.

import operator
...
def myrange(from_, to, step):
    op = operator.le if step > 0 else operator.ge
    while op(from_, to):
        yield from_
        from_ += step

Дарю

Я думаю проблема не в том что он не правильно считает когда ты идешь, а в том что он засчитывает шаги когда ты едешь на машине/в метро, а то и вовсе сидишь дома в кресле. А именно так я иногда "выполняю" дневную норму с этим браслетом.

SELECT FROM history WHERE user = 123 AND read_at NOT NULL ORDER BY id ASC limit 5

У вас orber by сломался((


[ { id: 3232 }, { id: 5343 }, { id: 34343 }, { id: 982 }, { id: 7346 } ]

offtop


А почему вы не пересчитываете фильтры при применении фильтров? Т.е. при заходе в раздел получаем по апи фильтры, но при фильтрации товар пересчитывается, а набор фильтров остается как был, в результате применив два фильтра можно получить пустой список товаров.

Что то я сомневаюсь что это задача уровня бд


PS 3+8+9 = 145 :)

Пользователи России, Китая, Арабских стран, Индии предпочитают использовать 3ds Max, но при смещении к Европейской части Blender опять начинает восстанавливать свои позиции

Что-то мне подсказывает, что это как-то связано с уровнем пиратства))

Судя по последним двум картинкам слот один (а может два, под первым, вроде, еще один можно вставить), память нераспаяна.

Так ведь cardsCreation генерирует 7 карт, а не 52. Так что не так уж и много раз последнюю карту подбирать))
хотя вместо


if (1 == $multiplier) { //если множитель равен 1, добавляю к числу 100
    $card = $card + 100;
} else if (2 == $multiplier) { //если множитель равен 2, добавляю к числу 200
    $card = $card + 200;
} else if (3 == $multiplier) { //если множитель равен 3, добавляю к числу 300
    $card = $card + 300;
}

можно было написать


$card = $card + 100*$multiplier
1
23 ...

Information

Rating
Does not participate
Location
Рождественские о-ва
Registered
Activity