Python(パイソン)はプログラミング言語の一つであり、AI(人工知能)やDX(デジタルトランスフォーメーション)に関連して近年注目を集めています。
文法が平易であるため、最先端分野の開発者からプログラミング初心者まで、幅広くアプリケーション開発を可能とする特徴があります。
今回は、Pythonの概要や使い方について解説します。
アプリケーション開発に従事している方や、これからプログラミング言語を覚えようとする方は、ぜひ参考にしてみてください。
Pythonとは
Pythonはプログラミング言語の一つですが、特徴や可能とすることにはどのようなものがあるのでしょうか?
ここでは、Pythonの概要について解説していきます。
Pythonの特徴
Pythonには、文法がシンプルであるという特徴があります。
上の画像でも「Hello Python(Java)」と表示させるコードでも、Pythonではかなり簡単なことがわかります。
そのため、最先端分野の開発者からプログラミング初心者まで、幅広く開発がしやすい言語となっています。
また、Pythonは数値計算や統計処理、自然言語処理、機械学習等の豊富なライブラリを有しており、GoogleやNASA、Microsoft、YouTube、Dropboxなど多くの実績を誇ります。
Pythonにできること
Pythonは、AIやデータサイエンスの分野でも用いられています。
AI分野
- 機械学習
- 自然言語処理
- 画像処理
- 音声処理
などの処理が可能です。
データサイエンス分野
- 数値計算
- 統計解析
- 信号処理
などの処理が可能です。
Jupyter Notebook
画像引用元:Jypyter Notebook
Jupyter Notebookは、Pythonの実行や結果の確認、共有が可能なツールです。
PandasのデータフレームやMatplotlibのグラフも、視覚的に表示することができるため、開発環境を構築するうえで効率的に進めていくことができるでしょう。
Pythonのメリット
続いては、Pythonのメリットについて解説します。
PythonはInstagram、YouTube、Evernote、DropBox等の多くのアプリケーション開発で使用されています。
最新のアプリケーション開発に選ばれている理由について、3つのメリットを基に探っていきます。
1.機械学習の開発ができる
Pythonには、機械学習の開発ができるというメリットがあります。
人工知能を搭載したソフトウェアや、機械学習を用いたソフトウェアの開発に広く用いられています。
Pythonはコードが簡潔であり、初めて機械学習を学ぶ人にとって基本のプログラミング言語となるでしょう。
また、統計処理や数値計算を得意とする特徴も、機械学習やディープラーニング、データ解析の処理に用いられる理由の一つだといえます。
2.ゲーム・アプリケーションの開発ができる
Pythonには、ゲーム・アプリケーションの開発ができるというメリットがあります。
Pythonは多くのライブラリを有しているため、ゲームや組み込みアプリケーション、デスクトップアプリケーションなど、さまざまな分野で幅広い開発を可能としています。
3.Webフレームワークで効率良く開発ができる
Pythonは、Webフレームワークを用いて効率的に開発を進められるメリットがあります。
Webフレームワークとは、Webアプリケーションの作成に必要な機能を組み合わせた雛形のようなものです。
フレームワークには、さまざまな機能群やソフトウェアの骨格が用意されているため、必要な情報を入力するだけで簡単にアプリケーションを作成することができます。
また、ライブラリをインポートすることで、機能の追加も容易に行うことができます。
Pythonの使い方・書き方の基本
ここでは、Pythonの書き方について、基本構文やコメント、インデント等の基礎を解説していきます。
文字列を画面に出力する
文字列を画面に出力する際には、printを用いて記述します。
printの基本的な構文は次のとおりです。
出力時には末尾に改行が入ります。
また、””(ダブルクォーテーション)は’’(シングルクォーテーション)でも問題ありません。
print(“Hello World!”)
コメント
Pythonでは#がコメント記号であり、#以降に記載された内容は実行対象外となります。
コメントとはソースコードのメモであり、自分が書いたプログラムを確認する際の備忘録として使用したりします。
コメントの構文は次のとおりです。
# この1行は実行されない
変数
変数とは、プログラムで扱われるデータを記憶するものです。
変数は箱にたとえられることもあり、一度箱に入れたものを別のところで取り出して使ったり、別のものに入れ替えたりして再利用することができます。変数の構文は次のとおりです。
my_var = 100
演算子・制御フローの使い方・書き方
ここでは、Pythonで使える型の種類について解説していきます。
また、if文やループの方法についても併せて解説します。
数型(int)と浮動小数点数(float)
数値型(int)の構文は、次のとおりです。
my_var = 10
また、浮動小数点数型(float)構文は下記のようになります。
my_var = 10.10
my_var = 1.0101
文字列(str)と論理値(bool)
文字列(str)の場合、文字を””(ダブルクォーテーション)か’’(シングルクォーテーション)で括ります。
構文は次のとおりです。
my_var = ‘hello’
また、論理値(bool)は「True」と「False」の2つの値で表現されるフラグのようなものであり、構文は次のとおりです。
TrueとFalseのそれぞれで、最初のTとFは大文字である点に注意しましょう。
my_var = True
代数演算子(+,-,*,/)
代数演算子については、次のとおりです。
加算 x+y
減算 x-y
乗算 x*y
除算 x/y
xをyで割った残余 x%y
xのy乗 x**y
切り捨て除算 x//2
ブール演算子(and・ or ・not)
ブール演算子のうち、andは条件1と条件2の双方が正しい場合のみTrueを返します。
論理積とも呼ばれ構文は下記の通りです。
条件1 and 条件2
orは、条件1と条件2のいずれかが正しい場合にTrueを返します。
論理和とも呼ばれ構文は次のとおりです。
条件1 or 条件2
notは、条件がTrueの場合のみFalseを返します。
否定とも呼ばれ構文は次のとおりです。
not 条件1
条件分岐(if文)
条件分岐(if文)は、プログラムの中で条件によって処理内容が異なる場合に使用します。
if文の後に続いて条件を記述し、Trueの場合のみ処理が実行されます。
構文は次のとおりです。
if 条件式_1:
#行いたい処理
elif 条件式_2:
#行いたい処理
else:
#どの条件にも当てはまらなかった時の処理
また、Pythonはブロックをすべてインデントで表現します。
他のプログラミング言語のような、中括弧やブロックの終わりを表すendのような記述はありません。
コロンで始まる行が複合文の始まり(ヘッダー)であり、複合文の中に含まれている同じインデントの文は1つのブロックになります。
ブロックの構文は次のとおりです。
x=0
if x==0 : #ヘッダー
print(“x is 0”)
x=1
print(x) #常に実行される
my_var = 5
if my_var > 0:
print(‘正の整数です。’)
elif my_var < 0:
print(‘負の整数です。’)
else:
print(‘0です。’)
指定回数を繰り返す処理(for文)
指定回数を繰り返して処理を行わせる場合、for文を使用します。
for文の構文は次のとおりです。
for 変数 in range([始まりの数値=0,] 最後の数値[, 増加する量=1]):
#ループ処理
for x in range(3):
print(x)
#0
#1
#2
条件が正しい時に繰り返す処理(while文)
条件が正しい(True)ときだけ、ブロック中の繰り返し処理を行う場合、while文を使用して記述します。
while文の構文は次のとおりです。
my_var = 1
while my_var < 4:
print(my_var)
my_var += 1
print(‘while文終わり’)
条件分岐内、ループ内の処理(break, continue, pass)
ここでは、条件分岐内やループ内の処理で使用するbreak、continue、passについて紹介します。
ループ処理を途中で終了したい場合は、if文と併せてbreakを使用することが多いです。
breakはwhile文に使用することも可能であり、構文は次のとおりです。
for number in range(10):
if number == 5:
break
print(number)
ループ処理内に存在する特定の処理をスキップするにはcontinueを使用します。
構文は下記の通りです。
for number in range(10):
if number == 5:
continue
print(number)
何も処理を行わせたくないときにはpassを使用します。
関数名だけが決まっていて実装内容が定まっていない場合や、条件分岐で何も処理を行わない場合に使用されます。
構文は次のとおりです。
for number in range(10):
if number == 5:
pass
else:
print(number) #numberが出力される
配列の使い方・書き方
ここでは、配列についてlist、dictionary、tupleを解説していきます。
他のプログラム言語でいう配列(list)
Pythonでは、他のプログラミング言語のいう配列をlistと呼びます。
要素を何個か持っているものを表し、listの構文は次のとおりです。
my_list = [1,2,3,4]
また、[]内を空で宣言することで空のリスクを作成したり、リストの中身をループで回したりすることも可能です。
それぞれの例は次のとおりです。
my_list = []
my_list = [1,2,3,4]
for value in my_list:
print(value)
辞書構造(dictionary)
dictionaryとは、keyとvalueの組み合わせが含まれている辞書構造をいいます。
辞書型のオブジェクトの中の要素はkeyとvalueのペアで作られており、dictionaryのkeyは重複を許しません。
仮に同じkeyの場合は値が上書きされます。
dictionaryの構文は次のとおりです。
my_dict = { key1:value1, key2:value2, key3:value3 }
変更を許可しない変数等に使う配列(tuple)
配列のうち、変更を許可しない変数等にはtupleを使用します。
tupleはlistとほぼ同じですが、listは要素を追加・削除・編集できるのに対してtupleではできません。
tupleの構文は次のとおりです。
listが[]内に要素を記述するのに対して、tupleでは()内に要素を記述します。
my_tuple = (1,2,3,4,5)
集合演算等に使う配列(set)
集合演算等に対してはsetを用いて記述します。
setはlistと同じく複数の値を格納することができますが、要素の重複を許さず同じ値が収納できない、順序の保証がないという点でlistとは異なります。
setの構文は次のとおりです。
my_set = set([ 1,2,3,4,5 ])
配列等を処理する関数(map, filter, reduce)
配列等を処理する関数にはmap、filter、reduceがあります。
mapはlistのようなオブジェクト(シーケンス)と関数を引数として受け取る関数です。
受け取ったシーケンスの各要素に対して、受け取った関数を実施し、結果を返します。
Mapの構文は次のとおりです。
map(関数,シーケンス)
my_list = [ 1,2,3,4,5 ]
new_list= list(map(lambda x: x*2 , my_list))
print(new_list) #[2, 4, 6, 8, 10]
listやtupleの要素内で、関数を通用した結果がTrueになる要素だけを返す場合、filterを用いて記述します。
filterの構文は次のとおりです。
filter(関数,シーケンス)
my_list = [ 1,2,3,4,5 ]
new_list= list(filter(lambda x: x>3 , my_list))
print(new_list) #[4,5]
listやtupleの要素を足したり、かけ合わせたりする場合、reduceを用いて記述します。
reduceの構文は次のとおりです。
reduce(関数,シーケンス)
from functools import reduce
from operator import add
my_list = [ 1,2,3,4,5 ]
print(reduce(add, my_list)) #15
リストの内包表記
リストのようなシーケンスオブジェクトの各要素に対して処理を行いたい場合、内包表記を用いて記述することで、forループで行う処理を一行で処理できます。
内包表記の例は次のとおりです。
my_list = [1,2,3,4,5]
my_list = [x*2 for x in my_list if x > 3]
print(my_list) #[8, 10]
文字列に対する結合・分割
文字列を結合したい場合、for文を用いて+=で結合可能です。
例文は次のとおりです。
my_list = [‘Hello ‘, ‘How ‘, ‘are ‘,’you ‘,’? ‘]
my_str = ”
for value in my_list:
my_str += value #my_str = my_str + value と同じ
print(my_str)
#Hello How are you?
また、join関数を用いることで、簡単かつ綺麗に文字列を結合することが可能です。
join関数の構文と例文は次のとおりです。
文字列 = ‘区切り文字’.join(結合したい文字列)
my_list = [‘Hello’, ‘How’, ‘are’,’you’,’?’]
my_str = ‘ ‘.join(my_list)
print(my_str)
#Hello How are you ?
文字列を特定の区切り文字を用いてリストに変換したい場合、split関数を使って記述していきます。
split関数の構文と例文は次のとおりです。
文字列.split(‘区切り文字’)
my_str = ‘Hello How are you ?’
my_list = my_str.split(‘ ‘)
print(my_list)
#[‘Hello’, ‘How’, ‘are’, ‘you’, ‘?’]
関数・例外処理の使い方・書き方
ここでは、関数の定義方法や使い方、例外処理について解説していきます。
関数
関数とは、ある機能をまとめているものを指します。
ここまでの章でも既に関数を紹介しており、リスト化したい場合にはlist関数を、画面上に出力したい場合はprint関数を用います。
関数の構文と例文は次のとおりです。
def 関数名():関数の中で行いたい処理
def show():
print(‘こんにちは’)
呼び出し方
関数はそのまま記述するだけでは実行されません。
使いたい箇所から呼び出す必要があり、print関数を呼び出したい場合はprint()と記述して呼び出します。
呼び出し方の構文は次のとおりです。
関数名()
引数
関数を呼び出すたびに別の文字列を出力したい場合、引数を用いて記述していきます。
関数に引数(呼び出し元から関数に渡されるもの)を定義することで、引数で受け取った値を関数内で処理します。
引数は複数渡すことも可能であり、構文と例文は次のとおりです。
関数名(引数・・)
def show(sentence):
print(sentence)
show(‘こんばんは’)
#こんばんは
戻り値
呼び出し元で文字列を受け取りたい場合、関数の戻り値を用いて記述します。
戻り値を返す関数の構文と例文は次のとおりです。
関数名(引数・・):
return 戻り値
def show(name):
return name + “さんこんばんは”
text = show(‘タロウ’)
print(text)
#タロウさんこんばんは
text = show(‘次郎’)
print(text)
#次郎さんこんばんは
無名関数(lambda)
無名関数は、関数の名前をつける必要がない一行で終わるような関数を作る場合に利用します。
無名関数を作るには、lambdaという書式を用いて記述します。
myfunc = lambda x: x += 2
lambdaを用いた記述は上記であり、これは下記と同じ意味になります。
def myfunc(x):
return x += 2
myfunc(23) # 25
myfunc(34) # 36
例外処理
例外処理とは、ソースコード中の例外が発生する可能性がある記述箇所で、例外が発生した際の処理内容を記述しておくことを指します。
例外は
- 数値型と文字列型を+で結合する場合
- リスト内に存在しない要素を削除する場合
- 数値を0で割る場合
などで発生します。
例外処理はtry、exceptを用いて記述が可能であり、構文は次のとおりです。
try:
例外が発生する可能性のある処理
except 発生しうる例外_1:
例外1が起きた場合に行いたい処理
except 発生しうる例外_2:
例外2が起きた場合に行いたい処理
except:
上のexceptに記載していない例外が発生した時に行いたい処理
finally:
例外が起きても起きなくても行いたい処理
まとめ
Pythonの概要や使い方について解説しました。
Pythonは文法がシンプルであるため、プログラミング初心者でもわかりやすく開発を進めることができます。
また、数値計算や統計処理、自然言語処理、機械学習等の豊富なライブラリを有しており、AIやデータサイエンスの分野においても活用できます。
これから新たにPythonを習得しようと考えている方は、ぜひ積極的に挑戦してみてください。
