python 基本1行に1処理を記述 変数 変数名の一文字目には 数字は使用できない。 大文字と小文字は区別される 変数名 = 値 hoge = "abc" print hoge sum = 10 + 35 print sum num = num + 1 同じ num += 1 入力 変数 = raw_input('出力文字') ----------------------------------------------------------- ブロックに含まれるのかをインデントによって表現 ブロック C言語などの { } ではさまれた範囲 処理 #ブロック1 処理 #ブロック2 処理 #ブロック2 処理 #ブロック3 処理 #ブロック1 --------------------------------------------------------- IF文 論理演算子 and or not 数値型 0以外は真(true) 文字列比較 「A」は「a」より 小さい ------------------------------ is句 a is b a = 1 b = a の時 真 ------------------------------ x = 0 y = 1 if x == 0: print "x is 0" if y == 0: print "y is 0" if y != 0: print "y is not 0" if 条件式: 条件式が真の時に実行する処理1 条件式が真の時に実行する処理2 else: 条件式が偽の時に実行する処理1 if 条件式1: 条件式1が真の時に実行する処理 elif 条件式2: 条件式1が偽で条件式2が真の時に実行する処理 elif 条件式3: 条件式1及び条件式2が偽で条件式3が真の時に実行する処理 else: 全ての条件式が偽の時に実行する処理 ---------------------------------------------------------- while 条件式: 条件式が真の時に実行する処理1 else使用可能 while 条件式: 条件式が真の時に実行する処理 else: 条件式が偽の時または真でなくなった時に実行する処理 ----------------------------------------------------------- for 変数 in オブジェクト: 実行する処理 オブジェクトの要素の数だけ処理をする。 10回繰り返したい場合 for var in range(0, 10): 実行する処理 for で else句も使用可能 ----------------------------------------------------------- ファイルの拡張子 py file.py ------------------------------------------------------------ コメント # # 行末 まで コメント ----------------------------------------------------------- 直接起動したい場合 UNIX系 1行目に追加 #!/usr/bin/env python ------------------------------------------------------------ 文字コードの指定 1行目か2行目に記述 # coding: Shift_JIS # coding: UTF-8 ------------------------------------------------------------ 出力 print "文字列" print "文字列", "文字列2" , で終了しているので改行無し。 print "文字列", "文字列2", ------------------------------------------------------------ ''' または """ で 囲う ''' 文字列1 文字列2 文字列3''' \n 無しで 改行される。 ------------------------------------------------------------ 文字列の連結 + "文字列1" + "文字列2" print "hoge" + "1" 結果 hoge1 ------------------------------------------------------------ len(文字列) 文字列の文字数を返す。 str(値) 文字列に変換 ------------------------------------------------------------ 要素を指定 moji = "abc" print moji[0] print moji[1] print moji[2] 結果 a b c str = "ABCDE" slice = str[1:3] # "BC" ------------------------------------------------------------- リスト 数字 と 文字列 の混在が可能 list = [1, "a", "b", 4] 変数 = list[0] インデックス「0」の要素とはリストの先頭の要素ですので変数には1が代入されます。 タプル ( , ) 内容の変更ができない。 辞書 辞書型オブジェクト = {key1:値, key2:値} 値の変更 辞書型オブジェクト[key] = 値 ------------------------------------------------------------- Unicode文字列 UTF-8 を使用 u または U u"文字列" u'文字列' Shift_JIS Unicode関数で文字列を作成 unicode("文字列", "Shift_JIS") ----------------------------------------------------- 割り算 不の数の切捨て結果 -17 / 5 # -4 ----------------------------------------------------- 演算子の優先順位 (優先順位が高い) + - ~x (+と-は単項演算子) ** * / % // + - << >> & ^ | < <= > >= == != <> is is not in not in not and or (優先順位が低い) ------------------------------------------------------- ビット演算 AND & 演算子 1011 = 11 1110 = 14 ------------ 1010 = 10 それぞれ2進数で表します。 print 11 & 14 # 10 ---------------------------------------------------------- OR l 演算子 print 10 | 12 # 14 XOR a ^ b ------------------------------------------------------------ 左に1bit シフト print 11 << 1 # 22 ---------------------------------------------------------- 数値に変換 int("数",基数) int("14", 16) # 20 --------------------------------------------------------- 関数 def 関数名(引数): 処理 return ---------------------------------------------------------- インポート import モジュール名 import モジュール名 as モジュール省略名 from モジュール名 import 使用したい関数 自作モジュール カレントディレクトリーに 自作モジュール.py を作成 import 自作モジュール コンパイル された Python ファイル 自作モジュール.pyc が作成される。 dir() は、あるモジュールがどんな名前を定義しているか調べる dir(モジュール名) --------------------------------------------------------- クラス class ClassName: <文-1> . . . <文-N> インスタンス生成 x = クラス名() 継承 class 継承クラス名(基底クラス名): <文-1> . __ init__ クラスの"コンストラクタ"の名前で、インスタンスを作る時に呼び出される。 ---------------------------------------------------------- 例外処理 try try と except のあいだの文 が実行されます。 何も例外が発生しなければ、except 節 をスキップして try 文の実行を終えます ----------------------------------------------------------- Pygame cygwin python-pygame-1.8.1-1.tar.bz2 pygame.init() # pygameの初期化 screen = pygame.display.set_mode( (320, 240) ) # 画面を作る pygame.display.set_caption(' ') # タイトル pygame.display.flip() # 画面を反映 Surface型変数 = pygame.image.load('block.bmp') # 絵を読み込む Surface型変数 = image.convert() # 環境にあわせ最適化 backImg = pygame.image.load("hoge.jpg").convert() # 背景 pythonImg = pygame.image.load("hoge.png").convert_alpha() # 背景色にあわせる rect型変数 = Surface型変数.get_rect() # Surface型変数のrectを取得 文字列 フォントの作成 sysfont = pygame.font.SysFont(None, 80) hello = myfont.render("Hello, world!", True, (255,0,0), (255,255,0)) # テキストを描画する screen.blit(hello1, (20,50)) screen.blit(Surface型変数, rect型変数) # 絵を画面に貼り付ける 透明色 ckey = Surface型変数.get_at((0,0)) # 一番左上の色を取ってくる Surface型変数.set_colorkey(ckey) for event in pygame.event.get(): # イベントチェック pygame.draw.rect(screen, (0,255,128), playerRect) # 四角を描画 pygame.draw.ellipse(screen, (255,128,0), ballRect)# 内接円を描画 pygame.transform.scale2x() #倍サイズ keyin = pygame.key.get_pressed() # キー入力 clock = pygame.time.Clock() while 1: clock.tick(60) # keep the 60 fps screen.fill((0,0,0)) # 画面のクリア imagerect.x += 1 # 画像を移動 透明色にする。 set_colorkey(ckey) Rect型オブジェクト (x,y,w,h) を持つ topleft 左上座標 (x, y) topright 右上座標 (x+w, y) bottomleft 左下座標 (x, y+h) bottomright 右下座標 (x+w, y+h) center 中心座標 (x+w/2, y+h/2) 当たり判定 Rect rectA.contains(rectB) # rectAにrectB が完全に含まれていればTrue Rect rectA.colliderect(rectB) # rectA にrectB が1 ドットでも重なっていればTrue Rect rectA.collidepoint(x,y) # (x,y)の座標がrectA に重なっていればTrue ----------------------------------------------------------------------------------- jython java -jar jython_installer-2.5.1.jar jython -C utf-8