乱数の生成の問題は非常に一般的ですが、場合によっては、それを改善し、パスワードなどのアプリケーションに数字とアルファベットのランダムな文字列を生成する機能を提供する必要があるアプリケーションがあります。これを Python で実行できる特定の方法について説明します。ここでは、大文字と数字を使用したランダムな文字列生成を使用します。
方法 1:random.choices() を使用してランダムな文字列を生成する
これ ランダム.チョイス() ランダム モジュールの関数は、このタスクを達成するのに役立ち、この特定のタスクに必要になる可能性のあるループ全体に代わるワンライナーの代替手段を提供します。 Python v3.6 以降で動作します。
- 文字列.ascii_uppercase – 文字列を大文字で返します。
- 文字列.数字 – 数字を含む文字列を返します。
- 文字列.句読点 – 句読点を含む文字列を返します
- 文字列.ascii_letters – さまざまなケースを含む文字列を返します。
- 文字列.ascii_小文字 – 小文字の文字列を返します。
例 1: 大文字を含むランダムな文字列の生成
Python3
import> string> import> random> # initializing size of string> N>=> 7> # using random.choices()> # generating random strings> res>=> ''.join(random.choices(string.ascii_uppercase>+> >string.digits, k>=>N))> # print result> print>(>'The generated random string : '> +> str>(res))> |
>
>
出力:
BFSとDFS
The generated random string : 0D5YE91>
例 2: ランダム 指定された長さの小文字の文字列
Python3
import> string> import> random> # initializing size of string> N>=> 7> # using random.choices()> # generating random strings> res>=> ''.join(random.choices(string.ascii_lowercase>+> >string.digits, k>=>N))> # print result> print>(>'The generated random string : '> +> str>(res))> |
>
>
出力:
The generated random string : ipxktny>
例 3: 大文字と小文字で指定された長さのランダムな文字列を生成する
Python3
import> string> import> random> # initializing size of string> N>=> 7> # using random.choices()> # generating random strings> res>=> ''.join(random.choices(string.ascii_letters, k>=>N))> # print result> print>(>'The generated random string : '> +> str>(res))> |
>
>
出力:
The generated random string : ALpxvmI>
方法 2: Secrets.choice() を使用してランダムな文字列を生成する
我々はできる Python でランダムな文字列とパスワードを生成するには、 Secrets.choice()。 暗号的により安全な乱数の場合、内部アルゴリズムが予測不可能な乱数を生成する方法で構成されているため、シークレット モジュールのこの機能を使用できます。
Python3
import> secrets> import> string> # initializing size of string> N>=> 7> # using secrets.choice()> # generating random strings> res>=> ''.join(secrets.choice(string.ascii_uppercase>+> string.digits)> >for> i>in> range>(N))> # print result> print>(>'The generated random string : '> +> str>(res))> |
>
>出力:
The generated random string : T7HPKVR>
アプローチ :
必要なモジュール (ランダムと文字列) をインポートします。
生成するランダム文字列の長さを決定するパラメーターの長さを受け取る、generate_random_string という名前の関数を定義します。
string.ascii_letters を使用して、小文字と大文字のすべての ASCII 文字を取得します。
指定された長さの文字列の文字からランダムに文字を選択し、.join() を使用してそれらを連結するには、random.choice を使用します。
生成された文字列を返します。
必要な長さを渡して関数を使用し、ランダムな文字列を生成します。
Python3
import> random> import> string> def> generate_random_string(length):> ># Get all the ASCII letters in lowercase and uppercase> >letters>=> string.ascii_letters> ># Randomly choose characters from letters for the given length of the string> >random_string>=> ''.join(random.choice(letters)>for> i>in> range>(length))> >return> random_string> # Example usage: generate a random string of length 10> random_string>=> generate_random_string(>10>)> print>(random_string)> |
>
>出力
mFPltLThhj>
時間計算量: O(n)、n は目的のランダム文字列の長さです。
補助スペース: O(n)、n は目的のランダム文字列の長さです。