Python(django)で名前の管理サイトを作成していて、アルファベットで受け取った名前をイニシャルに変換して表示できないかを考えてみました。
・OS : Mac
・python 3.8
コンテンツ
イニシャルで表示するコード1
1 2 3 4 5 6 7 8 |
name = "takeo kikuchi" splited_name = name.split(" ") # ['takeo', 'kikuchi'] name_list = [] for i in splited_name: cap_name = i.capitalize() name_list.append(cap_name[0]) print('.'.join(name_list)) # T.K |
与えられる名前がスペースありの文字列のname = “takeo kikuchi”なのですが解説していきます。
- 2行目でname.split(” “)とすることで、” ” が存在する場所で区切った文字列をリストに格納するコードになります。
- 3行目でname_listの空のリストを用意します。
- 2行目で作ったリストをfor文で回します。
- 5行目のcapitalize()は先頭文字を大文字にして返すメソッドです。
- 6行目のcap_name[0]で先頭文字を取得し、appendでnameリストに格納をしています。
- 最後のprintで、’.’イニシャルのドットを入れて連結すれば完成します。
イニシャルで表示するコード2
1 2 3 4 5 6 7 8 9 |
name = "Takeo Kikuchi" rename = name.split(" ") flag = True for i in rename: if flag == True: print(i[0]+".", end="") flag = False else: print(i[0]) |
こちらはやや非正規的なやり方です。
for文で回して、end=””のところで、printで表示後の続きも連結させるという表示の方法です。
イニシャルで表示するコード3
最後になりますが、mapとラムダ式を理解していることが前提になるコードです。
1 2 3 4 5 |
name = "Takeo Kikuchi" rename = name.split(" ") result = map(lambda item:item[0],rename) re_name_1 = ".".join(list(result)) print(re_name_1) # T.K |
最後に
いかがでしたでしょうか。
入力文字列は事前に文字制限をかけておくことが前提なのですが、そんなのを無視してイニシャルで表示するという目標のみを達成したコートになります。
どこかでお役だてください。
スクールを利用して本格的に学ぶ
いかがでしたでしょうか?
10人中9人が挫折すると言われるプログラミングを、ヒロヤンも実はプログラミングスクールで学習をしてきたからで、結果、今はPythonエンジニアとして働いています。
挫折率が高いプログラミングこそお金を払ってメンターを付けて、道を見失わないように環境を構築する必要があるのではないでしょうか。
これはダイエットで自分一人では痩せられないけど、トレーナーを付けて否が応でもせざるを得ない環境を作ると一緒ですね。
ヒロヤンもプログラミング勉強開始直後はあれこれ悩みましたが、悩むよりも手っ取り早くスクールに登録した方が最短ルートで勉強できるのではないかと考え、結果挫折せずに今に至っています。
今なら無料でキャリアカウンセリングを行っているTechAcademyのようなプログラミングスクールもありますのでこれを機会に是非カウンセリングだけでも受けてみてはいかがでしょうか?
上記リンク先から無料相談ができます。
またこちら(↓)ではPython専用のプログラミングスクールをまとめ紹介しています。
コメントを残す