Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 29, 2012 18:02:43

inquiring
Зарегистрирован: 2012-04-29
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Генератор случайных символов по шаблону

Задача такая:
Необходимо сделать генератор случайных символов на 2 значения. Могут использоваться символы (a-z) и (0-9), с указанием количества неповторяющихся комбинаций

Офлайн

#2 Апрель 29, 2012 18:06:10

inquiring
Зарегистрирован: 2012-04-29
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Генератор случайных символов по шаблону

хотелось бы на python 3.2

Офлайн

#3 Апрель 29, 2012 22:15:57

vkopey
От:
Зарегистрирован: 2010-09-26
Сообщения: 116
Репутация: +  3  -
Профиль   Отправить e-mail  

Генератор случайных символов по шаблону

import random
ls=[chr(x) for x in range(ord('a'),ord('z')+1)]+list('0123456789')
print random.sample(ls,  2)
Такой подходит?
А что значит “…с указанием количества неповторяющихся комбинаций” ?



Отредактировано vkopey (Апрель 29, 2012 22:20:05)

Офлайн

#4 Апрель 29, 2012 22:36:28

inquiring
Зарегистрирован: 2012-04-29
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Генератор случайных символов по шаблону

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

Офлайн

#5 Апрель 29, 2012 22:50:52

inquiring
Зарегистрирован: 2012-04-29
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Генератор случайных символов по шаблону

чтоб в exel выгружались готовые значения в столбик

Офлайн

#6 Апрель 29, 2012 22:51:59

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Генератор случайных символов по шаблону

Ничего не понял, если честно. Случайные символы из набора можно получить с помощью random.sample (как показали выше). Для уникальных комбинаций можно использовать так же itertools.permutations|combinations или множества.

Учитесь формулировать мысли. Фразы “генератор случайных символов на 2 значения”, “мне необходимо “n” количество таких уникальных комбинаций, т.е. строка в которой можно указывать это количество” да и все остальные сразу наводят на мысль, что перед изучением языка для общения с компьютером нужно изучить язык для общения с людьми :)



Офлайн

#7 Апрель 29, 2012 22:57:08

inquiring
Зарегистрирован: 2012-04-29
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Генератор случайных символов по шаблону

ладно ладно… давайте ещё камнями закидайте …. сами то когда только начинали учиться python небось то же не сразу могли сформулировать свои желания

Офлайн

#8 Апрель 29, 2012 23:03:55

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Генератор случайных символов по шаблону

>>> from random import sample
>>> def gen_rands(symbols, rand_len):
...     while True:
...         yield ''.join(sample(symbols, rand_len))

Генератор случайных символов на два значения.

>>> def make_combinations(symbols, rand_len, comb_count):
...     combinations = set()
...     for combination in gen_rands(symbols, rand_len):
...         if len(combinations) == comb_count:
...             break
...         combinations.add(combination)
...         
...     return combinations

Не знаю, правильно ли я понял запрос.

>>> symbols = [chr(sym) for sym in xrange(ord('a'), ord('z')+1)] + map(str, range(10))



Отредактировано fata1ex (Апрель 29, 2012 23:53:00)

Офлайн

#9 Апрель 29, 2012 23:06:43

vkopey
От:
Зарегистрирован: 2010-09-26
Сообщения: 116
Репутация: +  3  -
Профиль   Отправить e-mail  

Генератор случайных символов по шаблону

import random
ls=[chr(x) for x in range(ord('a'),ord('z')+1)]+list('0123456789')
data=[]
while len(data)<10:
    #x=random.sample(ls,  2) # если первый и второй не должны быть одинаковыми 
    # или
    x=[random.choice(ls),random.choice(ls)] # если первый и второй могут быть одинаковыми
    if x not in data:
        data.append(x)
print data



Отредактировано vkopey (Апрель 29, 2012 23:07:03)

Офлайн

#10 Апрель 29, 2012 23:16:08

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Генератор случайных символов по шаблону

vkopey, плохой пример. Для поддержания уникальности элементов в коллекции существуют множества.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version