Pythonのサンプルコードをまとめてます。コピペで実行結果を確認しながら、効率よく学習できます。
Pythonとは
Pythonは文法を単純化してコードの可読性を高めた、汎用の高水準言語です。ベースとなる部分は最小限に抑えられているのですが、科学計算や分析、画像処理など多岐にわたるモジュールが標準ライブラリやサードパーティから公開されていて、使用目的に応じて機能を拡張していくことが可能です。
現在では、ウェブアプリケーションやデスクトップアプリケーション以外にもシステム制御や、分析処理、機械学習など拾い範囲で有力視されるプログラミング言語となってます。
世界のプログラミング言語のランキングをレポートしているTIOBEインデックスによると、2020年2月のPythonの順位は3位でした。なお、1位はJava、2位はC言語でした。
参考)index | TIOBE – The Software Quality Company
【関連記事】
▶プログラミング言語ランキング2019 注目の言語はコレだ
Pythonの特徴は可読性、メンテナンス性の高さ
Pythonは、プログラムコード中に正確なインデント(字下げ)をおこなわないと、実行時にエラーになります。そのため、プログラマーは強制的に見やすいコードを書くことになり、可読性、メンテナンス性が高くなると言えるでしょう。
# -*- coding: utf-8 -*- # Python sample a=10 if a > 5 : print( "%sは、5より大きい" % a)
最終行のインデントを削除してみましょう。
# -*- coding: utf-8 -*- # Python sample a=10 if a > 5 : print( "%sは、5より大きい" % a)
下記のエラー(インデンテーションエラー、インデントされたブロックが見つからない)が出力されて、実行が停止します。
IndentationError: expected an indented block
Python バージョン 2.xと3.xで違う
Pythonには大きく分けて、バージョン3.x系と、2.x系があります。文法も一部変わっています。
Python 2.x系は日本語などマルチバイト文字のハンドリングが難しいという欠点があります。新しくプログラムを開発するなら、特にアプリケーション要件による縛りがなければPythonのバージョンは3.xを利用しましょう。2020年2月現在、3.x系の最新バージョンは3.8.1です。
Pythonのインストール
Pythonは、Windows、Linux、Mac OS、その他のOSで動作します。Docker imageも容易されているため、コンテナ環境で扱うことも可能です。
参考)Download Python | Python.org Python公式のダウンロードページ
ダウンロードページから、インストーラをダウンロードし、実行しましょう。
Install Nowをクリックすれば、IDE(統合開発環境)を含むPythonモジュールがインストールされます。
Pythonサンプルコード集
Pythonはパソコンへのインストールも簡単ですが、オンラインでPythonを実行できるCODE CHEFなどのオンラインIDEサイトを使うと、さらにお手軽に学習が可能です。スマホやタブレットでも使えるようになります。
参考)Code, Compile & Run | CodeChef
print 標準出力に表示、改行の抑制も可能
# -*- coding: utf-8 -*- print( "これはテストです") print( 100 ) print( [0,1,2]) print('只今の時間は、%d時%d分です。' % (17,30) ) #改行したくない場合 print("Hello, ",end="") print("world!")
printは、標準出力に文字や数値を表示します。リストや辞書型の出力も可能。デフォルトでは自動的に改行が入りますが、第二引数にend=””と指定することで改行なしにすることができます。
実行結果は以下のようになります。
これはテストです 100 [0, 1, 2] 只今の時間は、17時30分です。 Hello, world!
文字列の操作 置換や、両端の制御文字削除
# -*- coding: utf-8 -*- a="Hello" b="world" #文字の連結 c=a+b print( "%s+%s=%s" % ( a,b,c ) ) #文字列の繰り返し f=a*10 print( f ) #フォーマット文字列で整形 d=format( '%s %s' % (a,b) ) print( d ) #置換 g=b.replace('or','OR') print( g ) #文字列両端のスペース、タブ文字、改行を削除 h=' hello \n\n\n' print( h ) i=h.strip() print( i )
Pythonでは、文字列型の変数をa+bのように足し算することで文字列を連結できます。乗算すると、文字列を繰り返して連結します。format()を用いて、メッセージ中に変数を埋め込むなど自由に整形が可能。
replace()を用いて置換、strip()を用いて文字列両端のスペース、タブ文字、改行を削除できます。
実行結果は以下のようになります。
Hello+world=Helloworld Hello world HelloHelloHelloHelloHelloHelloHelloHelloHelloHello wORld hello hello
list(配列) 異なる型の混在が可能
# -*- coding: utf-8 -*- print( "リストの初期化" ) var_list=[1,2,3,4,5] print( var_list ) print( "異なる型が混合したリスト" ) var_list2=['a','abd',3,0.1,'a'] print( var_list2 ) print("要素の指定") print( var_list2[1]) print( var_list2[-1]) print( "リストへ要素の追加") var_list2.append( 'item1') print( var_list ) print( "リストから要素の削除") print( "最初の要素を削除") del var_list2[0] print( var_list2 ) print( "最後の要素を削除") del var_list2[-1] print( var_list2 ) print( "リストのソート") var_list3=['d','g','a','x','1'] sortedlist=sorted(var_list3) print( var_list3) print( sortedlist ) print("リストを文字列に変換" ) joinlist=','.join(sortedlist) print( joinlist ) print("文字列をリストに変換") var_list4='a,b,c,d,e,f,g' splitlist=var_list4.split(',') print( splitlist )
Pythonの配列は、リスト型と呼ばれています。異なる型の混在が可能で、要素の追加、削除、変更ができます。リストのソートや、文字列への変換、文字列→リストへの変換も可能です。
リストの初期化 [1, 2, 3, 4, 5] 異なる型が混合したリスト ['a', 'abd', 3, 0.1, 'a'] 要素の指定 abd a リストへ要素の追加 [1, 2, 3, 4, 5] リストから要素の削除 最初の要素を削除 ['abd', 3, 0.1, 'a', 'item1'] 最後の要素を削除 ['abd', 3, 0.1, 'a'] リストのソート ['d', 'g', 'a', 'x', '1'] ['1', 'a', 'd', 'g', 'x'] リストを文字列に変換 1,a,d,g,x 文字列をリストに変換 ['a', 'b', 'c', 'd', 'e', 'f', 'g']
辞書型 キーワード指定で配列要素にアクセス
# -*- coding: utf-8 -*- print( "辞書型オブジェクトの初期化" ) dict1={"dog":1, "cat":2, "rabbit":"a"} print( dict1 ) print( "辞書型オブジェクトの要素にアクセス" ) print( dict1["dog"]) print( "辞書型オブジェクトに要素を追加" ) dict1["horse"]=5 print( dict1["horse"]) print( "辞書型オブジェクトの要素を削除" ) print( dict1 ) del dict1["horse"] print( dict1 ) print( "辞書型オブジェクトの全削除" ) dict1.clear() print( dict1 )
辞書型は、順番の決まっていないリストのようなものです。dist1[“horse”]など、添字にキーワードを指定してアクセスが可能。要素の柄や削除ができます。
辞書型オブジェクトの初期化 {'dog': 1, 'cat': 2, 'rabbit': 'a'} 辞書型オブジェクトの要素にアクセス 1 辞書型オブジェクトに要素を追加 5 辞書型オブジェクトの要素を削除 {'dog': 1, 'cat': 2, 'rabbit': 'a', 'horse': 5} {'dog': 1, 'cat': 2, 'rabbit': 'a'} 辞書型オブジェクトの全削除 {}
forループ 2つのリストを同時に1要素づつ取り出す
# -*- coding: utf-8 -*- print( "リストを順番に取り出す" ) vlist=['a','b','c'] for i in vlist: print( i ) print( "0~9までを順番に取り出す" ) for i in range(0,10): print( i ) else: print( "loop end") print( "リストの値と、カウンタを取り出す" ) for i, val in enumerate(vlist): print( i, val) print( "2つのリストをから要素を一つづつ同時に取り出す" ) vlist2=['x','y','z'] for v1, v2 in zip( vlist, vlist2): print( v1, v2 ) print( "リストを逆順に取り出す" ) for i in reversed( range(0,10) ): print( i ) print( "リストをソートして、要素を順番に取り出す" ) vlist3=['d','a','o','y','z'] for i in sorted( vlist3 ): print( i )
forはループ制御を行うことができます。リストから順番に要素を取り出したり、単に指定回数だけループすることが可能。関数との組み合わせで、リストを逆の順序で取り出したり、ソースした順に取り出すことも可能です。
実行するとこうなります。
リストを順番に取り出す a b c 0~9までを順番に取り出す 0 1 2 3 4 5 6 7 8 9 loop end リストの値と、カウンタを取り出す 0 a 1 b 2 c 2つのリストをから要素を一つづつ同時に取り出す a x b y c z リストを逆順に取り出す 9 8 7 6 5 4 3 2 1 0 リストをソートして、要素を順番に取り出す a d o y z
if文 条件分岐
# -*- coding: utf-8 -*- print( "# if分岐1") a=1 if( a==1 ): print( "aの値は1です" ) print( "# if分岐2") b=1 if( a==1 and b==1 ): print( "aもbも値は1です" ) elif( b==0 ): print( "bの値は0です" ) else: print( "aとbの値が想定外です" ) print( "# if分岐3") b=0 if( a==1 and b==1 ): print( "aもbも値は1です" ) elif( b==0 ): print( "bの値は0です" ) else: print( "aとbの値が想定外です" ) print( "# if分岐4") a=0 b=1 if( a==1 and b==1 ): print( "aもbも値は1です" ) elif( b==0 ): print( "bの値は0です" ) else: print( "値が想定外です" )
if文は条件分岐をおこないます。if、elif、elseを使って複雑な分岐を構成することが可能。
# if分岐1 aの値は1です # if分岐2 aもbも値は1です # if分岐3 bの値は0です # if分岐4 値が想定外です
まとめ
- Pythonはインデントが必須で、可読性、メンテナンスが高くなるよう設計された高級言語。
- Windows、Linux、Mac OSなどで動作するPythonモジュールが用意されている。
- Pythonはバージョン3.x系と2.x系で動作が異なる。日本語などマルチバイト文字を扱う場合は、3.x系を推奨。
- Pythonをオンラインで実行できるIDEサイトを利用することで、インストールなどの下準備なしでPythonの学習が可能。