Da man ja manchmal bestimme Strings haben möchte, dachte ich mir dass es ganz nett wäre, zu bestimmen, dass man bestimmte Positionen im String bestimmen kann. (Zum Beispiel, dass Namen mit einem Buchstaben beginngen müssen).
Ich hab mal was zusammen gehackt, in welche Richtung das gehen könnte:
Code: Alles auswählen
import random
from string import (ascii_lowercase as LOWERCASE, ascii_uppercase as UPPERCASE,
ascii_letters as LETTERS, digits as DIGITS)
ALNUM = LETTERS+DIGITS
class RandomString(object):
def __init__(self, length=10, chars=ALNUM):
self.length = length
self.chars = chars
self.rules = {}
def __setslice__(self, start,stop,value):
for i in xrange(start,stop):
self.rules[i] = value
def __setitem__(self, key, value):
self.rules[key] = value
def __call__(self):
if type(self.length) == int:
length = self.length
else:
length = random.randint(*self.length)
chars = []
for i in xrange(length):
rev = -length+i
if rev in self.rules:
s = self.rules[rev]
elif i in self.rules:
s = self.rules[i]
else:
s = self.chars
chars.append(random.choice(s))
return ''.join(chars)
def get_random_name():
r = RandomString( (6,10), ALNUM)
r[0] = LETTERS
return r()
get_random_digits = RandomString(8, DIGITS)
if __name__ == '__main__':
print get_random_name()
print get_random_digits()
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]