Python3入門を連載します。JavaScriptなど何らかのプログラムの基本をマスターしている方がPythonをサクッと学習したい場合の参考になればと思います。
Python導入方法
Pythonのインストール
- Python本家https://www.python.org/downloads/
- Anacondaは様々なライブラリを含むもので機械学習などやりたい場合はこちらでインストールするのがオススメです。AnacondaをインストールすればPython自体も一緒にインストールされます。
Download Anaconda Distribution | AnacondaDownload Anaconda's open-source Distribution today. Discover the easiest way to perform Python/R data science and machine learning on a single machine.
今回はAnacondaを使ってインストールしています。
インストールが終わったら、ターミナルから以下のようにpythonとコマンドを入れます。Pythonのみのインストールの場合、Macでは「python」とコマンドを入力すると2系が、「python3」とコマンドを入力すると3系が、対話モードで開始されます。
Anacondaでインストールした場合は3系の指定をした場合は、Macでも「python」とコマンドを入力すると3系が開始されます。
*注意:今後コマンドの前の「$」はプロンプトのことでここから先が実際の入力コマンドです。通常は「$」の前にユーザー名などが表示されます。
$ python
表示内容
Python 3.6.2 |Anaconda, Inc.| (default, Sep 21 2017, 18:29:43)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.
>>>
「>>>」は対話モード開始を意味します。なんらかPythonの命令をすると対話的に実行されます。print()で命令しなくても結果が表示される点が便利です。
対話モードを終わるには、「exit()」とコマンド入力するか、ctrl+Dキーで終了します。
エディタについて
入門編を学習するだけなら、対話モードを使えばOKです。Sublime TextやAtom、あるいはDreamweaverなど使い慣れたエディッタがあれば更にOKです。
Python専用でさらに高度なことに取り組みたい場合は、PythonのIDEであるPycharmを使うと良いようですが、有料です。
pycharmの導入はjetbrainsのページからToolsよりPyCharmを選択してダウンロードします。30日間の無料試用期間があります。
色々使ってみてVisual studio Codeが使いやすかったです。他の言語にも当然活用できますので万能に使えるかもしれません。
Sublime Textなどのエディタを使う場合のコマンド
ターミナルでコマンド操作
まず、cdでファイル保存先に移動してから python ファイル名 で実行します。拡張子は「.py」です。文字コードは「UTF-8」にします。
$ cd /Users/tahara/python_lesson $ python lesson1.py
Pythonのコメントアウト
コメントアウトは単行の場合は「#」を使います。コメントする場合は文の横に記述するのではなく(エラーにはならない)、暗黙のルールに従い文の上に記述するようにします。
例
# ここにコメント print('test') #ここにコメントしない
Pythonには複数行に対応したコメントアウトをする方法はありません。どうしても必要な場合は3重のクォテーションで対応します。
例
print('test') """ここから 複数行の コメント"""
文字列
コードを書いていると、1行が長くなる場合は、バックスラッシュ(\)を入れて改行して記述することができます。バックスラッシュ(\)を入れないで文の途中で改行するとエラーになります。
尚、1行の文字数は80文字以内にすべきと言われています。
文字列の表示
print() は文字列を出力するための関数です。引数に出力したい文字列を入れます。
とりあえず Hello world 表示です。
print('Hello world') print('ハロー・ワールド')
表示結果
$ python lesson1.py Hello world ハロー・ワールド
Pythonでは1行に1つのステートメント(命令文)を記述していきます。この場合セミコロンはいりません。
1行に複数のステートメントを書く場合はセミコロンで区切ります。
3重のクオテーションは改行した引数をそのまま表示します。
print("######################") print("""\ line1 line2 line3\ """) print("######################")
表示結果
###################### line1 line2 line3 ######################
文字列に四則演算式を入れると便利に使えます。
print('Hi' * 3 + "Tahara")
表示結果
HiHiHiTahara
配列の性質を使うと文字列のインデックスごとに分けることができます。
word = "Python" print(word[0]) print(word[1]) print(word[2]) print(word[-1]) #2〜5まで print(word[2:5]) #2から最後まで print(word[2:]) word = 'j'+word[2:] print(word)
表示結果
P y t n tho thon jthon
文字列のある文字だけ削除して表示
次の例では「1」を削除してそれ以外の文字列を表示します。3種類の方法で試していますが同じ結果になります。
str = 'aaaaa1xyz' str[:-4]+str[-3:] str.replace('1','') str.replace(str[-4],'')
表示結果
‘aaaaaxyz’
‘aaaaaxyz’
‘aaaaaxyz’
文字列のメソッドを使って見ます。
s = 'My name is Tarou. Hi Tarou.' print(s) is_start = s.startswith('My') print(is_start) is_start = s.startswith('x') print(is_start) print("#######################") print(s.find('Tarou')) print(s.rfind('Tarou')) print(s.count('Tarou')) print(s.capitalize()) print(s.title()) print(s.upper()) print(s.lower()) print(s.replace('Tarou','Keiko'))
表示結果
My name is Tarou. Hi Tarou. True False ####################### 11 21 2 My name is tarou. hi tarou. My Name Is Tarou. Hi Tarou. MY NAME IS TAROU. HI TAROU. my name is tarou. hi tarou. My name is Keiko. Hi Keiko.
文字列の表示やメソッドの種類はたくさんありますので、ここはそんなこともできるんだくらいで先に進むのが良さそうです。
必要に応じてリファレンスを確認して覚えていきましょう。
Pythonの日本語ドキュメントはこちら
文字列と数値の結合における問題
Pythonでは文字列と数値を + で連結するとエラーになります。JavaScript経験者は陥りやすい罠になりますので注意してください。
そしてそれは、文字列と数値の入った変数であっても同様です。つまり型をしっかりと判断して演算していることになります。
例 この例はエラーになります。
x = 5 print('値は'+ x +'です。')
結果
TypeError: must be str, not int
この場合はprint関数を使う際に、str()を使って数値を文字列に変更する必要があります。
例
x = 5 print('値は'+ str(x) +'です。')
結果
値は5です。
あるいはprint()の引数を複数に区切って活用します。
例
x = 5 print('値は',x,'です。')
結果
値は 5 です。