エンジニアの仕事を始めて一年ほどの自分がpythonの勉強を始めて参考書の次に実践したのがcheckioだったが、実践してみると楽しかったのでその内容を記しておこうと思います
#これまでやったこと
この業界に入ったのもまだ1年足らずである。現在はphpを主に仕事では使用し、python自体は一ヶ月前ぐらいから勉強を始めた。主に書籍を利用し、以下の本を一通り読んだ
- 入門 Python3
#始めてよかった点
- 書籍を読んで理解しているつもりの箇所が問題をこなすうちに浮き彫りになった
- 問題を解いてどのように応用するのかという記載があり、ただこなすだけでなく解く意味も理解して勧められ、応用が効くようになる
- 徐々に難しくなるため始めて触れる人にはちょうど良い難しさ
#自分の回答コード
自身の後学のためにも、コードを記述しようと思う。
プログラミングの経験がそんなにない人や、回答に自身がない人が見てこのレベルで大丈夫なんだなと思ってくれればそれでいい
- 1問目
丈夫なパスワード作成らしい。
初めての問題ということもあって何をすれば良いのか、どのように提出すれば良いのか分からずコードを書き始めるまでがまず長かった。
import re
DIGIT_RE = re.compile('[0-9]]')
UPPER_RE = re.compile('[A-Z]')
LOWER_RE = re.compile('[a-z]')
def checkio(number):
if len(number) < 10:
return False
if not DIGIT_RE.search(number):
return False
if not LOWER_RE.search(number):
return False
if not UPPER_RE.search(number):
return False
return print(True)
- 2問目
最も頻出頻度の高い文字を返す処理。
リスト処理が使いなれておらず、色々調べつつ書いた。
本で読むのと、書くのではやっぱり違うなと実感
import string
CHARA_ST = string.ascii_lowercase
list = []
def checkio(sentence):
sentence = sentence.replace(' ','')
sentence = sentence.lower()
numMax = 0
for x in CHARA_ST:
numIn = sentence.count(x)
if numIn > numMax:
numMax = numIn
maxString = x
print(maxString)
- 3問目
今回は出現回数が一度のものを取り除く処理
これはデータ処理のノイズを取り除く処理の基本となるらしい。
この問題がどのように役立つのかを読んで、少しだけ問題を解くテンションが上がった。
def checkio(number):
numList = list(number)
outnum=[]
for x in numList:
count = numList.count(x)
if count>1:
outnum.append(x)
return(outnum)
#あとがき
初めてQiitaに投稿してみた。
内容も支離滅裂で悲しくなる。
アウトプットの場として挑戦してみたが、文章を書き人にみてもらうというのは難しい。
技術も文章もまだまだすぎるので勉強します。
現在の目標はwebアプリを作成し、公開すること。
いつになるやら・・・・