概要
ドットインストールでお勉強したことをメモ
http://dotinstall.com/lessons/basic_python_v2
pythonとは
シンプルで取得しやすいオブジェクト指向言語
Hello World
root@hostname:/home/shimizu/python# python --version Python 2.7.9 root@hostname:/home/shimizu/python# cat hello.py # coding: UTF-8 # ↑がないと日本語利用時にエラーとなる print "hello world" root@hostname:/home/shimizu/python# python hello.py hello world
変数の型など
root@hostname:/home/shimizu/python# cat hensu.py # coding: UTF-8 # 変数は大文字小文字を区別する msg = "hello world" print msg # 日本語はuをつける、つけないと文字列操作ができないらしい msg2 = u"こんにちは" print msg2 # 改行が必要な場合は """ で加工 print """ this is pen """ # 演算子 + - * / // % ** # 整数と小数の演算 → 答えは小数となる # 割り算 → 答えは整数 print 10 * 5 print 10 // 4 print 10 // 4 # 余りを求める print 2 ** 3 print 10 / 4 # リスト sales = [25, 50, 70] print len(sales) sales[2] = 100 print sales[2] print range(10) # リスト操作 sales.sort() sales.reverse() print sales d = "2015/8/15" print d.split("/") ds = d.split("/") print "-".join(ds) # タプル(変更ができない) "()"で囲む # 計算時に高速に処理できたり、ミスが少なくなる # 変更しようとすると以下のエラー # TypeError: 'tuple' object does not support item assignment print "tuple" a = (2,4,8) # セット(集合型) - 重複を許さない a = set([1,2,3,4,5,6]) print a # 辞書型データ key value fruit = {"apple":100, "banana":200, "pearch":600} print fruit print fruit["apple"] print "banana" in fruit # True or False print fruit.keys() print fruit.values() print fruit.items() # 組み込み a = 10 print "age: %d" % a # オプションも利用可能 print "age: %10d" % a print "age: %010d" % a root@hostname:/home/shimizu/python# python hensu.py hello world こんにちは this is pen 50 2 2 8 2 3 100 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [100, 50, 25] ['2015', '8', '15'] 2015-8-15 tuple set([1, 2, 3, 4, 5, 6]) {'pearch': 600, 'apple': 100, 'banana': 200} 100 True ['pearch', 'apple', 'banana'] [600, 100, 200] [('pearch', 600), ('apple', 100), ('banana', 200)] age: 10 age: 10 age: 0000000010
型の変換に注意
root@hostname:/home/shimizu/python# cat henkan.py # coding: UTF-8 # 数値 int float # 文字列 str print 5 + int("5") age = 20 print "i am " + str(age) + " years old" root@hostname:/home/shimizu/python# python henkan.py 10 i am 20 years old
文字列操作
root@hostname:/home/shimizu/python# cat mojisousa.py # coding: UTF-8 word = "abcdefghijklm" print len(word) print word.find("b") # 2番目から5番目を表示する print word[2:5] root@hostname:/home/shimizu/python# python mojisousa.py 13 1 cde
if文
root@hostname:/home/shimizu/python# cat if.py # coding: UTF-8 score = 50 # if 以下を字下げする if score > 60: print "OK!" elif score > 40: print "SOSO.." else: print "NG!" root@hostname:/home/shimizu/python# python if.py SOSO..
ループ文
root@hostname:/home/shimizu/python# cat loop.py # coding: UTF-8 fruits = ["apple","banana","orange"] for fruit in fruits: print fruit # for文が終わったら実行する else: print "Finish" for i in range(4): if i ==2: continue print "number" print i print "Finish" vegis = {"cabbage":200,"carrot":100,"radish":150} for key,value in vegis.iteritems(): print "key:%s value:%d" % (key,value) for key in vegis.iterkeys(): print key for value in vegis.itervalues(): print value # while文 print "while" n = 0 while n < 10: print n n += 1 else: print "Finish" root@hostname:/home/shimizu/python# python loop.py apple banana orange Finish number 0 number 1 number 3 Finish key:radish value:150 key:cabbage value:200 key:carrot value:100 radish cabbage carrot 150 200 100 while 0 1 2 3 4 5 6 7 8 9 Finish
日付操作
root@hostname:/home/shimizu/python# cat datetime.py # -*- coding: utf-8 -*- import datetime if __name__ == "__main__": today = datetime.date.today() todaydetail = datetime.datetime.today() print today print todaydetail print todaydetail + datetime.timedelta(days=1) newyear = datetime.datetime(2016,1,1) print newyear lastday = newyear - todaydetail print lastday.days root@hostname:/home/shimizu/python# python datetime.py 2015-08-19 2015-08-19 23:07:22.489915 2015-08-20 23:07:22.489915 2016-01-01 00:00:00 134
モジュールの利用
root@hostname:/home/shimizu/python# cat module.py # coding: UTF-8 import math, random # 切り上げする print math.ceil(5.2) print random.random() root@hostname:/home/shimizu/python# python module.py 6.0 0.655057714917
関数
root@hostname:/home/shimizu/python# cat function.py # coding: UTF-8 def hello(name): print "hello %s" % name hello("John") hello("Agrini") root@hostname:/home/shimizu/python# python function.py hello John hello Agrini
オブジェクト
root@hostname:/home/shimizu/python# cat object.py # coding: UTF-8 # クラス:オブジェクトの設計図 # インスタンス:クラスを実体化したもの class User(object): def __init__(self,name): self.name = name def greet(self): print "my name is %s!" % self.name bob = User("Bob") print bob.name bob.greet() # 継承 class SuperUser(User): def shout(self): print "%s is SUPER!!" % self.name tom = SuperUser("Tom") tom.greet() tom.shout() root@hostname:/home/shimizu/python# python object.py Bob my name is Bob! my name is Tom! Tom is SUPER!!