2015/07/07更新

[Python] Python(2.x)に入門する

このエントリーをはてなブックマークに追加            

こんにちは、@yoheiMuneです。
最近Pythonというプログラム言語を使い始めました。Pythonを使い始めた目的は、統計処理や機械学習などのプログラムを書きたいためです。もちろん他の言語でも実現できますが、色々と調べているとPythonの軍配が良いようです。今日はPythonの基礎部分をブログに残しておきたいと思います。

画像

https://flic.kr/p/5RxeQF




目次




学習に役立つサイト

僕がPythonの学習を行うにあたり、以下のサイトを参考にプログラムを書きました。良き情報をありがとうございます。

- PythonWeb

- Python-izm

- Python | ドットインストール

- Python入門 : 4日間コース社内トレーニング | Slideshare

以下ではPythonの項目ごとに章/節を分けて書いてあります。



日本語への対応

ソースファイル内に日本語を書く場合には、以下のコメントを先頭に記載します。
# -*- coding: utf-8 -*-



基本構文

以下ではPythonの基本構文を記載しています。


コメントアウト

# コメントアウト(1行)
"""
コメントアウト(複数行:ダブルクォート)
"""
'''
コメントアウト(複数行:シングルクォート)
'''

文字列

# 文字列
print "python"
print 'python'

# 複数行
print """
aaa
bbb
ccc
"""

# 文字列連結
test_str = "python" + "-" + "fun"
test_str += "123"
print test_str
price = 100
print str(price) + "円"

#分割
test_str = "python-fun"
print test_str.split("-")

# ゼロ埋め
test_str = "1234"
print test_str.rjust(10, "0")
print test_str.rjust(10, "!")
print test_str.zfill(10)

# 文字列の検索
test_str = "python-fun"
print test_str.startswith("python")
print test_str.startswith("fun")
print "f" in test_str
print "z" in test_str

# 大/小文字変換
test_str = "Yoheim.NET"
print test_str.upper()
print test_str.lower()

# 先頭・末尾の削除
test_str = "    YoheiM.NET"
print test_str.lstrip()
print test_str.lstrip().lstrip("Yohei")
test_str = "www.yoheim.net      "
print test_str.rstrip() + "/"
print test_str.rstrip().rstrip(".net")

数値、演算

# 四則演算
test_int = 100
print test_int + 10
print test_int - 10
print test_int * 10
print test_int / 10

# 数値に変換
test_int = "100"
print int(test_int) + 100

日付

日付関連の処理が充実しているのは素敵ですね。
# 日付
import datetime

today = datetime.date.today()
print today
print today.year
print today.month
print today.day

todaydetail = datetime.datetime.today()
print todaydetail
print todaydetail.hour
print todaydetail.minute
print todaydetail.second
print todaydetail.microsecond

# 日付フォーマット
print today.isoformat()
print todaydetail.strftime("%Y/%m/%d %H:%M:%S")

# 日付の計算
# 明日
print today + datetime.timedelta(days=1)
# 1月1日
newyear = datetime.datetime(2015,1,1)
print newyear
# 1週間後
print newyear + datetime.timedelta(days=7)
# 1月1日から今日までの日数
print (todaydetail - newyear).days

タプル

Pythonのタプルは、生成後に変更ができません。
# タプル
value = (1, 2, 3, 4)
print value
print value[0]

リスト

# リストの生成
list1 = ['python', '-', 'fun', '.', 'com']
print list1
for i in list1:
    print i

# 値の追加
list1.append('/blog')
print list1

# 値の追加2
list1.insert(0, 'www')
list1.insert(1, '.')
print list1

# 値の削除
list1.remove('fun')
print list1
print list1.pop(2)
print list1

# 値を見つける
print list1.index('com')

# 出現回数、全削除
print list1.count('.')
print list1
for i in range(list1.count('.')):
    list1.remove('.')
print list1

ディクショナリー

他の言語と同様に、Key/Value形式でデータを保持することができます。
# ディクショナリー
dict1 = {'year': 2015, 'month': '6', 'day': 24}
print dict1
for i in dict1:
    print i, dict1[i]

# 値の取得
print dict1['year']
print dict1.get('year')
#print dict1['years']
print dict1.get('years')
print dict1.get('years', 'NOT FOUND')

# 値の設定
dict2 = {}
print dict2
dict2['name'] = 'Yohei'
dict2['age'] = 29
print dict2

# 値の削除
del dict2['age']
print dict2

# キーのリスト化
dict3 = {'name': 'yoheiM', 'age': 25, 'favorite': 'food'}
print dict3.keys()

# キーの存在確認
print dict3.has_key('name')
print dict3.has_key('lastName')
print 'age' in dict3
print 'ageha' in dict3

インクリメント、デクリメント

Pythonには残念ながらインクリメント演算子とデクリメント演算子はないようです。
# インクリメント(++演算子はpythonにはない)
num = 100
num += 1
print num

# デクリメント(--演算子もpythonにはない)
num = 100
num -= 1
print num

if文

みんなが大好きif文♪
# if文
value = 3
if value == 1:
    print "value is 1"
elif value == 2:
    print "value is 2"
else:
    print "value is more than 2"

# and句、or句
value1 = "python"
value2 = "love"
if value1 == "python" and value2 == "love":
    print "python love"
if value1 == "python" or value1 == "ruby":
    print "you may like python or ruby"

# passキーワード(何もないことを明示する)
if value1 == "ruby":
    pass
elif value1 == "python":
    print "Hello Python"

# if文と代入を1行で書く
x = "yes"  if value1 == "python" else "no"
print x

for文

in句が使える言語で、なかなか便利です。
# for文
someArray  = ["a", "b", "c", "d", "e"]
someArray2 = [1, 2, 3, 4, 5]
for char in someArray:
    print char

# 文字列を1文字ずつ
for str in "Hello":
    print str

# 0〜9まで順次実行
for val in range(0, 10):
    print val

# continueとbreak
for a in range(10):
    if a == 5:
        print "five"
        continue
    if a == 7:
        break
    print a

# 配列の要素数を用いたループ
for c in range(len(someArray)):
    print c, someArray[c]

# 配列のループ
for c, val in enumerate(someArray):
    print c, val

# 逆順ループ
for char in reversed(someArray):
    print char,

# 配列をまとめてループ
for char, num in zip(someArray, someArray2):
    print char, num

While文

counter = 0
while counter < 10:
    counter += 1
    print counter

Switch文

PythonにはSwitch文がありません。if文を代用します。


printのいろいろ

printはよく使われる出力機能です。
# print出力後に改行しないための「,」
print "aaaa",

# フォーマット文字列
print "%d年目の%s" % (100, "python")

# ファイル書き出しまでできる
obj = open("test.txt", "w")
print >> obj, "python lover"



例外処理

例外処理は、堅牢なプログラムを作る上で大切な処理ですね。
# 例外処理
value1 = 100
value2 = "200"
try:
    print value1 + value2
except:
    print "演算に失敗しました"
finally:
    print "演算終了"

# 例外を発生させる
try:
    raise
except:
    print "例外発生!!"



コマンドラインからの実行

コマンドラインから実行する場合に利用する実装内容です。

コマンドライン引数

コマンドラインから実行した場合の引数は、以下のように受け取ることができます。
# コマンドライン引数
import sys
params = sys.argv
print params

プログラムの終了

以下のコマンドでプログラムを終了させることができます。
sys.exit()



関数の作成

Pythonの関数は、デフォルト引数、引数名の指定など、多くのプログラミング言語の中でも、かなり柔軟な作りです。
# 基本的な関数定義
def test1():
    print "call test"
test1()

# 引数付きの関数
def test2(name):
    print "Hello ", name
test2('Yohei')
test2(name='Yohei') # 引数名を指定することもできる

# 引数のデフォルト値
def test3(name="NoName"):
    print "Hello", name
test3()



クラスの実装と継承

Pythonでもクラスの定義を行うことができます。
# クラスの作成
class someClass:
    def __init__(self, code, name):
        self.code = code
        self.name = name

aList = []
aList.append(someClass(1, 'Yohei'))
aList.append(someClass(2, 'Munesada'))
for value in aList:
    print "====== class ======"
    print "code -> ", value.code
    print "name -> ", value.name

# クラスの継承
class TestExtends(list):

    def __init__(self):
        list.__init__(self)

    def append(self, value):
        list.append(self, value)
        print "値が追加されました:" + value

test = TestExtends()
test.append('python')
test.append(',')
test.append('lover')
for i in test:
    print i



ラムダ式

Pythonではラムダ式を利用できるため、関数などよりシンプルにかけます。
#ラムダ式
func = lambda num1, num2: num1 + num2
print func(10, 100)



最後に

今日はPythonの基本的な書き方をブログに書きました。こんな風に1枚のページにまとまっていないので、まとめてみました。Python学習者の何らかの手助けになれば幸いです(そして自分が一番よく使うページになりそうですw)。

最後になりますが本ブログでは、フロントエンドのネタを中心に情報を発信しています。気になった方はぜひ、RSSTwitterをフォローして頂けますと幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。