Pythonでキーワードからユーザ名を自動推定する方法

スポンサーリンク

この記事では、Pythonで制約を追加してユーザ名を提案する方法を学びます。

ユーザ名を生成する前に、以下の制約を設定しました。

  1. 少なくとも2つの大文字
    1. 特殊文字は ., -_ のみ使用可能。
  2. 少なくとも3桁の数字があること
スポンサーリンク

Python でユーザ名を自動提案する

ユーザーにとってより意味のあるものにするために、まずユーザーから入力データを受け取り、その入力データに基づいてユーザー名を提案することにします。

それでは、コードを順を追って見ていきましょう。

ステップ1:ユーザー名の開始

ユーザーネームは、「#」または「@」から始まるのが一般的です。

ここでは、ユーザー名の先頭をハッシュタグ( # )にしておきます。

記号はお好みでどうぞ。

ステップ2: ユーザー情報の取得

明らかに、我々はユーザーネームがユーザーにとって何らかの意味を持つことを望みますし、ユーザーがそれを覚えやすくするために何らかの形で関連付ける必要があります。

人についての最も簡単な情報は名前であり、ここではユーザーのフルネームを考慮します。

ステップ3:制約を追加する

次のステップでは、ユーザー名生成コードに以下の制約を追加していきます。

1. 少なくとも2つの大文字/小文字

この制約を満たすために、姓と名のイニシャルを使用することにします。

2. 2.特殊文字の追加

特殊文字は「.」、「-」、「」の3つしか使用できません。

そこで、大文字の後に、特殊文字を挿入します。

文字の配置は、文の順番を変えるだけなので、好きな位置に置くことができます。

3. 少なくとも3桁の数字といくつかのランダムな小文字

最後の制約は、小文字と少なくとも3桁の数字の組み合わせにすることです。

小文字の数はユーザー名の長さに依存しますが、ここではユーザー名の長さを10文字とします。

この10文字のうち、すでに4文字が「#」で埋まっており、2文字が大文字、1文字が特殊文字です。

小文字については、よりシンプルにするために、ユーザー名の残りの文字からランダムに文字を選択することにします。

そして、0から9までの3桁の数字をランダムに選ぶことにします。

最終的なユーザー名の並びは、以下のようにします。

# + 2 Uppercase characters + . or - or _ + 3 Lowercase characters + 3 Digits

Pythonを使ったユーザ名の自動提案 [実装]について

実装は以下の通りです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Taking input of name of the user
name  = input("Enter your full name: ")
 
# Initializing the username
username = "#"
 
# 1. First two uppercase letter
l = name.split()
# Name must have both first and last name
while(len(l)!=2):
    name = input("Enter full name please: ")
    l = name.split()
username += l[0][0].upper()
username+=l[1][0].upper()
 
# 2. Adding special character ( . , _ or -)
import random
choice = random.choices(".-_", k=1)
username += choice[0]
 
# 3. Atleast three digits : The 3 digits chosen ( will be added after lowecase letters)
digits_chosen = random.choices("0123456789",k=3)
 
# 4. Lowercase letters ( 3 )
remaining = l[0][1:] + l[1][1:]
letters_chosen = random.choices(remaining,k=3)
 
# 5. Include the three lower and then three digits
username = username+  letters_chosen[0] + letters_chosen[1] + letters_chosen[2]
username = username + digits_chosen[0] + digits_chosen[1] + digits_chosen[2]
 
print("The Final Username Generated is: ", username)

出力

このコードはいくつかのランダムな入力に対してテストされました。

自分で見てみてください。

Enter your full name: Isha Bansal
The Final Username Generated is:  #IB-sha914

また、ユーザーがフルネームを入力しなかった場合、プログラムは再入力を要求します。

Enter your full name: Kartik
Enter full name please: Kartik Gupta
The Final Username Generated is:  #KG_iat397

この問題の論理と実装は理解できたでしょうか?自分の好みに合わせて制約を設定したり変更したりすることができます

お読みいただきありがとうございました。

タイトルとURLをコピーしました