Pythonチュートリアル動画でPythonの復習
Pythonのチュートリアル動画がYoutubeにあったので,復習を兼ねて真面目にメモと手を動かしつつやってみました.全部で43個のチュートリアルがあり,全部みると4時間弱かかっちゃいますが,復習にはもってこいの内容かと思います.
もちろん初めての人にとってのチュートリアルとしても良いかと.これを全部やった後に『初めてのPython』を読むと理解が進むように思います.あの本はとても丁寧に書かれていて面白いのですが,分厚いので心が折れてしまう可能性も高いですしw
Tutorial 1 Installing
インストールの仕方とGUIについて.ここは見なくても良いかもしれませんね.
Tutorial 2 Numbers and Math
プログラミングの基本となる数値の扱いと四則演算について.指数の書き方が6^3ではなく,6**3と書くあたりを気をつけたい.
Tutorial 3 Variables
変数の扱いも基本ですね.input()関数を使って入力もできる.
Tutorial 4 Modules and Functions
関数の使い方.pow()やabs()など.また,mathモジュールのインポートには
import math
と書く.これにより,math.floor()やmath.sqrt()のような関数が利用可能となる.また
bucky = math.sqrt
と書けば,関数名を変更可能.ただ,これはあまり多用しない方がいい気がする.
Tutorial 5 How to Save Your Programs
プログラムの保存の仕方やコマンドプロンプトでプログラムを呼び出す方法など.最後に
raw_input("Press<enter>")
を入れるあたりが小っちゃいけどポイントかと.
Tutorial 6 Strings
''でも""でも文字列を表すが,""の方が文中に'が入る場合に望ましい.または\(バックスラッシュ)でエスケープする.これは文中に"が入る場合も同じ.
"bucky said, \"hey now\" to me"
あとは
a = "bucky" b = "roberts"
とすると
>>> a + b 'buckyroberts' >>> a, b ('bucky', 'roberts')
となる.
Tutorial 7 More on Strings
StringsとNumbersは繋ぐことができないので,数値はstr()で文字にする必要がある.
Tutorial 8 Raw Input
input()とraw_input()の違いについて.文字列をinput()で受け取るとエラーを吐くので,その場合はraw_input()を用いればよいという理解でいいのかな.python 2.xと3.xで違いもありそうだけどどうなんだろう.要チェック.
Tutorial 9 Sequences and Lists
リストの扱いなど.
family = ['mom', 'dad', 'bro', 'sis', 'dog']
としたとき
>>> family[3] 'sis' >>> family[-2] 'sis'
Tutorial 10 Slicing
リスト内のスライシングについて.
example = [0,1,2,3,4,5,6,7,8,9]
のとき,
>>> example[4:9] [4, 5, 6, 7, 8]
とexample[9]の要素は入らず,9未満を表す.また負の数を用いるときも
>>> example[-5:-1] [5, 6, 7, 8]
のようにexample[-1]は含まれない.しかし,
>>> example[-5:0] []
では何も含まれない.このとき[5, 6, 7, 8, 9]が含まれるようにするには
>>> example[-5:] []
と書く必要がある.また3つ目のパラメータを用いて
>>> example[1:8:2] [1,3,5,7]
と2つ飛ばしにすることもできる.
Tutorial 11 Editing Sequences
リストの結合と要素のチェックについて.
>>> name = 'roastbeef' >>> 'z' in name False >>> 'r' in name True
Tutorial 12 More List Functions
len()はListの長さを,max()やmin()は最大値・最小値を,delでリスト内の要素を除去することができる.
Tutorial 13 Slicing Lists
スライシングを使ってリスト内に追加したり,リスト内の要素を削除したりする個tができる.
Tutorial 14 Intro to Methods
appendで要素の追加,extendでリストの結合ができる.
face = [21, 18, 30] face.append(45) one = [1, 2,3] two =[4,5,6] one.extend(two)
Tutorial 15 More Methods
何番目の要素かはindexメソッドを用いる.popメソッドでは取り出してリストから取り除く.removeメソッドは単純に取り除く.reverseメソッドはリストの順序を逆にする.
Tutorial 16 Sort and Tuples
sortメソッドで小さい順にソート出来る.またリストと異なりタプルは入れ替え不能.
Tutorial 17 Strings n Stuff
文字列内の変数展開についてはsprintfみたいな感じにできる.
bucky = "Hey there %s, hows your %s"
verb = ('betty', 'foot')
print bucky % verb
Tutorial 18 Cool String Methods
findメソッドで文字列内から別の文字列が何番目に存在するのか,joinメソッドではリストを接続する,lower,upperメソッドでは文字列を小文字・大文字に変換できる,replaceメソッドではある文字列を別の文字列に置換できる.
Tutorial 19 Dictionary
ディクショナリーについて.データ構造の基本ですね.
book = {'Dad':'Bob', 'Mom':'Lisa', 'Bro':'Joe'} ages = {'Dad':'42', 'Mom':'87'}
とすれば
>>> book['Dad'] 'Bob' >>> ages['Dad'] '42'
とできます.
Tutorial 20 If Statement
if文の書き方とPython固有のインデントについて.
Tutorial 21 else and elif
こんな感じで条件分岐を書く.
fish = "tuna" if fish=="bass": print 'this is a bass alright' elif fish=="slamon": print "I hope i dont get SLAMonilla poissnin" elif fish=='tuna': print "easy there tuna boat" else: print 'i dont know what this is'
Tutorial 22 Nesting Statemens
If文のnestの書き方について.
thing = "animal" animal = "cat" if thing == "animal": if animal == "cat": print "this is a cat" else: print "i dont know ehat this animal is" else: print 'i dont know what this thing is'
Tutorial 23 Comparison Operators
比較演算子について.ここはそんなに新しい点はないかなー.
Tutorial 24 And and Or
And, Orは次のように扱う.
example = 5 if example > 3 and example < 10: print 'numer is between 3 and 10' else: print 'no' if example > 3 or example < 4: print 'this works' else: print 'no'
Tutorial 25 For and While Loops
for文やwhile文の書き方について.
b = 1 while b <= 10: print b b += 1 gl = ['bread', 'milk', 'meat', 'beef'] for food in gl: print 'I want ' + food
Tutorial 26 Infinite Loops and Break
ディクショナリにおけるループの書き方やbreak文について.
ages={'dad':42, 'mom':48, 'lisa':7} for item in ages: print item,ages[item]
while 1: name = raw_input('Enter name: ') if name == 'quit': break
Tutorial 27 Building Functions
以下のように関数定義をする.
def plusten(y): return y + 10
def diagonal(x,y): return math.sqrt(x**2 + y**2)
Tutorial 28 Default Parameters
関数のデフォルト値を入れておく.
def name(first='tom', last='smith'): print '%s %s' % (first, last)
Tutorial 29 Multiple Parameters
複数以上のパラメータを取る場合.以下のように書く.
def profile(name, *ages): print name print ages >>> profile('bucky', 42,43,76,98) bucky (42, 43, 76, 98)
Tutorial 30 Parameter Types
このように書くとディクショナリをつくることができる.
def cart(**items): print items >>> cart(apple=4,peaches=6,beef=60) {'peaches': 6, 'apple': 4, 'beef': 60}
Tutorial 31 Tuples as Parameters
タプルやディクショナリを引数にとるときは*や**が必要.
def example(a, b, c): return a+b*c >>> tuna=(5,7,3) >>> example(*tuna) 26
def example2(**this): print this >>> bacon={'mom':32, 'dad':54} >>> example2(bacon) {'dad': 54, 'mom': 32}
Tutorial 32 Object Oriented Program
オブジェクト指向プログラミングについて.クラスは次のようにつくる.
class exampleClass: eyes="blue" age=22 def thisMethod(self): return 'hey this method worked'
具体的なオブジェクトの扱いは
>>> exampleObject=exampleClass() >>> exampleObject.eyes 'blue' >>> exampleObject.age 22 >>> exampleObject.thisMethod() 'hey this method worked'
Tutorial 33 Classes and Self
引き続きクラスの作り方など.
class className: def createName(self,name): self.name=name def displayName(self): return self.name def saying(self): print "hello %s" % self.name >>> first=className() >>> second=className() >>> first.createName('bucky') >>> second.createName('tony') >>> first.displayName() 'bucky' >>> first.saying() hello bucky
Tutorial 34 Subclasses Superclasses
サブクラスとスーパークラス.これは他のオブジェクト指向と同じですね.
class parentClass: var1 = "i am var1" var2 = "i am var2" class childClass(parentClass): var3 = "i am var3"
>>> parentObject=parentClass() >>> parentObject.var1 'i am var1' >>> childObject=childClass() >>> childObject.var1 'i am var1' >>> childObject.var3 'i am var3'
Tutorial 35 Overwrite Variable on Sub
サブクラスによる変数の上書き.
class parent: var1 ="bacon" var2 ="sausage" class child(parent): var2 ="toast" >>> cob=child() >>> cob.var2 'toast'
Tutorial 36 Multiple Parent Classes
複数のクラスを継承することも可能.
class Mom: var1 ="hey im mom" class Dad: var2 ="hey there son im a dad" class child(Mom,Dad): var3 = "im a new variable" >>> childObject=child() >>> childObject.var1 'hey im mom' >>> childObject.var2 'hey there son im a dad' >>> childObject.var3 'im a new variable'
Tutorial 37 Constructors
コンストラクタについて.def __init__と書く必要がある.
class new: def __init__(self): print "this is a constructor" print "this also print out" >>> newobj=new() this is a constructor this also print out
Tutorial 38 Import Modules
自分で作ったモジュールをインポートする方法など.C:/Python27/以下にmodule.py等のファイル名で保存し,import moduleでインポートする.
Tutorial 39 reload Modules
インポートしたモジュールの内容が途中で更新された場合,同様にimportで読み込むだけではモジュールの内容が更新されないので,その場合はreload(module)する必要がある.
Tutorial 40 Getting Module Info
dir(math)でmathモジュールの中身を,help(math)でヘルプファイルを,math.__doc__で簡単な内容を知ることができる.
Tutoriak 41 Working with Files
ファイルの読み書きについて.プログラミングにおいて最も重要な項目の一つではないかと思う.大抵の処理はデータの読み書きを必ず行うことになるので.
fob=open('C:/a.txt', 'w') fob.write('hey now broen cow') fob.close() fob=open('C:/a.txt', 'r') >>> fob.read(3) 'hey' >>> fob.read() ' now broen cow' >>> fob.read() '' >>> fob.close()
Tutorial 42 Reading and Writing
ファイルの読み書きについてパート2,readline()で1行ずつ読む.readlines()で全行読む.
Tutorial 43 Writing Lines
writelines()メソッドで行ごと出力することができる.
全部見てやってみた感想
全体を復習するにはちょうどいいし,特に初めてPythonを触るにはちょうどいいのかもしれない.オブジェクト指向のところも少ない時間ながらわかりやすく説明してくれている.もう少し丁寧に扱って欲しいのはファイルの扱いやNumpyのような拡張モジュールの導入の仕方などかな.あとは『初めてのPython』や『みんなのPython』,またはPythonドキュメントを読みましょう.