Académique Documents
Professionnel Documents
Culture Documents
com
http://www.pylearn.com
http://www.pylearn.com
1
2
3 Python
4
5
6
7
8 . .
9 . .
10 . .
11 . . .
12 . .
13 . ./
14 . .
15 . .
16 . .
17 . .
http://www.pylearn.com
1
1.1 o
1.2 o
1.3 o
1.4 o
1.5 o
1.6 o
1.7 o
Python .
.
- " ".
Python
.
Python
. Python .
Python
- . Python
!
http://www.pylearn.com
Python Diamond
[] 1 . Perl Python
Qt .
. Python
. PyQt Perl-Qt .
Python .
Python . ! ( ) O'Reilly
.
Python . . ()
Python .
. . Python
Red Hat 9.0 Linux KWord .
Python .
30 .
. Python
. .
Python
(:
.
. .
. Python .
.
wxPython.
http://www.pylearn.com
www.byteofpython.info .
. .
Creative Commons Attribution-NonCommercial-ShareAlike
License 2.0[ ] 2.
.
.
. Creative Commons
[] 3 . .
.
.
.
. ><swaroop@byteofpython.info
.
;
. . . .
. . .
http://www.pylearn.com
1
1.1 o
1.2 o Python
1.2.1
1.3 o )(Perl
1.4 o
Python
.
. Python :
Python . Python
.
Python
.
. Python
" "Monty Python's Flying Circus .
.
Python
Python . Python
! Python
. .
http://www.pylearn.com
Python .
Python .
Python FLOSS Free/Libr and Open Source Software .
. FLOSS .
Python -
Python .
Python
.
Python (
).
. Python Macintosh FreeBSD Windows Linux
VMS QNX Palm OS z/OS OS/390 BeOS AS/400 AROS Amiga OS/2 Solaris
Windows CE Sharp Zaurus PlayStation VxWorks Acorn RISC OS Psion
Pocket PC !
. C++ C
C C++ ( 0 1 )
http://www.pylearn.com
.
(linker)/ )(loader
. Python .
. Python bytecodes
.
Python
.
!
Python )(procedure-oriented )(object-oriented
.
.
. Python OOP.
C++ Java .
C C++
.
Python
.
C/C++
Python .
) (threading
http://www.pylearn.com
Python . Python
Python .
)(Perl
Perl .
Perl !
Perl
.
Perl
! Python Perl Python
Perl . .
Python
. Perl
( ) . Perl 6
. Perl CPAN
) (the Comprehensive Perl Archive Network[]. 1
Perl -
.
Perl Python Perl Python .
http://www.pylearn.com
http://www.pylearn.com
Python
1 Python
o
o
o
1.1 Linux/BSD
1.2 Windows
1.3
Python
Linux/BSD
Linux Mandriva Fedora ? >
BSD FreeBSD Python .
shell
Python Linux
( Konsole ) Gnome-Terminal python -V
.
$ python -V
Python 2.3.4
$ shell .
$ .
Python .
:
$ python -V
bash: python: command not found
Python . .
Python . binary
yumurmpi Fedora Mandriva
http://www.pylearn.com
!
IDLE . 70
download Python Windows .
Python
.
Python Windows
Windows Python
. Windows 2003 XP 2000 >Control Panel -
System -> Advanced -> Environment Variables . PATH
""System Variables Edit ";C:\Python23"
( .) .
C:\AUTOEXEC.BAT :
Windows
(""PATH=%PATH%;C:\Python23 ) .
Windows NT AUTOEXEC.NT .
http://www.pylearn.com
Linux Python .
.
Windows Python download
. Python .
Python .
1
1.1 o
1.2 o
1.3 o
1.4 o
1.4.1
1.4.2
1.5 o Python
1.6 o
1.7 o
http://www.pylearn.com
Python - .
.
python shell . 'print 'Hello World
Enter . Hello World .
IDLE . IDLE Integrated
.
DeveLopment Environment . Start -> Programs -> Python 2.x -> IDLE
)(Python GUI . Linux IDLE .
<<< Python .
.3.1 Python
$ python
)Python 2.3.4 (#1, Oct 26 2004, 16:42:40
[GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2
Type "help", "copyright", "credits" or "license" for
more information.
'>>> print 'hello world
hello world
>>>
Python !
Python . print .
Hello World .
Python
IDLE Linux/BSD Ctrl-d
. Ctrl-z Enter .
http://www.pylearn.com
Python
. .
.
Python
( ).
Python
. Windows
.
IDLE . IDLE
IDLE . :
Notepad -
.
( IDLE ) VIM
. Linux/FreeBSD
. VIM Emacs .
Python ... . VIM .
Kate .
Emacs VIM
.
Python [ ] 1 . IDE Python
(Integrated Development Environment). IDE Python
[]. 2
PythonIDE .
- Python .
.
"Hello World" -
http://www.pylearn.com
'Hello World' .
"
" (: .
helloworld.py
Example 3.2. Using a Source File
#!/usr/bin/python
# Filename : helloworld.py
'print 'Hello World
( ): code/helloworld.py
(Linux terminal ) DOS
python helloworld.py . IDLE Edit -> Run
Script Ctrl-F5 . .
$ python helloworld.py
Hello World
! -
Python .
Python
.
print Print - p
P . Tab
- .
. )(comment -
# comment .
Python . ( shebang line )
http://www.pylearn.com
- ! #
Linux/Unix .
.
python helloworld.py
.
comment -
.
!
- ' 'hello world . print( operator) 'hello
'world -
.
Python
Linux/Unix Windows
. chmod
.
$ chmod a+x helloworld.py
$ ./helloworld.py
Hello World
chmod
. . ./
.
helloworld helloworld/.
. -
PATH .
http://www.pylearn.com
PATH .
PATH
.
$ echo $PATH
/opt/mono/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/b
in:/home/swaroop/bin
$ cp helloworld.py /home/swaroop/bin/helloworld
$ helloworld
Hello World
echo $ PATH shell
. /home/swaroop/bin
PATH swaroop .
.
PATH -
PATH=$PATH:/home/swaroop/mydir '/home/swaroop/mydir'
PATH .
.
cd Linux DOS .
W.r.t. Python .
Python help
. .
)help(str - str
( ) .
.
http://www.pylearn.com
q . Python
. help )( help !
print
PYTHONDOCS . Linux/Unix
env .
$ env PYTHONDOCS=/usr/share/doc/python-docs-2.3.4/html/
python
)Python 2.3.4 (#1, Oct 26 2004, 16:42:40
[GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2
Type "help", "copyright", "credits" or "license" for
more information.
)'>>> help('print
' 'print
Python ''print
(print ). Fedora
Core 3 - .
Python .
Python Python .
1
o
o
o
1.1
1.2
1.3
http://www.pylearn.com
o
o
o
o
o
o
o
1.4
1.5
1.6
1.7
1.7.1
1.7.2
1.8
Indentation 1.9
1.10
Python - .
2 .
. E-4 52.3 3.23 . E 10
. E-4 52.3 4-10 * 52.3 . j) 4+5 -(
(j) 4.6 - 2.3 .
http://www.pylearn.com
. .
Python .
. Python :
)'(
)"(
.
"? "What's your name .
( )"""
.
. :
a multi-line string. This is the first line.
the second line.
your name?," I asked.
""Bond, James Bond.
This is
This is
"What's
He said
)'(
What's your name? . '? 'What's your name
Python .
.
. '\ - )(backslash
. '? 'What\'s your name .
"? "What's your name .
. )(backslash
http://www.pylearn.com
\\ .
- \n . : This is the first
line\nThis is the second line. tab\t
.
. )(backslash
. :
\"This is the first sentence.
"This is the second sentence.
r R .
:
"r"Newlines are indicated by \n
Unicode .
Unicode.
Python Unicode -
u U .
"u"This is a Unicode string.
http://www.pylearn.com
Unicode
.
.
.
.
Python .
'?'What\'s' 'your name "What's your name?" .
C/C++
Python char .
.
Perl/PHP
-
.
.
.
-
. .
-
http://www.pylearn.com
.
.
.
.
:
.
( ) )'_'( .
( ) ( '_') ( )9-0 .
. myName myname . n
N a1b2_c3 . i, __my_name, name_23
my-name . 2things, this is spaced out .
(data types)
. .
.
Python .
.
Python .
.
.
http://www.pylearn.com
Python
Python : 1-
. 2- . 3-
.
Python .py . 4- python program.py
IDLE .
. .4.1
# Filename : var.py
i = 5
print i
i = i + 1
print i
s = '''This is a multi-line string.
'''This is the second line.
print s
$ python var.py
5
6
This is a multi-line string.
This is the second line.
5 i
.
(;) .
. i 5 . i print
. 1
i .
6 . s
.
http://www.pylearn.com
C/C++
. /
.
. Python
. Python
. ' print 'Hello World -
( ) . Python
.
;)
(
/ . i = 5 print i ;i = 5; print i
;i = 5; print i i = 5; print i
.
.
. Python
. .
)(explicit line joining .
\ s = 'This is a string.
'This continues the string.
print s
This is a string. This continues the string.
.
\ print
i
http://www.pylearn.com
print i
. backslash .
(explicit line
.
)joining .
.
Indentation
(Indentation
. .
) . (space tab )
.
indentation .
)(block . .
indentation . :
i = 5
print 'Value is', i # Error! Notice a single space at
the start of the line
print 'I repeat, the value is', i
:
File "whitespace.py", line 4
print 'Value is', i # Error! Notice a single space
at the start of the line
^
SyntaxError: invalid syntax
. Python
.
(
) .
control flow .
http://www.pylearn.com
tab space platform
. tab space
. .
.
. .
1
2
3
4
4.1 o
5
6
6.1 o
7
8
9
9.1 o
http://www.pylearn.com
( ) . 3 + 2
. .
+ .
operands() . 2
3 .
.
3 + 2 Python .
>>> 2 + 3
5
>>> 3 * 5
15
>>>
.5.1
4 * 3 + 2
-
. ( Python )
.
. - + .
http://www.pylearn.com
. .
( 4 * )3 + 2 .
. 4 + 3 + 2 ( 4 + )3 + 2 .
. a = b = c ) a = (b = c .
.5.1
#!/usr/bin/python
# Filename: expression.py
length = 5
breadth = 2
area = length * breadth
print 'Area is', area
)print 'Perimeter is', 2 * (length + breadth
$ python expression.py
Area is 10
Perimeter is 14
http://www.pylearn.com
.
. length * breadth area
print . * 2
)(length + breadth print . Python
. ' 'Area is area . Python
( ) . Python
.
-
. .
1 .6
2
3if
4 if
5 .6.1 if
6
7
8 C/C++
8.1 owhile
8.2 o while
9 .6.2 while
10
http://www.pylearn.com
11
12 C/C++
12.1 ofor
12.2 o for
13 .6.2 for
14
15
16 C/C++/Java/C#
16.1 o
17 break
18 .6.4 break
19
G2's Poetic Python 20
21continue
22 continue
23
24
24.1 o
.6
Python
.
.
' 'Good Morning ' 'Good Evening
.
Python while. for - if
http://www.pylearn.com
if
if
(else- ) (if-block
. else .) block
if
if .6.1
#!/usr/bin/python
# Filename: if.py
number = 23
guess = int(raw_input('Enter an integer : '))
if guess == number:
print 'Congratulations, you guessed it.' # New
block starts here
print "(but you do not win any prizes!)" # New
block ends here
elif guess < number:
print 'No, it is a little higher than that' #
Another block
# You can do whatever you want in a block ...
else:
print 'No, it is a little lower than that'
# you must have guess > number to reach here
print 'Done'
# This last statement is always executed, after the if
statement is executed
$ python if.py
Enter an integer : 50
No, it is a little lower than that
Done
$ python if.py
Enter an integer : 22
http://www.pylearn.com
.
number .23
)(raw_input . .
.
raw_input
. enter
raw_input . int
. guess . int
(... ).
.
. Python
. Python .
' tab ' .
if - Python
.
. elif
if else-if else if-elif-else .
.
http://www.pylearn.com
else elif
( ).
if if-block if - if
.
elif else . if :
if True:
'print 'Yes, it is true
Python if else elif
if .
'print 'Done . Python
.
. (
C/C++ ) .
.
C/C++
switch Python . if..elif..else
( ).
while
while
. while looping . while
else .
while
.6.2 while
http://www.pylearn.com
#!/usr/bin/python
# Filename: while.py
number = 23
running = True
while running:
guess = int(raw_input('Enter an integer : '))
if guess == number:
print 'Congratulations, you guessed
it.'
running = False # this causes the while
loop to stop
elif guess < number:
print 'No, it is a little higher than
that.'
else:
print 'No, it is a little lower than
that.'
else:
print 'The while loop is over.'
# Do anything else you want to do here
print 'Done'
$ python while.py
Enter an integer : 50
No, it is a little lower than that.
Enter an integer : 22
No, it is a little higher than that.
Enter an integer : 23
Congratulations, you guessed it.
The while loop is over.
Done
http://www.pylearn.com
-
. while .
if raw_input while while
running True . running
True while-block .
running . while-block
. else-block
.
else while False -
. else while
while !
False True 0 1.
1 .
else-block
while ( while).
C/C++
else while .
for
for..in .
. .
.
http://www.pylearn.com
for
.6.2 for
#!/usr/bin/python
# Filename: for.py
for i in range(1, 5):
print i
else:
'print 'The for loop is over
$ python for.py
1
2
3
4
The for loop is over
. range
.
range
.range(1,5) = <4 ,3 ,2 ,1 . range
1 . range
. ) range(1,5,2 = <1,3 .
. .
http://www.pylearn.com
http://www.pylearn.com
$ python break.py
Enter something : Programming is fun
Length of the string is 18
Enter something : When the work is done
Length of the string is 21
Enter something : if you wanna make your work also fun:
Length of the string is 37
Enter something :
use Python!
Length of the string is 12
Enter something : quit
Done
.
.' quit'
.
for break . len
.
G2's Poetic Python
: G2's Poetic Python
Programming is fun
When the work is done
if you wanna make your work also fun:
use Python!
http://www.pylearn.com
! Python
continue
Python continue
.
continue
continue= .6.5
#!/usr/bin/python
# Filename: continue.py
while True:
s = raw_input('Enter something : ')
if s == 'quit':
break
if len(s) < 3:
continue
print 'Input is of sufficient length'
# Do other kinds of processing here...
$ python continue.py
Enter something : a
Enter something : 12
Enter something : abc
Input is of sufficient length
Enter something : quit
len .
http://www.pylearn.com
continue .
. continue for .
for while - if
continue. break Python
. .
. .
1 .
2
3
4
5 global
6
7
8return
DocStrings 9
10
http://www.pylearn.com
. .
.
range len
def . def ( )
( : ) .
. :
.7.1
#!/usr/bin/python
# Filename: function1.py
def sayHello():
print 'Hello World!' # block belonging to the
function
# End of function
sayHello() # call the function
$ python function1.py
!Hello World
sayHello .
.
http://www.pylearn.com
.
.
.
.
( ) , .
.
.
.
.7.2
#!/usr/bin/python
# Filename: func_param.py
def printMax(a, b):
if a > b:
'print a, 'is maximum
else:
'print b, 'is maximum
printMax(3, 4) # directly give literal values
x = 5
y = 7
printMax(x, y) # give variables as arguments
http://www.pylearn.com
$ python func_param.py
4 is maximum
7 is maximum
printMax b a .
if .. else .
printMax ( )
. (printMx(x,y
x a y b . printMax
.
. .
)(scope of the variable .
.
.7.3
#!/usr/bin/python
# Filename: func_local.py
def func(x):
print 'x is', x
x = 2
http://www.pylearn.com
$ python func_local.py
x is 50
Changed local x to 2
x is still 50
x
. 2 x . x . x
x .
print x .
global
.
.
global .
global .
(
) .
http://www.pylearn.com
. global
.
.7.4 global
#!/usr/bin/python
# Filename: func_global.py
def func():
global x
print 'x is', x
x = 2
print 'Changed global x to', x
x = 50
)(func
print 'Value of x is', x
$ python func_global.py
x is 50
Changed global x to 2
Value of x is 2
global x .
x x
.
http://www.pylearn.com
:global x,y,z
global .
.
.
( ; )
.
.
) ( immutable .
. .
.7.5
#!/usr/bin/python
# Filename: func_default.py
def say(message, times = 1):
print message * times
)'say('Hello
)say('World', 5
$ python func_default.py
Hello
WorldWorldWorldWorldWorld
http://www.pylearn.com
say .
. times
1 .
say .
say 5
5 .
.
)(position .
)def func(a,b=5 ) def func(a=5,b .
. ) (keyword ) (position
.
.
.
.7.6
http://www.pylearn.com
#!/usr/bin/python
# Filename: func_key.py
def func(a, b=5, c=10):
print 'a is', a, 'and b is', b, 'and c is', c
)func(3, 7
)func(25, c=24
)func(c=50, a=100
python func_key.py
is 3 and b is 7 and c is 10
is 25 and b is 5 and c is 24
is 100 and b is 5 and c is 50
$
a
a
a
func
.
(func(3,7 a 3 b 5 c
10 .
(func(25,c=24 a 25
. c 24 . b
5 .
(func(c=50,a=100
. c a a
c .
http://www.pylearn.com
return
return . .
.
return
.7.7 return
#!/usr/bin/python
# Filename: func_return.py
def maximum(x, y):
if x > y:
return x
else:
return y
)print maximum(2, 3
$ python func_return.py
3
maximum
. if .. else
.
http://www.pylearn.com
def someFunction():
pass
pass .
DocStrings
documentation strings docstrings
. ) ( DocStrings
docstring !
DocStrings
.7.8 DocStrings
#!/usr/bin/python
# Filename: func_doc.py
def printMax(x, y):
'''Prints the maximum of two numbers.
'''The two values must be integers.
http://www.pylearn.com
$ python func_doc.py
5 is maximum
Prints the maximum of two numbers.
The two values must be integers.
docstring . DocStrings
( ) .
docstring
.
.
docstring .
http://www.pylearn.com
printMax ( ____doc
) .
( . ).
)( help docstring
! __ __doc
. (help(printMax
. help q
.
.
.
pydoc ()help docstring
.
.
.
.
. .
1
2
3 .pyc Byte-compiled
4from import
5 __ __name
6
http://www.pylearn.com
from import 7
8)(dir
9
.
.
.
.py .
) (import .
.
.
sys
.8.1 sys
#!/usr/bin/python
# Filename: using_sys.py
import sys
'print 'The command line arguments are:
for i in sys.argv:
print i
'print '\n\nThe PYTHONPATH is', sys.path, '\n
http://www.pylearn.com
sys import .
. sys
.
import sys
sys.path sys.py .
.
(initialization)
. 'sys' ' 'system .
argv sys .
argv .
sys .
http://www.pylearn.com
sys.argv ( )
. sys.argv
.
IDE
.
python using_sys.py we are arguments
using_sys.py python
. sys.argv .
sys.argv
. ' 'using_sys.py ] sys.argv[0 ' 'we
] sys.argv[1 ' 'are ] sys.argv[2 ' 'arguments ] sys.argv[3
. 0 1 .
) (import .
sys.path
sys.path
sys.path PYTHONPATH
sys.path .
.
sys.path .
.pyc Byte-compiled
. ) (byte-compiled .pyc
(
) .
.
platfrom . .pyc .
http://www.pylearn.com
from import
argv ( sys.
) from sys import argv .
sys * from sys import .
. from import
import
.
__ __name
. .
.
____name .
__ __name
.8.2 __ __name
#!/usr/bin/python
# Filename: using_name.py
if __name__ == '__main__':
'print 'This program is being run by itself
else:
'print 'I am being imported from another module
http://www.pylearn.com
$ python using_name.py
This program is being run by itself
$ python
>>> import using_name
I am being imported from another module
>>>
__ __name '__ '__main
.
!
. .py .
.
.8.3
#!/usr/bin/python
# Filename: mymodule.py
def sayhi():
'print 'Hi, this is mymodule speaking.
'version = '0.1
# End of mymodule.py
http://www.pylearn.com
.
.
.
import
sys.path .
#!/usr/bin/python
# Filename: mymodule_demo.py
import mymodule
)(mymodule.sayhi
print 'Version', mymodule.version
$ python mymodule_demo.py
Hi, this is mymodule speaking.
Version 0.1
.
''Pythonic
.
http://www.pylearn.com
from import
from import .
#!/usr/bin/python
# Filename: mymodule_demo2.py
from mymodule import sayhi, version
# Alternative:
* # from mymodule import
)(sayhi
print 'Version', version
mymodule_demo2.py mymodule_demo.py .
)(dir
dir identifier
. identifer .
dir
.
.
dir
.8.4 dir
$ python
>>> import sys
>>> dir(sys) # get list of attributes for sys module
http://www.pylearn.com
sys dir
dir .
http://www.pylearn.com
.
. dir
a dir
a . / a
del dir .
del /
del a a
.
.
.
.
.
. .
1
2
3
4
5 print
6
7
http://www.pylearn.com
8
9
10
. .
) (list ) (tuple
(dictionary) .
.
.
.
.
) (mutable data type .
.
. i
( 5 )
http://www.pylearn.com
( ) i ( ) int .
)help(int .
.
.
. append list
. )' mylist.append('an item
mylist .
.
. /
.
mylist.field .
.9.1
#!/usr/bin/python
# Filename: using_list.py
# This is my shopping list
]'shoplist = ['apple', 'mango', 'carrot', 'banana
'print 'I have', len(shoplist), 'items to purchase.
print 'These items are:', # Notice the comma at end of
the line
for item in shoplist:
print item,
'print '\nI also have to buy rice.
)'shoplist.append('rice
print 'My shopping list is now', shoplist
http://www.pylearn.com
$ python using_list.py
I have 4 items to purchase.
These items are: apple mango carrot banana
I also have to buy rice.
My shopping list is now ['apple', 'mango', 'carrot',
'banana', 'rice']
I will sort my list now
Sorted shopping list is ['apple', 'banana', 'carrot',
'mango', 'rice']
The first item I will buy is apple
I bought the apple
My shopping list is now ['banana', 'carrot', 'mango',
'rice']
shoplist . shoplist
.
http://www.pylearn.com
for .. in .
(sequence) .
.
( ), print line
break print .
.
append
print .
sort .
.
.
.
del .
del .
] del shoplist[0 ( .
0 ) .
.
) help(list
)(Tuple
( ),
.
.
http://www.pylearn.com
.9.2
#!/usr/bin/python
# Filename: using_tuple.py
zoo = ('wolf', 'elephant', 'penguin')
print 'Number of animals in the zoo is', len(zoo)
new_zoo = ('monkey', 'dolphin', zoo)
print 'Number of animals in the new zoo is',
len(new_zoo)
print 'All animals in new zoo are', new_zoo
print 'Animals brought from old zoo are', new_zoo[2]
print 'Last animal brought from old zoo is',
new_zoo[2][2]
$ python using_tuple.py
Number of animals in the zoo is 3
Number of animals in the new zoo is 3
All animals in new zoo are ('monkey', 'dolphin',
('wolf', 'elephant', 'penguin'))
Animals brought from old zoo are ('wolf', 'elephant',
'penguin')
Last animal brought from old zoo is penguin
len zoo
.
.
http://www.pylearn.com
! new_zoo
.
.
( =< )
.
new_zoo ]new_zoo[2
new_zoo ] new_zoo[2][2 .
.
my_empty=() .
. ( )
2 ) singleton = ( 2, .
Perl
)(flattened
.
. .
print
print . .
http://www.pylearn.com
.9.3
#!/usr/bin/python
# Filename: print_tuple.py
age = 22
'name = 'Swaroop
)print '%s is %d years old' % (name, age
print 'Why is %s playing with that python?' % name
print %
.
.
%s %d .
.
%s name
%d age
.
. %s name
.
print
.
.
http://www.pylearn.com
%s
. .
.
print %
.
.
. () ( )
.
.
( )
.
.
}d = {key1: value1 , key2 : value2
. / :
, ?> .
/ dict .
.9.4
#!/usr/bin/python
# Filename: using_dict.py
# 'ab' is short for 'a'ddress'b'ook
http://www.pylearn.com
'Swaroop'
:
ab = {
'swaroopch@byteofpython.info',
'Larry'
: 'larry@wall.org',
'Matsumoto' : 'matz@ruby-lang.org',
'Spammer'
: 'spammer@hotmail.com'
}
print "Swaroop's address is %s" % ab['Swaroop']
# Adding a key/value pair
ab['Guido'] = 'guido@python.org'
# Deleting a key/value pair
del ab['Spammer']
print '\nThere are %d contacts in the address-book\n' %
len(ab)
for name, address in ab.items():
print 'Contact %s at %s' % (name, address)
if 'Guido' in ab: # OR ab.has_key('Guido')
print "\nGuido's address is %s" % ab['Guido']
$ python using_dict.py
Swaroop's address is swaroopch@byteofpython.info
There are 4 contacts in the address-book
Contact
Contact
Contact
Contact
Swaroop at swaroopch@byteofpython.info
Matsumoto at matz@ruby-lang.org
Larry at larry@wall.org
Guido at guido@python.org
http://www.pylearn.com
ab .
/
. ) (syntax
.
/
. Guido
.
del .
/
del . .
/ items
foor .. in
Addrees name for
.
in has_key dict
/ . dict
) help(dict .
.
! .
/
( .
symbol table )
http://www.pylearn.com
(indexing)
(slicing)
.
.9.5
#!/usr/bin/python
# Filename: seq.py
shoplist = ['apple', 'mango', 'carrot', 'banana']
# Indexing or 'Subscription' operation
print 'Item 0 is', shoplist[0]
print 'Item 1 is', shoplist[1]
print 'Item 2 is', shoplist[2]
print 'Item 3 is', shoplist[3]
print 'Item -1 is', shoplist[-1]
print 'Item -2 is', shoplist[-2]
# Slicing on a list
print 'Item 1 to 3 is', shoplist[1:3]
print 'Item 2 to end is', shoplist[2:]
print 'Item 1 to -1 is', shoplist[1:-1]
print 'Item start to end is', shoplist[:]
# Slicing on a string
name = 'swaroop'
print 'characters 1 to 3 is', name[1:3]
print 'characters 2 to end is', name[2:]
print 'characters 1 to -1 is', name[1:-1]
print 'characters start to end is', name[:]
http://www.pylearn.com
$ python seq.py
Item 0 is apple
Item 1 is mango
Item 2 is carrot
Item 3 is banana
Item -1 is banana
Item -2 is carrot
]'Item 1 to 3 is ['mango', 'carrot
]'Item 2 to end is ['carrot', 'banana
]'Item 1 to -1 is ['mango', 'carrot
Item start to end is ['apple', 'mango', 'carrot',
]''banana
characters 1 to 3 is wa
characters 2 to end is aroop
characters 1 to -1 is waroo
characters start to end is swaroop
.
subscription .
. 0 . shoplit[0]
] shoplist[3 shoplist .
.
] shoplist[-1 shoplist[-2] .
slicing :
.
. : .
http://www.pylearn.com
( ) : slicing
( ) : .
. slice
.
] shoplist[1:3 1 ( 2
) 3
]shoplist[: .
.
.
!
. bind
.
) (references
.
.9.6
#!/usr/bin/python
# Filename: reference.py
'print 'Simple Assignment
]'shoplist = ['apple', 'mango', 'carrot', 'banana
http://www.pylearn.com
$ python reference.py
Simple Assignment
shoplist is ['mango', 'carrot', 'banana']
mylist is ['mango', 'carrot', 'banana']
Copy by making a full slice
shoplist is ['mango', 'carrot', 'banana']
mylist is ['carrot', 'banana']
. comment
( complex
. ) integer
http://www.pylearn.com
.
Perl
.
.
.
.
str .
.
)help(str .
.9.7
#!/usr/bin/python
# Filename: str_methods.py
name = 'Swaroop' # This is a string object
if name.startswith('Swa'):
'"print 'Yes, the string starts with "Swa
if 'a' in name:
'"print 'Yes, it contains the string "a
if name.find('war') != -1:
http://www.pylearn.com
$ python str_methods.py
"Yes, the string starts with "Swa
"Yes, it contains the string "a
"Yes, it contains the string "war
Brazil_*_Russia_*_India_*_China
. startswith
. in
.
find
1 - . str
join
.
.
.
.
http://www.pylearn.com
. . .
1 . .
2
3
4
5
6
7
8
9
. .
.
" :
."
. .
http://www.pylearn.com
.
. .
.
.
.
zip .
(zip) .
zip /
. Info-Zip
.
.
.
.10.1
#!/usr/bin/python
# Filename: backup_ver1.py
import os
import time
# 1. The files and directories to be backed up are
specified in a list.
]'source = ['/home/swaroop/byte', '/home/swaroop/bin
http://www.pylearn.com
$ python backup_ver1.py
Successful backup to /mnt/e/backup/20041208073244.zip
. ()
( Debug)
. (bug)
http://www.pylearn.com
. time os )(import
. source
.
target_dict . ) (zip
()time.strftime .
zip. target_dir .
()time.strftime ) (specification
. y% .
00 99 . %m
01 12 .
. ( ) print
( ) .
zip + .
.
zip_command .
( shell dos
) .
zip . q
zip ) (quietly . r
zip
.
qr . ) (zip
source
.
join
.
http://www.pylearn.com
os.system
shell 0
.
.
!
source target
. ( \ )
( \ ) )(escape sequences
!
\ ) escape
) \ ( (
sequence raw strings .
' 'C:\\Douments '\ r'C:\Documents ' 'C:\Docments
escape sequence ( D\ ) !
. Unix\Linux
.
) (operation ( deploymet ) .
() .
.
.
http://www.pylearn.com
)(maintenance .
.
.
.
.10.2
#!/usr/bin/python
# Filename: backup_ver2.py
import os
import time
# 1. The files and directories to be backed up are
specified in a list.
]'source = ['/home/swaroop/byte', '/home/swaroop/bin
= # If you are using Windows, use source
[r'C:\Documents', r'D:\Work'] or something like that
# 2. The backup must be stored in a main backup
directory
target_dir = '/mnt/e/backup/' # Remember to change this
to what you will be using
# 3. The files are backed up into a zip file.
# 4. The current day is the name of the subdirectory in
the main directory
)'today = target_dir + time.strftime('%Y%m%d
http://www.pylearn.com
$ python backup_ver2.py
Successfully created directory /mnt/e/backup/20041208
Successful backup to /mnt/e/backup/20041208/080020.zip
$ python backup_ver2.py
Successful backup to /mnt/e/backup/20041208/080428.zip
.
os.exists
http://www.pylearn.com
.
.
os.mkdir
os.sep
. / ' '/ '\\'
' ': . os.sep
.
.
) (zip
.
. 10.3 ( ) !
#!/usr/bin/python
# Filename: backup_ver2.py
import os
import time
# 1. The files and directories to be backed up are
specified in a list.
]'source = ['/home/swaroop/byte', '/home/swaroop/bin
= # If you are using Windows, use source
[r'C:\Documents', r'D:\Work'] or something like that
# 2. The backup must be stored in a main backup
directory
target_dir = '/mnt/e/backup/' # Remember to change this
to what you will be using
http://www.pylearn.com
$ python backup_ver3.py
File "backup_ver3.py", line 25
target = today + os.sep + now + '_' +
^
http://www.pylearn.com
( )
!
.
.
.
.
( )+
.
) \ ( . .
.
. 10.4
#!/usr/bin/python
# Filename: backup_ver2.py
import os, time
# 1. The files and directories to be backed up are
specified in a list.
]'source = ['/home/swaroop/byte', '/home/swaroop/bin
= # If you are using Windows, use source
[r'C:\Documents', r'D:\Work'] or something like that
# 2. The backup must be stored in a main backup
directory
http://www.pylearn.com
http://www.pylearn.com
$ python backup_ver4.py
Enter a comment --> added new examples
Successful backup to
/mnt/e/backup/20041208/082156_added_new_examples.zip
$ python backup_ver4.py
>Enter a comment --
Successful backup to /mnt/e/backup/20041208/082316.zip
!
. raw_input .
len
. (
). Enter .
(zip) .zip
( _ )
.
.
v .
. sys.argv
extend list source .
tar zip
. tar gzip
.
http://www.pylearn.com
-c .
verbose -v
.
-z gzip .
-f
.
-X
~* ~ .
zipfile tarfile
.
. os.system
(
). .
os.system .
http://www.pylearn.com
( )
( )
( )
( )
( )
( )
:
. .
. .
.
.
.
.
http://www.pylearn.com
. .
1
2
self 3
4
5
6____init
7
8
9
(
) procedure-oriented .
. .
.
.
.
int
( ) int .
http://www.pylearn.com
C/C++/Java/C#
) int .
(
C++ ( 1.5 ) .
) help(int .
Java 1.5 C# unboxing boxing
.
.
.
. method
.
.
/ ) (attributes .
: /
instance variables
.
class variables .
class
.
Self
.
self .
self
.
http://www.pylearn.com
( ) .
self IDE
C++/Java/C#
self self C++ this C# .
self
. MyClass
MyObject .
)MyObject.method(arg1,arg2 .
)MyClass.method(Myobject,arg1,arg2 - self
.
self .
.
: . 11.1 :
#!/usr/bin/python
# Filename: simplestclass.py
class Person:
pass # An empty block
)(p = Person
print p
:
$ python simplestclass.py
http://www.pylearn.com
http://www.pylearn.com
$ python method.py
?Hello, how are you
self . SayHi self
.
____init
.
____init . __ __init
.
. .
____init
. 11.3 ____init
#!/usr/bin/python
# Filename: class_init.py
class Person:
def __init__(self, name):
self.name = name
def sayHi(self):
print 'Hello, my name is', self.name
)'p = Person('Swaroop
)(p.sayHi
# This short example can also be written as
)(Person('Swaroop').sayHi
http://www.pylearn.com
:
$ python class_init.py
Hello, my name is Swaroop
__ __init name (
self ) . name .
.
. __ __init
. . self.name
SayHi .
C++/Java/C#
__ __init C# C++ .
.
bound
.
.
( )
.
.
/ .
http://www.pylearn.com
.
.
. 11.4
#!/usr/bin/python
# Filename: objvar.py
class Person:
'''Represents a person.'''
population = 0
def __init__(self, name):
'''Initializes the person's data.'''
self.name = name
print '(Initializing %s)' % self.name
# When this person is created, he/she
# adds to the population
Person.population += 1
def __del__(self):
'''I am dying.'''
print '%s says bye.' % self.name
Person.population -= 1
if Person.population == 0:
print 'I am the last one.'
else:
print 'There are still %d people
left.' % Person.population
def sayHi(self):
'''Greeting by the person.
http://www.pylearn.com
$ python objvar.py
(Initializing Swaroop)
Hi, my name is Swaroop.
I am the only person here.
(Initializing Abdul Kalam)
Hi, my name is Abdul Kalam.
We have 2 persons here.
Hi, my name is Swaroop.
We have 2 persons here.
Abdul Kalam says bye.
There are still 1 people left.
Swaroop says bye.
I am the last one.
http://www.pylearn.com
.
population Person . name
( self ) .
population Person.population
self.population .
! self.name name
. .
__ __init Person
. population
. self.name
.
self
. ) ( attribute reference .
docstring .
docstring __ Person.__docdocstring
__ Person.sayHi.__doc .
__ __init __ __del
.
Person.population .
__ __del
del .
http://www.pylearn.com
C++/Java/C# ( )
) ( public ) ) virtual .
: __ privatevar
) (name-mangling )( private
.
[ : classname._classname__privatevar
] .
/
.
( . ) .
__ __del ) (destructor
.
.
.
. .
.
.
.
http://www.pylearn.com
SchoolMember
. -
( )
.
SchoolMember
.
-
) ( ID
SchoolMember .
.
SchoolMember .
-
.
.
SchoolMember (base class)
)(superclass (derived classes)
) (subclasses .
.
.11.5
#!/usr/bin/python
# Filename: inherit.py
class SchoolMember:
''''''Represents any school member.
def __init__(self, name, age):
self.name = name
http://www.pylearn.com
self.age = age
print '(Initialized SchoolMember: %s)' %
self.name
def tell(self):
'''Tell my details.'''
print 'Name:"%s" Age:"%s"' % (self.name,
self.age),
class Teacher(SchoolMember):
'''Represents a teacher.'''
def __init__(self, name, age, salary):
SchoolMember.__init__(self, name, age)
self.salary = salary
print '(Initialized Teacher: %s)' %
self.name
def tell(self):
SchoolMember.tell(self)
print 'Salary: "%d"' % self.salary
class Student(SchoolMember):
'''Represents a student.'''
def __init__(self, name, age, marks):
SchoolMember.__init__(self, name, age)
self.marks = marks
print '(Initialized Student: %s)' %
self.name
def tell(self):
SchoolMember.tell(self)
print 'Marks: "%d"' % self.marks
t = Teacher('Mrs. Shrividya', 40, 30000)
s = Student('Swaroop', 22, 75)
print # prints a blank line
members = [t, s]
for member in members:
http://www.pylearn.com
$ python inherit.py
)(Initialized SchoolMember: Mrs. Shrividya
)(Initialized Teacher: Mrs. Shrividya
)(Initialized SchoolMember: Swaroop
)(Initialized Student: Swaroop
"Name:"Mrs. Shrividya" Age:"40" Salary: "30000
"Name:"Swaroop" Age:"22" Marks: "75
. ____init self
.
.
self .
Tell SchoolMember
Student Teacher SchoolMember
.
Tell Tell SchoolMember
. ()
()
.
http://www.pylearn.com
( multiple inheritance ) .
. . .
.
/ .
. ./
1 /
2
Pickle 3
4
/
( ) .
.
print raw_input .
) str(string . rjust
. ) help(str .
/ .
.
http://www.pylearn.com
file
write readline read
.
file close .
.
.12.1
#!/usr/bin/python
# Filename: using_file.py
poem = '''\
Programming is fun
When the work is done
if you wanna make your work also fun:
use Python!
'''
f = file('poem.txt', 'w') # open for 'w'riting
f.write(poem) # write text to file
f.close() # close the file
f = file('poem.txt') # if no mode is specified, 'r'ead
mode is assumed by default
while True:
line = f.readline()
if len(line) == 0: # Zero length indicates EOF
break
print line, # Notice comma to avoid automatic
newline added by Python
f.close() # close the file
http://www.pylearn.com
$ python using_file.py
Programming is fun
When the work is done
if you wanna make your work also fun:
!use Python
file
. ) ' ( 'r ( 'w' ) ) ' ( 'a
) help(file
.
.
write file
.
.
. readline
.
.
print print
.
poem.txt .
Pickle
pickle
.
.
http://www.pylearn.com
Pickle cPickle
. () 1000 C
. cPickle
. pickle
Unpickling Pickling
Unpickling . Pickling 12.2
#!/usr/bin/python
# Filename: pickling.py
import cPickle as p
#import pickle as p
shoplistfile = 'shoplist.data' # the name of the file
where we will store the object
shoplist = ['apple', 'mango', 'carrot']
# Write to the file
f = file(shoplistfile, 'w')
p.dump(shoplist, f) # dump the object to a file
f.close()
del shoplist # remove the shoplist
# Read back from the storage
f = file(shoplistfile)
storedlist = p.load(f)
print storedlist
:
$ python pickling.py
['apple', 'mango', 'carrot']
http://www.pylearn.com
import .. as .
.
(Pickle ) cPickle !
p .
dump pickle
pickling .
load pickle
unpickling .
/ pickle
.
.
. .
1
2
Try..Except 3
4
5
Try..Finaly 6
7
http://www.pylearn.com
)(exceptions .
) (raise )(error .
) (SyntaxError (raise)
. )(error handler
.
Try..Except
)(try . Ctrl-z
.
http://www.pylearn.com
http://www.pylearn.com
$ python try_except.py
>Enter something --
?Why did you do an EOF on me
$ python try_except.py
!Enter something --> Python is exceptional
Done
try
/ except . except
.
except except
. try except
.
.
else try..ecxept . else
.
. .
raise (raise) .
.
http://www.pylearn.com
( raise)
. Exception Error
.13.2
#!/usr/bin/python
# Filename: raising.py
class ShortInputException(Exception):
'''A user-defined exception class.'''
def __init__(self, length, atleast):
Exception.__init__(self)
self.length = length
self.atleast = atleast
try:
s = raw_input('Enter something --> ')
if len(s) < 3:
raise ShortInputException(len(s), 3)
# Other work can continue as usual here
except EOFError:
print '\nWhy did you do an EOF on me?'
except ShortInputException, x:
print 'ShortInputException: The input was of
length %d, \
was expecting at least %d' % (x.length,
x.atleast)
else:
print 'No exception was raised.'
$ python raising.py
Enter something -->
http://www.pylearn.com
.
ShortInputException : (length)
) (atleast .
except
.
. except atleast length
.
Try..Finaly
finaly .
except finally try .
.
http://www.pylearn.com
Finally
Finally . 13.3
#!/usr/bin/python
# Filename: finally.py
import time
try:
f = file('poem.txt')
while True: # our usual file-reading idiom
line = f.readline()
if len(line) == 0:
break
time.sleep(2)
print line,
finally:
f.close()
print 'Cleaning up...closed the file'
$ python finally.py
Programming is fun
When the work is done
Cleaning up...closed the file
Traceback (most recent call last):
File "finally.py", line 12, in ?
time.sleep(2)
KeyboardInterrupt
http://www.pylearn.com
. 2
time.sleep .
( ) .
Ctrl-c / .
KeyboardInterrupt
finnaly .
try..finally try..except .
.
.
. .
1
2
3sys
4 sys
5os
6
http://www.pylearn.com
.
.
.
.
""Library Refrence
. .
sys
sys . sys.argv
.
.14.1 sys.argv
#!/usr/bin/python
# Filename: cat.py
import sys
def readfile(filename):
''''''Print a file to the standard output.
)f = file(filename
while True:
)(line = f.readline
if len(line) == 0:
break
print line, # notice comma
)(f.close
http://www.pylearn.com
$ python cat.py
No action specified.
$ python cat.py --help
This program prints files to the standard output.
Any number of files can be specified.
Options include:
--version : Prints the version number
--help
: Display this help
http://www.pylearn.com
http://www.pylearn.com
sys
sys.version
. sys.version_info
.
[swaroop@localhost code]$ python
>>> import sys
>>> sys.version
'2.3.4 (#1, Oct 26 2004, 16:42:40) \n[GCC 3.4.2
'])20041017 (Red Hat 3.4.2-6.fc3
>>> sys.version_info
)(2, 3, 4, 'final', 0
os
.
platform .
Linux Windows
. os.sep
[ . : / \ ] .
os .
os.name : platform
. ' 'nt 'posix' Linux/unix .
)( os.getcwd
.
)( os.putenv() os.getenv
.
)( os.listdir .
)( os.remove .
http://www.pylearn.com
)( os.system cmd/shell .
os.linesep : platform .
' '\r\n ' '\n ''\r .
)( os.path.split
.
)'>>> os.path.split('/home/swaroop/byte/code/poem.txt
)'('/home/swaroop/byte/code', 'poem.txt
)( os.path.isdir() os.path.isfile
. )( os.path.exist
.
.
) help(sys .
os sys .
.
.
. .
1
2
3
List Comprehension 4
http://www.pylearn.com
5
6 )(lambda
7 eval exec
8assert
9repr
10
.
.
__ __del__ __init
.
.
] x[key (
) )(__ __getitem
.
list !
.
.
.15.1
-
http://www.pylearn.com
. .
.
. .
>>> flag = True
'>>> if flag: print 'Yes
...
Yes
.
.
.
.
.
if
... . enter
.
.
http://www.pylearn.com
List Comprehension
List Comprehension .
2 2
List Comprehension .
List Comprehension
.15.1 List Comprehension
#!/usr/bin/python
# Filename: list_comprehension.py
]listone = [2, 3, 4
]listtwo = [2*i for i in listone if i > 2
print listtwo
$ python list_comprehension.py
][6, 8
( *i) 2 (if i
)> 2 . .
List Comprehension .
http://www.pylearn.com
* ** .
.
>>> def powersum(power, *args):
...
'''Return the sum of each argument raised to
'''specified power.
...
total = 0
...
for i in args:
...
)total += pow(i, power
...
return total
...
)>>> powersum(2, 3, 4
25
)>>> powersum(2, 10
100
* args
args tuple . **
/ .
)(lambda
.15.2
#!/usr/bin/python
# Filename: lambda.py
def make_repeater(n):
return lambda s: s * n
)twice = make_repeater(2
http://www.pylearn.com
)'print twice('word
)print twice(5
$ python lambda.py
wordword
10
make_repeater
. lambda .
lambda
. print lambda
.
eval exec
exec .
exec . :
>>>exec 'print "Hello World"' Hello World
eval ) (evaluate .
.
>>> eval('2*3') 6
http://www.pylearn.com
assert
assert .
) (raise
assert . assert AssertionError
)(raise .
>= 1
>= 1
call last):
? 1, in
repr
repr ( . `` )(Backtick
) (conversion )(reverse quotes
) .
: eval(repr(object)) == object
][ = >>> i
)'>>> i.append('item
`>>> `i
"]'"['item
)>>> repr(i
"]'"['item
http://www.pylearn.com
repr backtick
. repr __ __repr
.
.
.
.
.
. .
1
2
3 GUI
4
5
6
.
. " "
: " -
"
http://www.pylearn.com
.
.
.
( . ) . .
. cPickle
.
.
.
(-; .
!
.
GUI
IrfanView
.
Kuickshow GUI
bind . bind
C C++
.
GUI :
PyQt : bind Qt
KDE . Qt
http://www.pylearn.com
Qt Designer Qt .
PyQt /
) (GPL'ed .
PyQt " GUI : ("GUI QT"
)"Programming with Python: Qt Edition . [] . 1
[] 2 .
TkInter. GUI .
IDLE TkInter .
TkInter PythonWare.org [] 7
. TkInter / .
TkInter .
http://www.pylearn.com
python.org .
GUI
GUI .
. GUI
.
. KDE GNOME .
GUI . wxPython
.
byte-of-python [] 9
.
.
. "
"batteries include .
[ ] 10 .
[ ]- 11 Python.org .
.
.
comp.lang.python .
.
[ ] 12 . [] 13
mirror .
http://www.pylearn.com
Python Cookbook [] 14
.
Charming Python [] 15 David
Mertz .
Dive Into Python [] 16 .
' 'Dive Into Python . XML
Unit .
Jython [ ] 17 .
. Jython
.
Jyhon .
IronPython [ ] 18 C#
platform .NET/Mono/DotGNU .
.NET
platform ! IronPython pre-alpha
. Jim Hugunin IronPython
MicroSoft
.
. ! [] 20
. Vaults of Parnassus
[ ONLamp.com Python DevCenter ] 21 [ ] 22
dirtSimple.org [ ] 23 [ ] 24
.
http://www.pylearn.com
! .
.
!