python メモ


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


[一つ前に戻る] TOP PAGE
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送