Pythonを使う

Perl,RubyときたのでPythonです。
コマンドラインを使うときの言語にこだわりはなく、パイプが上手くつながればいいんじゃないかぐらいの感覚でPythonも使います。使うといっても他の言語と同じく入門的なことしか覚えてませんが。
Python2.7と3の違いも良く分かってないので、なるべく3の方を使っていこうかと思います。
私がPythonで一番好きなところは、{}ではなく:を使うところです。

Perl

if($a > 10){
	処理1
	処理2

	処理3
	:
}

Python

if a > 10:
	処理1
	処理2

	処理3
	:

なぜだかうっとりします。Lispの()を美しいと思ってしまうのと同様、どこから湧き出すのかわからない感覚です。

ではPython使っていきましょう。私のdebian9の環境ではデフォルトでインストール済でした。まずはバージョンから。

takk@deb9:~$ python --version
Python 2.7.13
takk@deb9:~$

おっと。バージョン2.7になってます。3.xを使おうと思ったんですがどこにあるんでしょうか。whichしてみます。

takk@deb9:~$ which python
/usr/bin/python
takk@deb9:~$ 

/usr/bin/の下にありました。実体を確認するため、ls -lします。

takk@deb9:~$ ls -l /usr/bin/python
lrwxrwxrwx 1 root root 9  1月 24  2017 /usr/bin/python -> python2.7
takk@deb9:~$

同じ/usr/bin配下にあるpython2.7へのシンボリックリンクでした。
そちらの実体も見てみましょう。

takk@deb9:~$ ls -l /usr/bin/python2.7
-rwxr-xr-x 1 root root 3783608  1月 19  2017 /usr/bin/python2.7
takk@deb9:~$

こちらはバイナリ本体のようです。
ってことは、3.xがあるならここにありますよね。

takk@deb9:~$ ls -l /usr/bin/python*
lrwxrwxrwx 1 root root       9  1月 24  2017 /usr/bin/python -> python2.7
lrwxrwxrwx 1 root root       9  1月 24  2017 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 3783608  1月 19  2017 /usr/bin/python2.7
lrwxrwxrwx 1 root root       9  1月 20  2017 /usr/bin/python3 -> python3.5
-rwxr-xr-x 2 root root 4747120  1月 19  2017 /usr/bin/python3.5
-rwxr-xr-x 2 root root 4747120  1月 19  2017 /usr/bin/python3.5m
lrwxrwxrwx 1 root root      10  1月 20  2017 /usr/bin/python3m -> python3.5m
takk@deb9:~$

python3.xは、3.5でpython3にシンボリックリンクされていました。

ではHello Worldから。こんな感じで動くでしょうか。

takk@deb9:~/py$ cat hello.py
print "Hello World!"
takk@deb9:~/py$ 

python2.7と3.5両方実行してみます。

takk@deb9:~/py$ python hello.py
Hello World!
takk@deb9:~/py$ python3 hello.py
  File "hello.py", line 1
    print "Hello World!"
                       ^
SyntaxError: Missing parentheses in call to 'print'
takk@deb9:~/py$

2.7は動きましたが、3.5はエラーになりました。

3.xでは、printは()が必要なんですね。

takk@deb9:~/py$ cat hello.py
print("Hello World!")
takk@deb9:~/py$ python hello.py
Hello World!
takk@deb9:~/py$ python3 hello.py
Hello World!
takk@deb9:~/py$

()をつけたら、2.7でも3.xでも両方動くようになりました。
3.xの書き方を覚えていくのが無難なようです。

コメント

タイトルとURLをコピーしました