Python3入門(1)導入と文字列について

Python3入門(1)導入と文字列について

Python3入門を連載します。JavaScriptなど何らかのプログラムの基本をマスターしている方がPythonをサクッと学習したい場合の参考になればと思います。

Python導入方法

Pythonのインストール

今回は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 です。