HOME Python �񤭹���

Python ��ᤰ��


0. ����

Python �γ��פ�ȥåץ�������������Ƥߤޤ����� �ޤ���python �ε�ư��ˡ��������ץȤν񼰤ˤĤ����������Ƥ��� �������٤����ä����äƤ����ޤ���������������������Τǡ�˰�����Ȥ����Ǥ�����Ȥ�������������ޤ��� �������ܥȥॢ�åפ������������ϩ�����Ȥ��Ƥ��ޤ������Ϥ����������ä�³���������ʤ�˰���Ƥ��ޤ� �Ȥ�������������ޤ���

Python �Ͽ͵��ˤʤ�ĤĤ������ǡ�ͥ�줿�Ҳ𵭻��� Web ��ˤ������󤢤�ޤ��� ������Ǥ⡢���� Python �桼������ ͥ�줿�����ȤǤ����������顢�Ƽ�ޥ˥奢������ܸ���������������ɤǤ��ޤ��� ���β��⵭���ϡ��¤ϡ����� Python �桼�������������ޥ˥奢��ؤΥ�󥯽��Ǥ��� ��󥯤�ĥ���Ȥ��� HTML ����ħ���������С�̵���ʤ����ȥåץ����������β����񤯤��Ȥ�����ޤ���

���ʤߤˤ����ǡ��ܥȥॢ�åפȤ����Τϸġ������ʤ��äƤ������Τ���Ȥ�����̣�Ǥ��� ��Ҥʤɤ��ȿ��Dz��ؤ��װ���ȯ�Ƥǥץ��������Ȥ򵯤����Ȥ�����̣�ǤϤ���ޤ��� Ʊ�ͤˡ��ȥåץ����������Τϸ����ޤ򼨤��Ƥ����ʡ��Ⱥ٤����ä�����Ȥ�����̣�Ǥ��� ��Ҥʤɤ��ȿ��ǥȥåפ�ȯ�Ƥǥץ��������Ȥ򵯤����Ȥ�����̣�ǤϤ���ޤ��� ǰ�Τ��ᡣ

0.1. �ܼ�

  1. ��ư��ˡ
  2. Python ������ץȤν�
  3. ����
  4. �֥��å�
  5. ������
  6. �ؿ����
  7. ���饹���
  8. �ǡ�����
  9. �黻��
  10. �饤�֥�꡼�ĥ���
  11. ��Ͽ

1. ��ư��ˡ

�ޤ���Python �μ¹ԥե�����Τ���ǥ��쥯�ȥ�� PATH ���̤��Ƥ����ޤ���
���θ塢�ץ���ץȤ��顢
python option   script   argvs 
���Ǥ�����ȵ�ư���ޤ���"python" �Ȥ������Ǥ���������å⡼�ɤ����� "&gt&gt&gt" �Ȥ����ץ���ץȤ� ɽ������ޤ������å⡼�ɤϸġ��δؿ���ƥ��Ȥ���Τ������Ǥ��� ��ư���ץ����ϰʲ����̤�Ǥ���
python [-diOStuUvx?] [-c command | script | - ] [argvs]
���ץ���� ����
-d �ǥХå��������Ϥ��롣
-i ������ץȤ�����Ū�˸��������ץ���ץȤ���Ϥ��롣
-O ��������Х��ȥ����ɤ��Ŭ�����롣
-S import ʸ��̵�뤹�롣
-t ̷�⤷������ǥ���դ���ٹ𤹤롣
-u �Хåե�̵���ΥХ��ʥ꡼ɸ����Ϥ�ɸ�२�顼����
-U ʸ�����ƥ��� Unicode �Ȥ����ɤ�
-v �ܺ٤� import ʸ������
-x �������κǽ�ιԤ򥹥��åס�
-? �إ��
-c command
���ꤵ�줿���ޥ�ɤ�¹�
script
python �ե����� (.py) ���ɤ߹���Ǽ¹�
argvs
������ץȤޤ��ϥ��ޥ�ɤΰ���
���å⡼�ɤǵ�ư����Ȥ����Ķ��ѿ� PYTHONSTARTUP �ǻ��ꤵ�줿�ե�������ɤ߹��ߤޤ��� �褯�Ȥ��⥸�塼��� import ���Ƥ����������Ǥ��� �ܤ����� ���塼�ȥꥢ�� 2.1. �򸫤Ƥ���������

�������ȥ��åץե�������㡧

01:     # PYTHONSTARTUP
02:     
03:     import sys, math, re, os, os.path
04:     print 'sys, math, re, os, os.path has been imported.'

2. Python ������ץȤν�

Python ������ץȤν񼰤ϰʲ����̤�Ǥ���
00:     #! /usr/bin/env python
01:     # -*- coding: shift_jis  -*-
02:     
03:     r"""
04:     ������ץȤˤĤ��Ƥ�����
05:     ��������
06:     ��������
07:     """
08:     import string
09:     from datetime import date
10:     import tkinter as tk
11:     
12:     #function
13:     def sum(ls):
14:         """ �ꥹ�Ȥ����Ǥι�פ����"""
15:         s=0
16:         for x in ls:
17:             s+=x
18:         return s
19:     
20:     class MyClass:
21:         """��Υ��饹"""
22:         def __init__(self, p1, p2):
23:             self.p1 = p1
24:             self.p2 = p2
25:     
26:         def show_p1(self):
27:             return self.p1
28:     
29:         def show_p2(self):
30:             return self.p2
31:     
32:     if __name__ == '__main__':
33:         print sum([x*x for x in range(10)]
��
01:
UNIX �ǥ�����ץȤ�ľ�ܼ¹Ԥ���Τ˻Ȥ��ޤ��� chmod +x script �Ȥ���� python script �Ȥ����� script �Ȥ���м¹Ԥ���ޤ��� UNIX �ʳ��� OS �Ǥ⡢�ܿ������θ���Ƥ��ιԤ�񤤤��ۤ����ɤ��Ǥ��礦�� ���ʤߤ� '#' ��������ޤǤϥ����ȤȤߤʤ���ޤ��������ܤȣ����ܤ��ü�ʥ����ȤǤ���
02:
�����������ɤ�ʸ����������������ꤷ�ޤ������ܸ��Ȥ���� shift_jis, euc-jp, ���뤤�� iso-2022-jp ����ꤷ�ޤ��� Python 2.4 �ʹߤǤ����ܸ�Υ⥸�塼��� �������ꤹ��ɬ�פϤ���ޤ���
03--06:
�����ɤ�������񤭤ޤ������ť�������(""") �ǰϤޤ줿 ʸ����ϡ����Τޤޤη���ɽ������ޤ��� �����������ɤ���Ƭ���ޤ��ϥ��饹��ؿ����������Ƭ�ˡ����ť������ȤǰϤޤ줿ʸ���󤬤���� pydoc ������˴�Ť�������ʴ����� HTML �����Υޥ˥奢���ưŪ�˺�äƤ���ޤ���
08--10:
�⥸�塼��� import ���ޤ���python �� C ����Τ褦��¿���Υ饤�֥���ʬ����Ƥ��ơ� �ۤȤ�ɤδؿ������饹����� etc �ϥ饤�֥��ʥ⥸�塼��ˤ˼�����Ƥ��ޤ��� �⥸�塼��� import ����񼰤ˤϼ��Σ��̤꤬����ޤ���
  1. import module
  2. from module import name
  3. import module as nickname
  4. from module import *
�����ܤ� module �����̤� import ���ޤ���module �����name��Ȥ��Ȥ��ˤ� module.name�Ȥ��ޤ���
�����ܤ���ˡ���ȡ�ñ��name�Ƚ񤯤�����module �����name��Ȥ����Ȥ�����ޤ���
�� ���ܤ� module �� nickname�Ȥ���̾����Ĥ��� import ���ޤ��� module �����name��Ȥ��Ȥ��ˤ� nickname.name�Ȥ��ޤ���
�����ܤ���ˡ�ϡ�module �� export ����Ƥ���̾�����ƤˤĤ���ñ��name�Ƚ񤯤����� �Ȥ����Ȥ�����ޤ���python �ˤ�̾����Ʊ���ǥ⥸�塼�뤬�ۤʤ뵡ǽ���������󤢤�Τǡ� ������ˡ��������ޤ���module ̾��񤯤Τ����ݤʤȤ��ϣ����ܤ���ˡ���Ѥ��� module ̾�� û���˥å��͡����Ĥ��� import ���ޤ��礦���㤨�С�
import os.path as path
import Tkinter as tk
13--18:
�ؿ�����Ǥ������Ϥ��������ޤ���
20--30:
���饹����Ǥ������Ϥ��������ޤ���
32--33:
���Υ�����ץȤ�ľ�ܸƤФ줿�Ȥ��� 33 ���ܤ��¹Ԥ���ޤ��� 32 ���ܤϤ��Τ���Τ��ޤ��ʤ��Ǥ���

���å⡼�ɤǡ�import(script) ��Ȥä��ɤ߹��ޤ줿�Ȥ��ˤ� 33 ���ܤϼ¹Ԥ���ʤ��Τǡ� �ġ��δؿ����̸Ĥ˥ƥ��Ȥ���Τ������Ǥ���

3. ����

�����顢�ȥåץ��������������Ȥ��äƤ������ˤĤ��ƤϺǽ�˽Ҥ٤Ƥ���ɬ�פ�����ޤ���

Python �������ϴ���Ū�� C �����Ʊ���ǡ�'=' �α�¦���ͤ�¦���������ޤ��� C ����Ȱ㤦�Ȥ����ϡ�����ʸ���ͤ��֤��ʤ��Ȥ����Ǥ������äơ�C �����������Τ褦�ˤϽ񤱤ޤ���

c=1
if 0==(a=c):
    print 'a = 0'
else:
    print 'a = 1'
�ޤ���Python ��ʣ����������Ʊ���˹Ԥ����Ȥ��Ǥ��ޤ�������ϤȤƤ⥯����Ǥ���2���ܤΤ褦�˹�¤��������Ǥ��ޤ���
a, b, c = 1, 2, 3
(a, (b, c)) = (10, (20, 30))

4. �֥��å�

Python �Υ֥��å��ϥ����� ':' �ȥ���ǥ�Ȥ����äǻϤޤꡢ����ǥ�Ȥ��������Ƚ�λ���ޤ��� �֥��å��ˤϸ����������ؿ���������饹����Τۤ��ˡ����Τ�Τ�����ޤ���

4.1. ʬ��(if, elif, else)

�񼰤ϼ����̤�Ǥ���
�ޤ���test ��ɾ������ ���줬�����֤��� then_block ��¹Ԥ��ޤ���
�����Ǥʤ���С� test_elif ��ɾ���������줬�����֤��� elif_block ��
�����Ǥʤ���� else_blick ��¹Ԥ��ޤ���
if test:
    then_block
elif test_elif:
    elif_block
else:
    else_block

�����ͤˤĤ��ơ�

Python �Ǥ� None�� False�������ʿ��͡ˡ� ��
�������������� �ڤӥ桼��������饹�� __nonzero__() �� __len__() ������ zero �ޤ��� False ���֤���� �ϵ��Ȥ��ư����ޤ��� ����¾���� (True, etc) �Ͽ��Ȥ��ư����ޤ��� ��ӱ黻�Ҥˤ� ==, !=, &lt, &gt, &lt=, &gt=, in, is ������ޤ����ޤ� ������ȿž������黻�� not ������ޤ��� ��ӱ黻�ҤȤ褯�Ȥ������ʹؿ�����Ͽ��. �����ͤ��֤��黻�Ҥȼ�ʴؿ��򻲾Ȥ��Ƥ���������

4.2. �롼��

�롼�פ򵭽Ҥ���֥��å��ˤ� while �� for ������ޤ���

4.2.1. while �롼��

�񼰤ϰʲ����̤�Ǥ���
test �����δ֡�body_block ��¹Ԥ��ޤ��� C �����Ʊ�ͤ˥롼�פ���ȴ���Ф� break, ���Υ롼�פإ����פ��� continue ���Ȥ��ޤ��� �롼�פ���break ��ȴ���Ф��ʤ��ǡ˽�λ�������� else_block ���¹Ԥ���ޤ��� else_block �Ͼ�ά��ǽ�Ǥ���
while test:
    body_block
    if break_test:
           break
    if continue_test:
           continue
else:
    else_block

4.2.2. for �롼��

�񼰤ϰʲ����̤�Ǥ���
iterator ������ x �ˤĤ��ơ� body_block ��¹Ԥ��ޤ��� while ��Ʊ�ͤ� break, continue ���Ȥ��ޤ��� �롼�פ���break ��ȴ���Ф��ʤ��ǡ˽�λ�������� else_block ���¹Ԥ���ޤ��� else_block �Ͼ�ά��ǽ�Ǥ���
for x in iterator:
    body_block
    if break_test:
           break
    if continue_test:
           continue
else:
    else_block

4.2.3. for �롼�פμº�

for �롼�פ� python �Ǥ褯�Ȥ���֥��å��Ǥ����ʲ��Τ褦�ʻȤ���������ޤ���
range, xrange: �����ϰϤˤ錄�뷫���֤�
range �ؿ����Ѥ��ƿ��Υꥹ�Ȥ��ꡢ���줫�����Ǥ򣱤Ĥ��ļ�äƤ��Ʒ����֤��ޤ��� range �����̤δؿ��ǡ���ľ�˥ꥹ�Ȥ��֤��ޤ����� xrange �� generator �ʤΤǡ� �ƤФ�뤿�Ӥ�ɬ�פʿ����֤��ޤ����ϰϤ��礭���Ȥ��� xrange ��Ȥ��ۤ����ɤ��Ǥ��礦�� �ʤ�������Python 3 �Ǥ� range �� generator �ˤʤ�Τǡ�xrange ��̵���ʤ뤫���Τ�ޤ��󡣡�
>>> for x in xrange(10):
	print x, ', ',

0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 
iterator ���ֹ��Ĥ��롣
enumerate ��Ȥ��ޤ���
>>> s='abc'
>>> for i, c in enumerate(s):
	print i, ':', c, ' ',

0 : a   1 : b   2 : c    
�ե�����ιԤ���Ф��Ʒ����֤���
file object �� iterator �Ȥ��ƻȤ��� �ƹԤ����֤˼��Ф���ޤ���
for line in _file:
     ..............
iteritems()
���������Ƥˤ錄�äƥ롼�פ�Ԥ��ݡ�iteritems() �᥽�åɤ�Ȥ��ȡ� �����Ȥ�����б������ͤ�Ʊ���˼��Ф��ޤ���������ˤ���褦�˼��Ф����֤�����Ǥ���
>>> days = {'sun':0, 'mon':1, 'tue':2, 'wed':3, 'thu':4, 'fri':5, 'sat':6}
>>> for k, v in days.iteritems():
	print k, ':', v, ' ',

wed : 3   sun : 0   thu : 4   tue : 2   mon : 1   fri : 5   sat : 6  
zip()
��Ĥޤ��Ϥ���ʾ�����󷿤�Ʊ���˥롼�פ��뤿��ˡ� �ؿ� zip() ��ȤäƳ����Ǥ�Ҥ��Ȥߤˤ��뤳�Ȥ��Ǥ��ޤ���
>>> questions = ['name', 'quest', 'favorite color']
>>> answers = ['lancelot', 'the holy grail', 'blue']
>>> for q, a in zip(questions, answers):
...     print 'What is your %s?  It is %s.' % (q, a)
... 
What is your name?  It is lancelot.
What is your quest?  It is the holy grail.
What is your favorite color?  It is blue.

4.2.4. �ꥹ�Ȥ�����ɽ��

�ꥹ�Ȥ�Ȥäơ��ꥹ�Ȥ��֤��֥��å�������ɽ����Ȥäƽ񤯤��Ȥ�����ޤ��� ����ɽ���� if �ˤ�����̤�¿�ť롼�פ�ɽ���Ǥ��ޤ��� ����ɽ���Ͽ��ؤν���ε���ˡ���㤨�С�X = {x | x ����������}�ˤ˻��Ƥ��ޤ��� ���ε�ˡ�Ϥ��ʤ������Ǥ��� �ʥꥹ�ȤˤĤ��Ƥ��ǡ������򸫤Ƥ�����������
# ls �Τ������������ǤˤĤ���ʿ������׻������Υꥹ�Ȥ��֤���
ls = [1, 2, -3, -4]
# �̾�Υ롼��
def foo1 (ls):
    ls1=[]
    for x in ls:
        if x &gt 0:
            ls1.append(math.sqrt(x))
    return ls1

# ����ɽ��
def foo2 (ls):
    return [ math.sqrt(x) for x in ls if x &gt 0]
# �����֤���
# �̾�Υ롼��
def bar1 ():
    ls1=[]
    for x in range(2,10):
        for y in range(2,10):
            ls1.append(x*y)
    return ls1

# ����ɽ��
def bar2 ():
    return [x * y for x in range(2,10) for y in range(2,10)]

4.3. �㳰����

�㳰���갷���Ȥ��ˤ� try ��Ȥ��ޤ��� �񼰤ϰʲ����̤ꡣ�ܤ����� Python Tutorial 8. Errors and Exceptions �򸫤Ƥ���������
try:
    try_block
except ??Error:
    exept_block
else:
    else_block
finally:
    finally_block
�ޤ���try_block ��¹Ԥ����⤷���㳰��ȯ������С� exept_block ��¹Ԥ��ޤ����㳰�μ����̤�ʣ���� exept_block ��񤯤��Ȥ��Ǥ��ޤ����㳰��ȯ�����ʤ���� else_block ��¹Ԥ��ޤ��� else_block �Ͼ�ά��ǽ�Ǥ���

finally_block ���㳰ȯ����̵ͭ�ˤ�����餺 ɬ���¹Ԥ���ޤ���LISP �� unwind-protect �˻��Ƥ��ޤ���finally_block �Ͼ�ά��ǽ�Ǥ���

�ޤ���__enter__ �� __exit__ �᥽�åɤ��������Ƥ��륯�饹�Υ��󥹥��󥹤� ����������� with ���ơ��ȥ��Ȥ��Ѥ��뤳�Ȥ�Ǥ��ޤ��� �ܤ����ϡ�Python 2.5 �ο���ǽ��ߤƤ���������

5. ������

print >> file_handle, value1, value2, ....

5.2. �ե�����ϥ�ɥ�

  • �ե�����ò³«¤ï¿½ï¿½È¤ï¿½ï¿½ï¿½ f = file('file_name', mode) �ǹԤ��ޤ��� mode �� C ����ȤۤȤ��Ʊ���Ǥ��� 'r', 'w', 'a', 'b' ���ɤ߹��ߡ��ñ¤­½Ð¤ï¿½ï¿½ï¿½ï¿½É²Ã½ñ¤­½Ð¤ï¿½ï¿½ï¿½ï¿½Ð¥ï¿½ï¿½Ê¥ê¡¼ï¿½ï¿½ ����路�ޤ���'rb', 'wb' �Ϥ��줾��Х��ʥ꡼�⡼�ɤ��ɤ߹��ߤȽñ¤­½Ð¤ï¿½ï¿½Ç¤ï¿½ï¿½ï¿½
  • �ե����뤫�� n �Х����ɤ߹���Ȥ��� f.read(n) �Ȥ��ޤ���n ����ά�����ȥե�������������Ƥ��ɤ߹��ޤ�ޤ���
  • �ե����뤫�飱���ɤ߹���Ȥ��� s = f.readline() �Ȥ��ޤ��� ����ʸ�����ɤ߹��ޤ�ޤ�������ʸ����������Ȥ��ϡ� s[:-1] �ޤ��� s.rstrip('\n') �Ȥ��ޤ���
  • �ե������ʸ���� s ��ñ¤­¹ï¿½ï¿½ï¿½È¤ï¿½ï¿½ï¿½ f.write(s) �Ȥ��ޤ���
  • �ե�������Ĥ���Ȥ��� f.close() �Ȥ��ޤ���
  • sys.stdin, sys.stdout ��Ȥ����㳰������ñ¤¯¼ï¿½Ö¤ï¿½ï¿½Ê¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ç¤ï¿½ï¿½ï¿½ �ܤ����ϡ� Python �饤�֥���ե���� 2.3.8. �ò¸«¤Æ¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½

    6. �ؿ����

    �ؿ��� def ���Ѥ���������ޤ����ؿ��������ʤ��ǥ��������ѿ���Ȥ����Ȥ�����ޤ��� �ͤ��֤��Ȥ��� return ��Ȥ��ޤ����ؿ������κǽ��ʸ��ʸ�����ƥ��ˤ���ȡ�pydoc �� �����ưŪ���ɤ߹���ǥޥ˥奢���������ޤ����ʲ��˽񼰤򼨤��ޤ��� def �θ�˴ؿ���̾����³�������θ�� ( ) �Ǥ�����줿�������ꥹ�Ȥ�³���ޤ��� ���θ塢������ ':' ��Ĥ������Ԥ�����ǥ�Ȥ��ơ�������Τ�³���ޤ�������ǥ�Ȥ� �ᤷ���Ȥ���������Ͻ����ޤ��� �ؿ������μ��ΰ�̣�������ʾ��
    ���ϱ黻���򸫤Ƥ��������� �ޤ����ؿ�����ˤĤ��ƾܤ������Ȥϥ��塼�ȥꥢ�� 4.6, 4.7 �򸫤Ƥ���������
    def sum(ls):
        """ �ꥹ�Ȥ����Ǥι�פ����"""
        s=0
        for x in ls:
            s+=x
        return s
    
    >>>sum([1,2,3])
    6
    

    6.1. �����ν�

    def func(a, b, c): (�̾�ν�)
    ���礦�ɣ��Ĥΰ�����Ȥ롣�ǥե�����ͤϤʤ��� func(x,y,z) ���ͤˤ��礦�ɣ��ĤȰ�����Ϳ���ʤ��ȥ��顼�ˤʤ롣
    def func(a=0, b=1, c=2): (�ǥե�������դ���)
    �������ά����ȥǥե�����ͤ��Ȥ��롣
    • func() &rArr a=0, b=1, c=2 ���Ȥ��롣
    • func(10,20) &rArr a=10, b=20, c=2 ���Ȥ��롣
    • func(c=100) &rArr a=0, b=1, c=100 ���Ȥ��롣
    def func(a, *rest): (Ǥ�դθĿ��ΰ���)
    *rest �� ���ץ��Ȥ��ƴؿ����Ϥ���롣
    • func(1) &rArr a=1 �� rest=() ���錄�롣
    • func(1,2) &rArr a=1 �� rest=(2,) ���錄��
    • func(1,2,3) &rArr a=1 �� rest=(2,3) ���錄�롣
    def func(**key): �ʰ����������ˤ��Ƥ錄������
    func(a=1, b=2) &rArr key={'a':1, 'b':2} ���錄�롣
    *rest �� **key ��ξ���Ȥ��Ȥ��� *rest �� **key ������ˤʤ���Фʤ�ʤ���

    6.2. generator

    for �롼�פǻȤ����ƥ졼�������̤��Ѹ�Ǥϥ��ȥ꡼��ˤ��������ؿ��Ǥ��� �ͤ� yield ��Ȥä��֤��ޤ���generator �Ϸ׻��в��Ф��Ƥ��ơ��ƤӽФ���뤿�Ӥ˷׻���Ƴ������� yield �˽в񤦤ȡ��ͤ��֤��Ʒ׻�����뤵���ޤ��� �㤨�� range �� generator �Ǥ��ñ�˽񤯤��Ȥ�����ޤ���
    import sys
    
    def my_xrange(*parms):
        lp = len(parms)
        if not 0 &lt= lp &lt= 3:
            print &gt&gt sys.stderr, "Wrong argument count."
    
        if(lp==0):
            i = 0
            while True:
                yield i
                i += 1
        else:
            i, n, s = (lp==1 and (0, parms[0], 1)) or \
                      (lp==2 and (parms[0], parms[1], 1)) or \
                      (parms[0], parms[1], parms[2])
    
            if(s==0):
                print &gt&gt sys.stderr, "Step width shuld be non-zero."
            
            elif(s &gt 0):
                while(i &lt n):
                    yield i
                    i+=s
                
            else:
                while(i &gt n):
                    yield i
                    i+=s
    

    6.3. ̵̾�ؿ�

    def ���������Ⱦ�Ĺ�ˤʤ�û���ؿ���̵̾�ؿ���Ȥä�������뤳�Ȥ��Ǥ��ޤ���
    ̵̾�ؿ�������� 'lambda' ��³���ư����򥫥�ޤǶ��ڤäƽ񤭡� ������θ�˵����ͤ�񤭤ޤ��� ��Ԥǽ񤱤��Τˤ����Ȥ��ʤ��Τ�������ñ��ʤ�Τ�������Ǥ��ޤ��󤬡�����Ǥ������ʤ��Ȥ�����ޤ���

    ��:

    lambda x,y: x+y         # ­����
    lambda x,y: x*y         # �ݤ���
    

    7. ���饹���

    �٥��ȥ륯�饹��������ơ��Ȥ������������ޤ��� ���Υ��饹�Ǥϱ黻�� '+', '*' ���������ơ��٥��ȥ�βû������Ѥ��׻��Ǥ���褦�ˤ��Ƥ��ޤ��� �ʲ��Υ����ɤ������Ȥ���٤Ƥ���������

    �ޤ���Python 2.2 �ʹߤǤϡ��Ȥ߹��ߥǡ�������ƥ��饹�ˤǤ���褦�ˤʤ�ޤ����� �����Ȥä��٥��ȥ륯�饹�� Python �� "������" ���饹 �ˤ���ޤ����ʤ�����Τۤ�������Ū�Ǥ�����

    #! /usr/bin/env python
    #  coding: shift_jis 
    
    import sys, math
    
    def sum(ls):
        """�ꥹ�Ȥ����Ǥ��פ��ޤ���"""
        s=0
        for x in ls:
            s+=x
        return(s)
    
    class Vector:
        """
        Vector �ϥ٥��ȥ�黻�Τ���Υ��饹�Ǥ���
        """
        def __init__(self, *rest, **key):
            """
            �٥��ȥ���������ޤ���
            ���Ǥ��Ϥ��줿�顢�������Ǥ���ʤ�٥��ȥ����ޤ���
            v1 = Vector(1,2,3)
            �����Ƚ���ͤ��Ϥ��줿������ val, ���� dim �Υ٥��ȥ����ޤ���
            val ����ά�����Ƚ���ͤ� 0 �ˤʤ�ޤ���
            v1 = Vector(dim=3, val=3)
            """
            if rest:
                self.v = list(rest)
            else:
                dim = key['dim']
                val = (('val' in key) and key['val']) or 0
                self.v =  [val for x in range(dim)]
    
        def __len__(self):
            """�٥��ȥ�μ������֤��ޤ���"""
            return len(self.v)
        
        def abs(self):
            """�٥��ȥ�������ͤ��֤��ޤ���"""
            return math.sqrt(sum([ x * x for x in self.v ]))
    
        def norm(self):
            """���ʲ����줿�٥��ȥ���֤��ޤ���"""
            a = self.abs()
            b = Vector(dim=len(self))
            b.v = [x/a for x in self.v]
            return b
            
        def __add__(self, a):
            """�٥��ȥ�ȼ¿����ޤ��ϥ٥��ȥ�֤�­�����򤷤ޤ���"""
            b = Vector(dim=len(self))
            if isinstance(a, Vector):
                if len(self) != len(a):
                    print >> sys.stderr, "Dimension Error"
                else:
                    b.v =  [ x + y for x, y in zip(self.v, a.v)]
            else:
                b.v = [ x + a for x in self.v]
            return b
                
        def __mul__(self, m):
            """�٥��ȥ�ȼ¿����ޤ��ϥ٥��ȥ�֤γݤ��������ѡˤ򤷤ޤ���"""
            if isinstance(m, Vector):
                if len(self) != len(m):
                    print >> sys.stderr, "Dimension Error"
                else:
                    return sum([ x * y for x, y in zip(self.v, m.v)])
            else:
                b = Vector(dim=len(self))
                b.v = [ x * m for x in self.v]
                return b
    
        def __repr__(self):
            """ɽ������Ȥ���ʸ�����������ޤ���"""
            return '#V' + `self.v`
    
        __str__ = __repr__
    

    7.1. ���饹���

    ���饹�������
    class class_name(*super_classes):
      .......
    
    �ǹԤ��ޤ��������ѡ����饹������С�����������Ϳ���ޤ���¿�ŷѾ��⤢��Ǥ���

    7.2. ���󥹥��󥹤�����

    ���̤ʥ᥽�å� __init__ �ǥ��󥹥��󥹤��������ޤ��� __init__ �κǽ�β����� self �ϥ��󥹥��󥹼��Ȥǡ�����ʹߤΰ����� ���󥹥�����������Ϳ����������Ǥ��������ͤʻȤ����򤷤ޤ���
    # ���Ǥ�����Ū��Ϳ����
    >>>v1 = Vector(1,2,3)
    # �����Ƚ���ͤ�Ϳ����
    >>>v2 = Vector(dim=3, val=0)
    

    7.3. �᥽�åɤ����

    �᥽�åɤ�����ϴؿ������Ʊ�� def ���Ѥ��ޤ��� �ǽ�β������ϥ��󥹥��󥹤��켫�ȤǤ��� �����Ǥϡ��٥��ȥ��Ĺ�����֤��᥽�å� abs �ȵ��ʲ����줿�٥��ȥ���֤� norm ��������Ƥ��ޤ����Ȥ��Ȥ��ϥ��󥹥��󥹤θ���� '.'�ʥɥåȡˤ�Ĥ��ƤĤʤ��ޤ���
    >>>v = Vector(1,2,3)
    # Ĺ���η׻�
    >>>v.abs()
    3.7416573867739413
    
    # ���ʲ�����
    >>>v.norm()
    #V[0.2672612419124244, 0.53452248382484879, 0.80178372573727319]
    

    7.4. �ؿ���黻�ҤΥ����С��饤��

    ��¸�δؿ����������뤳�Ȥ�����ޤ��� __add__ ��­������__mul__ �ϳݤ�����������ޤ��� �ޤ���__repr__ ��ɽ����ˡ��������ޤ��� ¾�ˤ⤤����������ޤ����ܤ����� ��ե���󥹥ޥ˥奢�� 3.3 �򻲾Ȥ��Ƥ��������� �Ȥ����ϰʲ����̤�Ǥ���
    >>> v1=Vector(1,2,3)
    >>> v2=Vector(dim=3, val=2)
    >>> v1+10
    #V[11, 12, 13]
    >>> v1+v2
    #V[3, 4, 5]
    >>> v1*100
    #V[100, 200, 300]
    >>> v1*v2
    12
    

    7.6. �ؿ��Υ��饹

    __call__ �᥽�å� �Τ��륯�饹�ϴؿ��Υ��饹�Ȥ��Ƶ�ǽ���ޤ��� �ܤ����ϡ� ��ե���󥹥ޥ˥奢�� 3.3.4. �򸫤Ƥ���������

    7.6. ���ƥ졼����

    ���ƥ졼�������饹��������뤳�Ȥ����ޤ��� �̾�� generator ��Ȥä��ۤ����ڤǤ��礦�� �ܤ����� ���塼�ȥꥢ�� 9.8. �򸫤Ƥ���������

    8. �ǡ�����

    8.1. ����

    ���ͷ��ˤϡ������� �� Ĺ������ ����ư�������� ������� ʣ�ǿ��� �Σ��Ĥη�������ޤ��� �ܤ�����
    �饤�֥���ե���� 2.3.4 �򸫤Ƥ���������

    8.2. ����

    ���󷿤ˤϡ�ʸ���󡢥�˥�����ʸ���󡢥ꥹ�ȡ����ץ롢�Хåե��������� xrange ���֥��������� ���Ĥ�����ޤ������󷿤˶��̤α黻�򲼤�ɽ�ˤޤȤ�ޤ���
    �黻  ��� 
    x in s s �Τ������� x ����������� True �������Ǥʤ���� False
    s + t s ����� t ��
    s * n , n * s s ���������ԡ� n �Ĥ���ʤ���
    s[i] s �� 0 ��������� i ���ܤ�����
    s[i:j] s �� i ���ܤ��� j ���ܤޤǤΥ��饤��
    s[i:j:k] s �� i ���ܤ��� j ���ܤޤǡ�k ��Υ��饤��
    len(s) s ����
    min(s) s �κǾ�������
    max(s) s ��������
    # ��
    >>> s='abcde'
    >>> s[-1]      # ����ǥå��� -1 �ϺǸ������
    'e'
    >>> s[1:]      # �ǽ�����Ǥ����
    'bcde'
    >>> s[:-1]     # �Ǹ�����Ǥ����
    'abcd'
    >>> s*2
    'abcdeabcde'
    >>> min(s)
    'a'
    >>> max(s)
    'e'
    >>> s[0:-1:2]
    'ac'
    

    8.2.1. ʸ���󡢥�˥�����ʸ����

    ʸ��������Ǥ�ľ���ͤ��������뤳�ȤϽ���ޤ���
    s = 'abcdefg'
    # �Բġ�ʸ����ľ�������Ǥ��ʤ���
    s[0]='z'
    
    # ���Τ褦�ˤ������Τ���ľ��ɬ�פ����롣
    s = 'z' + s[1:]
    

    ʸ�����ƥ��

    ʸ�����ƥ��ˤĤ��Ƥξܺ٤� ��ե���󥹥ޥ˥奢�� 2.4.1 �򸫤Ƥ���������

    ʸ����᥽�å�

    �饤�֥���ե���� 2.3.6.1 �򸫤Ƥ���������

    Memo:
    ʸ���� line ���������β���ʸ����������ˤϡ�

    line = line.rstrip('\n')
    # ���뤤�ϡ�
    import string
    line = string.rstrip(line, '\n')
    
    �Ȥ��ޤ����ե����뤫�飱�Ԥ����ɤ߹���Ȥ��褯�Ȥ��ޤ���

    ʸ����ե����ޥå�

    format % vars �Ȥ����褦�˵��Ҥ��ޤ��� format �� C �������Ǥ��� vars ��ʣ���ξ�� ( ) �� ������ɬ�פ�����ޤ��� �ޤ���vars ������ ����ꤷ�ƥ�����ɤǻ��ꤹ�뤳�Ȥ����ޤ��� �ܤ����� �饤�֥���ե���� 2.3.6.2 ʸ����ե����ޥå�����򸫤Ƥ���������
    >>>'%d:%d' % (1, 2)
    '1:2'
    >>>'%(month)s %(date)d, %(year)4d' % {'year':2005, 'month':'February', 'date':3}
    'February 3, 2005'
    

    8.2.2. �ꥹ��

    �ꥹ�Ȥ� [ ] �Ǥ����äƤ���路�ޤ����ꥹ�Ȥγ����Ǥ�ľ���ͤ������Ǥ��ޤ��� �ޤ����ꥹ�Ȥϥͥ��ȤǤ��ޤ���
    >>> ls=[1,2,3]
    >>> ls[0]=100
    >>> ls
    [100, 2, 3]
    >>> ls2=[ls, 10,20,30]
    >>> ls2
    [[100, 2, 3], 10, 20, 30]
    �ꥹ�Ȥ����ˤĤ��Ƥ� �饤�֥���ե���� 2.3.6.4 �򸫤Ƥ���������

    Memo:

    8.2.3. ���ץ�

    ���ץ�� (,) ��ȤäƤ���路�ޤ����ѹ��Ǥ��ʤ���������ƥꥹ�Ȥ�Ʊ���Ǥ��� �ꥹ�Ȥ���®�Ǥ����ѹ�����Ĥ�꤬�ʤ��ͤΥ��åȤϥ��ץ�Ȥ������������ɤ��Ǥ��礦��
    �ʤ����ब1�ĤΥ��ץ�Ϲ�θ�˥���ޤ�Ĥ��� (item,) �Ƚ񤭤ޤ���

    �ܤ����� ���塼�ȥꥢ�� 5.3. �򸫤Ƥ���������

    8.3. ����

    ������ϥå���ɽ�Ǥ������͡�ʸ���󡢥��ץ�� key �Ȥ��ơ��б������ͤ��ݻ������ꡢ���Ф����ꤹ�뤳�Ȥ�����ޤ��� ������ϡ����Τ� { } �Ǥ����äơ������� ':' ���Фˤʤä� key:val �Υڥ��򥳥�ޤǶ��ڤ�ޤ��� �����䡢���������ޤ��� ���� key ���������Ͽ����Ƥ��뤫�� in ��Ȥä�Ĵ�٤��ޤ���
    ���ա��ꥹ�Ȥϼ��񷿤� key �ˤʤ�ޤ���
    ��:
    >>>days = {'sun':0, 'mon':1, 'tue':2, 'wed':3, 'thu':4, 'fri':5, 'sat':6}  # �����
    >>>'sun' in days                                                           # ¸�ߤ��뤫��
    True
    >>>month={}
    >>>month['jan'] = 1                                                        # ����
    >>>month['jan'] += 1
    >>>month['jan']
    2
    >>>del month['jan']                                                        # ���
    
    �ܤ�����
    �饤�֥���ե���� 2.3.7. �򸫤Ƥ���������

    9. �黻��

    �ܤ����ϡ���ե���󥹥ޥ˥奢�� 2.5, 2.6 �򸫤Ƥ���������

    10. �饤�֥�꡼�ĥ���

    �褯�Ȥ��饤�֥�꡼���ñ���������ޤ��� �ܤ�����
    �饤�֥�꡼��ե�����򸫤Ƥ���������

    10.1. sys

    sys.argv
    ���ޥ�ɥ饤�󤫤��Ϥ��줿�����Υꥹ�ȤǤ��� sys.argv[0] �ϥ�����ץȼ��Ȥǡ��ºݤΰ����� sys.argv[1:] �Ǥ���
    sys.exit()
    Python ��λ����Ȥ��Ȥ��ޤ���
    �ܤ����� �饤�֥���ե���� 3.1 �򸫤Ƥ���������

    10.2. os

    �ʲ���ȴ�衣�ܤ����� �饤�֥���ե���� 6.1 �򸫤Ƥ���������
    chdir(path)
    ���ߤκ�ȥǥ��쥯�ȥ�� path �����ꤷ�ޤ���
    getcwd()
    ���ߤκ�ȥǥ��쥯�ȥ��ɽ������ʸ������֤��ޤ���
    listdir(path)
    �ǥ��쥯�ȥ���Υ���ȥ�̾�����ä��ꥹ�Ȥ��֤��ޤ����ꥹ����ν��֤�����Ǥ����ü쥨��ȥ� '.' ����� '..' �ϡ�����餬�ǥ��쥯�ȥ�����äƤ��Ƥ�ꥹ�Ȥˤϴޤ���ޤ���
    mkdir(path[, mode])
    ���ͤǻ��ꤵ�줿�⡼�� mode ���ĥǥ��쥯�ȥ� path ��������ޤ���
    remove(path)
    �ե����� path �������ޤ���
    rename(src, dst)
    �ե�����ޤ��ϥǥ��쥯�ȥ� src �� dst ��̾���ѹ����ޤ���
    exec[l, le, lp, lpe, v, ve, vp, vpe]
    �����ץ�������ư���ޤ���

    10.3. os.path

    exists, getatime, getmtime, getsize, isfile, isdir �ʤɤδؿ���ޤ�⥸�塼��Ǥ��� �ܤ����� �饤�֥���ե���� 6.2. �򸫤Ƥ���������

    10.4. fileinput

    Perl �� "while(<>)" �Τ褦�ˡ����ޥ�ɥ饤��ΰ�����Ϳ����줿�ե����뤫�����Ϥ��ޤ���
    # fileinput ��Ȥ�ʤ���
    for fname in sys.argv[1:]:
        f=file(fname)
        for line in f:
            (do something with line)
        f.close()
    
    # fileinput ��Ȥ���
    import fileinput
    for line in fileinput.input():
        (do something with line)
    
    �ܤ����� �饤�֥���ե���� 5.15 �򸫤Ƥ���������

    10.5. re

    ����ɽ���Υ⥸�塼��Ǥ���
    1. Python �Ǥϡ��ѥ������ޤ� compile ���ơ�����ɽ�����֥��������� ��äƤ��鸡�����ޤ���
    2. �ѥ������ raw_string ��Ȥäƽ񤯤Τ������Ǥ���
    3. ����ɽ�����֥������Ȥ� match, finditer, split �ʤɤΥ᥽�åɤ�����ޤ��� �ܤ����� �饤�֥���ե���� 4.2.4 �򸫤Ƥ���������
    4. ����ɽ�����֥������Ȥ�ʸ����򸡺����ƥޥå�������ʬʸ����ϡ� �ޥå����֥��������Ȥ����֤���ޤ���
    5. �ޥå����֥������Ȥ���ʸ�������Ф������Ȥ��� group �᥽�åɤ�Ȥ��ޤ��� �ޤ���start, end �᥽�åɤ� �ޥå�������ʬʸ����ΰ��֤���Ф��ޤ���
    �ܤ����� �饤�֥���ե���� 4.2.5 �򸫤Ƥ���������

    �㡢HTML �ե����뤫���󥯤���Ф���

    #! /usr/bin/env python
    # coding: shift_jis
    
    """
    ������Ϳ����줿�ե�����򸡺����ƥ�󥯤��õ����
    ����� rink.txt �˽񤭽Ф���
    """
    
    import sys
    
    RINK = 'rink.txt'
    A_HREF = re.compile("<a href ?= ?\"http://([^\"]+)\">([^<]+)</a>", re.S) 
    
    #main
    if __name__=='__main__':
        rink_hash={}
        for fname in sys.argv[1:]:
            f=file(fname, 'r')
            for m in A_HREF.finditer(f.read()):
                rink_hash[m.group(1)] = m.group(2)
            f.close()
        fout = file(RINK, 'w')
        for address, name in rink_hash.iteritems():
            fout.write("<li> <a href = \"http://%s\">%s</a>\n" % (address, name))
        fout.close()
    

    10.6. shutil, filecmp, glob

    shutil.copyfile
    �ե�����򥳥ԡ����ޤ���
    filecmp.cmp
    �ե��������Ӥ򤷤ޤ���
    glob.glob(pattern)
    ���ߤΥǥ��쥯�ȥ�Υ���ȥ꡼�Τ��� pattern �Υޥå������Τ��֤��ޤ���
    �ܤ����ϡ��饤�֥���ե���� 6.7, 6.23, 6.25 �򸫤Ƥ���������

    10.7. datetime

    ����������Τ˻Ȥ��ޤ��� datetime �� time �Ȥۤ�Ʊ�ͤǤ�����time �� 1970--2038 ǯ���������ʤ��Τ��Ф��� datetime �� ��������⤽��ʹߤ��갷���ޤ���
    datetime.date.today()
    ���ߤΥ�����������դ����ޤ���
    datetime.datetime.now()
    ���ߤΥ�����������դȻ�������ޤ���
    isoformat �᥽�å�
    ���դȻ���� ISO 8601 ������ʸ����ˤ��ޤ���
    >>> datetime.date.today().isoformat()
    '2005-02-02'
    >>> datetime.datetime.now().isoformat()
    '2005-02-02T17:50:09.867000'
    
    strftime
    ������񼰤˽��äƽ��Ϥ��ޤ����ܤ����ϥ饤�֥���ե���� 6.9.7, 6.10 �򸫤Ƥ���������
    >>> datetime.datetime.now().strftime('%y-%m-%d: %H:%M:%S')
    '05-02-02: 23:20:12'
    >>> datetime.date.today().strftime('%y-%m-%d')
    '05-02-02'
    

    10.8. operator

    add(a,b) (�̾�ν񼰤Ǥ� `a+b') �� mul(a,b) (�̾�ν񼰤Ǥ� `a*b') ����������⥸�塼�롣 reduce ��Ȥ��Ȥ�������
    >>> import operator as op
    >>> reduce(op.add, [1,2,3,4,5])  # 1+2+3+4+5
    15
    
    �ܤ����ϡ� �饤�֥���ե���� 3.10. operator -- �ؿ�������ɸ��黻���򸫤Ƥ���������

    10.9. ����¾�Υ⥸�塼��

    1. �Ƽ掠���ӥ�
    2. ���ѥ��ڥ졼�ƥ��󥰥����ƥॵ���ӥ�
    3. ���ץ����Υ��ڥ졼�ƥ��󥰥����ƥॵ���ӥ�
    4. Unix���äΥ����ӥ�
    5. ���󥿡��ͥåȥץ��ȥ���Ȥ��λٱ�

    11. ��Ͽ

    11.1. �����ͤ��֤��黻�Ҥȼ�ʴؿ�

    �⥸�塼�� �黻�ҡ��ؿ� ��ǽ (True �Ǥʤ����� False)
    �Ȥ߹��� == ���դȱ��դ���������� True��
    �Ȥ߹��� != ���դȱ��դ��������ʤ���� True��
    �Ȥ߹��� &lt ���դ����դ�꾮������� True��
    ʸ����ˤ�Ȥ��롣�㡧 'abc' &lt 'ab' &rArr False
    �Ȥ߹��� &gt ���դ����դ���礭����� True�� ʸ����ˤ�Ȥ��롣
    �Ȥ߹��� &lt= ���դ����դ�꾮�����������դȱ��դ���������� True�� ʸ����ˤ�Ȥ��롣
    �Ȥ߹��� &gt= ���դ����դ���礭���������դȱ��դ���������� True�� ʸ����ˤ�Ȥ��롣
    �Ȥ߹��� in ���դ����դ˴ޤޤ�Ƥ���� True�� �㡧
    �ꥹ�ȡ� 1 in [1,2,3] &rArr True
    ʸ���� 'ab' in 'abc' &rArr True
    ���� 'mon' in {'sun':0, 'mon':1, 'tue':2, 'wed':3} &rArr True
    �Ȥ߹��� is ���դȱ��դ��������֥������Ȥʤ�� True��
    ls1 = [1,2,3]
    ls2 = [1,2,3]
    ls3 = ls1
    ls1 is ls2 &rArr False
    ls1 is ls3 &rArr True
    �Ȥ߹��� isinstance( object, classinfo) ���� object ������ classinfo �Υ��󥹥��󥹤Ǥ��뤫�� (ľ�ܤޤ��ϴ���Ū��) ���֥��饹�Υ��󥹥��󥹤ξ�� True��
    �Ȥ߹��� issubclass( class, classinfo) class �� classinfo �� (ľ�ܤޤ��ϴ���Ū��) ���֥��饹�Ǥ������ True��
    ʸ����᥽�å� isalnum() ʸ����������Ƥ�ʸ�����ѿ�ʸ�� [a-zA-Z0-9] �ǡ����� 1 ʸ���ʾ夢���� True��
    ʸ����᥽�å� isalpha() ʸ����������Ƥ�ʸ������ʸ�� [a-zA-Z] �ǡ����� 1 ʸ���ʾ夢���� True��
    ʸ����᥽�å� isdigit() ʸ������˿��������ʤ���� True��
    ʸ����᥽�å� islower() ʸ��������羮ʸ���ζ��̤Τ���ʸ�����Ƥ���ʸ���ǡ����� 1 ʸ���ʾ夢���� True��
    ʸ����᥽�å� isspace() ʸ���󤬶���ʸ����������ʤꡢ���� 1 ʸ���ʾ夢���� True��
    ʸ����᥽�å� istitle() ʸ���󤬥����ȥ륱����ʸ����Ǥ��ꡢ���� 1 ʸ���ʾ夢���硢 ���ʤ����ʸ�����羮ʸ���ζ��̤Τʤ�ʸ���θ�ˤΤ�³���� ��ʸ�����羮ʸ���ζ��̤Τ���ʸ���θ���ˤΤ�³����� True��
    ʸ����᥽�å� isupper() ʸ��������羮ʸ���ζ��̤Τ���ʸ�����Ƥ���ʸ���ǡ����� 1 ʸ���ʾ夢���� True��
    os.path exists(path) path ��¸�ߤ����� True��
    os.path isfile(path) path ��¸�ߤ����������ե�����ξ�� True��
    os.path isdir(path) path ���ǥ��쥯�ȥ�ξ�� True��
    fileinput isfirstline() �Ǹ���ɤ߹��ޤ줿�Ԥ��ե������1���ܤʤ� True��
    fileinput isstdin() �Ǹ���ɤ߹��ޤ줿�Ԥ�sys.stdin�����ɤޤ�Ƥ���� True��

    11.2. web documents

    1. python.org
      1. �����������
      2. �ɥ������
    2. ����Python�桼����
      1. ���ܸ����ɥ������
      2. �����ʼ��㽸
      3. ��󥯽�
    3. Dive Into Python: ����ʸ��� ���塼�ȥꥢ���μ��� �ɤ�ʸ��Ȥ��Ƥ�����Ǥ���

    HOME Python �񤭹���