この記事では、Pythonで制約を追加してユーザ名を提案する方法を学びます。
ユーザ名を生成する前に、以下の制約を設定しました。
- 少なくとも2つの大文字
-
- 特殊文字は
.,-と_のみ使用可能。
- 特殊文字は
- 少なくとも3桁の数字があること
Python でユーザ名を自動提案する
ユーザーにとってより意味のあるものにするために、まずユーザーから入力データを受け取り、その入力データに基づいてユーザー名を提案することにします。
それでは、コードを順を追って見ていきましょう。
この記事もチェック:Pythonでinput関数を使ってユーザーからの標準入力を変数に格納する方法
ステップ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 username = input("Enter your full name: ")
# Initializing the usernameusername = "#"
# 1. First two uppercase letterl = name.split()
# Name must have both first and last namewhile(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 digitsusername = 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 BansalThe Final Username Generated is: #IB-sha914 |
また、ユーザーがフルネームを入力しなかった場合、プログラムは再入力を要求します。
Enter your full name: KartikEnter full name please: Kartik GuptaThe Final Username Generated is: #KG_iat397 |
この問題の論理と実装は理解できたでしょうか?自分の好みに合わせて制約を設定したり変更したりすることができます。
お読みいただきありがとうございました。
この記事もチェック:Pythonでラダープログラム(椅子問題)を実装する方法