Byte of Python Arabic
Byte of Python Arabic
Byte of Python
ة
ن
Swaroop C H
أف:
Kspersky0
www.linuxac.org
ه ﻝ ﻝ اﻝ
آب Byte Of Python
ابwww.byteofpython.info
اار ر
Version 1.20
ا
ـ
ات
**
9ی8ن ه( واة <; ا<>ت ا<< ا( ی! اAد@ء أﻥ 9 !3 5آ : Cا FGHواة.إﻥ.> 5ﺝة
<! LHو<!) N<@ 6Mاء ،وا PاPه ا! QاHﻥ. R
ی5ف اب ا <Q (6 ;@G Nه" Tا<> اا UQLویی; آ 4إﻥ3ز اPر @G9و – 2Q W C9وN6
اا
' ه ) Z (8 Y6وآ<; ا.3H
ه"ا اب 98!9د >< (!<Q Cا9 3Hی8ن .وه( 5Gف أ)) ا! . LHوه( 4ة <! 3Hذوي
ا]Hة آ"; ،وا5ف ذ; @! ه أﻥ Uآ @ U6Q ;<@ Cأﺝ^5ة ا! Hه آ _4 4ا!<4ت
ا` ﺙ ی!; أن 9 <Qی8ن ه"ا اب وإاذا آن ی; H.ة @ HGا ، 3Hی!; أی bان <Q
9ی8ن ه"ا اب
إذا آH. 2 cة G6 ،3H9 HGن 9 !5وﺝ Uاd.Aف 9 9ی8ن و> ا 3Hا! <b4ی;
أ cاbء @< Nا 8ه" Tا6d.Aت .
@< Nا Wذ; ( 9 ، eG9 UHی8ن @!
ی) 2ف ` > YHا 3Hا! <b4ی; ☺☺ !!
**درس ﺕر!!
(6أول ا9 Pأت 9ی8ن @ ا c3إ9 NﻥH cH8 Rﻥ"، (3ا ا) cQgأن أﺝ CQاd5) cH8
وآن @<( ا.Aر 9 9ی8ن و 9ل ،أ.Qt H 4<W
و
!@h9 cدة ا (6 iMHﺵ Hاﻥﻥ8@ N cت N<@ 6`9ل إیی; إس رای!ﻥ ذ; ا5آ ا!C3H
،وا!5ر ی< @ 56آ أ9 cMHی8ن ه( > ا 3Hا! HHMی.U
وآ"; اآ c4أن أ PyQt 4<Wﺝة ﺝا !9رﻥ
;" Perl-Qtرت أن 9ی8ن ه( ا<> ا] (9
Q9ه 9أت ا @ iMHآب ﺝ 9 > (6ی8ن .و( أﺝ أی ، !!5و
وﺝت kQ9ا 2ـ O'Reilly
و 5آﻥ cإ 9ه mا>< !8ی ،أو UHإ Nآ Hت أ
ب آﻥ 5اﺝ .
و (9ا c53إ Nاﺙ nLا( ﺝءت 9ی8ن ،و ذ; آﻥ`] cة ﺝا و>ة ،و
أ@6 (gة ﺝة
و
أ( ا i 5Q CQآن ي H.ة ،3H9 HGو9 @ W 5ی8ن ،و ،<! 5وW
LH!< !Ld
) Q9أﺵ 5أول ء ( 9ی8ن
! .o cH89 cزی Qردهت Red Hat 9 Linux ،
،وآ cأ 2Qل أه ، 56وآ cأزداد إﺙرة و36ة g.ت ( 6ة آ 9دة @ 9ی8ن
و
9أت ا C<9 9ا`M4ت،و) 5ی Qأ cMHﺙdﺙ F M4ی< Q9،ه cMHﺝدا L6 C!@ (6ة
أآ N<@ Hﺵ Cآب
و Q9اQی إ@دة ا9ت ،أ < (6 YHآﻥ Uﺝ4 Qا 9 > <Q (6ی8ن ،وأﻥ أأ Cأن ین ه"ا
اب Gه! ( و !3! Mا!`در ا!4
وه"ا اب 9أ آ!mdت ﺵ]` @ 9ی8ن و( ز cأﻥ (6 U6 mﻥ p4ا
- cر Wأﻥ( U6 c"9
ا 8ا - 53ن أآ @ AH
8ا.qی .
و d.ل اوح ا !3! Mا!`ر ا!4ح c< ،ا 8ا
Aات اHءة ،واAﻥدات وردود CQ6
.ااء ! )@ﻥ( آ8ا @< GM Nه"ا اب G!M
**ﺡ اب
** ا" ا!
ا!
ا)!( "5ا اب ه http://www.byteofpython.info
و d.ل ا!
ی!;
اء اب آH C9 dﺵ أو ^ی .o Cإار <ب ،وآ"; إر)ل ا!mdت
(
**(!وط ا!#$%
أ)) ؛ ; اMی (6ﻥ &Gوزی ،و@ض اب !F ،أﻥ; 2Gا .( Cb4اد ه( أﻥ A Uی!; ا)]ام
اب WPاض 3ری 9ون إذن ( .
; اMی (6اQی CواHء @< Nه"ا ا ،C!Qﺵی gأن م d@ Z9ت وا C MZا>ات وإار اC!Q
ا!Qل cMﻥ p4ا `.آ! (6ه"ا اب
اءة ا -ا Cا `.ا^9
Cb6 Creative Commons <Pیرة
ا`.
أو 56 5Gا N ]Gإﻥ Uیﺝ
!9ﺵی ;Mb eح ا.`.
**ا!اح
هك Fین Hء `! اHﻥ Rأه ه ﺝ gG9 5<Qﺝا iإﻥZ9 5ح و @ d9ب وأ ا.Pى
546ا A iM9 Qی 59 Ybأوﺝ Uا`ر ( C. A. R. Hoare ) ..
ا3ح (6اMة Aی U6 5ا"آء وا!ه9 Hر ی 56 5اآ^ وا!98ة ) ( C. W. Wendte
ا 02,ا4ول
ا
!Lا!Mیت:
Introduction................................................................................................................
!^ات 9ی8نFeatures of Python ............................................................................................
<]Summary ..................................................................................................................-
!ذا 9 pل ؟Why not Perl? ...............................................................................................
ذا یل ا!3HنWhat Programmers Say ..............................................................................
ــــ
* 9ی8ن ه( واة <; ا<>ت ا<< ا( ی! اAد@ء أﻥ gG9 5و
ی @<) Nاء) .ن Gورا
و4ﺝ| (6آ ه( ) <5وآ^ C (6ا!< !9رﻥ اآ 2وأ))ت أی > 5<@ C!Q 39
ا
ا! 67 $ن ه :
:ﺡ:9
W" Guido van Rossumیو 6ن رو)م “ > 9ی8ن أ 5<@ n<Fذ; ا Q9 )Aرؤی|5 Z@ U
اذا@ اHیgﻥ )" )9ك ﻥ( < 9Q8اLgة"" "Monty Python's Flying Circusو
ل إﻥ C8 5ا9Q8
ا( CاMاﻥت >"ى @<F @ 5ی 4` nﺝGه 4A9ف ، 5و). 5M
**ﺏ:?$1
9ی8ن > Q9P gG9اMود .إن
اءة 9ﻥ Rﺝ Hی8ن ید ی
UHاء ة ا<> اﻥ<^ی @< Nا Wأﻥ5
إﻥ^<3ی ر!
QHFه"ا ا )Aا!QGر Hی8ن ه وا أ@ mأ)ار
.5إﻥ Uی ; Yاآ^ @< C Nا!< أآ 8
ا<> ﻥ. 5G4
:**
.ی ا!`تQ( اN<@ C!Q 5<Q! )أي ﺝM > ن8ی9 CQ ﺝ، ا!`ر4! اRاH اQHg اmﻥ
N<@ ذ; أي >ات2<g ا!`ت دون أن یT" أي هN<@ C!Q أن5!ن ی8ی9 ><9 Rا9 UQ` Cآ
.مm< . أي ا@!دیت23 ی4 اU6 !9
دc إذا آ.قdFا
.
: ت2D اE هF-G ن6 ام ﺏI اJD
Linux, Windows, FreeBSD, Macintosh, Solaris,
OS/2, Amiga, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX,
VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus,
windows ce pocketpc! (4 اH! اNو
: !ة1, < **
ﺵ| اح2<g**وذ; ی
>< اNإC++ أوC .>< `ر ا5<یM أو یC++ أوC C8 !ﺝ/Q!3 > (6 بRﻥ9
)]ام ا!ﺝ ]< ا]رات9 (binary code i.e. 0s and 1s) " ادLزك "ﺙ5 ﺝ5!<ا( ی
(6 أH ا"اآة ویN إ2<` اص اRﻥH& اG9 linker/loader یم،RﻥH @ ><; ا.<!تQوا
. U<>
ﺵة آدH RﻥH اC> ﺵe6 .(L8 اد اN! إ3ا/! اﺝNج إM A ،ى. ﻥ أ،ن8ی9
<P ا<> اN ﺙ یﺝ ه"ا إbytecodes N!G یe) وC ﺵNة ا!`ر إ4ل ﺵMن ی8ی9 نh6 ،<. دا.ا!`ر
n<9 Q @<; أنp U إﻥi ن8ی9 ا)]ام89 C5)P اCQ3 ی،
( اا6 ، ه"اC آ.U<> ﺙ ی،زك53
]ن ا8ی9 Rا9 CQ3 یb ا& وه"ا أی،& ا،5<!M وe9ت اH M أو اآ،RﻥH! ا3 ﻥ
! C!Qه یQ9 و،. أH!ز آ5 ﺝN<@ ;9 ن ا]ص8ی9 Rﻥ9 &Gد ﻥ3 ;! یiM9 ،!M 8; أآ9
object-/5 ا!ﺝL ا3H وآ"; اprocedure-oriented/5 ا!ﺝL اﺝا3Hن @ ا8ی9
ر لM! یRﻥHن اh6 procedure-oriented/5 ا!ﺝL اﺝا3H( ا<>ت ا( @ ا46 .oriented
نh6 ، L ا3H( >ت ا6 و.5 ی! إ@دة ا)]اRاH اQg
)ىcG (اﺝاءات أو اوال ا
ن
ی ﺝا و8ی9 > و.Lﻥت واH ا9 !6 !3 ( اobjects/تLر ل اM! یRﻥHا
C8 ةH<>ت آ9 5] @ رﻥ9 و،{Object-Oriented Programming} oop C!Q gGH یg9
. 6 أو ﺝC++
:C8 دة3ى @ ا.Pت ا!@ اH!ی اQت ا)؛ ﺝ اH!< HG9 ذ;؛2 ﺝﻥNإ
. 8 وا8 واPython Imaging Library, Twisted, wxPython
ﺹ:%
Rا9 9 آCQ3 (داء وا!^ات اP اG R ^ی9 !3 M( ا6 5 إﻥ. ة و
ی8 > ن8ی9
.Q! وا5G اC آ9 !3 ن8ی9
أ9! أLا6 ،3ﻥ9 cH و( آ<! آ،@ رP أ))( یC9 5)]ا9 ل وأ
م9 ><9 23Q أﻥ
.( HG9 ﺝاQHF cMH أ5 إﻥi ن؛8ی9 (6 4ا
.ك5( اM واة ﺝ5ار واة )وW N<@ 5 أﻥQ و،آت5 ا>ات واHد آQ ل9 > cQb.
. "ا59 n<Q تGM ﺝاء أيh یc
5و أﻥH یA <H! ا٦ ل9 ^ن أن إارةM!و ا
the Comprehensive Perl ) CPAN ]! ـb اH!ل ه( ا9 (6 59 Q ﺝا وا( أﺵ5ا!^ة ا ا
modules/ واتRه ﺝ! ^ی، )A{وآ! ی( اH اN<@ لH Cرﺵ اP( }اArchive Network
)بM اU9 ي ﺵ(ء ی!; ام9 <!@ U9 ی!; ام-- n!Q وا3M< اm ﻥCQ< C "هFGH9 ل وه9
5 C!@ Uن ه أﻥ8ی9 @ ! 8ل أآ9 تH CQ3 (ب اH)P أ ا. modules/ ااتT")]ام ه9
. comp.lang.python
(6 ن8ی9 Nل إ9 ^< !دیC ﻥC!@ <( أ
حQ و.ن8ی9 89 لF أc
ن8ی9 C8 ! 5!!` دQ! ا٦ل9 > C آC>9 ه( `!! مParrot virtual machine آ";؛
. Tcl وPHP وRuby C8 ى.Pة اG4!وآ"; ا<>ت ا
،CHG!( ا6 ن8ی9 C.ل دا9 ا)]ام ﺝ! واتN<@ ! ن
درا9 ; ه"ا أﻥ; رHG9 ; ذUQ ی
e6 <@ أی ل؛N<@ .ن ای8ی9 > ﺵاكA9 CPAN Q( ا6 H أ
ىC( آ6 Cb6P; ذ; اM!) و"ا
.ثM) وﻥىmأن ﻥ
ن/!7*ذا
ل ا
.ن6 ﺏG { Eric S. Raymond} ESR ل8آ أ5!ء اm@ U أن أ ی5!! ا9ر
bزار{ وه أیH واL' }اراThe Cathedral and the Bazaar' آب:Eric S. Raymond •
.4! ا!`در اY<g` Z ا"ي و-]ا
3Hن ه( > ا8ی9 cMH أPython has become his favorite programming language/ " :
ل
.ن8ی9 (6 (اg. N( أو6 ( (M ا5<! ا! ه( اT" هHQ< ي " وb4!ا
"c++><9 4' و "اThinking in Java' '6<> ﺝ9 4ة 'ا5 ا2 وه ا:Bruce Eckel •
(ن ه8ی9 ! ن9 رU إﻥ: ویل.ن8ی9 إﻥﺝ8 أآU<Q هك >
ﺝp : ' یلThinking in C++'
complete interview << ا9! ا
أ ا.RH!< HG9 C5)ر أP اCQ ﺝN<@ ^ا<> اة ا( آ
.C4!^ی ا
Guido van )ﺵا لC( ﺝﺝ6 iMH وی ﺝدة اLisp > Uﻥ9 وف ﺝاQ ه: Peter Norvig •
( ; ذN إU ﺵرRossum
لd.
( اا6 Y ه"ا ا`یnM ی!; ا،Google ^أ3 یA ! ﺝ^ءاL داcن آﻥ8ی9 إن:یل
()5 CH
56Q <بg!رف اQ!! اL
(6 ن8ی9 > cQZ وا( و. Google Jobs M4 (6 mا
.ت3Hا
userlinux. ووعopensource.org لG)! ه أ ا: Bruce Perens •
G6!ن ا8ی9 بZ
و. دیQ QL9 @ p )
Q زیC!Q هفUserlinux
.Userlinux CH
@ ا( )نGL ا3H > اYH` (9ل ورو9 c<Q6 !<8
.;م یm إ@ادات اN<@ ; ا@!داHG9 <] وذ; یshell (6 ا!ﺵ/iM! اd@ ( ه$
e6 ^"ا ا59 iM! اN "; )ف أﺵ إ$
.ن8ی9 cH8 @<; أنUﻥh6 A وإ،Td@ أP( ا6 وضQ هC8 ِ]G<ت @ إارة اQ! اkQ9 cإذا رأی
.C
َ !M U ﺝًاQHG! وه"ا ا، @كH8 p ن8ی9 أنTQ ینM( <; ا6
;
َ ِm ﻥN<@ ن8ی9 2`َْ ینF ك َ َ ِْ@ ،ِM اT"( ه6.
p (6 yum C8 ،مm( ُء ا3َ (^م اM إدار ِة اR
َ ا9 )]ام9 binary packages ْ2ّ• آ
مm( ﻥ6 pkg-add - ، p ِ نH( دی6 apt-get - ، ﻥراكp ِ (6 urpmi - ،ورا6
.& ا، FreeBSD
.ِیg اT"ْ!ل هQِْ)A c
ِ ﻥﻥ9 A ً `ّج ا ُ Mََ) :9ﺡ:ُ
.5H89
زك و5 ﺝN إ5]G ذ; اﻥQ9 و.o ِ ْ نbinaries ^مC َ ّ!Mُ ْ یُ!ُِْ; َأن،; @ ذd ً ی9و
وا9 c اﻥﻥH و)ف !ك ﺵ.UH8 وsource code <د ا!`ريCیH آC!Q9 ن8ی9 2یُ!ِْ ُ َأنْ آ
. 2اآ
>ت8!رﻥ أآ9 ُ ﺝًاF>b ( رة6 cی9> 9.4 e6 5!3 <H وه( ی. ا<!تT" ه9 آN
.| ایوز9 N<@ H Rا9 ي ّ أC8 2 و اآ.ى.P ا3Hا
:K$7Dﺕ
ً`. ،;َ ا4 ت ِ ا!ّﻥT" ف ین أ هAny ] A ،6Zي ّﻥت إ ّ أcH8 مQ9 رَا. (gQَ @
. IDLE
( ر َةgQَ A T" ه، Hg9 .!<( ویوزQG ِ ن8ی9 R ِ ا9 C!M9 !
م% 70 (ن ا ّ ة أ8! اMا
. (Zا6 اC9 5ِ!m أﻥN<@ H8 ن8ی9 ُْن @ِْ َه ُ َ) H یp (<!QG C ّ ُ أن آi َ<آ
وزD ?! أوا! و+ ن6ل ﺏA ا
C9 PATH Cْ اZَ ج ُ Mَ ;ﻥh6 ، أوا ویوزg) ْ ِ ن8ی9 ْ!لQِْ) اN<@ ن
درا َ َُ إذا أردت أن
.YM
رة49 e>Z ا،XP، 2003 ،2000 یوزHG9
.Control Panel -> System -> Advanced -> Environment Variables
" :6Zh9
وEDIT .' ﺙ ّ اSystem Variables' G
(6 PATH Nّ!G! ا!>ّ ِ اN<@ e>Zا
2)! اC ا) اC!Q) اHg9 . هكCQ49 ا!بgGی ا5( ﻥ6 ("" ون أ
اس9) " C:\Python23
.;
C: \ Autoexec ِ <! اN( إ
َ اgGف اb ی،ِ"6م ااm
ِم ِ ْ ﻥP& ا ِ G<
. َمm اC> @ون أ
اس ""( ﺙ أ9) 'PATH=%PATH%;C:\Python23'
.AUTOEXEC.NT < C ُ !QGَ ی،NT یوزHG9
ﺹ:Iا
R
َ ا9 )]ام9 UَHّ یُ!ُِْ; َأنْ ُآ،; @ا ذ.;َ ِm ﻥN<@ ن8ی9 c َ Hّ` ﺝًا أﻥ; ﻥC!M! اp مm HG9
.;Q( ُء زی3َ (^م اMإدار ِة ا
ن
َ q و ا.U<@ 9 وRﻥH < اC!Mَ لd. ;" آ5G9 ن8ی9 cH8 ی،م ویوزm HG9
.;
َ ِm ﻥN<@ ن8ی9 c َ Hّ`ﻥّ; ﻥ9 ض
ُ 4ََ) ،ًَ`َ@ِ َا6
.ن8ی9 N<@ ولPَ ا3ﻥ9 2 ُ ََْ) ، ادمC`4ا
\6 ا02,ا
Fو4?ات اIا
:ﺝ ول ات
!ل < `ريQ) ا- ّر ا`صM َْر. ا- interpreter prompt G4!ﺵ ا/iM !لQ) ا- !ا
d] ا- @ةG N<@ ُ`ُلM ا- Executable "4< <9ن ا8ی9 Rا9 - C
ُ !ْQَ آَ ی- output ا]ج-
:
*ا
. {console / terminal } ََ6َ َ`( ا6 python !< آ99 واP اg) N<@ interpreter أ9ا
.Hello World : @ رةH@ R َأنْ َى ا2 ُ ِ3َ ی.Enter ح ِ 4!9 @H 'Hello World ' :2ن اآqوا
َ QZ{ إذا َوDos} واP اg) interpreter G4! اC> ْ یُ!ُِْ; َأن، : وزD وI1
َ ّ>! اC دc
.IDLE R َ ﻥ9 C
َ !QGَ ْ یُ!ُِْ; َأن،; @ ذd ً ی9 و.Ld C9 PATH
.Integrated Development Environment ی <ِ >ةg ِ|9 @ رةH@ IDLE
Click on Start -> Programs -> Python 2.3 -> IDLE (Python GUI)
.ًb أیIDLE !<اQGَ َأنْ ی5ُِْ!ُ یp
ِ <!QG .
:9ﺡ:ُ
. .prompt for entering Python statements ن8یH G4! اRﻥH اiM ُل.ُ >>> إﺵرةdQ اT"ه
Example 3.1. Using the python interpreter prompt ن8ی9 G4 !ل ﺵQ) ا.3.1 ل8
$ 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
>>>
printC
ُ !QG ﻥM ﻥ.single Python statement e6 c<.
أدcرًا ! وأﻥ6 gG اR َ ; ﻥgQَن ی8ی9 ن
ّ _ْ أA
.U 5g@ أvalue !
ّ أیHg (ﺝ4 W C9)
.ِ اﺵN<@ رًا6 ُ َHْgُ T"" وهHello World" - v َ اU g@
أM ﻥ،ه
9( آ6 @ ُكGَُ) 3ّر اM! إن ا.5رة ا( َیG َر آﻥ; َ] ُر اM! َأنْ ] َر ا2 ُ ِ3َ ی.M( ا6 5 أ
89 ی أ)عg9 (; َ َ6ل هُ ََ) ;
َ ِیW N إC ُ ِ`َ @َكGُ َ وی8َ أآM ر<َ; یC ُ Qْ3َ وی،5G9 ن8ی9 Rا9
.ً أﻥ8وأآ
ﺝ^اءP اC ّ ُ ن آiM9 ( 2رزة <اآ9 )أانsyntax highlighting ())ِ ﺝًا هPت ا ِ H<g!إى ا
.U<!@ 4; وَ` ّ ُر آ َ َ3ﻥ9 ; أن َىNG یN ن8ی9 (6 colorized <ﻥR ِ ﻥH< 4<]!ا
8 وأآsyntax highlighting C!Q9 یمIDLE إنi .IDLE !لQ)ح @<; ا ُ
َ أ، ویوزC ُ !QGَ cإذا آ
.ى.! أﺵ ِء أZ IDLE !Z ; َ ِ3ا9 C>9 ; َ!حG اC8 ِ 89
;ه ذP واsyntax highlighting C!Q9 یمA UﻥP ) ر. اU إﻥ- Notepad ْC!QG A :ّ. mdُ
.ًA ( ِ آ! )ََى6 ُ ﺝًا5 دءة ( وهHت ا6G! اm )أيindentation - َ< َ ا8 ُ @َْ یA Uأﻥ
.; ذCُ َ!Q ًo @كG) (VIM ًb )وأیIDLE C8 ة3ّرات اM!ا
،اH. 3H c وإذا آ. ّرِاتM! ا9 ِ ْ ا]رات8<ی; ا6 ؛tg]d ،Linux / FreeBSD C ُ !QGَ cإذا آ
ُ 4Gََ)
ى وPّرات اM!! إﺙن ِ ْ ا5ﻥ9 ﺝ <لA و.Emacs أَوVIM C!QG ;! ا!آ أﻥ6
.ن8ی9 N<@ ;ِ3ا9 َ9ِ !5!Q)إ
وه( إى،KATE C َ !QGَ ْ |" یُ!ُِْ; َأن،LH ِ3H c إذا آ.(ِ3ا9 2<WP VIM C ُ !Q)َأﻥ ﺵ]`ً أ
ّ<Qَ ة أن9 ;ﻥ( أَوh6 ،Emacs أَوVIM ّ<َQَ c
ء وb
(6 HW راc( إذا آ6 .ِ<ّb4!أدوا( ا
.QH( ا!ى ا6 ;َ ا ﺝًا4 ;ن ذ ُ ََُ) i !5 ْ!ل أيQِْ)ا
.رك. ن ود8ی9 ّراتM! َ<!َ اL اm اﻥ،ّرM!< ى.P ^ال ُی ُ ا)ِْْف ا]رات اcإذا آ
.ن8یH (ِ< یg |9) (IDE (Integrated Development Environment ًbیُ!ُِْ; َأنْ َ] َر أی
نh6، ن8ی9 (6 ةH آR ِ ا9 َ9ِ9 ُْأHَ @ .C4ن <!^ی ا8ی9 ِ @ ( اIDE !َ ا<َ ـLﺵهْ ا
.M( ا6 َ ﺝًا4 ن
َ ُ ْ یُ! ُ َأنIDEs Rا9
.5) َ َ و8ن وأآ8ی9 Rا9 9 آC َ Qْ3َ ی56 - ّرا ﺝاM ْ. رﺝ ًء ا،ى.أُآ ّ ُر ًة أ
#!/usr/bin/python
# Filename : helloworld.py
print 'Hello World'
@ ()ی ا! ه !ن ا!< ا!`ري وا"ي ی( ابSource file: code/helloworld.py)
(U ;<!M
: P ا9( وآLinux terminal or DOS prompt) Cا/6` اY6 nیF @ RﻥH ه"ا اC>ﺵ
$ Python Hello World
R وا.Ctrl+F5 Y4!`ر ا. او اmenu Edit -> Run Script ا)]م،IDLE ]مG cاذا آ
.T أدﻥH آ! هoutput
"Beginning Perl" +ه,ب اﻝ$ واﻝ)ﻝ ﻝperl6/parrot آز وﻡ أز رواد$%ر اﻝ$'[وا ﻡ آ1]
Output
$ python helloworld.py
Hello World
( ل6و.ن8ی9 (6 ; Rﻥ9 أولC> (6 cM3 ﻥ-- !ﻥ5 ; ،Td@ أH آ! هR اN<@ c<` اذا
!<@ .ى. ة أRﻥH اC> وTd@ أH آ! هeHb9 ا!"آرRﻥH ا9 آN یﺝ، g. N<@ c<`
case-sensitive فP اM )GM9 ^!ن ی8ی9 أن
.ة.P( ا6 P Hف اM و اNوP( ا<! ا6 p >`ف اM_ اA -- Print ويG A print !< آ:ل8
و)ى !ذا أن ه"ا أ-- g) C( آ6 ولPف اM اCH
تFت ﺵd@ ت اوWا6 آ @م وﺝد،bأی
.nA c
( و6 5
:0A `$*آ
أي ﺵ(ء ب--" comments - <تQ "ا: ا<!تT" هN!G و.RﻥHی اg) ( أول6 mد@ﻥ ﻥ
. RﻥH رئ ه"ا ا4 )س أP( ا6 و هn<Q ه# ^ ی! اN<@
و@ ینshebang line N!G ( وه.ول هP اgG ا. ء8)9 <تQ]م اG یA ن8ی9
RﻥH أن ه"ا اp\یﻥp H]ن ه"ا یh6 RﻥH) ا9 @H # # @ رةH@ ا!< ا!`ري6 أول
.RﻥH" ا4 @ interpreter G4! ه"ا اC!Q ان ی23ی
platform ` أيN<@ RﻥH اC> !Lﻥ; داh9 U @<! أﻥ.( اG( ا6 C`49 و)ف یح ه"ا
. python helloworld.py :P اC8 واP اg) N<@ ﺵةH interpreter G4!ی اM لd.
@*
رئ4 وه"ا أ-- RﻥH( ا6 !5! اC4 اkQ9 ; ح3ﻥ9 (6 (ﻥd@ <ت أQا)]ام ا
) Q9 ;G4 ﻥc ی! أن ین أﻥ-] إن ه"ا ا، "آ.RﻥH اU9 یم56 5G9 ! یiM9 ;3ﻥ9
!!5أﺵ
( هprint !< إن آ.'Hello World' :-@ ه"ا اHg9 e6 م-- Python statement (< (<ت اQا
،!! n< A --string `< ﻥG<) رهH@9 5' یر اHello World' وCQ operator @ رةH@ CQ49
.Q9 !6 C`49 تM<g`! اT"( ه6 iMH)
Executable Python programs $,D- -ن ا
ﺏ6 ﺏbﺏ!ا
gGل @ اb4 اkQ9 5] ویوز یG و
ینp یﻥ/ p (]G N<@ A إnHg یA وه"ا
P)]ام ا9 executable permission "49 Y `یRﻥHء اg@ @< اQ ی، A أو.RﻥHول اAا
. ا!`رRﻥH اC> ﺙChmod
$ echo $PATH
/opt/mono/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/swaroop/bin
$ cp helloworld.py /home/swaroop/bin/helloworld
$ helloworld
Hello World
P ا2 اآ-
TرG ﺝ "آM أي ن دون اRﻥH اC> نq ی!; ا-
:9ﺡ:
@ةG! <]وج اq e>Zا
ا!^ی ل6Q! help () ا)]م.ن8ی9 (6 H<ت @ أي ﺵ(ء یQ N<@ `لM ی!; ا،C8!9و
!5G4@ة ﻥG!ی اF ‘ ا)]ام
> یM Nﺝ إM9 cﻥ6 ،print C8 operator CQ @ @ةG N<@ `لM اNﺝ إM9 c( ل آ6
/ p N<@ 5G9 ; وی! أن ی ذ.2) C9PYTHONDOCS environment variable |Hا
.ENV:P)]ام ا9 pیﻥ
@ةG رbM) أﻥ( اری ا54ن أن ی8یH ! یN 'print' یM " سH
A اd@ c])_ أﻥ( اd)
.@ أي ﺵ(ءHF U A (' وأﻥprint' ل
:d]ا
نq د@ ا، ن8ی9 ]مG cن أﻥq ا.5) C9 ن8ی9 Rا9 C> و،_4 و،9 آN<@ ن
دراq أن ن ا23ی
. ن8ی9 @ 8ه أآ4 <Qﻥ
" ا!اﺏــ0ـــ2,ا
ـــت$ 4ا
ات
kQ9 ". ی أن-- ; ذ8 أآCQ4 ی أنC آ"; ؟! هp أ،(4 یA e6 'Hello World' @HF إن
وا!>اتc9ا8)]ام ا9 ن8ی9 (6 ه"اnM ی! أن ﻥ.5 ﺵ(ءN<@ `لM وا59 2@d و ا،تd.!ا
.constants and variables
'This is string ‘ C8 <! أو ﺝe - 39.25 ، 23،1 ، 5 دQ ا:( ه6M اc98ل ا8
:(ﻥ8 اP ا. 6M ا5!
]مG c – وأﻥ6 5ﻥP literal 6M اN!G T" وه."! It's a string" او
5< آT"56 ،;" .> ی! أنA 5!
نP constant c9 وه( ﺙ-- .o ﺵ(ءA و5( ذا6 5G4 ﻥC8! 5أﻥ
.lliteral constants 6M اc9ا8 ا5ﻥ9 5یر ا
: ادG4ا
<4 أ@اد ا،long integers <یF MM أ@اد،integers MM أ@اد-:ع
ِ أﻥاQ9ن أر8ی9 (6 @ادPا
.complex numbers َHّ وأ@اد آfloating point ،!LQا
•
• '''This is a multi-line string. This is the first line.
• This is the second line.
• "What's your name?," I asked.
• He said "Bond, James Bond." '''
Escape Sequence
CH) N<@ !< ؟3 اT"د هM آ ; أن،( ' ) دی6 سH
اd@ N<@ يM <!3ض أﻥ; ی أن ن ا6ا
سH
اdQ9 (What's your name )رةHQ اT"ی هM ;! یA the string is What's your name ،ل8!ا
سH
A اd@ CQ3 @<; أنQ) "ا.(5 !< وأی3أ اH أیi ;Hن )ف ی8ی9 نP ’ دة4
;ز ذ3 ه"ا وی! إﻥ.(NوPس اH
A اd@ @ c5!< اﻥ3ن أن ا8ی9 Q یd|) -ی ا5 A ااة
\ { ه"ا-ی ا5 ﻥCH
} دة4!س اH
A اd@ CQ اﺝ.(وب5 اC)d)) escape sequence N!G@ة یG!9
.\ backslash. 4<]< اL! اF اN إUH'اﻥ--
'What\'s your name?'. :* س ﻡ( دة آ$%& اﻝ اﻝ "!ﻡ ا،ان
س ﻡ( د$%&ام ا7%"اي اﺱWhat's your name?" % ن% ﺱ233 اﻝ01 ه% ا ى ﻝ.
هك
س$%&Aام
!ﻡ ا7% اﺱ8 ﻡ> أﺝescape sequence ام7%
= اﺱ،8 وﻝ.س ﻡ;دوج$%& ا8ا
K ﻝK
ان،ﻝ1 آ.س ﻡ;دوﺝ$%&ﺹ ﻡ
"!ﻡ اJ اﻝ اG* ﺡل آﻥD Bاﻝ;دوﺝ ذا
escape sequence \\. ام7%
ﺱK اﻝbackslash B( ذا7 اﻝLاﻝ
’’’ آ ه-’’’ *س ﺙ!ﺙ$%&ام ا7% أﺡ اﻝ ق ﺱ8% ﺱ ان ؟ وB ﻥ3ﻡذا ﻝ أردت أن د ﺱ
اﻝ ء ﺱK% ﻝ- \ n % اﻝ3 ﻝescape sequence. ام7% أو اﺱ0!
> أ$ﻡ
This is the first line\nThis is the second line ا1 وﻡل
ه.ﺝ
escape ب5 اC)d) یQ وهك ا. - \t tab ه الescape sequences ى ـ.ة أL6 هك.
. هUQ4 ه8 أآN إe6 و( أﺵتsequences
N!< ا3ی ا5( ﻥ6 backslash \ 4<]< اL! اF ه أن ا،<!3( ا6 Umdﺵ(ء وا @< أن ﻥ
،ل8! اCH) N<@ . ﺝیg) 6Zون إ9 و،CH! اgG( ا6 !ةG `< اG<Gأن ا
Variables !ات$<ا
یF Nﺝ اM9 M وﻥ-- d ً ! أاQ )یYH` ی! أن یe6 literal constants 6M اc9ا8إن ا)]ام ا
لeHb9 ا!>ات.( ا`رة6 ا!>ات5m i وه"ا.b ای5 ( أي6 2@d<ت واQ! ]^ی ا
cG ا!>ات.Variable > )]ام9 اي ی!; ان ]^ن اي ﺵ(ء5!
وت4 ی! انUﻥP - 5!) اN<@
literal 6M اc9ا8 اpQ9 .<تQ! اkQ9 ]^نi ;9 ا]صH!زة ذاآة ا3M )ى اﺝ^اء
. أ)!ء5Lg@( ا9 و، ا!>اتT" هNی <ل اF Nﺝ إM9 c أﻥ،constants
(upper or lowercase) ة أو >ةHی آ39Aوف اM أن ین ا9 A فQ!ول اPف اM**ا
.('_') underscores b4] Fاو ﺵ
F و ﺵ، (upper or lowercase) ة أو ا`>ةHوف اMف ی! ان ن اQ! ا) ا9 **
.(9-0) او ار
م.('_') underscores b4]
cG myname وMyname ، ل8! اCH) N<@ .case-sensitive فP اM )G فQ!** أ)!ء ا
.ة.A اT"ى ان > ه.P( ا6 m >`ف اM واNوP( ا<! ا6 M Hف اM_ اd ﻥ.رﺝ واة9
# Filename : var.py
i=5
print i
i=i+1
print i
Output
$ python var.py
5
6
This is a multi-line string.
This is the second line.
. gG!م اb اﻥNح اZ9 ه"ا وی.(< دی آ! یg) @ة أN( ی! إg g) 9 آN<@ ل8
s = 'This is a string. \
This continues the string.'
Print s
: Indentation
{!! < وا2< وا"ی8 اN!G 6 و،5H"ی5ت وWا4دءة واHت ا6G! اm TQ Y<g`}
N!Gوه"ا ی. 5 أgGای ا9 (6 ءbHت اWا4ا، CQ49 و.ن8ی9 (6 !5 ءbHت اWا4ا
Indentation
<8ى اG یM (6 ]مG (g!اgGای ا9 (6 (تFت وا6G!)))اPء اbHت اWا4 ا.
. Statements ﻥتH! ا3 یM ]مG یTور9 وا"ي،(g! اgG<indentation level
C آ.indentation <8 اp4 ﻥ5 ان ین23 ی2 ﺝN اH ﺝG ( اstatements ﻥتH( ان اQوه"ا ی
.A `ل6 (6 blocks ! ار أهN<@ <8 و)ى أ.block < اN!G ﻥتH!@ ا3
: ل8! اCH) N<@.ءg. أN ی! أن یدي إF] اindentation <8 وه أن اTأ وا @<; أن "آ
i=5
print 'Value is', i # Error! Notice a single space at the start of the line
print 'I repeat, the value is', i
2ن اآ9 ﻥH] یi ن8ی9 U أﺵ إg] ا.(ﻥ8 اgGای ا9 (6 واةWر6 6G !_ أن ﺙA
; ه"ا أﻥNQ .YM` اU اﺝN<@ بW RﻥH آن اC8 .MM W RﻥH( ه"ا ا6 syntax يMا
!L دا5]G ( اGLء ا< ا8)9) ﻥتH ﺝیة اblock <ای آ9 FH@`رة ا9 ا9 أgG A
n6 (6 M اC8 A `ل6 (6 5<`4 ) یة3 اC ا)]ام ا56 ;!ت ا( یAM ا.(لM اQHg9،
.. ﻥتHا
:
**
.expressions اتHQ N<@ يM 599 ( ا( )مlogical lines) ( وهstatements ﻥتH ا2<Wأ
operators and operands وودC @اN إ5!G !ات یHQ أ ا.٣+٢ اتHQ اP eG9 ل8!آ
+ C8 از9 5<8! ! ﺵ(ء ویC!Q9 ( مU6d.ح وg! واG! وا3 )آ4 ه( و: Operators
. keywords/4!أو أ ا<!ت ا
@ رةH@ ٣ ،٢ HQ M اT"( ه6 و.operands/تdQ! اN!G ﻥتH اkQ9 2<g : Operators
operands
. 5 وا)]اoperators :CاQ ]`ة ل ا39 )ف ﻥمOperators
ل8! اCH) N<@ . ﺵةH interpreter G4!)]ام ا9 <8P( ا6 ةgQ!ب ا!دی اG ;! ی: g$-ﺕ
Python interpreter prompt ن8یH9 ا]صC@4! اG4! ا)]م ﺵ ا3+2 HQر اH.A
>>> 2 + 3
5
>>> 3 * 5
15
>>>
Table 5.1. Operators and their usage 5 وا)]اZ ایCاQ اHﺝول ی
Operator Name Explanation Examples
+ Plus Adds the two objects 3 + 5 gives 8. 'a' + 'b' gives 'ab'.
Either gives a negative
number or gives the -5.2 gives a negative number. 50 - 24
- Minus
subtraction of one number gives 26.
from the other
Gives the multiplication of
* Multiply the two numbers or returns 2 * 3 gives 6. 'la' * 3 gives 'lalala'.
the string repeated that many
Operator Name Explanation Examples
times.
** Power Returns x to the power of y 3 ** 4 gives 81 (i.e. 3 * 3 * 3 * 3)
4/3 gives 1 (division of integers
/ Divide Divide x by y gives an integer). 4.0/3 or 4/3.0 gives
1.3333333333333333
Floor
// (
9 ون9 !G اR ﻥQ 4 // 3.0 gives 1.0
Division
Returns the remainder of the
% Modulo 8%3 gives 2. -25.5%2.25 gives 1.5 .
division
Shifts the bits of the number
to the left by the number of 2 << 2 gives 8. - 2 is represented by
bits specified. (Each number 10 in bits. Left shifting by 2 bits
<< Left Shift
is represented in memory by gives 1000 which represents the
bits or binary digits i.e. 0 and decimal 8.
1)
11 >> 1 gives 5 - 11 is represented in
Shifts the bits of the number
Right bits by 1011 which when right
>> to the right by the number of
Shift shifted by 1 bit gives 101 which is
bits specified.
nothing but decimal 5.
Bitwise
& Bitwise AND of the numbers 5 & 3 gives 1.
AND
Bit-wise
| Bitwise OR of the numbers 5 | 3 gives 7
OR
Bit-wise
^ 5 ^ 3 gives 6
XOR
Bit-wise The bit-wise inversion of x is
~ ~5 gives -6.
invert -(x+1)
Returns whether x is less than
y. All comparison operators
return 1 for true and 0 for 5 < 3 gives 0 (i.e. False) and 3 < 5
Less false. This is equivalent to the gives 1 (i.e. True). Comparisons can
<
Than special variables True and be chained arbitrarily: 3 < 5 < 7
False respectively. Note the gives True.
capitalization of these
variables' names.
5 < 3 returns True. If both operands
Greater Returns whether x is greater are numbers, they are first converted
>
Than than y to a common type. Otherwise, it
always returns False.
Less Returns whether x is less than
<= x = 3; y = 6; x <= y returns True.
Than or or equal to y
Operator Name Explanation Examples
Equal To
Greater
Returns whether x is greater
>= Than or x = 4; y = 3; x >= 3 returns True.
than or equal to y
Equal To
x = 2; y = 2; x == y returns True. x =
Compares if the objects are
== Equal To 'str'; y = 'stR'; x == y returns False. x
equal
= 'str'; y = 'str'; x == y returns True.
Not Compares if the objects are
!= x = 2; y = 3; x != y returns True.
Equal To not equal
Boolean If x is True, it returns False.
not x = True; not y returns False.
NOT If x is False, it returns True.
x = False; y = True; x and y returns
False since x is False. In this case,
x and y returns False if x is Python will not evaluate y since it
Boolean
and False, else it returns knows that the value of the
AND
evaluation of y expression will has to be false (since
x is False). This is called short-
circuit evaluation.
x = True; y = False; x or y returns
Boolean If x is True, it returns True,
or True. Short-circuit evaluation applies
OR else it returns evaluation of y
here as well.
;" ، ا!لC< أﺝQ زیدة اCH) N<@ ; 5g@ن ( أ8ی9 (6 وﺝC دUو وآﻥHول ا( )ی3ا
.U9 ;M`أﻥ
CQ< H)Pی اM operators and operands تdQ!ا/ودM واCاQ! ا3 ( )
اسPا)]م ا
8 أآC9 دM 2 + (3 * 4) ،ل8! اCH) N<@ .( ااءة
ر ان6 C5); أ3ﻥ9 CQ3ح وZ9
Zو
ةL>( أن ن زاH ﻥAﻥ وdQ9ب وGM9 ]مG أن23
اس ) ( یP ا.; ذQ9 ﺵ(ءC وه"ا آ. 2 + 3 * 4
.( (4+3)+2 C8) .M@ ا
Table 5.2. Operator Precedence
Operator Description
lambda Lambda Expression
or Boolean OR
and Boolean AND
not x Boolean NOT
in, not in Membership tests
is, is not Identity tests
<, <=, >, >=, !=, == Comparisons
| Bitwise OR
^ Bitwise XOR
& Bitwise AND
<<, >> Shifts
+, - Addition and subtraction
*, /, % Multiplication, Division and Remainder
+x, -x Positive, Negative
~x Bitwise NOT
** Exponentiation
x.attribute Attribute reference
x[index] Subscription
x[index:index] Slicing
f(arguments ...) Function call
(expressions, ...) Binding or tuple display
[expressions, ...] List display
{key:datum, ...} Dictionary display
`expressions, ...` String conversion
.d`ل ا4( ا6 5 ) ﺵ5d. ! ا( ﻥCاQا
- و+ ل8! اCH) N<@ .Td@ أH!ول ا3( ا6 !L( ا6 ` اp4( ﻥ6 cQZ وH)P( ا6 ویG!ا اQا
.H)P اp4! ﻥ5
:Order of Evaluation
( اH)P"; إذا أردت > أ ا..q اCH
H) أU C@ یر أيCاQ اH)ن ﺝول أh6 ؛Zا6ا
<!@ CH
! !3ل إذا أردت أن ن @!< ا8! اCH) N<@ ،( )
اسP ی!; ا)]ام ا5! ي3ی
. (2 + 3) * 4 : C8
اسPات |" ی! ا)]ام اHQ( أ ا6 بbا
: Associativity FHرAا
. ! اNر إG اe!9 H)P( ا6 ا!آCاQل ا8! ا! آNر إG @دة اgH! اCاQا
g9 اC!M ``]! اCاQ اC8 CاQ اkQ9 .(2 + 3) + 4 C8 + 3 + 42 ل8! اCH) N<@
a = (b = c). رهH@9 CQ a = b = c :C8 رG اNا! إ
#!/usr/bin/python
# Filename: expression.py
length = 5
breadth = 2
$ python expression.py
Area is 10
Perimeter is 14
: 0A `$آ
>!( ا6 !59Z C ]^ی9 !
ﺙbreadth >! اN إ2 ! و اLength >! اN إ5 !}أ)ﻥ ا
{(area = length*breadth) ( آi8ا
M وﻥ.)A اp4 ﻥ5Lg@h9 ( breadth--length ) ا!>اتN إG ]^ن أوCgG!ل و@ض اF !
•
@ HQ ا3]^ی ﻥ9 )م.اتHQ@ة اG!9 CgG! اeM وG بGM 5]Gﻥ
ﻥh6 ،ﻥ8 اUM( ا6 ا.print نH)]ام ا9 U@Hg9 ﺙ ﻥمarea (6 >!( ا6 length * breadth
.print Yا`ی/نH( ا62 * (length + breadth) HQ)]ام
! ا9 ﺵةH
:ﺹ:Iا
expressions اتHQ واoperands تdQ!ا/9GMود اM واoperators CاQ إ)]ام ا4 آc
رأی
.Rﻥ9 أيBlocks C آN<@ ))( أH (وا
.ﻥتHا/ Y)]ام ا`ری9 3ا9 (6 5)]ا9 ! ی<( )ى آ ﻥم6و
دس1 ا02,ا
Control Flow
ﺝ ول ات
Introduction .......................................................................................................................
The if statement ......................................................................................................" if " نHا
Using the if statement ..................................................................................." if " نHا)]ام ا
How It Works ..............................................................................................................C!Qآ ی
The while .......................................................................................... " while " نHا
statement
Using the while statement ......................................................................." while " نHا)]ام ا
The for ........................................................................................................ " for " <Mا
loop
Using the for statement ............................................................................." for " نHا)]ام ا
The break statement ..........................................................................................."break " نHا
Using the break statement ........................................................................"break " نHا)]ام ا
The continue statement.................................................................................." continue " نHا
Using the continue statement ............................................................." continue " نHا)]ام ا
Summary ...................................................................................................................d]ا
:
*
p4( ﻥ6 5 d" آ4ص یd.h9 ﻥ و9 ن8ی9ﻥت ؛ وH اC)d) !Lن هك داA ا( رأیه اRاH( ا6
اارات وامkQ9 ا]ذRﻥH ی ا، ل8! اCH) N<@ C!Qب اGی اﻥF > ذا اردت.Pا
' Good Evening ' ' أوGood Morning ' !<@ آHF C8 4<]! <!ا
اQH 4<] ﺵء9
ن ام ؟q اc
ه اN<@ ; ی
ذi
if –for -while : C8 ن8ی9 (6 ﻥتH اn6 M أداةN<@ ةgG اN<@
ن ذ; یh6 c أﻥc!. !وآ
ﻥh6 A وإ، (if-block N!G) ﻥتH آ< اC>ﻥ ﻥh6 ، true وإذا آن اط، اطnM< ]مGی
. ري. " اelse " H وا.( else-block N!G) ﻥت9 < ى. @!< اC>ﻥ
Example 6.1. Using the if statement
#!/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
Output
$ python if.py
Enter an integer : 50
No, it is a little lower than that
Done
$ python if.py
Enter an integer : 22
No, it is a little higher than that
Done
$ python if.py
Enter an integer : 23
Congratulations, you guessed it.
(but you do not win any prizes!)
Done
: 0A `$* آ
>! أ)ﻥ اM ﻥ.د ا"ي یQ اذا آن ه"ا ه ا6Q]م وG!" ا]!ت ا.ﻥ ﻥ6 ، RﻥH( ه"ا ا6
)]ام اا9 ]مG!"ﻥ ]! ا. أ، ﺙ.23 أن یلT اﻥ ﻥی ﻥیYM أي @دN" إnumber"
raw_input ().
.( اC`4( ا6 5@ !^ی ااءة9 )م.5 ی! ا@دة ا)]اRاH أﺝ^اء اAاوال ه( إ
تd.! اm اﺵ وN إ-@ اHg9 " وا( مraw_input " 3!ء ﺝ!< ﻥ` <ا اg@h9 !
(6 (ت وهd.! إ اا اQ enter N<@ e>b أي ﺵ(ء واC.د أن ﻥ3!9 و. ]مG! ا
" >!( ا6 U " ﺙ ﻥ]^ﻥint " )]ام9 YM @دN إ-ل ه"ا اMه یQ9 ، -رة @ ﻥH@ raw_input
gG ;ن أﻥq اU6Q <; أنQ@ C " و آclass " HF @ رةH@ " int " أنM( ا6 . " guess
. ( - اC. داYM @دN<@ يM <!3ض أن ا6 N<@ ) YM @دN إ- اCیM
RH یم اU ویG ذا آنh6 . "23" Tﻥ.د ا"ي اQ ا9]م وG! " اguess " !] 9 ذ;
رﻥQ9
(! (ﻥت اHن @ ا8ی9 H] indentation <8< یتG ]مG_ أﻥ ﻥA، <!Qح ا39 )@ رHg9
tab g>Z " :
@ةN<@ cH8 ; أﻥN! أ. ن8ی9 (6 indentation <8 أه! ا2H) H ذ; ی. < أی آNإ
! ذ; ؟CQ4) C56 . " indentation level C واة
block <ن آ9 ن8ی9 N ﻥ إMی – ﻥ5( ا6 colon (:) N<@ يM " یif " نH_ أن اdﻥ
. !ةG ﻥتHا
"elif " H @< ه ه ا)]ام ا23 ی."٢٣" دQ ذ; اH أو أآC
آن ا]! أnM9 ذ; ﻥمQ9
. if-elif-else ن ك9 C. داelif-else : if
بd@ ﻥت ذويH اﺙ ا9 !3ا"ي ی
. 9<g! اindentation ! آC< ویC5) أRﻥH اCQ3ذ; ی
ﻥتH@ آ< ة اH (g! اgGی ا5( ﻥ6 (:) N<@ يM else وelif ﻥت9 نc أﻥ23ی
(! Hg9 2)!< ا8) ا
. if ـC.ن ا!اH اN!G وه"اif-block < آC.ى دا. " ة أif " نH ا9* ی!; آ
: هif نH ا9 ی! آC
وأ. ری. " اelse " " وelif " ﺝ^اءP* "آ ان ا
if True:
print 'Yes, it is true'
<g 2 ﺙ ی"ه، " else " " وelif " 5M د ا!رﺝH ا56 !9 d آif نH" ا4 ن8ی9 (5 یQ9
5<أ ﺙ یH RﻥH" ا4 ( اGL ا< اM اT"( ه6 و. if ﻥتHیت آ< اM (ن اH اNإ
. FGH اN5!9 U5 ﺙ یv و ﺙRﻥHی ا5ن ﻥ8ی9 ه یىQ9 . print 'Done' نHا
( ه"ا6 N 5md ﺵء ا( @<; أنA ا8 اN هك إc5H و ﻥ، ﺝاeG9 RﻥH ان ه"ا اWور
39 4<]9 و|; ادP HG9 ﺝ4 C9 gG9 ) وgG9 أﺵء ﺝ!< و5< آT" وه.eGH اRﻥHا
و)ف5Q YH` )ف، ; ذQ9 و، ایتH اT" هC رآYH` ; ان2<g ( ویC/C++ >
. ; ی6 5ﻥ9
#!/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
U!]9 ظ4A9 U Y!G]م یG! ا!^ة ه هأن ا، guessing !] اHQ 2Q< ز ﻥ، RﻥH( ه"ا ا6
- 9) (6 <Q6 ! آ- !] C ارا وارا @ آRﻥH" ا4 N هك ﺝ اcG MM U!] إذا آنAإ
: " while " نHح ا)]ام اZ9 ه"ا یح.
>!< اQ وﺝ. while loop <M اC. داN" اif " " وraw_input " نHی; اM9 !
. •
. while loop <M اC> CH
true N " إunning "
ﻥت9 <ل آd. " @!< ا!رﻥ4 (6 @ه ﺵQ9وTrue " unning " >! اCQ39 !
: A• أو
. while-block
" >! ه اM اT"( ه6 اط ة ﺙﻥ وnM ی ا، while-block < اT"" ه4 Q9 •
. "running
<" ا4 CاG6 A وإ، ً" ﺙﻥwhile-block"نH" آ< ا49 ﻥم،" true" U >!ذا آن اh6 •
. (ن اH اN إCه ﻥQ9" وelse-block" ری.Aا
!9" – ورFalse" |F. while loop <M( ا6 اطYH` @ یelse block <" ا4 ي3• ی
56 ،" while loop" <M< " else" H إذا آن هك ا. اطnM ا56 أول ة یT"ن ه
. 5 ون ا]وج9 9P اN)!ار إ9 وا( رwhile loops إذا آن ی; <تA! إL" دا4ی
و. ( ااN<@ 0 و1 ! AدQ هHQ وی!; انBoolean types N!G " False" " وTrue" •
.1 C8 U<Q4 اU! ه ا5! اp! و5 nM! ین اط او ا8 5!Q) ا5!ا
< اp4( ﻥ6 5 Q9ﻥت اH اZﺝ @ ی!; وMة @ اL زاCQ49 " نelse-block " •
. ﺙP اp49 while أن مQ9 (while statement نH( ا6 !)آ
objects تL اQ9 <G<) لd. وه( ر.o looping (< ن9 (ن هH( ا6 " for"
C آA `ل6 (6 C`49 C)dG ا!^ی @ اN<@ فQ) و.UQ9 <G<) (6 `@ Cل آd. ا"هبC8
.9<g! اQ!@ ا3 د3 ه9ن ه ان اq اU6Q ;<@
#!/usr/bin/python
# Filename: for.py
Output
$ python for.py
1
2
3
4
The for loop is over
• وا( UHإ)د آ@ Cد ) أو آ ( object- Lإ Nا!> iواا (6 5آ Cة Q9 ،ه ی "4آ<
اHﻥت !
Cـ . iو (6ه" Tا Mﻥم @Hg9 e6ا! (6آ< اHﻥت .
• "آ أن ا^3ء " " elseا.ري .و! یbف 56،دا !Lی6 "4ر اﻥ5ء ا" for" <Mإ Aإذا ث
.وج `ق 9ا) gاHن " )} "breakﺵ.{C<
Q9 U
• "آ ان " " forدا C.ا <Mااری C!Q loopاي )< .<Gوه ی
!Lا@Pاد ی >< 5
d.ل اا اا، " range" <.و @< Nا!Qم ی! ا)]ام أي ﻥع اP C)dGي ﻥع اLت
}أو ا . !{ Qو)ف ﻥم 9ح T"5ا4ة (6 C`49ا`4ل اد .
ا + " for"
-ﺏ6ن ﺕ `-Iا +:%ﺝر C# /!7. C/C++/ Gف :ﺡ?ن ان ه Eا+
-
ﺏ6ن Nﺏ* Java /!7 .C# + " foreach "
-ف :ﺡ9ن أ Mان ﻥ Q,ا+ K7N
ا7Aرة :
") " for (int i : IntArrayد Java 1.5
، C/C++ (6إذا اردت ان 9 (46، " for (int i = 0; i < 5; i++)" 2ی8ن e6 2
" ) . "for i in range(0,5وآ! ون 6 ،ن آ 9ا9 (6 <Mی8ن اآ FG9 8وا
HQ Cا
و@.g]< Z
#!/usr/bin/python
# Filename: break.py
while True:
s = raw_input('Enter something : ')
if s == 'quit':
break
print 'Length of the string is', len(s)
print 'Done'
Output
$ 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
C ویاM< اM( آ< ا6 ورد9 Ng]ن ی9 ن8ی9 غd9( إ6 The continue statement ]مGی
. <Mار ا
Example 6.5. Using the continue statement
#!/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...
Output
$ python continue.py
Enter something : a
Enter something : 12
Enter something : abc
Input is of sufficient length
Enter something : quit
])"ا ا. C
P اN<@ أف3 @ آنe6 T"ﻥ4 و ﻥ، ]مG! اC.!< اH
؛RﻥH( ه"ا ا6 •
9 skip C!Q9 أف ؛ ﻥم3 C
ل أgذا آن اh6، رةHQل اF N<@ `لM< " len" <.اا اا
، "ه4 < وا( یM( ا6 ﻥتH ا9 فd]9 ." continue" رةHQ)]ام ا9 <( ا6 ن ا!ﺝدHا
.!<ت هQ اT أي ﻥع ﻥیC!@ !وی
. ﺝC9 " for" <M اC!Q " continue" رةH@ ﺝ_ أنA •
: ﺹ:I* ا
gH!ﻥت اH ( و اif – while – for ) : ﻥتH اn6 (6 M< ث أدواتd ا)]ام ﺙ4
رأی آ
ً 4®ن ؛ وآﻥ; و8ی9 (6 ] @دةG!ﺝ^اء اP ا8 أآkQ9 ;<و.( continue وbreak) 59
. functions ]م اوالG! ی<( ؛ )ى آ ﻥ وﻥ6 و. وريZ أ5Q
"ﺏ1 ا02,ا
Functions ا وال
ات
Introduction................................................................................................
Defining a Function ........................................................................... ی داQ
Function Parameters ..................................................................... راات اا9
Using Function Parameters ................................................راات اا9 ا)]ام
Local Variables ........................................................................... <M!ا!>ات ا
Using Local Variables........................................................ <M!ا)]ام ا!>ات ا
Using the global statement ....................................................(!Qن اHا)]ام ا
Default Argument Values..................................................... Zا6A اg)ا ا
Keyword Arguments.......................................................... g) ا4!ا<!ت ا
Keyword Arguments ................................................g) ا4!ا)]ام ا<!ت ا
The return statement......................................................................." return" نH
Using the “ literal ” statement ................................." literal" (6Mن اHا)]ام ا
Docstrings .........................................................................................ن8ی9 nLوﺙ
using Docstrings..................................................................................................
summary.................................................................................................... d.
:
*
;! وی، ﻥتHء ا) < اg@h9 ; Y!G 5 اﻥ.5 ی! إ@دة ا)]اRاH ه( أﺝ^اء ا: اوال
Mوﻥ. ا)@ء ااN!G! ی9 فQوه"ا ی. واي @د ا!ات، RﻥH( اي ن ا6 < اT"ا)]ام ه
.”range" ” وااlen" ااC8 <. اوال ااbQ9 ])
اCQ49
!9 وا( ر، () d5
اس اPف <ا ﺙ زوﺝ اQ!) ا9 @H ." def" 4!<! ا9 ف ااQ
C وره9 (ﻥت واH ذ; آ< ا2Q ی. (:) g9 gG( ا5 أ)!ء ا!>ات ویkQ9 5Q n6ی
: dQ6 FGHی اW (6 ; ذHل ا"ي ی8! وا. ااT"ﺝ^ءا ه
: ی داQ
Example 7.1. Defining a function
#!/usr/bin/python
# Filename: function1.py
def sayHello():
print 'Hello World!' # block belonging to the function
# End of function
$ python function1.py
Hello World!
: b!ﻥ7 ا0A `$* آ
راات9 " أي. A ااT" ه.Td@ أYZ آ! ه2)]ام اآ9 sayHello !ةG ی داM9 • ﻥم
! ﻥN <اe6 Z راات اا9 . ) ا9 ن @ >اتd@ ﺝ إA (9 و، {
}
.RL ا5 !رﻥ5د إQ وﻥ5 4<]
!ی
#!/usr/bin/python
# Filename: func_param.py
x=5
y=7
Output
$ python func_param.py
4 is maximum
7 is maximum
b!ﻥ7 ا0A `$آ
دQ ا3) وا.( a , b) (راات( ه9) "ﻥ اﺙ ا. أi printMax )9 اا6@ ، • ه
.HآPد اQ@ اHF ; ذQ9 " وif..else " (رHQ eG9 )]ام9 HآPا
)]امA( ا6 ( وarguments) ({ وه4’3} @ادPﺵة اH ضQ ﻥM ﻥ، printMax ( اول ا)]ام ـ6 •
N إG x e)
! اprintMax(x, y)CQ3.{x,y} )]ام ا!>ات9 )@ء اا9 ﻥم، (ﻥ8ا
C( آ6 ا(ءp4 ﻥC!Q The printMax اا. b را9 N إG y e) و
! اa راHا
.تAMا
ال >اتPي ل ا9 gH نA ، ی ااQ C.ن @ ا!>ات داd@9 @ م
قg ﻥN!G وه"ا ی، ااC. داlocal <M HQ أ)!ء ا!>ات. ی ااQ رج. )A اp49 ى.أ
ای9 (6 starting `< اG<G( ا6 5@ نd@ و ی ا، < اC.ق داg ﻥ5 ﺝ! ا!>ات.>!ا
. )Aی اQ
#!/usr/bin/python
# Filename: func_local.py
def func(x):
print 'x is', x
x=2
print 'Changed local x to', x
x = 50
func(x)
print 'x is still', x
Output
$ python func_local.py
x is 50
Changed local x to 2
x is still 50
: b!ﻥ7 ا0A `$* آ
. x )]م
! اG ا( ﻥNوA اا وه( ا!ة اT"( ه6 •
. ( اا6 U@ <@ ا"ي اparameter ِدM!]م
! اGن ی8ی9
(6 x !
>( اا ا( ی ؛ "ا @ ﻥ6 local <M HQ یx )A ا، x N إ2 ! ذ; أ)ﻥ اQ9 •
. سG أيd9 GL( ا< ا6 دةM! اx YH`، اا
. CQ49 p! GL( ا< ا6 x !
ﻥآ أن.P اprint ن9 (6 •
#!/usr/bin/python
# Filename: func_global.py
def func():
global x
x = 50
func()
print 'Value of x is', x
Output
$ python func_global.py
x is 50
Changed global x to 2
Value of x is 2
!
Gﻥ @ ﻥ6 ، ؛ و هglobal (!@ > هx ن9 نd@¦ ]مG یglobal statement •
.GL( ا< ا6 x !
]مG @ ﻥ5mن ه"ا ا> یh6 ، ااC. داx Nا
: ل8! اCH) N<@ .global نH اp4)]ام ﻥ9 واglobal > 8ی اآM ;!• ی
global x, y, z
Default Argument Values l - K$!اﺽ+k@ ا$
* ا
اذاZا6Aري وا)]ام ا ا. اZ آparameters 5داM kQ9 CQ( ﺝ6 2W
، اوالkQ9 (6
ی اM ;! ی. argument @ة
الG Cb49 ; وی ذ. داتM! اT"5 ا6 یA ]مG!آن ا
(=) d@ ـ9 ی ااQ (6 parameter name دM!ع ا) اHh9 رااتH< argument C UZا6Aا
. Zا6A! ا9 @H
8(ء أآ9 ; و)ف ی ﺵح ذ.constant 9>( ان ین ﺙH یargument لUZا6A اU!ن ا9 !<@
. "آ ه"اe6 ، نq ا ا.A `ل6 (6 C`4 ا
Example 7.5. Using Default Argument Values….Zا6Aا)]ام ا ا
#!/usr/bin/python
# Filename: func_default.py
say('Hello')
say('World', 5)
Output
$ python func_default.py
Hello
WorldWorldWorldWorldWorld
: b!ﻥ7 ا0A `$* آ
Z6 ، !
أی5gQ واذا ﻥ.@ ﺝ!< @دا ا!ات آ! ﻥیHg ]مG say 5!)• اا ا
. e6 !< !ة واة3@ اHF ( هZا6Aا
. parameter دM! @د ات اN ا1 argument ی
! لM nیF @ ; ذnM• ﻥ
ﻥ8( ا!ة ا6 .!< ة واة3@ اHg9 وه( مe6 -( اgQ ﻥ، say ( اول ا)]ام6 •
أﻥN<@ - ( )اء واN<@ argument 5 و- اd آULg@h9 ﻥمM وﻥ، say !لQ)ا
. اتp!. <!3ﻥی ار ا
* @* *
#!/usr/bin/python
# Filename: func_key.py
func(3, 7)
func(25, c=24)
func(c=50, a=100)
Output :
$ python func_key.py
a is 3 and b is 7 and c is 10
a is 25 and b is 5 and c is 24
a is 100 and b is 5 and c is 50
N<@ ری أن ﻥﺝ ا! اا. وی! ا. ا]وج ااC8 " رﺝع ااreturn" HQ]م اGی
.<بg! اUاﺝ
Example 7.7. Using the literal statement
#!/usr/bin/python
# Filename: func_return.py
print maximum(2, 3)
Output
$ python func_return.py
3
({ وه2, 3} ة <اgQ!@اد اP( ا6 ( وه، رااتH اHآP اM ﺝ اmaximum • اا
. ! <; اQ هQ9 وHآPد اQ
! اN<@ ر8Q<. if..else ( هgG9 ﻥت9 C!QG
. None وی ـG ون أی
! ن9 return @ ن: md
!
أيC!M یA > N]م ¦ﺵرة إG ل ؛8! اCH) N<@ . مQ اC8!ن ی8ی9 (6 ص. ﻥعHQ None •
. None
! ارهC!Mإذا آن ی
.return ا] ب5ﻥ9 2 ( دون أن5 @ None نH إرﺝع اN<@ !Z يM داC• آ
نH]م اG A someFunction() @ ن ااsomeFunction() @Hg9 ;و ی!; رؤی ذ
return
: (<آ! ی
def someFunction():
pass
DocStrings *
لd. @دة5 " وا( یر إdocumentation strings " ` اnL اﺙN@ ^ة أﻥU ن8ی9
" DocStrings" `]! ا5!)ا
، Cb6 أC9 RﻥH اn ﺙN<@ @G 5 إﻥi 5 4G @<; أن23 ه( أداة ه ی: Docstrings
. 54< 5) 8 أآU<Q3و
!! CQ49 C!Q9 R!ﻥH @ یم ا، docstring @ دN<@ `لM اN ! ی، } هC9و
: docstrings امI * ا
Example 7.8. Using DocStrings
#!/usr/bin/python
# Filename: func_doc.py
if x > y:
print x, 'is maximum'
else:
print y, 'is maximum'
printMax(3, 5)
print printMax.__doc__
Output
$ python func_doc.py
5 is maximum
Prints the maximum of two numbers.
The two values must be integers..
N<@ b أیnHg DocStrings _ أنA . <اdocstring ول <ا هP( اg! اgG اstring •
. . `ل6 (6 59 ا( )ف ﻥمclasses وmodules
(5 وcapital Hف آM9 أH g) ( أول6 g)Pدة اQ C!3 ه( أن اdocstring (6 QH!
ا4A• ا
. i8 اgG( ا6 C`4!!< اح ا39 @H رغ6 (ﻥ8 اgG ذ; اQ9 . (.)g9
. !5! اوال اU"H C أﺝdocstrings C( آ6
4A اT" هH ة أن9 ;M`وﻥ
b4]! اF_ اA) doc__ )]ام9 printMax ا9 ] اdocstring N• ی! ال ا
. ( ااname belonging__to N )ا) !(_إN إG (double underscores__ ا!^دوﺝ
@ < ا!^یQ و)ف ﻥ. b اوال أیC!" وه"ا یobject " L آU ﺵ(ء أﻥC آHQن ی8ی9 "آ انe6 *
. " classes" تHg9 n<Q! اC`4( ا6 "objects" تLا
. CQ49 docstrings ی ا)]امF CQ49 c أﻥ; رأی9d6 ، ن8ی9 (6 help() . c])
اc* اذا آ
. n"ب وأﻥ5 )<ب9 ; 5ZQ اا وT"5 !! اdoc__ رbM)د ا3 @<; هC* آ
و"آ أن. ;3ﻥ9 (6 help(printMax) : ِZ أe6 – Td@ أH!ل اا اd. ;* ی!; ا)ف ذ
. @ةG! <]وج اq ح4 e>b
]مG cة إن آ9 (ﻥ( أوh6 ، "ا.یg اT"59 ;3ﻥ9 nL ا)ﺝع اﺙ5! یqدوات اPا
@ help() )]امA C8!9 C!Qن ی8ی9 ( ا"ي یpydoc P ا.5H 56W ی داP docstrings
. docstrings nیF
ﺹ:% *
. 5H ﺝاﻥ6( آg>_ أﻥ ز ﻥd! و ا، وال9 <Q! ا2اﻥ3 ا8 رأی ا
! ی<( ؛ )ف ﻥى6 و. )) اPن ا8ی9 وال9 n<Q (ر اP اmQ g>9 CQ49 !
6 ; ذWور
. Python modules ﻥءh9 آ ﻥم
☺☺☺
6 ا02,ا
Modules
*
ذا اردت ا@دة ا)]ام @د اوال.ی اوال ة واةQ nیF @ ;3ﻥ9 (6 آ ی!; إ@دة ا)]ام ادc
رأی
يM)س < یA( ا6 ه: module ا!ذج.modules اب ه ا!ذج3 ا، c!.
! ! آQ؟ ﻥ5H (ى ا.A اRاH( ا6
module أن ی ا) < اة23ی، ى. اRا9 (6 و@دة ا)]ام ه"ا ا!ذج.54یQ9 c!
(ﺝ! اوال وا!>ات ا
. Py .اد9
)ن ا8ی9 تH ]مGی ا( ی! أن ﻥg ه( اT" وه.U4دة و4)d .o Rﻥ9 CHِ
ی! ا)ادهCا!دی
.^< <!دیU)ت اH! ا)]ام ا4 )ف ﻥى آ، A أو.YM Cg9
: sys module امI ا
Example 8.1. Using the sys module
#!/usr/bin/python
# Filename: using_sys.py
import sys
Output
:"from..import" ن$7* ا
ی!; ا)]امT@ ( ةC( آ6 .sys 9 آ23) ;3ﻥ9 N" إargv" !$<!اد ا$ (!ة ا7 إذا أردت
ی!; ا)]امsys C( ا!دی6 ]G!)!ء اP اC إذا اردت ا)اد آ." from sys import argv" رةH@
رةH@ ا)]ام23 @مUﺝ9 و. ^< ا!دیC آC!Q وه"ا ی. "from sys import *" رةH@
(6 5) 8ی أآg اT"59 )نRﻥH أن اi ، import رةH@ 5 A9 " وا)]مfrom..import"
.( أي أ)!ء6 TH أي اﺵ23 و)ف، U
اء
: A module's __name__*
. module الJل ا @ ذ:% *!اﺝI ا0 اد+ ﻥت$7 اG/ ا و0 module 0آ
ی، NوP( ا!ة ا6 module رد الG ؛ وذ; @ ﻥ9) 5
ﺵ. (6 ا!لC5) ;وذ
. module الGL ا< اC>
؟.o module رداG p و5G4 ه( ﻥ59 ]G R!ﻥH @ ین اe6 < اC> ذا أردت أن
. C ا) ا!دیNا إG __name__ )]ام9 UM !ه"ا ی
#!/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'
Output
$ python using_name.py
This program is being run by itself
$ python
>>> import using_name
I am being imported from another module
>>>
#!/usr/bin/python
# Filename: mymodule.py
def sayhi():
print 'Hi, this is mymodule speaking.'
version = '0.1'
# End of mymodule.py
Rا9 (6 T! ا@ﻥ9 !رﻥ9 (`. یﺝ ﺵ(ءd6 وآ! ى ؛. eG9 C ه دیTd@ أH! اRﻥHه"ا ا
. ى.Pن ا8ی9 Rا9 (6 C]م ه"ا ا!دیG! ی<( )ف ﻥى آ ﻥ6 و. ن8ی9
( أ6 أن ین23 یC أو أن ا!دی، RﻥH اU<@ C!Q ا"ي یC اp4( ﻥ6 Z أن ی23 یC"آ أن ه"ا ا!دی
. sys.path !L
(6 د ا!ﺝدةPا
#!/usr/bin/python
# Filename: mymodule_demo.py
import mymodule
mymodule.sayhi()
print 'Version', mymodule.version
Output
$ python mymodule_demo.py
Hi, this is mymodule speaking.
Version 0.1
from..import*:
#!/usr/bin/python
# Filename: mymodule_demo2.py
from mymodule import sayhi, version
# Alternative:
# from mymodule import *
sayhi()
print 'Version', version
: dir() *ا ا
، ت ه( اوال6Q! اT" ه. Cده ا!دیM ت6Q!< !L
C!Q dir() 3!< ا.ی!; ا)]ام اا اا
. C( ا!دی6 6Q! اclasses تHg وا، وا!>ات
و@ @م وﺝد أی. C( ا!دی6 6Q!)!ء اP! اL
Q (56 ، dir() ا)! اC; ا!دیLg@@ إ
. (M اC( ا!دی6 6Q!)!ء اP9 !L
Q ، 5 argument
: dir ام ا اI * ا
Example 8.4. Using the dir function
$ python
>>> import sys
>>> dir(sys) # get list of attributes for sys module
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr__',
'__stdin__', '__stdout__', '_getframe', 'api_version', 'argv',
'builtin_module_names', 'byteorder', 'call_tracing', 'callstats',
'copyright', 'displayhook', 'exc_clear', 'exc_info', 'exc_type',
'excepthook', 'exec_prefix', 'executable', 'exit', 'getcheckinterval',
'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding',
'getrecursionlimit', 'getrefcount', 'hexversion', 'maxint', 'maxunicode',
'meta_path','modules', 'path', 'path_hooks', 'path_importer_cache',
'platform', 'prefix', 'ps1', 'ps2', 'setcheckinterval', 'setdlopenflags',
'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout',
'version', 'version_info', 'warnoptions']
>>> dir() # get list of attributes for current module
['__builtins__', '__doc__', '__name__', 'sys']
>>>
>>> a = 5 # create a new variable 'a'
>>> dir()
['__builtins__', '__doc__', '__name__', 'a', 'sys']
>>>
>>> del a # delete/remove a name
>>>
>>> dir()
]'['__builtins__', '__doc__', '__name__', 'sys
>>>
*
ى. اTرHQ9 و.Q ﻥتH اkQ9 C! 5!ت{ ی4<!ﻥت واH اm}Cد هآ3 ))ﻥت ه( أH اCهآ
-- ن8ی9 (6 3 ﻥتH اCﺙ أﻥاع هآd وهك ﺙ، <`ﻥت ذات اH!@ ا3 ]م ]^یG (56 ،
ةM اCQ3 5 وآ اﻥ، 5 C ا)]ام آ4 و)ى آ.dictionary واس، tuple !L
و،list !Lا
. C5)ا
list:
ا
!Lاlist <G<) ی!; ان ]^نd8!6 ، <` ذات اQ!@ ا3 C!M (ﻥت اH اCأ هآ:
!6 ، ه <اءQ @ 56 ;ق یG< !L
(6 4 c ا`ر آ! آC5) P ه"ا ا.!L
N6 دHا
!6 9 <6 bن ی8ی9 ( أن6 ، قG! اL
(6 C`4 g) (6 `@ C أن ی; آC!M!@ا أن ا
59.
، دH"ف اM أوﻥb ی! ان ﻥ، "| و.!L( ا6 د ااردةH @ اiMH او ازا او ا6Z ی!; ا، !L
|4 اclass لb ای5 ی! ان ینfields ;< -]! ی6 5)]اA )ى >ات ادةcG (وه
; @ ین ی2GM6 )!ءP ا/ ا!>اتT" ی!; ا)]ام ه.e6 |4اobject bل أیM ا.|4 <; ا
e!) اA ا5<@ لd. 5ی! ال إdotted notation ، ل8! اCH) N<@ ، mylist.field .
: @ ام ا
اI *ا
Example 9.1. Using lists
#!/usr/bin/python
# Filename: using_list.py
print 'These items are:', # Notice the comma at end of the line
for item in shoplist:
print item,
Output
$ 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']
<M ا)]م اb وی ایfor..in" " (! هL ان اb ایc اﻥ; ادرآ9 A ، نq ا.دH! اL
لd. <ار
<ةG<G!sequence <ةG<G!!]`ص ا9 }
و)ف ﻥ. sequence. nA G
(6
" رةH@ ی5( ﻥ6 "،" <6 ]مG_ أﻥ ﻥA " print" رةH@ C آQ9 g)P اC4 @ ا<ءیHg! ا
print !5!^ ا3< ﻥQ3 وgG9 5 و، ; ذCQ4 MH
یFHQ
T"" ه.
رةH@ nیF @ !Lاprint H أﻥUیg9 5QHg9 ا( م.
یF )]ام9 !L ا29 ﻥم، ﺙsort Q یA و5G4! ﻥL اN<@ )<ب یﺙA ذ; ان ه"ا ا54 ﻥ.!L<
` اC)dG اC!@ یF @ <] وه"ا ی-- Q!! اLاstrigs >< <9
Lل ان اا9 UQ وه"ا ﻥ.
` اC)dG وأن ا،strigs9 ﺙ.
" نH ا)]ام اnیF @ ; ذnM ﻥ.!L اU وﻥی إزا، قG( ا6 9 ( ﺵاء5 @ ﻥ، ﺙdel ه. "
" نH یم اU! و ﻥی ازاL( ا6 ا"يH اN ﻥ ا،del!L اU6"M9 ". H وه اUد ﻥی ازاMﻥ
]مG ﻥM( ﻥ9 و، !Lول اPاdel shoplist[0])0 Qأ اHن ی8ی9 )"آ أن.(
nیF @ 5 دN ا2)A اCف آQ ی انcاذا آlist object m اﻥ، help(list)C4)!ل اA .
: Tuple*
@ فQ tuples. tuples CیQ ;! یA ايstrings ` اC!3 اC8 9 ﺙ5 اﻥA اL ااC8 Tuples
تAM( ا6 ]مG @دةTuples .( )
اسP زوج اC. دا،، تd`6 59 ، <`4 د9 یM nیF
اtuple !@ ا أي3 ن أن9 ض4 ی! أن ﻥ- ]مG!ده اMن او اا یH ا56 ا( ین
.> A ]G!ا
#!/usr/bin/python
# Filename: using_tuple.py
Output
$ 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
[ ] Q9!
اس اP زوج اC. داQ اZ یM nیF @ tuple ( ال6Q اNی! ال إ
H اN ال إgG ﻥ.indexing operator )54 اC@ N!G وه"ا ی. lists L( اا6 T<Q6 UH
یM9 new_zoo tuple (6 i8 اH اN وی! ال إ، new_zoo [2] یM9 new_zoo (6 i8ا
. )<بP ا54 د ان3!9 ، ﺝاYZ ه"ا واnew_zoo [2] [2].
myempty = (). C8 ( )
اسP زوج اnیF @ Wر4 اTuple ال:Tuple with 0 or 1 items
(ول )واA اH اQ9 ، <6 ]G دهM @<; ان.FGH اT"59 p وا9 59 tuple ، ;و ذ
. HQ اC. داobject C gM!
اس اP ا9 زوج9 وtuple 9 ق4ن ی! ان ی8ی9 نh6 ;" ؛Hا
.2 H! اb أن یtuple ( أﻥ; یQ c اذا آsingleton = (2 , ) دM @<; انd8
#!/usr/bin/python
# Filename: print_tuple.py
age = 22
name = 'Swaroop'
Output
$ python print_tuple.py
Swaroop is 22 years old
Why is Swaroop playing with that python?
*ا
س
U!) اU6Q nیF @ -]`ل ﺵd C4 @ان أو3 ی!; أنi آب @ﻥ98!9 اس ه
unique یا6 أن ین23ح ی4!ن ا9 !<@ .(C4)( ا )اA )اY4! ﻥرك اM ؛ ﻥd8 . 5!)ا/
. eHb9 )A اp49 إذا آن ی; ﺵ]`نMM <تQ N<@ `لM ی!; اA U أﻥi
ojects اس و ی!; ا)]امY4! (` اC)dG اC8) e6 9 ﺙojects ی!; ا)]امU@<! اﻥ
. Y4!< gG9 ]م )ى اﺵءG A >( انH یU أﻥ9 ;< <> اس ی! أن ﻥﺝ ذ9
أو9ﺙ
_A d = {key1 : value1, key2 : value2 } رةHQ)]ام ا9 ( اس6 T وا ا!"آرY4!زوج ا
ه"اC و آ، <6 nیF @ نd`4 5G4زواج أﻥP" وا:" g اnیF @ <`4 !ا/ح4!أن أزواج ا
. { } ةQ3!
اس اA( زوج ا6 C.دا
5H ;<@ Q) ، Q H اذا اردت.2 یF أي5 cG ( اس6 key/value "آ ان أزواج
. 5!Q) اCH
;G49
Q$ ام ا
اI *ا
Example 9.4. Using dictionaries
#!/usr/bin/python
# Filename: using_dict.py
ab = { 'Swaroop' : 'swaroopch@byteofpython.info',
'Larry' : 'larry@wall.org',
'Matsumoto' : 'matz@ruby-lang.org',
'Spammer' : 'spammer@hotmail.com'
}
$ python using_dict.py
Swaroop's address is swaroopch@byteofpython.info
N <ل اindexing operator ا)]امnیF @ FGH9 key/value أزواج ﺝیةbوی! ان ﻥ
. Td@ ا!"آرة اM( ا6 Guido < لQ6 ! آ، Uح وا)د
! إ4
indexing ی اسM ﻥFGH9 M ﻥ." del" نH)]ام ی ای ا9 !ا/ح4!ی! "ف أزواج ا
T"( ه6 ح4!< <9! اU! ا6Q! هك ﺝcG ."del" نH اNح و!ی ذ; إ4! زا اoperator
. <!Qا
!L
Q ( اس اitems method )]ام9 ( اس6 key/value زوجC آN إC` ذ; ﻥQ9
N إTG ه"ا ا^وج وﻥ2MG ﻥ.!9 @H ح4!د – واHي زوﺝ اM یtuple C آi tuples ال
.for-block <( آ6 اT" هHg ﺙ ﻥ، for..in <M)]ام ا9 زوجC C9!ان اQا) ا!>ات وا
class الhas_key یF N اوin C>!)]ام ا9 ﺝدkey/value اذا آن زوج6Q !ی
help(dict) )]ام9 "dict" class ق الg< <! اL اN<@ عdFd nL ان ى اﺙgG "dict"
#!/usr/bin/python
# Filename: seq.py
# 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[:]
Output
$ 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
یshoplist [-1] ، "ا.<وG<G!!ی ا5 ﻥ2GM ی، UM اT"( ه6 ، H<) ان ین @داbس ای54< !ی
. <G<G!!( ا6 9 .o ( ﺙﻥ2<3 یshoplist [-2] <ة وG<G!!( ا6 .P اH اNا
ر
مP زوج ا-ری.ا- 5<< یG<G!ی ا) اM nیF @ ]مG slicing operation g@!< ا
c!
() ا54 ﺝا @!< اQ9 N إUH یP_ ان ه"ا اd ﻥ. [:] Q9 )
C. داg9 `4
. ;" آcG ":" ن اأ)نgری و ا.ر
م اA "آ أن ا.5!Q)9
Q9) (ﻥ8د اQ وا، M ایU أH ا"يZ! اN ی اg( @!< ا6 ( g اCH
) ولPا
ا
ای9 أH) ن8ی9 نh6 ، دM W إذا آن اول @د.M ایT@
ا"يZ!< 56 ( یgا
@ ءHود اQ M @<! أن ای.<G<G!ی ا5( ﻥ6
) ن8ی9 نh6 ﻥ( وآ8 واذا آن ا
ا.<G<G!ا
QHG 56 ء5ﻥA اZ ف و أbای یH اZ ؛d8 . ء5ﻥA اZ CH
(5) و،ایH اZ
. <G<G! اMﺵی
@
و ی، 2 Z N إ6Z9 1 Z!ءا ا9 <G<G! اQg
Q shoplist [1:3] ، وه"ا
<G<G!] اG ﻥQ shoplist [:] ، C8!9 و.دQی یH ه"ی اQg
ن هكh6 (9 و، 3 Z!ا
. 5<!آ9
ی!; انiM9 ري4 اiM!أي ا. (<@4ن ا8ی9 G4 )]ام9 M ایT"ت ه4 4<] ت4 ﺝب
p49 !3 ا، strings وlists و،tuples C> ;!ت ه أﻥ; یdG<G!( ا6 mQ وا(ء ا.را6 RLى ا
!یgا
References
!U( ذا6 object C8! یA وobject N اA ا!> إA ، أ ا!>اتN اG ویobject ` @
تL اU6 ]^نi H!^ء ذاآة ا3 ذ; اN أي أن ا) ا!> ی إ، ا!ادNQ!وه"ا ه ا
. object الN) إA اbinding e9 رN!G وه"ا ی.objects
del shoplist[0] # I purchased the first item, so I remove it from the list
Output
$ 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']
"$?
ﺕ$-A أن ﺕ
م ﺏJ$-G ، *D I1 ﻥoND k @ ا
اF-p ن$د ﺏD ﺕآ! أن إslicing operation 0A
. -1-1 اI1ﻥ
الsjrings ه( ﺝ! الRﻥH( ا6 5]G ( اobjects الclass) str T"5 ة4! ا2)P اkQ9 .(
m اﻥ، 2)A اT"! آ< هL
N<@ `لM< و.(ل ا8!( ا6 N<3 |4اhelp(str).
Example 9.7. String Methods
#!/usr/bin/python
# Filename: str_methods.py
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:
print 'Yes, it contains the string "war"'
delimiter = '_*_'
mylist = ['Brazil', 'Russia', 'India', 'China']
print delimiter.join(mylist)
Output
$ 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
یFfind (6 NgQ! ا- اZ د3یA ]مG string - اN<@ ر8Q( ا6 ح3 اذا ی ا-1 أو إ@دة
|4 ا.ﻥي8اstr `< اG<G< اG<G!د ا9 e9( ر6 @ر9 UیF b ای5 string 9 دM 54`9
<G<G! ا9 Cآsequence . 5 < ﻥ` ةG<) H أآQو
ﺹ:Iا
Rا9 9 )ن ا)) @ آT"ﻥت هH اC هآ.C`49 ن8ی9 (6 3!ﻥت اH اC)ف هآ9 !
لQ 3M9.
Q( ا6 Rﻥ9 9 `! وآ4! ی<( آ6 و )ف ﻥى،( ن وا6 ن8ی9 أ))ت8ن ی اAوا
ن8یH (Mا.
، Q ﺝ^اءA اT" ﺝ! ه2) (ی اg اN<@ ةmن )ف ﻥ<( ﻥqن وا8ی9 > 4<] أﺝ^اءc4) ا
.4 ﺵ(ءA ا"يRﻥH ا9 `! وآnیF @
-N*ا
. ! ي5!ت ا4<! ﺝ! اF] اG ﻥC!Q9 یم3ﻥ9 أﻥ( أریNا!< ه
هC<M اC< ا.CMأ @!< اH HG9 6<ت آQ هكcG ، gG9 < C أن ه"ا یWور
]G اZ) ؟ أیF ا5]Gت ا( ) ﻥ4<!د اM آ ی! أن ﻥ، ل8! اCH) N<@ .<بg!ا
؟UFA] اG( ا6 5 ؟ آ ی ]^یU ا!]^ﻥUFAا
.!L
N6 دةM F] اG ﻥ5 C!Qد ا( ﻥPت وا4<! ا.1
.(M اc
! اری& واb>ط یb!رﺵ اP ا) ا.4
*:0ا
. CM" ا4 أداHQُ اد ا"ي ی2 ی! أن ﻥ، G نq ا3ﻥ9 !` وآ! أن
import os
import time
# 5. We use the zip command (in Unix/Linux) to put the files in a zip archive
zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))
Output
$ python backup_ver1.py
Successful backup to /mnt/e/backup/20041208073244.zip
،
ذا ی`ف آ! هh6. <) C9 C!Q یCه، 3ﻥ9 H] إﻥ ﻥi ر ؛H.A( < ا6 نq اM• ﻥ
. RﻥHء( اg.A )اbugs ؛ اي ازا اـ3ﻥ9 YM` < Nﻥل اAن @< اG6
b!ﻥ7 ا0A `$* آ
time وos ^< ا!دی4G ﻥMوﻥ. Tg]6 ةg. ادN ی `! اCیM9 !
_ آd)
target " C ا."source" !L
(6 F ا5]G ا( ) ﻥUدPت وا4<!د اM ﻥ، ﺙ.)اده9 !
و"ا
رﺵP" ا) اtarget_dir ">!( ا6 دM! وه"ا ه ا، UFAت ا4<!( ن ]^ی ﺝ! اQ" ی
. time.strftime () )]ام اا9 2<3 ا"ي یc
( واM ه اری& اULﻥh9 >ط ه )مb!ا
target_dir C( ا6 و)]^ن.zip اد9 .bو)ف ین ای
CM) %Y 4` ا. Td@ ا!"آر اRﻥH( ا6 ا( ا)]هC8 ت4" ا. time.strftime ()اا
. وه< ﺝا12 و01 9 ر
@ي549 5 ا5<M CM) %m 4` وا، ون ان9 G ا5<M
[Python Reference [ن8یH (Q ا!ﺝC( ]ا6 5<@ ر8Qت ی! ا4 ا!اT"5 <! اLوا
(UG4 ﻥM اN<@ p )وC_ ان ه"ا ه !ﺙA .;9 ] اQ( ازی6 ن8ی9 ( ا"ي یManual]
( tuple 5< ٪ )]ام9) print نH( ا6 ]G!ت ا4<!ا
Q اﺙ9 e9 اي یC!3; اH( ا"ي ی6Z اC>!)]ام ا9 target >طb! اC ا) اC!Q9 !
.T"49 )مP! اb ( وا، zip_command : `< ﻥG<) ﻥ، ﺙ.ه إ واة ﺝیةQوی
( أو ﺵ دوس6F p 6F) C اN<@ U<> nیF @ C!Q یA اذا آن ه"ا ا6Q ;!ی
zip P ان اN]م ¦ﺵرة إG یq راات – ا]رH ا]رات واkQ9 يM یU]G ا"ي ﻥzip Pا
N<@د } أ² recursively C!Q انzip Pد ان اM یr – ا]رquietly وء59 C!Q>( أن یHی
i ﺙA ری. 9 !3 و
ا.;"@ آ4 اUدA اC.ت دا4<!@ وا4 اUدA اC! >( انH{اي یC4)P
@H T>ط ا!اد إﻥؤb!رﺵ اP) ا9 @H ا]راتT" – هqr ! وهnیg( ا
` ا6 دM!! وا5
UیF )]ام9 <!3 اC. داsource !L
لM ﻥM ﻥ.F ا5]G9 ا( )مUدAت وا4<!! اL9
. 5 ا)]ا4 آCQ49 وا( ﺵهﻥC!3 اb join
0 Q – وه یC( ا6 مm اC. داC!Q آ! آن یos.system )]ام اا9 P اC>ا ﻥ.وأ
. g] إ ر
اQ یUﻥ6 A وإ، ح39 <!Q اc! إذا
C وه"ا ه آ، cM3 أو ﻥc<6 UFA] اGن ا9 H) )@ رHg9 وﻥم، P ا3 ﻥN<@ وا@!دا
!!5!ت ا4<! اUF] اG ﻥC!Q c9) ﻥء9 !
، عZ!( ا6
N<@ .raw strings ]مG ! او @<; أنescape sequence )]ام9 5G4 ﻥF اC8! @<; ان، ;"
-'C:\Documents' ]مG A ' وr'C:\Documents' 'أوC:\\Documents' ا)]م، ل8! اCH)
! \D : */ escape sequence < هوبG<) ]مG cاﻥ
(]G .ت4<!< F] اG" ﻥ. ! ﻥی ان ﻥU ی! ا)]ا، (FA& اG< c9) C!Q9 !
نqا
C> ی!اN U
nH) ا"يM اN<@ "ي4ی ا!< اF )]ام9 نM` یp یﻥ/ p
. ت3H أو < ﻥ اC> < اN!G وه"ا ی.( اي ن6 وc
( اي و6 (FA& اG اRﻥ9
، ل8! اCH) N<@ .
c ! آ! آC!Q A NوA اRاH و )@دة( ا، YM C9 Td@ اRﻥH اC!Qی
& ا، ادU9( آ6 تg.
اc او اذا آ، YM C9 RﻥH `! اcواذا آ، C
ن هك آ
. ;3ﻥ9 YM` gb) < ا`! اوNدة اQ @<; اQ) ، 2) C9و
: $ﻥ6ﺹ ارة اr*ا
N<@ C!Q ان یU! یN U<@ تGM اkQ9 ل. ی! ان إد، ; و ذ. یC!Q یcHیG اNوA اU]Gا
. ت3H < ﻥ اN!G وه"ا ی.N ا)س یN<@ Cb6 أMﻥ
C.ا9 <!< ) آtime )]ام9 -- <!! اG Cb6 ه( ﻥ أ5L49 تQت ا( ﺵGM اT"أ ه
FA]; اGأ ا!^ات ه( ان ﻥ. UFA] اG اC! دZ C آcurrent date ری& امCا
89 `
ت أ4<!ل أ)!ء اF ى وه( ان. وهك ^ة ا.5 إدارC5)P! ا6 و"ا، ی هg9 5ی ]^ی
C!Q9 c!
c اذا آ5G9 فQ @ك انG) <`4! اUدAى ه( ان ا. و هك ^ة ا.یg اT"59
. "; امF] اG
ا]"ت ﻥc اذا آe6 C یم " إﻥء اC @ آF] اGﻥ
Example 10.2. Backup Script - The Second Version
#!/usr/bin/python
# Filename: backup_ver2.py
import os
import time
# 5. We use the zip command (in Unix/Linux) to put the files in a zip archive
zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))
Output
$ 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
C اC.( داM) ام ا9 C اذا آن هك دnMو ا>ات ه( ان ﻥ.UG4 زال ه ﻥRﻥH ه"ا ا8ا
] ااG UQ` ﻥM6 ، ﺝدW ذا آنh6 .os.exists )]ام اا9 UFA] اG< pLا
.os.mkdir
(6 '/' )نU; اي اﻥ9 ا]صC>م اm 6 وC`4! اC( اgQ ی56 - os.sep >!_ ا)]ام اA
وفM اT" هA9 Os.sep ا)]ام. آشC> مm( ﻥ6 ':'( ویوز و6 '\ \' و)ن، p یﻥ، p
.m اT" هH@ C!Q ویA!M 3ﻥ9 CQ3) ﺵH C9
: 66ﺹ ارة اr*ا
#!/usr/bin/python
# Filename: backup_ver2.py
import os
import time
# Take a comment from the user to create the name of the zip file
comment = raw_input('Enter a comment --> ')
if len(comment) == 0: # check if a comment was entered
target = today + os.sep + now + '.zip'
else:
target = today + os.sep + now + '_' +
comment.replace(' ', '_') + '.zip'
# 5. We use the zip command (in Unix/Linux) to put the files in a zip archive
zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))
Output
$ python backup_ver3.py
File "backup_ver3.py", line 25
target = today + os.sep + now + '_' +
^
SyntaxError: invalid syntax
؟b!ﻥ7 ا0A @ `$آ
ن ان8ی9
ا"ي یm( اZ یA c9G( ان اQ >ي ! یg. !ن یل ان ﺙ8ی9 .!C!Q یA RﻥHه"ا ا
eHbأ یH ﻥN .T@ g]ﻥ @ ا!ن ا"ي اآ اH] آ"; ی، ن8ی9 U
( اg]_ اd @ ﻥ.Tیا
. gG ذ; ا3ﻥ9
ن9 دM ی وp و، ی دیg) N اG( ا
اﻥg! اgG ﻥى ان ا،
اUmd!9و
، gG( ه"ا ا6 operand 9G ون ود9 (+) C>!ن أن ا8ی9 وﺝ6 ، )) ا.Q ا!دیgMهذی ا
d ^ال اA (g! اgGد أن اM "آ اﻥ ی! أن ﻥ. C!Q اCف آ یاQ یA U( أﻥg!( ا9و
C!Q9 ﻥم، ;" . ا!ديgGی ا5( ﻥ6 \ backslash 4<]< اL! اF)]ام ا9 ا!دي ادمgG( ا6
bug fixing g]ح اd إN!G وه"ا ی.3ﻥH YM`ه"ا ا
#!/usr/bin/python
# Filename: backup_ver2.py
# Take a comment from the user to create the name of the zip file
comment = raw_input('Enter a comment --> ')
if len(comment) == 0: # check if a comment was entered
target = today + os.sep + now + '.zip'
else:
target = today + os.sep + now + '_' + \
comment.replace(' ', '_') + '.zip'
# Notice the backslash!
# 5. We use the zip command (in Unix/Linux) to put the files in a zip archive
zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))
Output
$ 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
تD$1*= ا
N<@ . GM< ل3 !L و هك دا، ]G! اmQ! Z `رة9 C!Q یc9) ( هQ9اارة اا
YH` ;3ﻥ9 CQ3 –v ی ا]رM ;! یi ، RﻥH< ب5)ى اG 6Z ی!; إ، ل8! اCH)
. ارا8اآ
N اC) و.واA اg) N<@ c9G اN <!ور إ6ZAد اPت وا4<!< Y!G ى أن.Pت اGM ا
extend )ی اF )]ام9 ا( یsource !L
N إ54b أن ﻥgG وﻥsys.argvoghg !L
;ذ
. list Hgه ا6 ( اmethod
@ U أﻥP وأ ^ای ذ; ا. zip P اA9 tar P)]ام ا9 cM!) ( أﻥRﻥH( ا6 9"5!ر اP ا
C
ن أFA] اG )@ وا8 أآYH`( یFA& اG اYH` gzip 2 ﺝN إH ﺝtar ;ا)]ا
P ا.5G9 ;" آ.tar.gz ت4< CQ یWinZip نh6 ( ویوز6 رﺵP وإذا أردت ا)]ام ه"ا ا. !3
UH8 ﺙc اﻥﻥU<!M ]( ویوزG! ! وی. pیﻥ/p !m أﻥmQ (6 (Zا6 اC9 حtar
.;"آ
.talkative وﺙﺙةb إی8 ان ن اآ23 یP أي أن اverbose N ی إ-v
)A اp4 ﻥC!M إذا آن ی.o < CM CM>( أن یH یUرﺵ اي اﻥP( اﻥء ا6 أي اةforce N ی ا-f
.CQ49
N<@ .UFA] اG اexcluded دهQH) ا23ت ا( ی4<!! ا)!ء اL
!b ا!< ا"ي یN ی ا-x
FA] اG( ا6 ~ بU5!ت ا4<!م ادراج اي ا)!ء اQ <!( ه"ا ا6 ~* یM ;! ی، ل8! اCH)
* @**
N<@ tarfile اوzipfile ^<)]ام ا!دی9 رﺵ )نP ه"ا اع اC8 < ﻥءb4!ق اg ا8أآ
bت ایH! اT")]ام ه9 .CQ49 5ری وا!ح ; ا)]اQ!ن ا8ی9 H ﺝ^ءاC 5 اﻥ.(اا
mه9 ءg.; أ4< أنC5G ا5ﻥA ،!مQ اU وﺝN<@5)]ا9 Y` یA ( واos.system ا)]ام23
.5)]ا9
ل8 ; ذHQ "ا ی، M9 !<Q اضWA F& اG ﻥC!Q os.system یF أ)]مc آ6 ، ;و ذ
.(4! ی9 b أی4 M( ا6 5 و، !3 اCH
54 آف نC9 eG9
:ت$/!7 ﺕ?!ا$-G* .١
M اN<@ 5`]< ! یC ا!اT"ن هh6 .ت3H ا9( @!< آ6 4<]! اCﺝز ا!ا9 !
ن وqا
: (ا
ﺹ:Iا
T" هC8 9( آ6 ا( رك4<]! اCن وا!ا8ی9 (6 ]ت ا9Gا/RاH اC!@ 4و رأی آ
YH` ; انNG یN C`4( ه"ا ا6 <Q6 !<8 ;G49 ;3ا9 اﻥء4! اU اﻥ3 !9 ور.RاHا
" object-oriented" L ا3H! ی<(؛)ف ﻥ
} ا6و. C ا!آC N<@ @ ارةdb6 ن8ی9
@ ﻥn<] Hg6 .5 ا!ﺝL اU3H< GLﺵل اPان ه! اHQ یobjects تL واClasses تHgا
@ ی! ان ین ی; >ات ﻥU ذ; ه اﻥN<@ G
P أ ا.Hg< ا8ت أL اHQ i ﺝیا
HQ ( ه( ا!>ات اUMM`@اد اA
ان ا!>ات ا( ]^ن اN وا( ﺝ اint YM`د اQا
. int Hg( اobjects تLت )أوآA
:*C/C++/Java/C# /!7 9ﺡ:*
ارA اCH
) 6 وﺝC++ فd]9 وه"ا.(int Hgت ) اL آ5 اﻥN<@ CQ UMM`@اد اA اN U_ اﻥdﻥ
. class Hg ل اC4 !^ی اhelp(int) m اﻥ.CP اLا9 ه( اﻥاعUMM`@اد اA اi (1.5
/!7C# وJava 1.5 م54 UH یU أﻥi 5 إ6 Pون ذ; ا3) boxing وunboxing
N وا!>ات ا( !( ا.تL اT" هN ا( !( اUدیQ)]ام ا!>ات ا9 ﻥتHت ]^ی اL< !ی
N)]ام اوال ا( !( ا9 U4م و5 b ای5 ت أن ینL< ! ی. fields لN!G L او اHgا
nی4( ا6 @ﻥG 5ﻥA !5 تM<g`! اT" ه.Hg" ا5 methods 2)ق أو اF N!G اوالT" ه.Hgا
، Q! ﺝ5< وآ. L او آQ HF N و<; ا( !( ا، 5( ذا6 <G ( اوال وا!>ات ا( ه9
.Hgت <; ا4 5 اﻥN<@ 5ق ی! ان یر اF ل والMا
5! أو ی، Hg اinstance/object L آ/ N! ان !( ا5 C !ل ن ﻥ@ – یMا
.( ااN<@ Hg و>ات اM!( >ات اG (56 .5G4 ﻥHg اNان !( ا
(6 رﺝHgق اFل وM ا.class keyword Hg< (زة3M!)ا4!)]ام آ<!ت ا9 ی إﻥؤهHgا
.< اm
C# و+ ﺝ+ this (رةr و اC++ < + self !(]دل اAن ﺕ6 ﺏ+ self رة7G
`لM< یF یM Nﺝ اM9 ^الA ;ﻥh6 ، argument " أي. A یF ; اذا آن یU اﻥb( ایQوه"ا ی
. self argument N<@
:Object Methods*
أن الCQ49
ﻥclasses/objects > إذا آن یA اوال إC8
F يM أن5! یself . (6Zإ
. ; ذN<@ A8 ن )ف ﻥىqوا
امI *ا:Object Methods
Example 11.2. Using Object Methods
#!/usr/bin/python
# Filename: method.py
class Person:
def sayHi(self):
print 'Hello, how are you?'
p = Person()
p.sayHi()
Output
$ python method.py
Hello, how are you?
یF__init__Hg< (!! اL اC!@ د3!9 C!Q . 59 | ی ام5 ايCQ4 ة4 یg اT"ه
U< ا!^دوﺝ4G اF_ اA .;9 ا]صL ) اunderscoreUی5( ﻥ6) وAای ا9 (6 !هd__ ( آ.
:__init__ method امI *ا
Example 11.3. Using the __init__ method
#!/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()
Output
$ python class_init.py
Hello, my name is Swaroop
یF @( اG ﻥA _ اﻥA ، ;ه ذP__ واinit__ !ی9 و ﻥمarguments ) اC.ا9
ا) الQ9 class n<. @ ﻥinstance الT" ﺝیة هclass T" وه"ا ه ا!>^ى ا]ص ه.
یgا.
C ا)]امN<@
درونM ﻥ، نq اself.name یF (6 N<3 (
اF (6 sayhi .
C++/Java/C# /!7 9ﺡ:*
( واobject variables L و >ات اclass variables Hg >ات ا-- لMوهك ﻥ@ن ا
. !<; <!>ات- ( ااN<@ - L أو اHg اc ! اذا آﻥQH `
]G یﺝ )ى ﻥA .Hg اT"5 (تAMت )اLل ﺝ! اd. C!Q 5 اﻥNQ (6 كHg>ات ا
. bى ای.Aت اAM( ﺝ! ا6 > ه"ا اpQ ی، Hg > اN<@ C!Q9 L و@ یم اHg > ا
U L آC آ، UM اT"( ه6 و.Hg( ا6 "object/instance" ل8! ا/ Lد ا6 C آ5<! یL>ات ا
(6 )A اp49 ا"يCMﺵل اA اCي ﺵ9 eH A آ وcG 5 أي أﻥCM اU9 . ]Gﻥ
. 5!56 C5G اCQ3) ل8! وه"ا ا.Hg اp4 ﻥ4<] instance
class Person:
'''Represents a person.'''
population = 0
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.
def howMany(self):
'''Prints the current population.'''
if Person.population == 1:
print 'I am the only person here.'
else:
print 'We have %d persons here.' % Person.population
swaroop = Person('Swaroop')
swaroop.sayHi()
swaroop.howMany()
swaroop.sayHi()
swaroop.howMany()
Output
$ 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.
Inheritance اارث
o لd. U<!@ ذ; یCL) و. وأ، !ل ادQ) ه إ@دة ا5 ا!ﺝL ا3H< GL ا6!أ ا
. Inheritance mechanism اارث
;ض اﻥ4 . تHg ا9 (@6 وﻥعpL ﻥع ر9
d@ nHg U أﻥN<@ Cb6 اC9 U<] !اارث ی
G) واA اC8 ا!آ-L`] اkQ9 5 وی. <( آ6 بdg<! واQ! اQ9!9 یمRﻥ9 9ی آ
ودرﺝت و`ری، !<Q!< وإﺝزات، !<Q واورات ا2 ااC8 Q -L`. ;" آ5 وی. انQوا
. H<g<
هQ ، آ ﺝیة. 6Zh9 و، !53Q ﻥع وC تHg< اG @ی!; أن ﻥ
HF ﻥءh9 ی! ان نCb6Pی اg وا. ﺝاd ﺙP ه"ا اYH` یQ و)ی. <G HF C آN إ56Zإ
NوP اHg اT" ث هstudent HF وteacher HF CQ3 هQ9 و، SchoolMember N!G آ
دM ذ; ی! أن ﻥQ9 و. Hg اT"5 sub-types @6 ن أﻥاعMH`) .o NQ!9 و. (SchoolMember)
. sub-types (@4ﻥاع اP اT" ه-L`.
o ه"اpQ )ف ی، SchoolMember (6 4ت اي وW/c4Z إذا أ.یg اT"( ه6 هك @ة !^ات
C ID card field
هی ﺝیاg9 C b ل ؛ ی!; ان8! اCH) N<@ . ;"@ آ4ﻥاع اP اN<@
(6 دﺙM أی ل ا>ات اN<@ و. SchoolMember Hg ا6Z إnیF @ FGH9 بdg<! واQ!ا
. ى.P اsubtypes (6 ﺙA subtypes @4ﻥاع اPا
ا"ي ی! أنSchoolMember Lره آH@9 H<g<! أو اQ!ت اL آN ی!; أن إUى اﻥ.Pا!^ة ا
انi ؛polymorphism UوﺝPد اQ N!G وذ; ی. )ء ا!رb@ب @د أG C8 تAM اkQ9 (6 ا4
! یL اd8!6 . Q
CP( أي @ ین اع ا6 لHG ی! أن یsub-type (@4اع ا
Nﺝ إM9 Gو، CP اHg ا)]ام آد اQ_ آ"; أﻥ ﻥd وﻥ. <P اHg اU4`9 Tار
. <G تHF ])( ا6 H آ! آن واﺝ، 4<] تHF (6 Tار
Teacher HF ، superclass )) أوP اHg ا5ﻥ9 فQ M اT"( ه6 SchoolMember !ةG! اHgا
ل8!ن ه"ا اq و)ى ا. subclasses @6 تHF أوderived classes تHF N!G Student HFو
. Rﻥ9 ( رة6 (ا
Using Inheritance ام اارثI ا
Example 11.5. Using Inheritance
#!/usr/bin/python
# Filename: inherit.py
class SchoolMember:
'''Represents any school member.'''
def __init__(self, name, age):
self.name = name
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.'''
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
members = [t, s]
for member in members:
member.tell() # works for both Teachers and Students
Output
$ python inherit.py
(Initialized SchoolMember: Mrs. Shrividya)
(Initialized Teacher: Mrs. Shrividya)
(Initialized SchoolMember: Swaroop)
(Initialized Student: Swaroop)
ن8ی9 (6 ت4<! اN ال ا4ت وا!]ﺝت وآd.! اCQ ا4< آQ )ف ﻥ، (<! ی6و.
Files .........................................................................................................................ت4<!ا
Using file ........................................................................................................<!ا)]ام ا
Pickle...............................................................................................................................
Pickling and Unpickling unpickling ...............................................................................
Summary ................................................................................................................d.
و
اءة، إﻥءN<@ ارة.ت4<! اCQ ه( اinput/output ت وا!]ﺝتd.! ا.o Lیﺝ ﻥع ﺵ
. C`4( ه"ا ا6 2ﻥ3( ه"ا ا6 iMH) و، RاH ا8 ())ت أ أ4<! ا9وآ
: ت,-*ا
read, 2) وا)]ام أfile Hg< L إﻥء آnیF @ 9ت <اءة أو ا4<! وا)]ام اY6 ;!ی
< N إ9 ااءة أو اN<@ ارة.<! اN إ9 <اءة ا!< أو ا2) C9 write أوreadline
ی!; ا)@ء أ)<ب، <!( ا5 @ و، ا. ﺙ أ.<! اY4 TیM9 c!
)<ب ا"يP اN<@
ی
. <! ا)]ام ا5ﻥ اﻥ9 ن8ی9 <H close
Example 12.1. Using files
#!/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!
'''
Output
$ python using_file.py
Programming is fun
When the work is done
if you wanna make your work also fun:
use Python!
. -<! ه"ا اclose ا. ا!< ﺙ أN إ9< file Hg< write وا)]ام أ)<ب9 اe!( ﻥ6 < Y4 ﻥA أو-
C( آ6 ﻥأ.(Zا6A ااءة ه اe! ین ﻥ، g!د ﻥM وإذا ﻥ.ى <اءة. ا!< ة أp4 ﻥY4 ﻥ، ; ذQ9
g) N إ6Z9 dا آg) ی إg اT" ه. loop/< (6 ،readline )]ام أ)<ب9 <! اg)
و5ی ا!<
ال إ5 أن ﻥN ی إ56 ، رغ6 g) و"ا @ یﺝ إ، .e]ی ا5ﺝی ﻥ
. loop/<Mا
gGن اP print نH اU4bوا"ي ی، L< ﺝیg) ! وثprint ن9 <6 ]مG_ أﻥ ﻥA و-
. <! ه"ا اclose ا. أ، ﺙ. ﺝیg) ( إﺵرة5 یCQ49 <!ا"ي یأ ا
.YM C9 C!Q یRﻥH <آ أن اpoem.txt <!یت اM N<@ <F ا، نq ا-
Pickle
(6 Object/ L( إن ]^ی أي آ6 ]مG ، pickle N@ standard module/ریQ وة6 ن8ی9
. اوامN<@ L ]^ی اN!G وه"ا ی.سG دونA 5<@ C`M ﺙ، ( < وا6 ن8ی9
بU اﻥA ؛ إpickle C ا!دیU9 یمp4 ﻥeHb9 C!Q ( واcpickle N!G ى. أmodule/وهك وة
W اN<@ ، modules/ ااتT" ی!; ا)]ام أي ه.(8 ة أو أآ1000)!ار9 وه أ)عC ><9
Cد ا!دی3 FGH9 ااتT" هC أن آN ﻥ إM ﻥ، "آ. هcpickle ]م اةG أﻥ )ف
pickle
Pickling and Unpickling
Example 12.2. Pickling and Unpickling
#!/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
Output
$ python pickling.py
['apple', 'mango', 'carrot']
unpicklingN!G <!Q اT" ه. L اQ ا"ي یpickle C <!دیload )]ام اا9 L ا2MG وﻥ، ; ذQ9
ﺹ:I*ا
.pickle Cت وا)]ام ا!دی4<! ا3Q bت وا!]ﺝت وأیd.! ﻥ
]< أﻥاع ا
. exceptions ءات8)Aم ا54 (6 iMH) (<! ی6و
!NG \6 ا02,ا
Exceptions ءاتD6 kا
ات
Errors .............................................................................................................. ءg.Pا
Try..Except ...............................................................................................Try ء8)Aا
Handling Exceptions........................................................................... ءات8)A ا3Q
Raise Exception.......................................................................................ءات8)A ا6ر
How to raise exception ................................................................... ءات8)A ا6 ر4آ
Try ..Finally..................................................................................................................
Using Finally..........................................................................................Finally ا)]ام
Summary............................................................................................................-]<
اءةH ذاهcث آMذا ی، ل8! اCH) N<@ .;3ﻥ9 (6 Q L8)ت اA ثM @ ءات8)A ا
)]ام9 RQ تAM اT" هC8 ؟C!Q آن ی3ﻥ9 6!`د9 c6" c ﺝد؟ أو إذا آW <!< وا
.ءات8)Aا
{; 5H} U یی6ن وا"ي ی8ی9 هAر یP اT" ؟ هM` اW تM ا`یkQ9 ;3ﻥH ذا آن
. g. ك أن هكH]وی
Errors ?ء%4*ا
فM_ اA ؟Print ه آـH وآprint 9( آ6 Ldﻥ إg. ذا أ.print statement N إgG9 ةmﻥ
.syntax error >يg. ّ! إ أن ﺙ6ن ی8ی9 ، M اT"( ه6 و.!لGف اMل وا9ا
_ أنdﻥsyntaxerror ءg.P اRQ U<Q4 وه"ا ه ی.T@ 9 اg. ا!ن ا"ي اآفb وأی، 6ی
error handler.g]"ا ا5
ءD6 kاTry
e>Z ا. ]G!ت اd. ول
اءةM)Ctrl-d.ثM ذا یmواﻥ
UQ
ی ا!< @ ﻥ ﻥ5 ﻥN<@ ر8Q اU( أ)) أﻥQ وا"ي یEOFError N@ یg. إ6ن ی8ی9
(Ctrl-d e>bل اd. C8!)ا"ي ی
#!/usr/bin/python
# Filename: try_except.py
import sys
try:
s = raw_input('Enter something --> ')
except EOFError:
print '\nWhy did you do an EOF on me?'
sys.exit() # exit the program
except:
print '\nSome error/exception occurred.'
# here, we are not exiting the program
print 'Done'
Output
$ python try_except.py
Enter something -->
Why did you do an EOF on me?
$ python try_except.py
Enter something --> Python is exceptional!
Done
و.) رHg ویRﻥH" ا4
@( و یGن ی8یH (Zا6A اRQ!ن اh6 RQء ی8) أو اg. إذا آن أي
.C!Q( ه"ا ا6 CQ49 رأی
@ @م وﺝد أيT"4 یelse H ا. try..catch <9 eH else H أن ین ی; اbوی! أی
.ءات8)ا
.ء ا"ي ث8)A ل ا6Z<ت إQ "ا ی! ا)ﺝعexception object N<@ `لMی! آ"; ا
.(ل ا8!( ا6 ه"اN<3وی
#!/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:
$ python raising.py
Enter something -->
Why did you do an EOF on me?
$ python raising.py
Enter something --> ab
ShortInputException: The input was of length 2, was expecting at least 3
$ python raising.py
Enter something --> abc
No exception was raised.
0A `$آ
4<) دM g. /ء8)]م أي اG ی! أنA
أﻥW اN<@ 9 ص. ء8)Aﻥء ﻥع اh9 !
، ه
< N<@ يM ( وه.ShortInputException سdی ه ا3ء ا8)A وه"ا اع ا.bاض إیWP
.RﻥH اUQ
ل آن یF `
وا"ي ه أatleast و، تd.!ل اF وهlength --
/ g] اLﺝاء ا!رﻥ اh9 @ ا!> ا"ي یمdb6 ، error سd9 ﻥ"آك، except H( ا6
س ا]صd اC.( دا6 و.( ا)@ء اا6 arguments والparameters C < !ﺙHQ ( وا.ء8)Aا
.]مG!< H) )@ رHg atleast وlength: <M اobject ]مG ﻥexcept
Try..Finally
finally )]ام9 ; ؟ وی! أن ی ذA ء أو8) ا6ق ه"ا ا!< )اء رdW أ ا!< أردت إcذا آ
.5 <9! اtry < اp4 finally < آ2 ﺝN إH ﺝexcept د9 ی!; ا)]ام أU @<! اﻥ.block
. !5<( ا)]ام آ6 2W c إذا آ.q اC.ا9 ! واb gb)
Using Finally
Example 13.3. Using Finally
#!/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'
Output
$ 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
: 0A `$آ
CH
ﺙﻥ٢ !ةsleeping FH@ی اF c<. أدc و( آ، دQ! آfile-reading C!Q
اg9 ﻥم
ن )ی ﺝا8ی9) ءeH9 C!Q یRﻥH ا "; ه أن ا2HG وا.time.sleep یF )]ام9 g) C@ آHF
.RﻥHإ>ء ا/QF! Ctrl-c e>Z ا، C!Q یRﻥH اCm و@ ی. (UQHg9
:#I-
9 . ء8) أﻥاع اg و رأی آ ﻥ. try..finally وtry..except ﻥت9 ﻥ
ا)]ام
.;"ءات آ8)A ا6 ر4وآ
modules/ ااتCL @د هN<@ يM ( وه.ن8یH 2 آCن ا) آ8ی9 UH :
5G9 5< ! یC ا!آmQ إنi ن ا) ؛8ی9 H N<@ دواQ !ن أن9 !هP و ا.ة ﺝا4!ا
.modules/3H اات اH! اT"ف هQ c@ إذا آG9و
!3 < اC4 اN<@ ر8Q ی!; ا.H! اT"( ه6 ]G! اmodules/ ااتkQ9 iMH)
( اnL( اﺙ6 " Library Reference/H! "ﺝ اG
(6 )ن ا8ی9 H (6 modules اات
.;9 ن ا]ص8ی9 2( آ
#!/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()
if sys.argv[1].startswith('--'):
option = sys.argv[1][2:]
# fetch sys.argv[1] but without the first two characters
if option == 'version':
print 'Version 1.2'
elif option == 'help':
print '''\
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'''
else:
print 'Unknown option.'
sys.exit()
else:
for filename in sys.argv[1:]:
readfile(filename)
Output
$ python cat.py
No action specified.
@ ا!^ی6Q ]مG!< دM 5 ا]رات ا( ا!آ أﻥkQH9 T!!ل @< أن ﻥQ)A اC5) RﻥH اCQ3
-- إذا آن ا]ر.3ﻥH دةM اذا آن أي ا]رات6Q! argument ]م أولG ﻥM ﻥ.RﻥHا
d<
(gQ ﻥ، -- help د ا]رM @ ﻥ، C8!9 و.RﻥH@ ر
إارة اHF ی، ]G version
m اﻥ، !Lل داM وآ! ه ا.RﻥH <]وج اsys.exit !ل داQ) ا4G ﻥM ﻥ.RﻥHاح ل ا
.C4 !^ی اhelp(sys.exit)
C آg) C@ آHF FGH9 ، RﻥH اNت ی !یه إ4<!دة وأ)!ء اM رات. ین هكA @
.واP اg) N<@ دM 2 (6 .q واا < ا، <
U! یi – RﻥH ه"ا اU9 )س یمP( ا6 ( وهconcatenate !< `ر. اcat P ا، H)!9و
. output/ اﺵ أو ا]جN<@ Q ت4<! ا8اﺙن أو أآ، M< أوgH ت4< <G<) @ < أوHF
: sys G =ا
،sys.stdin !b sys (C( اة )ا!دی6 !هPى ذات ا.P اQ ا: * M! ا3H!<*
یت3 (6 standard error وstandard output و،standard input n9g sys.stderr وsys.stdout
. ( ااN<@ ;3ﻥ9
.U"ا9 YZ وا5!mQ وT رﺝ أدﻥos Cة ا!دیL6 ﺝ^اءP ا8أآ
(]G! 'posix' " یوز وnt" d8!6 ، 5]G (د ا!` اM os.name `< اG<Gا •
. pیﻥ/p
ن8یH cH )یU<@ C!Q( ا"ي یM اC اC8 ، (M اC!Q اC دN<@ `لM< os.getcwd() اا •
.
. ( ااN<@ |H`ل أو إ@اد >ات اM< ]مG os.putenv() وos.getenv() اوال •
. (M اC( ا6 <ات3!ت وا4<! اC أ)!ء آQ os.listdir() اا •
. ت4<!"ف أ اM ]مG os.listdir() اا •
. C< أC> ]مG os.system() اا •
. رG!( ا6 <! وا) اC ا) اQ os.path.split() اا •
>>> os.path.split('/home/swaroop/byte/code/poem.txt')
('/home/swaroop/byte/code', 'poem.txt')
< أوN ی إNgQ!ر اG! إذا آن ا-M4 ]مG os.path.isdir() وos.path.isfile() • اوال
ﺝدNgQ!ر اG! إذا آن ا6Q! ]مG os.path.exists() اا، C8!9 و. ( ااN<@ <3
. CQ49
. ;" آhelp(sys) ]مG وی! أن. C4ن ا) !^ی ا8ی9 nL( وﺙ6 iMHی!; ا
*#I-*
ن8ی9 nL)( و6 iMH >( @<; أنH ی. )ن ا8ی9 H (6 sys ^< ا!دیL وbQ9
رأی
. ;" وا!^ی ا!دی<^ آ5 ا!^یN<@ C`M )ا
.Aً ! اآ8ن أآ8ی9 (6 ﺝCQ3) (وا، ن8ی9 @ 2( ﺝاﻥg> ا( )ف ﻥC`4( ا6و
(g>) C`4( ه"ا ا6 ، 5]G ن وا( )ف8ی9 @ وGL ر2 ﺝاﻥg>9 ح39 !
ن وqا
. A! اآ8ن أآ8ی9 ><9 6Q CQ3 ( ا2اﻥ3ا!^ی ا
: Special Methods
__del____ وinit__ 2) أC8 classes/تHg( ا6 . ! أه5 ( ا] ا2)P اkQ9 هك
.CQ49 ﻥه5 أه!
ﺵ5 (وا
<!Q x[key] C!QG إذا أردت ان، ل8! اCH) N<Q6 . Q ]م < )<كG ] ا2)P ا، !@
" أ)<ب4 د3 ( ﺙtuples وL( اا6 5]G ( اC8) ; یclass C; أﺝ9 ]) ا54ا
!5G4 ﻥlist HF U<!Q9 ن8ی9 "ا یم56 ، ;( ذ6 4 c إذا آ. ;<!@ __ ویgetitem__()
2)P اC آN<@ فQ ی أنc إذا آ.(ول ا3( ا6 ة ا] واردة4! اMethods /2)P اT" هkQ9
.ن8یH (Q ا!ﺝC( ا6 !]Z !L
هك، ]ا
Table 15.1. Some Special Methods
!حNا @ kا
!لQ)d 8 ا! یLد اQ @ یe6 N@G یg اT"وه __init__(self, ...)
L أن ی اCH
e6 N@G __del__(self)
str() ]مG أو @ ﻥL اprintنH]م اG @ ﻥN@G __str__(self)
"&إ،>،+" CاQ! ا3 . 2) یﺝ أC8!9 "< " وLess than N@G
__lt__(self, other)
CQ@ ا)]ام ا
x[key] )54]م @!< اG @ N@G __getitem__(self, key)
sequence/<G<G! اL len() 3!!ل اا اQ) @ اN@G __len__(self)
ىG p4 ذات ﻥ5ا. أ9 ﻥت ه( ﺝ^ءH آ< اC را)& أن آ56 ;>( أن ین یH ی، نqوا
، ﺝ^اءP اmQ! HG9 YM ه"ا، G .{ 9 ااC`4( ا6 indentation NQ }راﺝindentation /<8ا
p4 ﻥN<@ TدM |" ی!; أن، ن وا9 ! )ىb A ﻥتH آ< اc إذا آﻥ.٪ ١٠٠
دcG 5و
.looping statement أوconditional statement ، d8 C ، gGا
: حZ9 ;ل ا( یح ذ8!وا
W اN<@ .< اCG H آp و- ذات ا!نC.( دا6 ]مG اا یYن ا`یh6 ، آ! ی! أن ﻥى
T" هshort-cut ی اـF ]مG Aة أ9 ( وإﻥ( أو، >; أ3ﻥ9 CQ3 ی!; ا)]ام ه"ا، ;ذ
/Y `ی6Z إ89 C5)P )ن اU أﻥGLب اH)Pأ ا.& ا، ءg.P اnMء ا8)9
. <G اindentation /<8]م اG c( إذا آ6Z إstatement
> nیF @ ﻥتHل ا.( إد6 @كGن ذ; یh6 ، (<@4 اe!( ا6 ن8ی9 G4 @ ا)]امU_ أﻥA bأی
... N > ا!ﺵ إ5ﻥh6 ، if 4! ا<! اC. أنQ9 ، aboe (6 و.Ld C9 prompts /ا!ﺵات
ح4 e>b ﻥ، یg اT"59 statement الC! @ ﻥ.Q9 U ء5ﻥA ی اstatement أن الN إ
رm ا!ﺵ ای واﻥNدة إQ واU<ن آH" ا4 ن8ی9 (5 ی، ; ذQ9 .c<!ﻥت
اآH آ أن اenter
.ت اd.!ا
ا$M ﺕ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
Output
$ python list_comprehension.py
[6, 8]
0A `$*آ
. (if i > 2) اوطkQ9 @ (2*i) U9 >( امH ا"ي ی2@dی اM لd. ! ﺝیةL
n ﻥ، ه
`@ C آN <ل إloops/<تM]م اG ا!ات ﻥ8( ا6 .Q W ^الA <P! اL_ أن اA
،
د8ی أآF ( وهlist comprehensions )]ام9 nM ا(ء ی! أن یp4 وﻥ، !L
@
. Z وو، وإ
ا وال+ @ وا
ا0ﺏ$ل ا7
اReceiving Tuples and Lists in Functions
** * أوLد9 )]ام9 أو
سtuple 549 ااparameters/تdQ لH)A ، . یF وهك
. ( اا6 arguments > " @د. @ ﻥ4 وه"ا أ.( ااN<@
args (6 5 اا ی ]^یN ا( !ر إ6Z اarguments ! وﺝ، args >! اN<@ * LدH ا2HG9و
نparameters/تdQ! اN إm أن ی23 ی، * A9 c]) **
اLدH اcوإذا آﻥ.tuple 549
. <سkey/value !
/ح4 أزواج
:Lambda Forms
runtime/C> اc
أﺙء و5@ه إرﺝQ9ت دا ﺝیة وL ﻥء آlambda Y]م ا`یGی
#!/usr/bin/python
# Filename: lambda.py
def make_repeater(n):
return lambda s: s * n
twice = make_repeater(2)
print twice('word')
print twice(5)
Output
$ python lambda.py
wordword
10
Using Lambda Forms
Example 15.2. Using Lambda Forms
#!/usr/bin/python
# Filename: lambda.py
def make_repeater(n):
return lambda s: s * n
twice = make_repeater(2)
print twice('word')
print twice(5)
Output
$ python lambda.py
wordword
10
: 0A `$آ
. 5@ وإرﺝruntime/C> اc
( و6 ت دا ﺝیةL ﻥء آmake_repeater ه ؛ ا)] اا
/HQ9 @H parameter/dQ ". lambda ، )سP( ا6 . <اL]م ﻥء آG یlambda Yا`ی
. یة3ل اا اd. 5@ ی إرﺝHQ و
! ه"ا ا، ااT"5 G3 اYH` وا"ي یe6 واexpression
e6 اتHQ و ا. lambda form C.]م داG ی! أن یA print Y ا`یN U_ أﻥA
`< ﻥG<) ! ی، ل8! اCH) N<@ .< < ﻥ` أوG<) (6 5ن ا( ی ]^ی8ی9 ﻥت9 "4 ]مGی
eG9 ل8 وه"ا. exec نH)]ام ا9 ﻥتH اT"" ه4 v و ﺙruntime/C> اc
ن @ و8یH ]ي آد
: Cـ4)9 Tا
نH اeval
:C4)9 ل8!( ا6 < ا` آ! ىG<G( ا6 ا( ]^نM`ن ا8ی9 اتHQ /بGM ]مGی
>>> eval('2*3')
6
>>> i = []
>>> i.append('item')
>>> `i`
"['item']"
>>> repr(i)
"['item']"
: ﺹ:%*
(6 ، و.ن8ی9 Yd C آQ9 ve> و ی!; اآ أﻥ ﻥ،C`4( ه"ا ا6 ن8ی9 و ا!^ی !^ات
RاHأ أی اH ; ی4 اU6 P وه"ا ا. ;Hg (6 U]G )فmQ gW
ﻥن،<! اT"ه
.5L<; ﻥH) (6 cأﻥ
ات
إذا آ
cأت ه"ا اب Q9ی Nاqن ،وd. UHFل آ 9اQی اHا 9d6 ،Rأﻥ; أ4® cMH
وGی9 Mی8ن اqن .ور !9ن أﻥت kQ9اHا)A Rف ا!دة ا !<Qی; و nHgا!5رات ا(
اآ9 (6 5HGی8ن .إذا ;<@ (>H6 ،CQ49 ;"9إن .CQ4واGال اqن ه 'ذا Q9؟'.
وأود أن ا
ح @<; 3Qه" Tا!< :ا 9 ;G4ﻥ gG9address-book RاPوا ])9 -ام ی!;
إ 6Zأو Qی Cأو "ف ،أو ا @ iMHﺝ5ت ا`Aل ا] ;9؛ C8ا
Pء وا)Pة وا^dء ،و5<Q
@ C8ان اHی اوﻥ( و /أو ر
ا .5ا C4ی^] 23ی 5وا)ﺝ@ (6 5و
.nA c
ه"ا أ ) C5إ ، Nإذا 6ت (6ﺝ! ا Qا!]< 4ا( ﻥ Qأﻥ رﻥ @Hه Nاqن .وإذا آc
ی ﺝ5ت 9ن آ 4ا! ;h6 ،
(bذ; ا<!.Y
ﺕg$-
)ی (>Hأ Aن
أت ذ;(.
* أﻥ <Q C8! classت ا].-
*ا)]م اس ]^ی آLت ا] -ا)!H@9 Uر4 Tح.key/
*ا)]م ا!دی^] cPickle Cی اLت !)9ار @< Nاص ا`<.2
*ا)]م ا 2)Pا!< 3س 6Zو"ف وQی CاPﺵ]ص.
@ ن
درا @< Nأن CQ4آ Cذ; ،ی!; أن @( أﻥ; 9 RHی8ن .واqن ،و@< Nا4ر أر)9 ( Cی ﺵ
"5ا اب ا .☺ mQه" Tا]gة ا.ری و( أو; .59
• .PyQtه" Tه( >< 9ی8ن `وق أدوات Qtا"ي ه ا)Pس ا"ي <5) Qt .KDE U<@ c9
ا!Q)Aل <>ی ،و
ی ﺝا `.ﻥmا !`! Qtووﺙ 5Lا!"ه< .ی!; ا)]ا`9 5رة
ة3/ﻥ @< ، p Nو ) 6 gbﺙ! 5إذا آ cی ا)]ا N<@ 5ویوزPyQt .
ة3/ﻥ إذا أردت إﻥء 9ا /p N<@ (GPL) `. HF Rیﻥ pو 6ا! C9إذا أردت إﻥء
'GUI Programming with Python: Qt هPyQt ة ـ3 ا!`در ا.< ت ذات39
.C4 !^ی اofficial homepage !) اM4` اm اﻥEdition'
U<@ c9 )س ا"يPو ا"ي ه اGTK+ ن `وق أدوات8ی9 <> ( هT" ه. PyGTK •
.GNOME
تHg وی!; إﻥء، 5Q YH` د أن3!9 ; وذ، !لQ)A( ا6 تW ا!او8 ا5 یGTK+
N<@ ﺝاC!Q GTK+ GM9 ] اnL اﺙ.U@ NW A ا) أ5!`! ااﺝ9 ا!ور.Q )یGUI
N<@ ت ا!!<آ3Hة وآ"; اMت ا3H ی!; أن ` ا.Q9 C! ویوز یN و ءه إp
.C4 <!^ی اofficial homepage !) اM4` اm اﻥ. GTK+
.wxWidgets ن `وق أدوات8ی9 <> T" ه. wxPython •
ویوز، p N<@ C!Q ﺝا وportable /!M (56 ; ذW ور، 59 ص. (!<Q NM 5 wxPython
یg|ت ا9 } IDEs یQ یﺝ ا. embedded platforms 3! اC!Q `ت اN<@ N و، ك،
( وStani's Python Editor) SPE C8 GUI `!!تN إ6Z9 wxPython ا!<{ ـ
. wxPython N<@ ت ا!!<آ3Hة وآ"; اMت ا3H ی!; أن ` ا. wxGlade ت5`! ااﺝ
. C4 <!^ی اofficial homepage !) اM4` اmاﻥ
c أﻥ; رأی9d6 IDLE c]) ; واnH) إذا. ( اﺝد6 دواتP اn واة أ
م دیT" هTkInter •
. < ﺵPythonWare.org " F-G TkInter ـ9 ] اnL اﺙ. C!Q أﺙء اTkInter
ه أنP وا. )اءN<@ واﻥوزpیﻥ/p C آN<@ C!Q وportable/!M TkInter
. $ $
ن ا6 ﺏA ﺝ=ء ﺕزTkInter
GuiProgramming wiki page at Python.org : m اﻥ، • <!^ی ا]رات
:$-7
1ل ا2,ا
ري ـ. أن ین اC!M! و ا.)ت ا5 ااﺝ39 @ "ا اب5 <`6 أوC`6 9( آ6 ت6
N!م إbﻥAع ی!; اZ! ل ه"ا اmت ﻥ5 إذا أردت إن م وﺝ.دواتP آ]ر `وق اwxPython
5<!@ !ت ا( یGMدل اش ااء ل اH أi byte-of-python mailing list : ییH! اLا
. اب5
U49 U وه"ا یر إ.U@ iMH H! اT"( ه6 3) ، c
اmQ (6 و.< ﺵH ن8یH ) اH!ا
ء9 (6 Q9! اCH
ن8یH ) اnLل اﺙd. ل3 ن9 ة9 N أﻥ أو.ن8ی9 (6 '6Zریت اgH 'ا4G<6
.ن8ی9 ><9 ةH آRا9 9آ
G4ن و8ی9 > أث اارات3) .ن8یH !) اGL اM4` ه( اT" – هPython.org •
.ن8ی9 2 ل ]< ﺝاﻥgي ا!
ت ا3 i ییH اL ]< ااb وهك أی.><
;! ی.>< اT"ي اش ل ه3 یi ، H اN<@ رH.P!@ ا3 ( هComp.lang.python •
cﻥﻥA اN<@ !@ت3! اT" هN ی!; ال إ.;< رH.P!@ ا3 Nرا; إG4)<; واL)إر)ل ر
سQد اﻥ3 ( ا( هmailing list ییH! اL اN!م إbﻥA أو اGoogle Groups )]ام9
.رH.P!@ ا3!
C 4 ل آYL`ت أو ا4!@ ا3 ! ﺝi
<>ی2 آ: Python Cookbook •
.ن8یH ]مG C U
اء9 A ه"ا اب.ن8ی9 )]ام9 C أﻥاع ا!آkQ9
. David Mertz. 5H آ.ن8ی9 @ ت
! <>یA <G<) : Charming Python •
إذا
أت ! ه"ا اب.ن8ی9 (3H ةH] وه آب ﺝ ﺝا "وي ا: Dive Into Python •
Q9 'ن8ی9 (6 'ا>صDive Into Python ی ا أن أW ; و )و،ن أq اcﻥ6 (Mا
XML ^53اد واd <9( ذ; > ا^ ا6 !9 Z!@ ا!ا3 C! وه ی.;ذ
.Functional Programming وUnit Testing ،Processing
ن وا)]ام8ی9 (6 Rا9 9 ی!; آU( اﻥQ وه"ا ی.6( > ﺝ6 ن8ی9 G4 تHg ه أ: Jython •
ن9 ة9 ;M` وأﻥ أﻥ،;" آ6 ﺝRH c إذا آ.RZ وﻥG Rﻥ9 Jython !;" آ6ت ﺝH
.; وM jython (gQ
NET / Mono / ` N<@ U<> ! وی.C# ><( ا6 ن8ی9 G4! nHg ه: IronPython •
(ى ا.Pت اH! واNET تH .ن وا)]ام8ی9 (6 Rا9 9 ی!; آU( اﻥQ وه"ا ی.DotGNU
e6 Y<` ویpre-alpha <!9 39 ^الIron python . ;"ث آd8 ا!`ت اT"ه ه6
.نq اN 2ی3<
bytecode Nﺵة إH وﺝLisp ـ59 ( وه.ن8ی9 >< Lisp frontend 5 ه واﺝ:Lython •
.دQ!ن ا8ی9 < آد. داC!Q )ف5( أﻥQ ا"ي یP ا، ن8ی9
ا"يDaily Python-URL!
!5!ر اP و ا.ن8ی9 (6 ی ا!اردQی واQ• وهك ا
, Vaults of Parnassus T" وآ"; ه، ن8ی9 أاث.o N<@ ثM وLع داdF اN<@ ;<Q3ی
. 8 وا8 واPython Notes, dirtSimple.org, ONLamp.com Python DevCenter
:ﺹ:Iا
HQ c
أي و8ن وأآq اc أﻥ." !ی5ای ا9 ( آ! ین "ه"ا ه، ی ه"ا اب و5 ﻥNن إq و< ا
{!( }أ6 ءH ی!; ا.ن8ی9 )]ام9 Cی ا!آQ اCM QG ; ﺵd9 c وأﻥ،ن8یH !ِ5] ﻥG
;9 . بQ ی أ2 أو اآ،5<] ! یA ( أراZ!( ا6 cﻥاع ا( آﻥP اC9 زك <م5ﺝ
. ! ءH( ا6 ِاﺵع، و"ا.8 ا8وا
*☺*☺*☺*
واة وام و
و...ا ا ي
ات
! ا"ت
5"6 ا," 4& 23ا.ب ا1 ه ا ا,-. +
ا*)(ء%&ن ا و$
ﺡ2.45 , ا- م2008 BC. أ+ 17 @&ا$ ا- هـ1429.9: ا2" ر+11
...اء.N ا4)ا$9
إ2L
C ان ﺡ
وأنK" 4& ن$1C أن." ا2"!ل ا اJأ
http://www.linuxac.org4. ا51
" 2P ء%
( أO9أ
c"e ا.هd cN ا+ ,aة د$ د+ )$. * ..ب1 ه ا ا43رa 4)ا$9 إ+ ء-.