2011年06月30日

Pythonを使ってみました(14)


■フォーマット

<例>
a = 15
# 4文字分場所を取ってスペースで右に詰める
print('{0:4d}'.format(x))
# ゼロ詰め
print(repr()a.zfill(5))
# 指定した桁数を超えた場合は元の値を表示
b = 9999
print(repr(b).rjust(2))
# 指定した桁数のみを取得して表示
print(repr(b).rjust(2)[:2])
#1 文字列のフォーマット
print('{0} 疲れているなぁ {1]'.format('最近', '...'))
print('{muri1}ことですが?{muri2}ですか?'.format(muri1='ムリという',muri2='本当にムリ'))

<実行結果>
15
00015
9999
99
最近 疲れているなぁ ...
ムリということですが?本当にムリですか?
posted by rururu at 02:09| Comment(0) | TrackBack(0) | Python

2011年06月26日

Pythonを使ってみました(13)


―――――――――――――――――――
■find()メソッド
―――――――――――――――――――
<構文>
x.find(検索文字列[, 開始インデックス[, 終了インデックス]])

<例>
a = "1234"
print(a.find("4"))

<実行結果>
3
―――――――――――――――――――
■index()メソッド
―――――――――――――――――――
<構文>
x.index(検索文字列[, 開始インデックス[, 終了インデックス]])

<例>
a = "1234"
print(a.index("4"))

<実行結果>
3

―――――――――――――――――――
■endswith()メソッド
―――――――――――――――――――
<構文>
x.endswith(検索文字列[, 開始インデックス[, 終了インデックス]])

<例>
a = "1234"
print(a.endswith("4"))

<実行結果>
True

―――――――――――――――――――
■startswith()メソッド
―――――――――――――――――――
<構文>
x.startswithh(検索文字列[, 開始インデックス[, 終了インデックス]])

<例>
a = "1234"
print(a.endswith("4"))

<実行結果>
False

―――――――――――――――――――
■strip()メソッド
―――――――――――――――――――
<構文>
x.strip([削除文字列])

<例>
a = " 1234 "
print(a.strip(" "))

<実行結果>
1234

―――――――――――――――――――
■upper()メソッド
―――――――――――――――――――
<構文>
x.upper()

<例>
a = "abcd"
print(a.upper())

<実行結果>
ABCD

―――――――――――――――――――
■lower()メソッド
―――――――――――――――――――
<構文>
x.lower()

<例>
a = "ABCD"
print(a.lower())

<実行結果>
abcd

―――――――――――――――――――
■ljust()メソッド
―――――――――――――――――――
<構文>
x.ljust(幅[, 埋め草文字列])

<例>
a = "1234"
print(a.ljust(10,"0"))

<実行結果>
1234000000
posted by rururu at 23:22| Comment(0) | TrackBack(0) | Python

2011年06月21日

Pythonを使ってみました(12)


―――――――――――――――――――
■エスケープシーケンス
―――――――――――――――――――
エスケースシーケンス | 説明
=====================================
\n | 改行
\r | 改行(CR、キャリッジ・リターン)
\t | 水平タブ
\f | 改ページ(ライン・フィールド)
\' | シングルクオーテーション
\" | ダブルクオーテーション
\\ | バックスラッシュ(\)
\x61 | 8バイトの16進数に対応する8ビット文字
\u3042 | 16ビット16進数に対応するUnicode文字、
| 16進数部分には「0x」は不要
\0 | Null文字

<例>
a = "\"test\""
print(a)

<実行結果>
"test"

―――――――――――――――――――
■raw文字列
―――――――――――――――――――
エスケープシーケンスの置き換えをしたくない
場合に使う。

<例>
print(r"C:\path\file")

<実行結果>
C:\path\file

―――――――――――――――――――
■split()メソッド
―――――――――――――――――――
<例>
a = "123 456 789"
b = a.split()
print(b[0])
print(b[1])
print(b[2])

<実行結果>
123
456
789

―――――――――――――――――――
■join()メソッド
―――――――――――――――――――
<例>
a = "123 456 789"
b = a.split()
c = " ".join(b)
print(c)

<実行結果>
123 456 789
posted by rururu at 01:19| Comment(0) | TrackBack(0) | Python

2011年06月20日

Pythonを使ってみました(11)


―――――――――――――――――――
■16進数
―――――――――――――――――――
・先頭に「0」をつける。
・その後に「x」を記述。
・続けて、0から9までの数値とaからfまでの英字を記述
<記述例>
0x1ff

―――――――――――――――――――
■8進数
―――――――――――――――――――
・先頭に「0」をつける。
・0から7までの8種類の数字。
<記述例>
0123

―――――――――――――――――――
■ビット演算
―――――――――――――――――――
演算子 | 説明
=======================================
x | y | xとyの論理和(OR)
x & y | xとyの論理積(AND)
x ^ y | xとyの排他的論理和(XOR)
x << y | シフト演算子。<<はxをyビット左にシフト。
x >> y | >>はxをyビット右にシフト

posted by rururu at 00:12| Comment(0) | TrackBack(0) | Python

2011年06月18日

Pythonを使ってみました(10)


―――――――――――――――――――
■関数
―――――――――――――――――――
<定義>
def 関数名([引数]):
処理

<注意>
・引数が無い場合は、()の中身は空にする。
・引数が複数ある場合はカンマ(,)で区切る。
・関数名は変数と同じ規則。
・関数名の大文字と小文字は区別される。
・戻り値を指定する場合はreturn 戻り値と記述。

<例>
def kekka(value):
return (int)value * 1.05

print(int(kekka(100)))

<実行結果>
105

―――――――――――――――――――
■キーワード関数
―――――――――――――――――――
変数に直接値を渡したい場合

<例>
def kekka(value):
return (int)value * 1.05

print(int(kekka(value=1000)))

<実行結果>
1050

―――――――――――――――――――
■引数のデフォルト値
―――――――――――――――――――
変数に直接値を渡したい場合

<例>
def kekka(value=100):
return (int)value * 1.05

print(int(kekka()))

<実行結果>
105
posted by rururu at 00:22| Comment(0) | TrackBack(0) | Python

2011年06月16日

Pythonを使ってみました(9)


―――――――――――――――――――
■for文
―――――――――――――――――――
<文法>
for 繰り返し変数 in シーケンス:
処理

<文法2>
for 繰り返し変数 in range(繰り返し回数):
処理

<文法3>・・・1から10まで1ずつ
for 繰り返し変数 in range(1, 11, 1):
処理

<文法4>・・・100から110まで
for 繰り返し変数 in range(100, 111)
処理

―――――――――――――――――――
■while文
―――――――――――――――――――
<文法>
ループカウンタの初期化
while 終了条件:
処理
ループカウントのカウントアップ

<例>
cnt = 0
while cnt < 10:
print(cnt)
cnt += 1

<実行結果>
0
1
2
3
4
5
6
7
8
9
posted by rururu at 01:06| Comment(0) | TrackBack(0) | Python

2011年06月15日

Pythonを使ってみました(8)


―――――――――――――――――――
■比較演算子
―――――――――――――――――――
・x == y
xとyが等しい時にTrue
・x != y
x <> y
xとyが等しくない時True
・x < y
x > y
xとyの大きさを比較
・x >= y
x <= y
xとyが等しい場合を含み、大きさを比較
・x in y
シーケンスにある要素が含まれるかどうかを比較
・not
TrueとFalseを逆にする

―――――――――――――――――――
■論理演算子
―――――――――――――――――――
・and
条件a and 条件b
条件aと条件bが両方成り立つならTrue

・or
条件a or 条件b
条件aと条件bのどちらかが成り立つならTrue

―――――――――――――――――――
■組み込み型を比較
―――――――――――――――――――
<例>
s = "なぞ"
prin(s == "なぞ")
prin(s == "うそ")
a = [5, 4, 3, 2]
print(a == [5, 4, 3, 2])
print(a == [5, 4])

<実行結果>
True
False
True
False

―――――――――――――――――――
■文字列検索と比較
―――――――――――――――――――
<例>
s = "php5.3"
if s.find("php") != -1:
print "phpという文字があります"

<実行結果>
phpという文字があります

―――――――――――――――――――
■比較前に数値や文字列に変換
―――――――――――――――――――
<例>
n = 2
n2 = "2"
print(str(n) == n2)
print(n == int(n2))

<実行結果>
True
True

posted by rururu at 00:33| Comment(0) | TrackBack(0) | Python

2011年06月14日

Pythonを使ってみました(7)


―――――――――――――――――――
■辞書
―――――――――――――――――――
<例>
a = {"name":"dame", "nickname":"muri"}
print(a) # 辞書の中身を確認
print(a['name']) # キーを指定して値を表示
a['name'] = "mou mimasen" # 値を更新
print(a['name']) # キーを指定して値を表示
a['age'] = 32 # 新しいキーを追加
print(a) # 辞書の中身を確認
del a['nickname'] # nicknameというキーを削除
print(a) # 辞書の中身を確認

<実行結果>
{'nickname': 'muri', 'name': 'dame'}
dame
mou mimasen
{'age': 32, 'nickname': 'muri', 'name': 'dame'}
{'age': 32, 'name': 'dame'}

―――――――――――――――――――
■キーの一覧と確認
―――――――――――――――――――
<例>
rssitem = {"title":"Rubyを勉強中",
"link":"http://rururu.sakura.ne.jp/",
"dc:date":"2010-05-05T13:24:04Z"}
print(rssitem.keys()) # キーの一覧を表示
print(rssitem.has_key('dc:creator')) # has_key()メソッドの実行
print('ucc' in rssitem)
print('dc' in rssitem)

<実行結果>
dictkeys(['dc:date', 'link', 'title'])
False
True

―――――――――――――――――――
■タプル
―――――――――――――――――――
<例>
a = (8, 5, 3, 1, 2)
print(a) # タプルの中身を表示
print(a[1])
print(a[2:4])
t2 = a + (350, 350)
print(t2)

<実行結果>
(8, 5, 3, 1, 2)
5
(3, 1)
(8, 5, 3, 1, 2, 350, 350)
posted by rururu at 00:06| Comment(0) | TrackBack(0) | Python

2011年06月12日

Pythonを使ってみました(6)


―――――――――――――――――――
■リスト
―――――――――――――――――――
<例>
a = [1, 2, 3, 4, 5] # リストを定義して変数を代入
print(a) # リストの中身を表示
print(a[2]) # a[2]の値を表示
print(a[-1]) # リストの最後の要素を表示

<実行結果>
[1, 2, 3, 4, 5]
3
5

―――――――――――――――――――
■スライスを利用して要素を取り出す
「:」の後ろに指定する数値は、取り出したい要素の
インデックスに1を加えた整数を指定する必要があります。
―――――――――――――――――――
<例>
a = [1, 2, 3, 4, 5] # リストを定義して変数を代入
print(a[1:3])
print(a[3:4]) # 3番目だけを表示
print(a[2:]) # 2番目から最後まで表示
print(a[:3]) # 最初(0番目)から3番目まで表示

<実行結果>
[2, 3]
[4]
[3, 4, 5]
[1, 2, 3]

―――――――――――――――――――
■リストを使った足し算
―――――――――――――――――――
<例>
a = [1, 2, 3, 4, 5] # リストを定義して変数を代入
b = a + [100, 101, 102] # リストaに他のリストを連結してbに代入
print(b)

<実行結果>
[1, 2, 3, 4, 5, 100, 101, 102]

―――――――――――――――――――
■リストを使った掛け算
―――――――――――――――――――
<例>
a = [1, 2, 3] * 3 # リストの掛け算を行い、変数に代入
print(a)

<実行結果>
[1, 2, 3, 1, 2, 3, 1, 2, 3]

―――――――――――――――――――
■リストの要素を置換/削除
―――――――――――――――――――
<例>
a = [1, 2, 3, 4, 5] # リストを定義して変数を代入
a[1] = "Two" # リストの1番目の要素を置換
print(a)
del a[2] # リストの2番目の要素を削除
print(a)

<実行結果>
[1, 'Tow', 3, 4, 5]
[1, 'Tow', 4, 5]

―――――――――――――――――――
■リストの最大値、最小値
―――――――――――――――――――
<例>
a = [1, 2, 3, 4, 5] # リストを定義して変数を代入
print(min(a)) # リストの最小値を表示
print(max(a)) # リストの最大値を表示

<実行結果>
1
5
―――――――――――――――――――
■リストのソートと順序の反転
―――――――――――――――――――
<例>
a = [4, 1, 3, 2, 5] # リストを定義して変数を代入
a.sort() # sort()メソッドを実行
print(a)
a.reverse() # 並び順を逆にする
print(a)

<実行結果>
[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]

―――――――――――――――――――
■リストに要素を追加
―――――――――――――――――――
<例>
a = [1, 2, 3, 4, 5] # リストを定義して変数を代入
a.append(100) # リストに100を追加
print(a)
a.append([200, 300]) # リストを追加
print(a)

<実行結果>
[1, 2, 3, 4, 5, 100]
[1, 2, 3, 4, 5, 100, [200, 300]]

―――――――――――――――――――
■リストとリストの連結
―――――――――――――――――――
<例>
a = [1, 2, 3, 4, 5] # リストを定義して変数を代入
a.extend([200, 300]) # リストaと[200,300]のリストを連結
print(a)

<実行結果>
[1, 2, 3, 4, 5, 200, 300]
posted by rururu at 23:22| Comment(0) | TrackBack(0) | Python

Pythonを使ってみました(5)


―――――――――――――――――――
■文字列を数値に変換
―――――――――――――――――――
<例>
nstr = "1234"
print(int(nstr) + 5678)

<実行結果>
6912

―――――――――――――――――――
■文字列の長さを調べる
―――――――――――――――――――
<例>
linestr = "ダメ"
print(len(linestr)

<実行結果>
2

―――――――――――――――――――
■文字列の検索
 (見つかった場合はインデックスを返し、
  見つからなかった場合は-1を返す)
―――――――――――――――――――
<例>
digits = "1234"
print(digits.find("23"))
print(digits.find("89"))

<実行結果>
1
-1

―――――――――――――――――――
■文字列の置換
―――――――――――――――――――
<例>
digits = "1234"
digits = digits.replace("23", "2233")
print(digits)
<実行結果>
122334

―――――――――――――――――――
■インデックスを使って要素を取り出す
―――――――――――――――――――
<例>
degits = "1234"
print(degits[2])

<実行結果>
3

―――――――――――――――――――
■Unicode文字列の長さを調べる
―――――――――――――――――――
<例>
str = "ハイネケン"
bytestr = str.encode("utf-8")
print(len(bytestr)

<実行結果>
15
posted by rururu at 01:18| Comment(0) | TrackBack(0) | Python

2011年06月04日

Pythonを使ってみました(4)


1. for文
Pythonの場合、for文にelseが使えるらしいです。
[例]
for i in range(1,10):
j = 1
for j in range(j,i):
s = s + "△")
print(s)
s = ""
[実行結果]

△△
△△△
△△△△
△△△△△
△△△△△△
△△△△△△△
△△△△△△△△

2. while文
[例]
i = 1
j = 1
while i < 10:
j = 1
while j < i:
s = s + "△"
j += 1
print(s)
s = ""
i += 1
[実行結果]

△△
△△△
△△△△
△△△△△
△△△△△△
△△△△△△△
△△△△△△△△

3. break
[例]
i = 0
j = 0
for j in range(1,10):
for i in range(1,10):
s = s + sr(i) + " "
if i == j:
print(s)
s = ""
break
[実行結果]
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9

4. continue
[例]
i = 0
for i in range(1,10):
if i % 2 == 0:
print(s)
s = ""
continue
else:
s = s + str(i) + " "
[実行結果]
1
3
5
7

posted by rururu at 12:52| Comment(0) | TrackBack(0) | Python

Pythonを使ってみました(3)


分岐(if)について

――――――――――――――――――――――
■if (分岐)
――――――――――――――――――――――
キーワード ‘elif‘ は ‘else if’ を短くしたもので、
過剰なインデントを避けるのに役立ちます。

★記述方法
if [条件式1]:
処理1
elif [条件式2];
処理2
else:
処理3
posted by rururu at 02:53| Comment(0) | TrackBack(0) | Python

2010年01月20日

Pythonを使ってみました(2)


変数、算術演算子、複合演算子、論理演算子、比較演算子
についてまとめました。

――――――――――――――――――――
変数名
――――――――――――――――――――
・アルファベット、数字、アンダースコア
→日本語は使用不可、空白やドット(.)、
カンマ(,)なども利用できない。
・はじめの1文字はアルファベットまたはアンダースコア
・アルファベットの大文字と小文字を区別する
・約30個ほど、利用できない名前がある(予約語)

(例1) 変数を使って計算する
a = 0
a = a + 1
print(a)
(例2) 変数に文字列を代入
a = "abc"
print(a)

――――――――――――――――――――
算術演算子
――――――――――――――――――――
+ | 足し算
- | 引き算
* | 掛け算
/ | 割り算(//を使うと小数点以下切り捨ての割り算)
% | 割り算の余り
** | 累乗

(例)
print(100 + 20)
print(100 - 20)
print(100 * 2)
print(1 / 2)
print(2 ** 20)

――――――――――――――――――――
複合演算子
――――――――――――――――――――
a += 1 | a = a + 1と同じ
a -= 1 | a = a - 1と同じ
a *= 1 | a = a * 1と同じ

未定義の変数うに対して複合演算子を使うと
エラーになります。
++や--はPythonでは利用できません。

――――――――――――――――――――
論理演算子
――――――――――――――――――――
a and b ・・・pythonでは「&&」を「and」と記述
a or b ・・・pythonでは「||」を「or」と記述

――――――――――――――――――――
比較演算子
――――――――――――――――――――
x == y ・・・xとyが等しい場合にTrue
x != y ・・・xとyが等しくない場合にTrue
x <> y
x > y ・・・xがyより大きい場合にTrue
x < y ・・ xがyより小さい場合にTrue
x >= y ・・・xがyより大きいか等しい場合にTrue
x <= y ・・・xがyより小さいか等しい場合にTrue
x in y ・・・xという要素がyというシーケンスに含まれる場合にTrue
not ・・・TrueとFalseを逆にします。
「not x == y」「x not in y」
posted by rururu at 00:50| Comment(0) | TrackBack(0) | Python

2010年01月19日

Pythonを使ってみました (1)


Gogleで使われているのが有名で、
コンテンツ管理システム「Zope」がPythonで作られて
いたり、Java VM上で動作する「Jython」などの広がり
を見せているオブジェクト指向スクリプト言語「Python」
をインストールしてみました。

1、以下のサイトからWindows用インストーラをダウンロード
(python-3.0.1.msi)
http://www.python.org/download/
2、ダウンロードしたファイルを実行。
インストーラの指示に従って任意の場所にインストール
3、動作確認
スタートメニューのPython30から「IDLE (Python GUI)」を
起動できるようになります。
Pythonがユーザーに入力を求める、入力プロンプトである「>>>」
の記号が表示されたら、インストールが成功しています。
「exit()」を入力して終了します。
4、環境変数の設定
環境変数PathにPythonをインストールしたディレクトリと、
その直下のScriptディレクトリを入れる。
例) D:Python30にインストールした場合
『D:\Python30;D:\Python30\Scripts』をPathの最後に挿入
5、念のため再起動
6、コマンドプロンプトを立ち上げ、『python –V』と打って
バージョンが表示されたらOK!
7、Hello Worldの作成
(1) テキストエディタを開き、以下のコードを入力
print('Hello, World!')
(2) ファイル名は「HelloWorld.py」で保存
コマンドプロンプトを起動して以下のコマンドを実行
ファイルの場所> python HelloWorld.py
「Hello, World!」と表示されるはずです。
[参考情報]
Python 3.0開発者ガイド:コア言語の変更点
http://codezine.jp/article/detail/4051
posted by rururu at 23:58| Comment(0) | TrackBack(0) | Python