Случайные строки в Python



Как создать случайную строку в Python?



Мне нужно было, чтобы это было число, а затем повторение символов, пока вы не сделаете это то, что я создал



def random_id(length):
number = '0123456789'
alpha = 'abcdefghijklmnopqrstuvwxyz'
id = ''
for i in range(0,length,2):
id += random.choice(number)
id += random.choice(alpha)
return id
570   9  

9 ответов:

генерация строк из (например) строчных символов:

import random, string

def randomword(length):
   letters = string.ascii_lowercase
   return ''.join(random.choice(letters) for i in range(length))

результаты:

>>> randomword(10)
'vxnxikmhdc'
>>> randomword(10)
'ytqhdohksy'

Так как этот вопрос довольно, ЭМ, случайный, это может работать для вас:

>>> import uuid
>>> print uuid.uuid4()
58fe9784-f60a-42bc-aa94-eb8f1a7e5c17
>>> import random
>>> import string
>>> s=string.lowercase+string.digits
>>> ''.join(random.sample(s,10))
'jw72qidagk

ответ на исходный вопрос:

os.urandom(n)

цитата из: http://docs.python.org/2/library/os.html

возвращает строку из n случайных байтов, пригодных для криптографического использования.

эта функция возвращает случайные байты из случайности, специфичной для ОС источник. Возвращаемые данные должны быть достаточно непредсказуемыми для криптографические приложения, хотя его точное качество зависит от ОС реализация. На UNIX-подобной системе это будет запрос /dev / urandom, и на Windows, он будет использовать CryptGenRandom. Если источник случайности не найдено, NotImplementedError будет поднят.

для простого в использовании интерфейса к генератору случайных чисел при условии по вашей платформы, см. случайный.SystemRandom.

вы можете создавать случайные символы ascii, такие как:

import random
print chr(random.randint(0,255))

а затем построить более длинную строку, как:

len = 50
print ''.join( [chr(random.randint(0,255)) for i in xrange(0,len)] )

вы не очень много говорили о том, какая случайная строка вам нужна. Но в любом случае, вы должны заглянуть в random модуль.

очень простое решение вставлено ниже.

import random

def randstring(length=10):
    valid_letters='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    return ''.join((random.choice(valid_letters) for i in xrange(length)))

print randstring()
print randstring(20)
random_name = lambda length: ''.join(random.sample(string.letters, length))

длина должна быть

   >>> [random_name(x) for x in range(1,20)]
['V', 'Rq', 'YtL', 'AmUF', 'loFdS', 'eNpRFy', 'iWFGtDz', 'ZTNgCvLA', 'fjUDXJvMP', 'EBrPcYKUvZ', 'GmxPKCnbfih', 'nSiNmCRktdWZ', 'VWKSsGwlBeXUr', 'i
stIFGTUlZqnav', 'bqfwgBhyTJMUEzF', 'VLXlPiQnhptZyoHq', 'BXWATvwLCUcVesFfk', 'jLngHmTBtoOSsQlezV', 'JOUhklIwDBMFzrTCPub']
>>> 

наслаждайтесь. ;)

установить этот пакет:

pip3 install py_essentials

и используйте этот код:

from py_essentials import simpleRandom as sr
print(sr.randomString(4))

дополнительная информация о методе другие параметры доступны здесь.

эта функция генерирует случайную строку, состоящую из верхних, нижних букв, цифр, передает разделитель длины, no_of_blocks, чтобы указать формат строки

например: len_sep = 4, no_of_blocks = 4 будет генерировать следующий шаблон,

F4nQ-Vh5z-JKEC-WhuS

где, разделитель длины добавит " - " после 4 символов

XXXX -

ни один из блоков не будет генерировать следующий Паттен символов в виде строки

XXXX-XXXX-XXXX-XXXX

если требуется одна случайная строка, просто сохраните переменную no_of_blocks равной 1 и len_sep, чтобы указать длину случайной строки.

например: len_sep = 10, no_of_blocks = 1, будет генерировать следующий шаблон ie. случайная строка длина 10,

F01xgCdoDU

import random as r

def generate_random_string(len_sep, no_of_blocks):
    random_string = ''
    random_str_seq = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    for i in range(0,len_sep*no_of_blocks):
        if i % len_sep == 0 and i != 0:
            random_string += '-'
        random_string += str(random_str_seq[r.randint(0, len(random_str_seq) - 1)])
    return random_string

Comments

    Ничего не найдено.