ランダムとは、任意の順序で利用できるデータまたは情報の集合を指します。の ランダム Pythonのモジュール ランダムな文字列を生成するために使用されます。ランダムな文字列は、任意のパターンを含めることができる数字、文字、句読点シリーズで構成されます。ランダム モジュールには 2 つのメソッドが含まれています ランダム.チョイス() そして Secrets.choice() 、安全な文字列を生成します。のrandom.choice()メソッドとsecrets.choice()メソッドを使用してランダムな文字列を生成する方法を理解しましょう。 パイソン 。
random.choice() の使用
の ランダム.チョイス() 関数は Python 文字列で使用され、文字列を任意の順序で繰り返すことができる文字と数字のシーケンスを生成します。
random.choices() 関数を使用してランダムな文字列を生成するプログラムを作成します。
ランダム_str.py
import string import random # define the random module S = 10 # number of characters in the string. # call random.choices() string module to find the string in Uppercase + numeric data. ran = ''.join(random.choices(string.ascii_uppercase + string.digits, k = S)) print('The randomly generated string is : ' + str(ran)) # print the random data
出力:
以下は、random モジュールでランダム文字列を生成するために使用されるメソッドです。
メソッド | 説明 |
---|---|
文字列.ascii_letters | 大文字と小文字の両方を含むランダムな文字列を返します。 |
文字列_ascii_大文字 | これは、大文字の文字列のみを返すランダムな文字列メソッドです。 |
文字列.ascii_小文字 | これは、小文字のみの文字列を返すランダムな文字列メソッドです。 |
文字列.数字 | これは、数字を含む文字列を返すランダムな文字列メソッドです。 |
文字列.句読点 | これは、句読点文字を含む文字列を返すランダムな文字列メソッドです。 |
大文字と小文字のランダムな文字列を生成します
数多の合計
UprLwr.py
# write a program to generate the random string in upper and lower case letters. import random import string def Upper_Lower_string(length): # define the function and pass the length as argument # Print the string in Lowercase result = ''.join((random.choice(string.ascii_lowercase) for x in range(length))) # run loop until the define length print(' Random string generated in Lowercase: ', result) # Print the string in Uppercase result1 = ''.join((random.choice(string.ascii_uppercase) for x in range(length))) # run the loop until the define length print(' Random string generated in Uppercase: ', result1) Upper_Lower_string(10) # define the length
出力:
Javaでメソッドを呼び出す方法
指定された文字のランダムな文字列
特定の.py
# create a program to generate the random string of given letters. import random import string def specific_string(length): sample_string = 'pqrstuvwxy' # define the specific string # define the condition for random string result = ''.join((random.choice(sample_string)) for x in range(length)) print(' Randomly generated string is: ', result) specific_string(8) # define the length specific_string(10)
出力:
注:random.choice() メソッドは、Python プログラムで同じ文字列を繰り返すために使用されます。繰り返しの文字を表示したくない場合は、random.sample() 関数を使用する必要があります。
同じ文字を繰り返さずにランダムな文字列を生成します
なしRepeat.py
# create a program to generate a string with or without repeating the characters. import random import string print('Use of random.choice() method') def specific_string(length): letters = string.ascii_lowercase # define the lower case string # define the condition for random.choice() method result = ''.join((random.choice(letters)) for x in range(length)) print(' Random generated string with repetition: ', result) specific_string(8) # define the length specific_string(10) print('') # print the space print('Use of random.sample() method') def WithoutRepeat(length): letters = string.ascii_lowercase # define the specific string # define the condition for random.sample() method result1 = ''.join((random.sample(letters, length))) print(' Random generated string without repetition: ', result1) WithoutRepeat(8) # define the length WithoutRepeat(10)
出力:
上記の出力でわかるように、random.sample() メソッドは、すべての文字が一意で反復しない文字列を返します。一方、random.choice() メソッドは、繰り返しの文字を含む可能性のある文字列を返します。したがって、一意のランダム文字列を生成したい場合は、次のように言えます。 ランダムサンプル () 方法。
固定の文字と数字で構成されるランダムな英数字文字列を生成します
たとえば、5 つの文字と 4 つの数字を含むランダムに生成された英数字文字列が必要だとします。これらのパラメータを関数に定義する必要があります。
固定数の文字と数字を含む英数字文字列を生成するプログラムを作成してみましょう。
固定文字列.py
Javaの文字列形式
import random import string def random_string(letter_count, digit_count): str1 = ''.join((random.choice(string.ascii_letters) for x in range(letter_count))) str1 += ''.join((random.choice(string.digits) for x in range(digit_count))) sam_list = list(str1) # it converts the string to list. random.shuffle(sam_list) # It uses a random.shuffle() function to shuffle the string. final_string = ''.join(sam_list) return final_string # define the length of the letter is eight and digits is four print('Generated random string of first string is:', random_string(8, 4)) # define the length of the letter is seven and digits is five print('Generated random string of second string is:', random_string(7, 5))
出力:
Secrets.choice() の使用
Secrets.choice() メソッドは、random.choice() よりも安全なランダム文字列を生成するために使用されます。これは、secrets.choice() メソッドを使用して 2 つのプロセスが同時に同じ結果を取得できないようにする、暗号化されたランダム文字列ジェネレーターです。
Secrets.choice メソッドを使用して安全なランダム文字列を出力するプログラムを作成してみましょう。
Secret_str.py
import random import string import secrets # import package num = 10 # define the length of the string # define the secrets.choice() method and pass the string.ascii_letters + string.digits as an parameters. res = ''.join(secrets.choice(string.ascii_letters + string.digits) for x in range(num)) # print the Secure string print('Secure random string is :'+ str(res))
出力:
安全なランダム文字列を生成するには、random モジュールの別のメソッドを使用します。
Secrets.choice() のさまざまなメソッドを使用して、安全なランダム文字列を出力するプログラムを作成してみましょう。
Secret.py
# write a program to display the different random string method using the secrets.choice(). # imports necessary packages import random import string import secrets num = 10 # define the length of the string # define the secrets.choice() method and pass the string.ascii_letters + string.digits as an parameters. res = ''.join(secrets.choice(string.ascii_letters + string.digits) for x in range(num)) # Print the Secure string with the combination of ascii letters and digits print('Secure random string is :'+ str(res)) res = ''.join(secrets.choice(string.ascii_letters) for x in range(num)) # Print the Secure string with the combination of ascii letters print('Secure random string is :'+ str(res)) res = ''.join(secrets.choice(string.ascii_uppercase) for x in range(num)) # Print the Secure string in Uppercase print('Secure random string is :'+ str(res)) res = ''.join(secrets.choice(string.ascii_lowercase) for x in range(num)) # Print the Secure string in Lowercase print('Secure random string is :'+ str(res)) res = ''.join(secrets.choice(string.ascii_letters + string.punctuation) for x in range(num)) # Print the Secure string with the combination of letters and punctuation print('Secure random string is :'+ str(res)) res = ''.join(secrets.choice(string.digits) for x in range(num)) # Print the Secure string using string.digits print('Secure random string is :'+ str(res)) res = ''.join(secrets.choice(string.ascii_letters + string.digits + string.punctuation) for x in range(num)) # Print the Secure string with the combonation of letters, digits and punctuation print('Secure random string is :'+ str(res))
出力: