ゼロから始めるPython日記【#2】Pythonの書き方を覚えよう

Python日記バナーPython日記

こんにちは。中卒です。

今回は前回から始めたPythonの書き方を覚えていこう、ということでどのようにPythonの書き方を覚えていくのかについて書こうと思います。前回って何のこと?って方はリンクから是非ご覧下さい。

環境を作ったはいいが…

さて、Pythonでatcoderの問題を解く環境は整ったということで早速問題を解いていくことに。競技プログラミングは初めてなのでまずはチュートリアルに記載のあったAtCoder Beginners Selectionを解いてみることに。ここでまずはatcoderに慣れようと思います。

さて、問題を見てから早速PyCharmを開いて……んーっと……ん?

フィールドってどうやって宣言するんや…?

そういえば文法が違うし、int型宣言しようと”int ~”と書いてもエラー吐くしなんやこれ、と。競プロやろうの以前にまずはPythonの基本的な書き方を覚える必要がありそうです。

Pythonの書き方をどうやって覚えようか

さてそれでは何を使ってPythonの書き方を覚えようか、という話で。”寝てても分かるPython”みたいな教本を書店で買うのも方法ですが極力お金を使いたくないので無料で覚えられるような方法を模索します。

というかそもそも友人はどうやってPythonを覚えたのか。大学の授業ではPythonを習っていないので何らか独自の方法でPythonを覚えているはず、まずは聞いてみます。

たわけ
たわけ

Pythonの書き方どうやって覚えた?何か本買った?

友人
友人

いや、ってかたわけJava書いてるんでしょ?いいサイトあるよ。

いやぁ~ホント感謝しかない。周りに使っている人の多いプログラミング言語のメリットが早速活きてきた。

彼いわく、このサイトがおすすめらしい。Python-izm:https://www.python-izm.com

Javaを書ける、ほど完璧に書けるかは別としてとりあえず何もかも初めてというわけではないので早速このサイトを閲覧しつつ書き方を勉強することに。

このサイトはPythonのインストールからラムダ式、CSVの読み書きなどまで広い範囲をカバーしてそうな上、説明が冗長でなくシンプルで分かりやすい。ここで一通りの書き方を覚えてJavaと同様の操作をPythonでもできるようにしていこう。

Javaとの違いで感じたこと

というわけでここからは学習にあたってここJavaと違うなぁというところを列挙していこうと思います。まずは一つ目。

trueとTrue

boolean型のフィールドについて、内容自体は同じですが書き方にちょっとした違いがあります。

boolean hoge = true;
hoge = True

この頭文字の大文字・小文字の差よ。何故Python側は大文字にしたのか。Javaをやってきた身からするとフィールドに値を入れる段階でShiftキーを押すのが手間で…まあ”true”以外の文字列ではないだけありがたいのかとは思いますが、これも慣れなのかなと思ったり。

波括弧どこいった問題

普段Javaではこのように、

public class Hoge{
    void hogehoge(){
        //メソッド動作
    }
}

こんな感じでクラスで波括弧、メソッドを書く時はまた波括弧…のように書くのが基本的ですがPythonの場合、

class Hoge:
    def hogehoge:
        //メソッド動作

みたいに、クラス・メソッドが波括弧で区切られていない。そしたらPythonはどうやって区別してんのかというと、インデントで区別している。実際クラスやメソッドだけではなく、for文やif文についてもインデントで分けています。

これについては不便というよりはカルチャーショック(?)のような文化の違いみたいなのを感じました。インデントを真面目にやらないと見づらいだけじゃなくてプログラムの挙動までもおかしくなるのはなかなか面白い。

自分もJavaでコードを書いているときに、以前のコードを見返したりすると

たわけ
たわけ

なんかここ2回くらいTabキー押してないか…?

っていうかここfor文の中だっけか?上行って見てみるか…

みたいにインデントがガバガバだったり波括弧が多くてfor文の中だったかどうかが分からなくなったり…(プラグインのRainbow bracketをインストールしていたのはこのため)

なのでPythonはインデントにガバがある段階で「おい!」とエラーを吐いてくれるのでルールに則るだけで見やすいコードが出来上がりそう。なかなか革新的だと思います。

思う事はまだまだありますがこんなことを思いながら引き続きPythonを学習していきます。それではまた次回で!

コメント