リストとタプルと並び替え

元のリストを並び替える >>> arr = [3, 1, 5, 2, 4] >>> arr.sort() # 昇順に並び替え >>> arr [1, 2, 3, 4, 5] >>> arr = [3, 1, 5, 2, 4] >>> arr.reverse() # 逆順に並び替え >>> arr [4, 2, 5, 1, 3] これらはリストオブジェクトのメソッドなので、タプ…

関数の定義と呼び出し

>>> def sum1(start, end): ... n = 0 ... for i in xrange(start, end+1): n += i ... return n # return文で値を返す ... >>> sum1(1, 10) 55 >>> sum1(start=1, end=10) # "仮引数名=実引数"で引数を渡す(キーワード引数) 55 >>> sum1(end=10, start=1)…

シーケンス型と繰り返し

シーケンス型とは文字列やリストのように順序のある要素の集まりです。組み込み型では他に、Unicode文字列、タプル、xrangeオブジェクトがあります。 要素だけを取り出して繰り返す >>> str = "python" >>> for i in str: ... print i ... p y t h o n イン…

例外処理 その2

try文はelse節を持つことができます。else節はtry節の中で例外が発生しなかった場合に実行されます。 >>> while True: ... try: ... file = open(raw_input("ファイル名: ")) ... except IOError: ... print "ファイルが見つかりません" ... else: ... for i…

例外処理 - 簡略まとめ

try: # 例外が起こりそうな処理を記述 # 例外を発生させる if hoge(): raise ValueError("hoge error") except ValueError: # ValueErrorクラスの例外を補足 # 例外が起こった場合の処理を記述 except IOError, inst # 例外オブジェクトを変数instで受け取る…

例外処理 その1

実行中に発生するエラーは例外と呼ばれます。ほとんどの例外は自動的には処理されず、以下のようなメッセージを表示してプログラムを終了します。 >>> int("hoge") Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal fo</module></stdin>…

繰り返し

オブジェクトから要素を一つずつ取り出して繰り返す for文を使います >>> list = ["orange", "apple", "banana"] >>> for i in list: ... print i ... orange apple banana for文に渡すことができるのは、文字列、リスト、タプルや、その他の反復可能オブジ…

辞書オブジェクト

辞書オブジェクトとは、キーを使って複数のオブジェクトをまとめるものです。キーには数値や文字列、タプル(変更不能なリスト)などの変更不能なオブジェクトが使えます。ただし、タプルの要素がリストのような変更可能なオブジェクトの場合はキーに使えま…

条件分岐

Pythonでの条件分岐にはif文を使います。unless文はcase文はありません。 真偽 真 偽でないもの全て 偽 None, False, 0, "", ( ), [ ], { } 論理演算子 not A Aが偽なら真 A and B AとBの両方が真なら真 A or B AとBのどちらかが真なら真 if文 if a > 0 and …

リスト - 作成、取り出し、置換、追加、検索、削除、要素数

作成 >>> list = ["a", "b", "c", "d", "e"] >>> list ['a', 'b', 'c', 'd', 'e'] 取り出し >>> list = ["a", "b", "c", "d", "e"] # n番目の要素を取り出す >>> list[0] 'a' # インデクスが負の数だと後ろから数える >>> list[-1] 'e' # 範囲外のインデクス…

Unicode文字列とバイト文字列の結合

Unicode文字列とバイト文字列を結合する場合、バイト文字列は現在のシステムのデフォルトエンコーディングによってUnicode文字列に変換されます。つまり以下の二つプログラムは同じ結果となります。 # encoding=utf8 str1 = u"おはよう" str2 = "ございます"…

バイト文字列とUnicode文字列

Pythonの文字列にはバイト文字列とUnicode文字列の二種類があります。 print "ぱいそん" # バイト文字列 => ぱいそん print u"ぱいそん" # Unicode文字列 => ぱいそん バイト文字列 バイト文字列はいわゆる普通の文字列で、指定された文字エンコーディングに…

文字リテラルに日本語を使用する

文字エンコーディングとは 文字エンコーディングについて、Googleさんに聞いて理解したことをまとめてみます。大体合っていると思うのですが、もし違っていたらすみません。 コンピュータで扱う文字を集め、それら一つ一つに対して数値を割り当てたものを符…

文字列リテラル

pythonでは「"」と「'」の区別がありません。エスケープシーケンスをそのまま表示したい場合は、クォートの直前に「r」を置きます。 print "Python is an easy to learn,\tpowerful programming language." print 'Python is an easy to learn,\tpowerful pr…

自動ニコニコ動画紹介記事生成スクリプト Python版

id:aprkさんの自動ニコニコ動画紹介記事生成スクリプト AutoNicoDiary 0.1 のPython版です。Cookieをファイルに保存するようにしたので、多少はサーバに優しくなっていると思います。 使い方 kオプションでニコニコ動画の検索キーワードを、-tオプションでち…

今日の初音ミク

今日の人気動画

mechanizeではてなダイアリーを更新する

Pythonに手を出してみようと思います。「Hello, World!」と表示するスクリプトを書いても面白くも何ともないので、mechanizeを使ってはてなダイアリーを更新するスクリプト書いてみます。 mechanizeのインストール mechanizeをインストールるにはeasy_instal…

libwww-rubyが欲しい

とりあえず、Cookieの管理とリダイレクトへの対応をしてくれて、Responseオブジェクトをブロックで受け取れるメソッドを持つ、PerlでいうところのLWPみたいなのが欲しいんだが、探しても見つからない。ていうかWWW::Mechanizeがあるのに、なんでlibwww-ruby…

トランザクションと更新処理にかかる時間

SQLiteでは明示的にトランザクションを開始しない場合、INSERT、UPDATE、DELETEの前後にBEGIN、COMMITが実行される。ということは data.each {|d| db.execute(&#39;insert into test values(?, ?)&#39;, *d) } こう書くよりも db.transaction do data.each {…

トランザクション

トランザクションとは、関連のあるデータベースの更新処理を一つにまとめたもの。BEGINでトランザクション処理を開始し、COMMITで一連の更新処理の結果をデータベースに反映する。また途中で問題が生じた場合はROLLBACKでデータベースをトランザクション処理…

SQLに変数を直接埋め込まない

SQLに変数を埋め込むと、エラーになる可能性があるし、セキュリティの点からもよろしくない。 SQLに変数を埋め込む場合は、プレースホルダを使用する。 db.execute("insert into test values (&#39;#{name}, &#39;#{name}&#39;)") # × db.execute(&#39;inser…

sqlite3-rubyでSQLiteをいじる

sqlite-3-rubyのインストール $ wget http://rubyforge.org/frs/download.php/17097/sqlite3-ruby-1.2.1.tar.gz $ tar xzf sqlite3-ruby-1.2.1.tar.gz $ cd sqlite3-ruby-1.2.1 $ ruby setup.rb config $ ruby setup.rb setup $ ruby setup.rb install デー…

SQLite3インストール

最新版の3.5.1をCygwinにインストールすると以下のようなエラーが出る。 /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../ libcygwin.a(libcmain.o):(.text+0xab): undefined reference to `_WinMain@16&#39; collect2: ld はステータス 1 で終了しました make:…