ブログ


スパイシー技術メモ


PHPerがCheckIOに挑戦

CATEGORY: プログラム

こん○○は!

ながらくPHPerでして、オシャレなRubyやらPythonは、とんと縁がない生活を送っておりました。最近、コーディングする時間が減ってきたので、プログラムの勉強を始めようと思っていたら、ネットで、http://www.checkio.org/という、プログラムの勉強ゲームサービスを見つけたので、はじめようとしています。ただ、一度も触ったことがない、Pythonという言語でのお勉強らしいので、ドキワクです。会社のブログで勉強の進捗を発表して、さぼらないように、続けていきます。


さて、さっそく入会しようとすると、登録の前にいきなり問題が出されました!Pythonができない奴は入会するなという、男前なサービスのようです。

Image.png

意訳すると、

「仲間になりたければ、この簡単な問題を解いてみろ!」
関数 "checkio" の実装をせよ!
仕様:引数で渡された、list型の変数"els"の最初の3つの要素の合計値を計算して返す。

簡単そうですが、Pythonが知らない言語なので・・・。

まずは、いたずら心で、マジックコード(笑)を試してみました。

def checkio(els):
  return 6

残念なことに「Wrond! Try Again」との結果でダメでした。それでは、気を取り直して、真面目に進めます。

まずは、list型の先頭の要素3つを取り出したい!ということで、「python list take」で検索。さっそく発見したStackOverFlowによると、なんと、elst[:3]という簡単な構文でとれるようです。スゲー!

さすがにアレなんで、一応公式ドキュメントも検索してみました。list型は扱いとしては組み込みライブラリーということなんですね。公式ドキュメント(http://docs.python.jp/3.3/library/stdtypes.html#sequence-types-list-tuple-range)によると上記の構文は、次の演算ということのようです。

演算:s[i:j]
結果:s の i から j までのスライス

さて、次は、その合計値の計算ですが、forループを回したくないので、組み込み関数を探してみると、sumというのがあるようです。
http://docs.python.jp/3.3/library/functions.html#sum

ということで完成~!


def checkio(els):
return sum(els[:3])

無事入会できました~!






プレスリリース

人気ブログ記事

採用情報

最新ブログ記事








ページの先頭へ