python - 文字列生成 - randint 意味



Pythonのランダムな文字列 (6)

あなたは以下のようなランダムなアスキー文字を作ることができます:

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

そして、次のような長い文字列を作ります:

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

https://code.i-harness.com

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

あなたは本当にあなたが必要とするランダムな文字列の種類についてはあまり言いませんでした。 しかし、いずれの場合でも、 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)

この質問はかなり無秩序なので、これはあなたのために働くかもしれません:

>>> import uuid
>>> print uuid.uuid4()
58fe9784-f60a-42bc-aa94-eb8f1a7e5c17

この関数は、大文字、小文字、数字からなるランダムな文字列を生成し、文字列のフォーマットを指定するために長さseperator、no_of_blocksを渡します

例:len_sep = 4、no_of_blocks = 4は次のパターンを生成し、

F4nQ-Vh5z-JKEC-WhuS

どこで、長さseperatorは4文字の後に " - "を追加します

XXXX-

ブロックがないと、次の文字のパタンが文字列として生成されます

XXXX - XXXX - XXXX - XXXX

単一のランダム文字列が必要な場合は、no_of_blocks変数を1に、len_sepをランダム文字列の長さに指定してください。

例:len_sep = 10、no_of_blocks = 1は、次のパターンを生成します。 長さ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

小文字などから文字列を生成する:

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 random
>>> import string
>>> s=string.lowercase+string.digits
>>> ''.join(random.sample(s,10))
'jw72qidagk




python