Случайные строки в Python 2.6 (это нормально?)

blockproc - новое имя для blkproc (которое устарело). Его можно использовать для применения функции к каждому блоку изображения. Например, если вы хотите разделить матрицу I на блоки 8x8 и вычислить среднее значение для каждого блока, вы сделаете следующее:

B=blockproc(I, [8 8], @(x) mean(x.data(:)));

B - это матрица, содержащая средства блоков.

Здесь есть две вещи:

  • Спецификатор [8 8] указывает размер блоков, а не номер ] блоков.
  • Вы не получаете доступ к самим блокам вне функции, которую вы передаете blockproc. Если вам нужны сами блоки, вы должны сделать то, что предложил Адриен:
    A1=I(1:128, 1:128);
    A2=I(129:256, 1:128);
    A3=I(1:128, 129:256);
    A4=I(129:256, 129:256);
    
    Конечно, в реальной программе вы, вероятно, должны сделать это, используя цикл.

77
задан mikelikespie 24 April 2009 в 09:37
поделиться

4 ответа

import os
random_string = os.urandom(string_length)

и если вам нужна безопасная строка url:

import os
random_string = os.urandom(string_length).hex() 

(обратите внимание, что длина random_string в этом случае больше, чем string_length)

129
ответ дан 24 November 2019 в 10:55
поделиться

Взято из отчета об ошибке 1023290 на Python.org :

junk_len = 1024
junk =  (("%%0%dX" % junk_len) % random.getrandbits(junk_len *
8)).decode("hex")

Также также см. Проблемы 923643 и 1023290

6
ответ дан 24 November 2019 в 10:55
поделиться

Похоже, что метод fromhex () ожидает четное число шестнадцатеричных цифр. Ваша строка длиной 75 символов. Имейте в виду, что что-то [: - 1] исключает последний элемент! Просто используйте что-то [:] .

2
ответ дан 24 November 2019 в 10:55
поделиться

Что касается последнего примера, следующее исправление, обеспечивающее четную длину строки, независимо от значения junk_len:

junk_len = 1024
junk =  (("%%0%dX" % (junk_len * 2)) % random.getrandbits(junk_len * 8)).decode("hex")
2
ответ дан 24 November 2019 в 10:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: