Professional Documents
Culture Documents
انفصم انثاَي :انتحول بيٍ أَواع انبياَات 13....................... Type Conversion & Type Casting
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 2
ميحرلا نمحرلا هللا بسم
انطزيق إنى انبزيجة بهغة انبايثوٌ
The Way to Python programming
ف٘ ٟزا اٌذسط عززؼشف ػٍ ٝأٔٛاع اٌج١بٔبد اٌّخزٍفخ اٌزّ٠ ٟىٕه اعزخذاِٙب ف.Python ٟ
طب ٌٍغب٠خ ٌٚىٕٗ ِ ُٙعذًا ِزبػ فذ ٟعّ١ذغ ٌغذبد اٌجشِغذخ رمش٠جًذب ٘ٚذِ ٛذب ٠غذّٝ دػٔٛب ٕٔبلش ِفًِ ٛٙب ثغً ١
ػذذب ِذذٓ اٌج١بٔذذبد اٌزذذّ٠ ٟىٕذذه
أٔذذٛاع اٌج١بٔذذبد ٚ data typesوّذذب ٠شذذ١ش اعذذّٗ ّ٠ضذذً ٔذذٛع اٌج١بٔذذبد ًٔ ٛ
ِؼبٌغزٙب ثبعزخذاَ ثشٔذبِظ اٌىّج١ذٛرش اٌخذب ثذه .فمذذ ٠ىذٔ ْٛذٛع اٌج١بٔذبد سلًّ١ذب numericأٔ ٚصذ١ب ً
Stringsأ ٚأثغذذذً٠ب alphanumericأ ٚػشذذشً٠ب decimalئٌ ذ .دػٕذذب ٔذذذع ثشِغذذخ اٌىّج١ذذٛرش عبٔج ذب ً
ٌجؼط اٌٛلذ ٔٚأخز ثؼط ا ِضٍخ اٌغٍٙخ :
ِ ضبي 1إلظبفخ ػذد ٓ٠صؾ١ؾّ٠ 20 & 10 ٓ١ىٓ اٌم١بَ ثٗ ثجغبغخ ػٍ ٝإٌؾ ٛاٌزبٌ: ٟ
10 + 10
اٌّضبي ا ٚي ٠زؼبًِ ِغ ا ػذاد اٌصؾ١ؾخ . whole numbers
ِ ضبي 2إلظبفخ ػذد ٓ٠ػششّ٠ 10.50 & 20.50 ٓ١٠ىٓ اٌم١بَ ثٗ ثجغبغخ ػٍ ٝإٌؾ ٛاٌزبٌ: ٟ
10.50 + 20.50
اٌّضبي اٌضبٔ٠ ٟزؼبًِ ِغ ا ػذاد اٌؼشش٠خ . decimal numbers
ِ ضبي ٌ 3زغغِ ً١ؼٍِٛبد اٌطبٌت ف ٟدفزش ِالؽظبد ا٢رٕ٘ ٟب ٔٛد رغغ ً١اٌّؼٍِٛبد اٌزبٌ١خ :
Name:
Class:
Section:
Age:
Sex:
ً
عغال ٚ recordاؽذًا ٌٍطبٌت ٚفمًب ٌٍّزطٍجبد اٌّؾذدح ف ٟاٌغذٚي اٌغبثك : دػٕب ٔعغ
Name: Zara Ali
Class: 6th
Section: J
Age: 13
Sex: F
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 3
اٌّضبي اٌضبٌش ٠زؼبًِ ِغ ِض٠ظ ِٓ اٌج١بٔبد اٌّخزٍفخ ّ٠ىٓ أْ ٔٛظؾٙب ػٍ ٝإٌؾ ٛاٌزبٌ: ٟ
عب عٍغٍخ ٔص١خ . String oاعُ اٌطبٌجخ " ٛ٘ "Zara Aliعٍغٍخ ِٓ ا ؽشف رغّ ٝأً ٠
oفصذً اٌطذالة "٠ "6thزىذِ ْٛذٓ ِذض٠ظ ِذٓ ػذذد صذؾ١ؼ ٚ whole numberعٍغذٍخ ِ stringذٓ
ؽشف٠ٚ ٓ١غّ٘ ٝزا اٌّض٠ظ ا ثغذ ٞاٌشلّ. alphanumeric ٟ
oلغُ اٌطالة " ٛ٘ "Jؽشف ٚاؽذ . single character
oػّش اٌطالة " ٛ٘ "13سلُ ٚاؽذ صؾ١ؼ . whole number
ٛٔ oع اٌطالة " ٛ٘ "Fؽشف ٚاؽذ . single character
ثٙزٖ اٌطش٠مخ أدسوٕب أٔٗ ف ٟؽ١برٕب اٌ١ِٛ١خ إٔٔب ٕٔزؼبًِ ِغ أٔٛاع ِخزٍفخ ِٓ اٌج١بٔبد ِضً :
oاٌغالعً . strings
oا ؽشف . characters
oا سلبَ اٌصؾ١ؾخ whole numbersأ ٚا ػذاد اٌصؾ١ؾخ ). (integers
oا سلبَ اٌؼشش٠خ decimal numbersأ ٚأسلبَ اٌفبصٍخ اٌؼبئّخ ).(floating point numbers
ٚثبٌّضذً وذذً لّ١ذذخ valueفذذٌٙ python ٟذذب ٔذذٛع ث١بٔذذبد ٔٚظذ ًذشا ْ وذذً شذذٟت فذذ ٟثشِغذذخ Python
ػجبسح ػٓ وبئٓ objectفذاْ أٔذٛاع اٌج١بٔذبد ٘ذ ٟفذ ٟاٌٛالذغ فئذبد ٚ classesاٌّزغ١ذشاد variables
اٌزٔ ٟغزخذِٙب ٘ ٟػجبسح ػٓ ِض ً١أّٛٔ ٚصط ( instanceوبئٓ ٘ ِٓ ) objectزٖ اٌفئبد . classes
ػٕذِب ٔىزت ثشٔبِظ وّجٛ١رش ٌّؼبٌغخ أٔٛاع ِخزٍفخ ِٓ اٌج١بٔبد ٔؾزبط ئٌ ٝرؾذ٠ذذ ٔذٛع اٌج١بٔذبد اٌّذشاد
رخضٕ٠ذذٗ ثٛظذذٛػ ؛ ٚئال فذذاْ اٌىّج١ذذٛرش ال ٠فٙذذُ و ١ذ ّ٠ىذذٓ ئعذذشات ػٍّ١ذذبد ِخزٍفذذخ ػٍذذ ٝرٍذذه اٌج١بٔذذبد
اٌّؾذدح ٚرغذزخذَ ٌغذبد اٌجشِغذخ اٌّخزٍفذخ وٍّذبد سئ١غذ١خ ِ keywordsخزٍفذخ ٌزؾذ٠ذذ أٔذٛاع ث١بٔذبد
ِخزٍفذذذخ .فىذذذً ٌغذذذخ ثشِغ١ذذذخ ٌٙذذذب syntaxخذذذب ثٙذذذب ٌٙٚذذذب وٍّذذذبد ِؾغذذذٛصح ٚسئ١غذذذ١خ خبصذذذخ ثٙذذذب
ٚ keywordsسغُ ٘زا فٕٙذبن ٌغذبد ِضذً ٌغذخ ٌ pythonغذخ رو١ذخ ال رؾزذبط ئٌذ ٝرؾذ٠ذذ ٔذٛع اٌج١بٔذبد
. data types
ٕ٘ بن فئبد ِٓ أٔٛاع اٌج١بٔبد داخً ٌغخ ثب٠ض٘ ِٓ ْٛزٖ ا ٔٛاع ا٢ر: ٟ
: Python Numbers )1ا سلبَ داخً ٌغخ ثب٠ضٚ ْٛرىزت ِجبششح .
: Python Strings )2اٌغالعً داخً ٌغخ ثب٠ضٚ ْٛرىزت ث ' ' ٓ١أ " " ٚأ''' ''' ٚ
: Python List )3اٌمٛائُ داخً ٌغخ ثب٠ضٚ ْٛرىزت ث[ , , , ] ٓ١
: Python Tuple )4اٌزؼذ٠ذ داخً ٌغخ ثب٠ضٚ ْٛرىزت ث) , , , ( ٓ١
: Python Set )5اٌّغّٛػخ داخً ٌغخ ثب٠ضٚ ْٛرىزت ث{ , , , } ٓ١
: Python Dictionary )6اٌمٛائُ داخً ٌغخ ثب٠ضٚ ْٛرىزت ث{key:"value", key:"value",… } ٓ١
: Python boolean )7اٌم ُ١إٌّطم١خ داخً ٌغخ ثب٠ض ٝ٘ٚ ْٛئِب Trueأ. False ٚ
عٕم َٛثأخز ٔظشح عذش٠ؼخ ػٍذ ٝوذً ٔذٛع صذُ عذٕم َٛثشذشػ وذً ٔذٛع فذ ٟدسط ِغذزمً ٌذٗ ٚعذٕزؼّك فذٟ
خصبئص ٚدٚاي وً ٔٛع ِٓ أٔٛاع اٌج١بٔبد .
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 4
: ْٛض٠ ا سلبَ داخً ٌغخ ثب: Python Numbers ًالٚأ
: ٟر٢ْ اٛض٠دح داخً اٌجبٛعٌّٛرٕذسط رؾذ فئخ أسلبَ ا
. int class رُؼشف ثـٚ Integers numbers ؾخ١ أسلبَ ا ػذاد اٌصؾ
.float class رُؼشف ثـٚ floating point numbers أسلبَ اٌفبصٍخ اٌؼبئّخ/ خ٠ ا سلبَ اٌؼشش
. complex class رُؼشف ثـٚ complex numbers ا سلبَ اٌّشوجخٚ
.ّخ١ اٌمٚش أ١ب اٌّزغٙ١ٌ ئّٟٕز٠ ٟ اٌزclass اٌـٚ ٌّؼشفخ اٌفئخ أtype)( ّىٕٕب اعزخذاَ داٌخ٠
.ٓ١ ِؼclass ٌٝ ئّٟٕز٠ object ٓ ٌٍزؾمك ِّب ئرا وبْ اٌىبئisinstance)( زُ اعزخذاَ اٌذاٌخ٠
a = 5
print(a, "is of type", type(a))
a = 2.0
print(a, "is of type", type(a))
a = 1+2j
print(a, "is complex number?", isinstance(1+2j,complex))
Output
5 is of type <class 'int'>
2.0 is of type <class 'float'>
(1+2j) is complex number? True
.دح فمػ ثبٌزاوشح اٌّزبؽخٚ ِؾذٟٙي فٛ غْٞ ِٓ أّٛىٓ أْ رى٠ Integers ؾخ١ ا ػذاد اٌصؾ
َا سلذبٚ ؼ١اٌؼذد صؾٚ .ٞ سلُ ػشش15 ٝأخز ؽز٠ floating-point number سلُ اٌفبصٍخ اٌؼبئّخ
. ٞ سلُ ػششٛ٘ 1.0 ّٕب١ؼ ث١ ػذد صؾٛ٘ 1 ًخ فّضال٠ٌخ ثٕمبغ ػششْٛ ِفصٛخ رى٠اٌؼشش
real ٟمذ١ اٌغذضت اٌؾمٛ ٘ذx ذش١ ؽx + yj غخ١ثذخ ثبٌصذٛ ِىزcomplex numbers ا ػذاد اٌّشوجذخ
. imaginary part ٍٟ١ اٌغضت اٌزخy ٚ part
: ِضبي
>>> a = 1234567890123456789
>>> a
1234567890123456789
>>> b = 0.1234567890123456789123456789
>>> b
0.12345678901234568
>>> c = 1+2j
>>> c
(1+2j)
. خ٠ ثؼذ اٌؼالِخ اٌؼششٞ سلُ ػشش15 ِٓ أخز أوزش٠ ٔٗ الb ٞش اٌؼشش١ الؽع أٔٗ رُ لطغ اٌّزغ
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 5
صبٔ١ب ً : Python Stringsاٌغالعً داخً ٌغخ ثب٠ض: ْٛ
اٌغٍغٍخ ٝ٘ Stringػجبسح ػٓ عٍغٍخ ِٓ أؽشف اٌزشِ١ض ٠ٚ Unicodeزُ رّضٍٙ١ب وب٢ر: ٟ
ٌ زّض ً١اٌغالعً إٌص١خ ٌغطش ٚاؽذ ٔغذزخذَ ػالِذبد االلزجذبط اٌّفذشدح ٚ single quotesسِض٘ذب
٘ ( ' ' ) ٛأ ٚػالِبد االلزجبط اٌّضدٚعخ ٚ double quotesسِض٘ب ٘. ( " " ) ٛ
ٌ زّض١ذذً اٌغالعذذً إٌصذذ١خ ِزؼذذذادح ا عذذطش ٔغذذزخذَ ػالِذذبد االلزجذذبط اٌضالص١ذذخ triple quotes
ٚسِض٘ب ٘ ( """ """ ) ٛأ. ( ''' ''' ) ٚ
#Single-line strings
"s = "This is a string
)print(s
#Multi-line strings
s = '''A multiline
'''string
)print(s
Output
This is a string
A multiline
string
ّ٠ ىٓ اعزخذاَ ػبًِ اٌزمط١غ ِ slicing operatorغ اٌغالعً ٚ stringsسِض٘ب ٘ذ ] [ ٛالعذزخشاط
ػٕصش أِ ٚغّٛػخ ِٓ اٌؼٕبصش ِٓ اٌغٍغٍخ . string
Output
s[4] = o
= ]s[6:11 world
اٌفٙشط ] : [ indexاٌمّ١خ اٌزٔ ٟعؼٙب داخً ] [ ٝ٘ٚػجبسح ػٓ سلذُ اٌفٙذشط اٌذز٠ ٞؼجذش ػذٓ لّ١ذخ
ِٛظغ أِ ٚىبْ اٌؾشف .فّضالً ] ٛ٘ [4ػجبسح ػٓ لّ١خ اٌشلُ 4اٌّٛعٛد ف ٟاٌغٍغٍخ .
٠ : index جذأ ِٓ ٌ zeroزٌه ِٛظغ ؽشف 'ٚ 0 ٛ٘ 'hؽشف '٘ٚ 1 ٛ٘ 'eىزا .
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 6
اٌغالعذذً stringsغ١ذذش لبثذذً ٌٍزغ١١ذذش immutableثّؼٕذذ ٝأٔذذٗ ال ّ٠ىذذٓ رغ١١ذذش لّ١ذذخ ػٕبصذذش اٌغٍغذذٍخ
الؽع اٌّضبي اٌزبٌ: ٟ
'!s = 'Hello world
# Generates error
# Strings are immutable in Python
's[5] ='d
Output
Traceback (most recent call last):
>File "<string>", line 11, in <module
TypeError: 'str' object does not support item assignment
ٌإلػذذالْ ػذذٓ لبئّذذخ listأِذذش عذذِٚ ًٙجبشذذش ٠ذذزُ رٌذذه ػذذٓ غش٠ذذك ٚظذذغ اٌؼٕبصذذش داخذذً ألذذٛاط [ ]
ِٚفصٛي ثّٕٙ١ب ثفبصٍخ ٚ Commaسِض٘ب ( ) ,وب٢ر: ٟ
]'a = [1, 2.2, 'python
ّ٠ ىذذٓ اعذذزخذاَ ػبِذذً اٌزمط١ذذغ ِ slicing operatorذذغ اٌمذذٛائُ ٚ listsسِض٘ذذب ٘ذذ ] [ ٛالعذذزخشاط
ػٕصش أِ ٚغّٛػخ ِٓ اٌؼٕبصش ِٓ اٌمبئّخ . list
]a = [5,10,15,20,25,30,35,40
Output
a[2] = 15
]a[0:3] = [5, 10, 15
]a[5:] = [30, 35, 40
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 2
اٌمٛائُ listsلبثٍخ ٌٍزغ١١ش ثّؼٕ ٝأٔٗ ّ٠ىٓ رغ١١ش لّ١خ ػٕبصش اٌمبئّخ الؽع اٌّضبي اٌزبٌ: ٟ
]a = [1, 2, 3
a[2] = 4
)print(a
Output
][1, 2, 4
ّ٠ ىذذٓ اعذذزخذاَ ػبِذذً اٌزمط١ذذغ ِ slicing operatorذذغ اٌمذذٛائُ ٚ listsسِض٘ذذب ٘ذذ ] [ ٛالعذذزخشاط
ػٕصش أِ ٚغّٛػخ ِٓ اٌؼٕبصش ِٓ اٌّغّٛػخ . tuple
Output
t[1] = program
))t[0:3] = (5, 'program', (1+3j
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 1
: ٍٟ٠ ػخ وّبّّٛخ ػٕبصش اٌّغ١ش ل١١ّىٓ رغ٠ ٗٔ إٔٝش ثّؼ١١ش لبثٍٗ ٌٍزغ١ غtuple ػخّٛ اٌّغ
t = (5,'program', 1+3j)
# Generates error - Tuples are immutable
t[0] = 10
Output
Traceback (most recent call last):
File "test.py", line 11, in <module>
t[0] = 10
TypeError: 'tuple' object does not support item assignment
: ْٛض٠ػخ داخً ٌغخ ثبّٛ ِغٍٚخ أ١ رشى: Python Set ً خبِغب
ذذذت١شذذذزشغ رشر٠ الٚ ذذذذح٠ذذذش ِشرجذذذخ ِذذذٓ اٌؼٕبصذذذش اٌفش١ػذذذخ غّٛ ِغٟ ٘ذذذSet ػذذذخّٛ اٌّغٍٚخ أ١اٌزشذذذى
. Set ػخّٛ ِغٟدح فٛعٌّٛاٌؼٕبصش ا
{ } اطٛظغ اٌؼٕبصش داخذً ألذٚ ك٠زُ رٌه ػٓ غش٠ ِجبششٚ ًٙ أِش عSet ػخٌّٛإلػالْ ػٓ اٌّغ
: ٟر٢ ) وب, ( سِض٘بٚ Comma ّب ثفبصٍخٕٙ١ي ثِٛفصٚ
a = {5,2,3,1,4}
Output
a = {1, 2, 3, 4, 5}
<class 'set'>
. sets ٓ١ػزّٛ ِغٍٝػintersection اٌزمبغغٚ union بد ِؾذدح ِضً االرؾبد١ٍّّىٕٕب ئعشات ػ٠
: ٍٟ٠ زُ ؽزف اٌزىشاساد وّب٠ ؽبٌخ اٌزىشاسٟفٚ unique values ذح٠ُ فش١ب لٌٙ ػبدّٛ اٌّغ
a = {1,2,2,3,3,3}
print("a = ",a)
Output
a = {1, 2, 3}
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 4
ال ّ٠ىذٓ اعذزخذاَ ػبِذً اٌزمط١ذغ [ ] ِ slicing operatorذغ اٌمذٛائُ ْ setsاٌّغّٛػذخ ٘ setذٟ
ِغّٛػخ غ١ش ِشرجخ فٍ١ظ ٌٍفٙشعخ indexingأِ ٞؼٕ ٝفٍزٌه ػبًِ اٌزمط١غ [] ال ٠ؼًّ وّب : ٍٟ٠
}>>> a = {1,2,3
]>>> a[1
Traceback (most recent call last):
File "<string>", line 301, in runcode
>File "<interactive input>", line 1, in <module
TypeError: 'set' object does not support indexing
٠ذذزُ اعذذزخذاِٗ ثشذذىً ػذذبَ ػٕذذذِب ِذذغ اٌىّ١ذذخ اٌٙبئٍذذخ ِذذٓ اٌج١بٔذذبد رذذُ رؾغذذ ٓ١اٌمذذٛاِ١ظdictionary
العذذزشعبع اٌج١بٔذذبد ثغذذٌٛٙخ ٚثطش٠مذذخ عذذش٠ؼخ ٌٚذذزٌه ٠غذذت أْ ٔؼذذشف اٌّفزذذبػ keyالعذذزشداد اٌمّ١ذذخ
ٌٚ valueىٓ ٌ١ظ اٌؼىظ .
ّ٠ىٓ أْ ٠ى ْٛاٌّفزبػ ٚاٌمّ١خ ِٓ أٛٔ ٞع ِٓ أٔٛاع اٌج١بٔبد ا٢خش. ٜ
ٌإلػالْ ػٓ اٌمذٛاِ١ظ dictionaryأِذش عذِٚ ًٙجبشذش ٠ذزُ رٌذه ػذٓ غش٠ذك ٚظذغ اٌؼٕبصذش داخذً
ألذذذٛاط } { ِٚفصذذذٛي ثّٕٙ١ذذذب ثفبصذذذٍخ ٚ Commaسِض٘ذذذب ( ٔٚ ) ,فصذذذً ثذذذ ٓ١وذذذً key-value
ثبٌٕمطز ٓ١اٌشئغ١زٚ colon ٓ١سِض٘ب ( ) :وب٢ر: ٟ
}d = {1:'value','key':2
))print(type(d
Output
>'<class 'dict
d[1] = value
d['key'] = 2
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 16
ٔغزخذَ اٌّفزبػ العزشداد اٌمّ١خ اٌّؼٕ١خٌٚ .ىٓ ٌ١ظ اٌؼىظ الؽع ِب : ٍٝ٠
}d = {1:'value','key':2
Output
Traceback (most recent call last):
>File "<string>", line 9, in <module
KeyError: 2
٠ى ْٛاٌزؼج١ش خطأ Falseف ٟؽبٌخ ػذَ رؾمك اٌششغ أ ٚاٌزؼج١ش .
)print(10 == 9
Output
True
False
False
رً إلى هنا نكون قد أخذنا نظرة سرٌعة على أنواع البٌانات ،وسوف نقوم بشرر للرا اونرواع باللل رٌ
الدروس القادمة ،سنقوم اآلن بأخذ نظرة سرٌعة على اللحوٌ بٌن أنواع البٌانات .
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 11
Conversion between data types بٔبد١اع اٌجٛٔٓ أ١ً ث٠ٛاٌزؾ
str() ٚ float() ٚ int() ًع ِضذًٌٕٛ ا٠ٛاي رؾٚبٔبد اٌّخزٍفخ ثبعزخذاَ د١اع اٌجٛٔٓ أ١ً ث٠ّٛىٕٕب اٌزؾ٠
. ّخٌّٙاي اٚ رٌه ِٓ اٌذٌِٝب ئٚ
.ؼ١ت لشة سلُ صؾ٠زُ اٌزمش٠ : integer ٌٝ ئfloat بٔبد١ع ثٛٔ ِٓ ً٠ٛ ِضبي رؾ
>>> float(10.6)
10
. compatible values افمخُٛ ِز١ لٍٝ آخش٘ب ػٌٝ ئstring ِٓ ً٠ٛ اٌزؾٞٛؾز٠ ْغت أ٠ ِضبي
>>> float('2.5')
2.5
>>> str(25)
'25'
>>> int('1p')
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '1p'
. ًعبْٚ وً ػٕصش صٛى٠ ْغت أ٠ ٌٓىٚ dictionary طًِٛ ِٓ لب٠ّٛىٕٕب رؾ٠ ِضبي
>>> dict([[1,2],[3,4]])
{1: 2, 3: 4}
>>> dict([(3,26),(4,44)])
{3: 26, 4: 44}
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 12
انتحول بيٍ أَواع انبياَات: انذرس انثاَي
( Type Conversion & Type Casting )
ًذ٠ٛاعذزخذاِبد رؾٚ Type Conversion عٛذً إٌذ٠ٛ رؾٝ عذززؼشف ػٍذّٟذ١ٍ ٘ذزا اٌجشٔذبِظ اٌزؼٟ فذ
.Python ٟع فٌٕٛا
. اعٛٔ ٓ ٘زٖ ا١ً ث٠ٛخ اٌزؾ١ف١ اٌزؼشف وٍْٝ ٌٍزؼشف ػ٢ اٟبٔبد ٔأر١اع اٌجٛٔ أٍٝثؼذ أْ رؼشفٕب ػ
ٝبٔذبد ا ػٍذ١ع اٌجٛ ٔذٝ ئٌذint ًبٔذبد ا لذ١ع اٌجٛذً ٔذ٠ٛ ثزؾPython َٛذش رمذ١ ِضبالً ؽٜٔب ٔشٛ دػ
.بٔبد١ ٌزغٕت فمذاْ اٌجfloat
num_int = 123
num_flo = 1.23
print("datatype of num_int:",type(num_int))
print("datatype of num_flo:",type(num_flo))
print("Value of num_new:",num_new)
print("datatype of num_new:",type(num_new))
Output
datatype of num_int: <class 'int'>
datatype of num_flo: <class 'float'>
ُٟ فذٙٔعذؼٚ float عٛذش ِذٓ ٔذ١ِزغٚ int عٛذش ِذٓ ٔذ١ٓ ِزغ٠ش١ اٌّضبي اٌغبثك ٔالؽع ػٕذ عّغ ِزغٟ ف
َٛ رمذPython ْ flaot بٔذبد١ع ثٛ ٔذٝ ػٍذٞٛؾزذ٠ num_new ذذ٠ش اٌغذ١ّخ اٌّزغ١ذ فاْ ل٠ش عذ١ِزغ
. بٔبد١بٔبد أوجش ٌزغٕت فمذاْ اٌج١اع ثٛٔ أٌٝبٔبد ا صغش ئ١اع اٌجًٛٔ أ٠ٛثزؾ
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 13
ْ بٔذبد١ اٌجْٟ ٕ٘بن فمذ فٛى١ فغinteger عٛٔ ِٓ ْوبٚ float ذ٠ش اٌغذ١ع اٌّزغٛٔ ْٛى٠ ُز٠ ٌُ ئرا
. ؾخ١ّخ صؾ١ ألشة لٌٝؾخ عزمشة اٌشلُ ئ١ّخ اٌصؾ١اٌم
: بٙخ اٌزؼبًِ ِؼ١ف١وٚ Python ً داخint ٚ string ِضبالً ئظبفخٜٔب ٔشٛ دػ
num_int = 123
num_str = "456"
print(num_int+num_str)
Output
Data type of num_int: <class 'int'>
Data type of num_str: <class 'str'>
ِذٓ اإلخذشاط ؽصذٍٕبٜ وّذب ٔذش.num_str ٚ num_int ٓ٠ذش١ ِزغ١ اٌّضذبي اٌغذبثك ػٕذذِب ٔعذٟ ف
.فٚ ِضذً ٘ذزٖ اٌظذشٟ فًّٟٕ اٌع٠ٛ اعزخذاَ اٌزؾٍٝغذ لبدسح ػ١ٌ ْٛض٠ ْ ٌغخ ثبTypeError ٍٝػ
.ؼ٠ً اٌصش٠ٛفخ ثبعُ اٌزؾٚال اٌّؼشٌّٛاع ِٓ اٛٔ زٖ اٌٙ ًب ؽٙ٠ ٌذPython ِْغ رٌه فاٚ
ؼ٠ً اٌصش٠ٛ اٌزؾٚؼ أ٠ع اٌصشًٌٕٛ ا٠ٛ رؾ: Explicit Type Conversion ٟٔع اٌضبٌٕٛ ا
بٔذذبد١ع اٌجٛ ٔذذٝبٔذذبد اٌىذذبئٓ ئٌذذ١ع ثٛذذً ٔذذ٠ْٛ ثزؾَِٛ اٌّغذذزخذٛمذذ٠ ؼ٠ع اٌصذذشٛذذً إٌذذ٠ٛ رؾٟفذذ
رٌذه إلعذشاتِٝذب ئٌذٚ str)( ٚ float)( ٚ int)( ًظبئ اٌّؾذدح ِغجمًب ِضٌٛ ٔغزخذَ ا.ةٍٛاٌّط
. بٔبد١ع اٌجٌٕٛ ؼ٠ً صش٠ٛرؾ
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 14
.expression ش١ثخ ثذاخً اٌزؼجٍٛبٔبد اٌّط١ع اٌجٛٔ ٓ داٌخ١١ك رؼ٠ ػٓ غشTypecasting ًّّىٓ ػ٠
num_str = int(num_str)
print("Data type of num_str after Type Casting:",type(num_str))
Output
Data type of num_int: <class 'int'>
Data type of num_str before Type Casting: <class 'str'>
ذخ١ٍّ إلعذشات ػint)( (ألذً) ثبعذزخذاَ داٌذخint عٛٔ ٌٝ) ئٍٝ (أػstring ِٓ num_str ً٠ٛ لّٕب ثزؾ
ٓ٠ ئظذذذبفخ ٘ذذذزPython غ١ رغذذذزطint ؼ١ّذذذخ ػذذذذد صذذذؾ١ لٝ ئٌذذذnum_str ًذذذ٠ٛثؼذذذذ رؾٚ اٌغّذذذغ
.ٓ٠ش١اٌّزغ
ًذ٠ٛذب فّذضال ئرا أسدٔذب رؾٙذً اٌخبصذخ ث٠ٛذب داٌذخ اٌزؾٌٙ َب ٔغذزخذٙ١ًٌ ئ٠ّٛخ اٌّشاد اٌزؾ١ أْ اٌمٝ ال رٕغ
ثبٌّضذذً ئرا أسدٔذذبٚ int)( داٌذذخٝ٘ذذٚ ذذبٙ١ٌذذً ئ٠ٛة اٌزؾٛ فإٔذذب ٔغذذزخذَ داٌذذخ اٌّطٍذذint ٝ ئٌذذstring ِٓذذ
. ... ٘ىزاٚ str)( داٌخٝ٘ٚ بٙ١ًٌ ئ٠ٛة اٌزؾٍٛ فإٔب ٔغزخذَ داٌخ اٌّطstring ٌٝ ئint ِٓ ً٠ٛرؾ
.بٔبد آخش١ع ثٛٔ ٌٝبٔبد ئ١ع ثٛٔ ِٓ object ًٓ اٌىبئ٠ٛ رؾٛ٘ Type Conversion ً٠ٛع اٌزؾٛٔ
ٟبٔبد فذ١ فمذاْ اٌجPython رزغٕت ٌغخٚ ْٛض٠اعطخ ِزشعُ ثبًٛب ث١ رٍمبئّٟٕع اٌعًٌٕٛ ا٠ٛزُ ئعشات رؾ٠
. ًّٟٕ اٌع٠ٛاٌزؾ
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 15
عب اعُ Type Castingؽ١ش ٠زُ رؾ ً٠ٛأٔٛاع ث١بٔبد اٌىبئٕذبدُ٠ طٍك ػٍ ٝرؾ ً٠ٛإٌٛع اٌصش٠ؼ أً ٠
ثبعزخذاَ ٚظبئ ِؾذدح ِغجمًب ثٛاعطخ اٌّغذزخذَ ٚفذ Type Casting ٟلذذ ٠ؾذذس فمذذاْ ٌٍج١بٔذبد
ٕٔب ٔفشض ٔٚغجش اٌىبئٓ ػٍٛٔ ٝع ث١بٔبد ِؼ.ٓ١
ٛٔ : Data Type & class Type ع اٌج١بٔبد ٛٔٚع اٌفئخ
وذً ٔذٛع ِذذٓ ٘ذزٖ ا ٔذذٛاع ٕ٠زّذ ٟئٌذذ ٝفئذخ classرخصذذٙب ؽ١ذش ٠ذذزُ رؼش٠ذ وذذً ٔذٛع ػذذٓ غش٠ذك اٌفئذذخ
classاٌخب ثٗ فّضالً :
ٛٔ ع اٌج١بٔبد ٕ٠ intزّ ٟئٌ int class ٝأ٠ ٞزُ رؼش٠فٙب ِٓ خالي .int class
ٛٔ ع اٌج١بٔبد ٕ٠ floatزّ ٟئٌ float class ٝأ٠ ٞزُ رؼش٠فٙب ِٓ خالي .float class
ٛٔ ع اٌج١بٔبد ٕ٠ complexزّ ٟئٌ complex class ٝأ٠ ٞزُ رؼش٠فٙب ِٓ خالي .complex class
>'<class 'int
: isinstance)( function
داٌخ ٌٍزؾمك ِّب ئرا وبْ اٌىبئٓ ٕ٠ objectزّ ٟئٌ ٝفئخ ِ classؼٚ ٓ١ئال ٘زشعغ . False
Synax : )isinstance(object , type
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 16
a=30 #integer
b=30.4 #float
c=5j #complex
d= True #boolean
e="Mahmoud Soliman" #String
f='M' #String
g=["mahmoud","Mohammed","Abd El-Atty" ,"Soliman"] #list
h=("mahmoud","Mohammed","Abd El-Atty" ,"Soliman") #tuple
i={"mahmoud","Mohammed","Abd El-Atty" ,"Soliman"} #set
j={"firstName" :"Mahmoud" ,"secondName":"Mohammed" ,"lastName" : "Soliman"} #dictionary
output
This is Exmples of type() function
<class 'int'>
<class 'float'>
<class 'complex'>
<class 'str'>
<class 'str'>
<class 'bool'>
<class 'list'>
<class 'tuple'>
<class 'set'>
<class 'dict'>
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 12
انذرس انثانث :األرقاو
) ( Numbers
فذذ٘ ٟذذزا اٌجشٔذذبِظ اٌزؼٍّ١ذذ ٟعذذززؼشف ػٍذذ ٝا سلذذبَ numbersاٌّخزٍفذذخ اٌّغذذزخذِخ فذذPython ٟ
ٚو١ف١ذذذذخ اٌزؾ٠ٛذذذذً ِ conversionذذذذٓ ٔذذذذٛع ئٌذذذذ ٝآخذذذذش ٚاٌؼٍّ١ذذذذبد اٌؾغذذذذبث١خ mathematical
operationsاٌّذػِٛخ فٌ ٟغخ . Python
: Numbersا سلبَ
ٕ٘بن صالصخ أٔٛاع سلّ١خ ف ٟثب٠ض: ْٛ
: int ا سلبَ اٌصؾ١ؾخ ِ Integers numbersضً 5أ. -5 ٚ
٘ ٛأ ٞػذد صؾ١ؼ ِٛعت أ ٚعبٌت ثذ ْٚوغٛس ػشش٠خ ثطٛي غ١ش ِؾذٚد .
)"print("integer data types
x1=5 ; y1=-5 ; z1= 36783902987463562
))print(type(x1
))print(type(y1
))print(type(z1
output
integer data types
>'<class 'int
>'<class 'int
>'<class 'int
output
float data types
>'<class 'float
>'<class 'float
>'<class 'float
ثّٕ١ب ّ٠ىٓ أْ رى ْٛا ػذاد اٌصؾ١ؾخ ثأ ٞغٛي فاْ االسلبَ اٌؼشش٠خ رى ْٛل ُ١دل١مخ فمػ ؽزٝ
15سلُ ػشش ٞثؼذ اٌؼالِخ (اٌّىبْ اٌغبدط ػشش غ١ش دل١ك).
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 11
.10 حٛ لٌٝ" ٌإلشبسح ئe" خ ثؾشف١ٍّ أسلب ًِب ػFloat ْٛعب أْ رى
ً ٠ّىٓ أ٠ٚ
print("float data types in values e ")
x3 = 35e3 ; y3 = 12E4 ; z3 = -87.7e100
print(type(x3))
print(type(y3))
print(type(z3))
output
float data types in values e
<class 'float'>
<class 'float'>
<class 'float'>
output
complex data types
<class 'complex'>
<class 'complex'>
<class 'complex'>
: خ١ر٢اي اٚ آخش ثبعزخذاَ اٌذٌٝع ئٛٔ ِٓ ً٠ّٛىٕه اٌزؾ٠ : Type Conversion
. int عٛٔ ٌٝ ئobject عٛٔ ًٞ ِٓ أ٠ٛ ٌٍزؾ: int(object) داٌخ
. float عٛٔ ٌٝ ئobject عٛٔ ًٞ ِٓ أ٠ٛ ٌٍزؾ: float(object) داٌخ
. complex عٛٔ ٌٝ ئobject عٛٔ ًٞ ِٓ أ٠ٛ ٌٍزؾ: complex(object) داٌخ
. string عٛٔ ٌٝ ئobject عٛٔ ًٞ ِٓ أ٠ٛ ٌٍزؾ: str(object) داٌخ
ّذخ١ لٟ ئٌذ5.9 ّذخ١ذً اٌم٠ٛبٔذبد فّذضالً ػٕذذ رؾ١ اٌجٟؾذس فمذذ فذ٠ ْ فاint ٌٝ ئfloat ِٓ ً٠ٛ ػٕذ اٌزؾ
. 0.9 ّخ١زُ رغبً٘ ل٠ ٗٔ ش١س ؽّٛخ اٌىغ١زُ فمذ ل٠ٚ 5 ْ إٌبرظٛى١ عint ؾخ١صؾ
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 14
. ع سلُ آخشٛٔ ٌٝ ئcomplex ً ا سلبَ اٌّشوجخ٠ّٛىٕه رؾ٠ ال
x = 1 # int
y = 2.8 # float
z = 1j # complex
output
convert from int to float:
1.0
<class 'float'>
ٟمذ١ّخ اٌغضت اٌؾم١ب ٌمٙص١زُ رخص١ عint ُّخ اٌشل١ فاْ اٌمcomplex ٌٝ ئint ِٓ ً٠ٛ الؽع ػٕذ اٌزؾ
ٞٚ رغذبٍٟذ١ّذخ اٌغذضت اٌزخ١صذجؼ ل٠ ٌٟثبٌزبٚ )0j) ّخ١ ثبٌمٍٟ١عغ اٌغضت اٌزخ١عٚ real number
. 1 + 0j ْ إٌبرظٛى١ عcomplex ّخ١ لٌٟ ئ1 ّخ١ً اٌم٠ٛصفش فّضالً ػٕذ رؾ
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 26
: Python Decimalاٌزؼبًِ ِغ ا سلبَ اٌؼشش٠خ داخً ٌغخ اٌجبصْٛ
رم َٛفئخ ا سلذبَ اٌؼشذش٠خ class floatاٌّذذِظ فذ Python ٟثذجؼط اٌؾغذبثبد اٌزذ ٟلذذ رذ٘شذٕبٔ .ؼٍذُ
عّ١ؼًب أْ ِغّٛع ٠ 2.2 ٚ 1.1غبٌ 3.3 ٞٚىٓ ٌغخ اٌجب٠ض ْٛغ١ش ِٛافك ٌٙزا إٌبرظ .
x= (1.1 + 2.2) == 3.3
)print (x
output
False
وشلُ ػشش ٞع١ؼط٘ ٟزا ٘ٚ 0.33333333...ذ ٛلذ ُ١غ٠ٛذً ثذال ٌٕ أخز ِضبال ال ّ٠ىٕٕب رّض ً١اٌىغش
ؽذٚد ّ٠ٚ infinitely longىٕٕب فمػ رمش٠جٗ.
ارعذذذذذذذؼ أْ اٌىغذذذذذذذش اٌؼشذذذذذذذش 0.1 ٞعذذذذذذذٕ١زظ ػٕذذذذذذذٗ وغذذذذذذذش صٕذذذذذذذبئ ٟغ٠ٛذذذذذذذً ثذذذذذذذال ؽذذذذذذذذٚد ٌذذذذذذذـ
٠ٚ 0.000110011001100110011...خذذضْ عٙذذبص اٌىّج١ذذٛرش ٌذذذٕ٠ب ػذذذدًا ِؾذذذٚدًا ِٕذذٗ فمذذػ٘ٚ .ذذزا
ع١مبسة 0.1فمػ ٌٚىٕٗ ٌٓ ٠ىِ ْٛزغبً٠ٚب أثذًا ِٓٚ .صُ فاْ ٘زا ٘ذ ٛاٌؾذذ ِذٓ أعٙذضح اٌىّج١ذٛرش ٌذذٕ٠ب
١ٌٚظ خطأ ف.Python ٟ
x= 1.1 + 2.2
)print (x
output
3.3000000000000003
لللغل ر علررى هررذ المشرركلة ٌ ،مكننررا اسررلخدام decimal moduleاللررً لررألً م ر . Pythonبٌنمررا
إلى 51رقم عشرًٌا ،رنن decimal module لحلوي floating-point numbersعلى دقة ل
للمل بدقة ٌمكن للمسلخدم ضبطها.
import decimal
)print(0.1
))print(decimal.Decimal(0.1
output
0.1
0.1000000000000000055511151231257827021181583404541015625
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 21
رُغزخذَ ٘زٖ moduleػٕذذِب ٔش٠ذذ ئعذشات ؽغذبثبد ػشذش٠خ وّذب رؼٍّٕذب فذ ٟاٌّذسعذخ .وّذب أٔذٗ ٠ؾذبفع
ػٍ ٝاٌّغضٔ . significance ٜؼٍُ أْ 25.50وغُ ٘ ٟأوضش دلخ ِذٓ 25.5وغذُ ٔٙذب رؾزذ ٞٛػٍذٝ
سلّ ٓ١ػششِ ٓ١ِّٙ ٓ١٠مبسٔخ ثشلُ ػششٚ ٞاؽذ .
from decimal import Decimal as D
))'print(D('1.1') + D('2.2
))'print(D('1.2') * D('2.50
output
3.3
3.000
لذ ٔزغبتي ٌّبرا ال ٔطجك Decimalوً ِشح ثذالً ِٓ float؟ اٌغذجت اٌشئ١غذ٘ ٟذ ٛاٌىفذبتح ٠غذت أْ
٠زُ رٕف١ز ػٍّ١بد Floating pointثشىً أعشع ِٓ ػٍّ١بد .Decimal
ِ ز٠ ٝزُ اعزخذاَ Decimalثذالً ِٓ float؟ ٔغزخذَ ثشىً ػبَ Decimalف ٟاٌؾبالد اٌزبٌ١خ :
oػٕذِب ٔغش ٞرطج١مبد ِبٌ١خ financial applicationsرؾزبط ئٌ ٝرّض decimal ً١دل١ك.
oػٕذِب ٔش٠ذ اٌزؾىُ فِ ٟغز ٜٛاٌذلخ اٌّطٍٛثخ . control the level of precision
oػٕذِب ٔش٠ذ رطج١ك ِفِٛ َٛٙاظغ ٚأِبوٓ اٌؼالِخ اٌؼشش٠خ اٌّّٙخ.
ّ٠ ىٕٕب ئٔشبت Fraction objectsثطشق ِخزٍفخ .دػٔٛب ٍٔمٔ ٟظشح ػٍ.ُٙ١
import fractions
))print(fractions.Fraction(1.5
))print(fractions.Fraction(5
))print(fractions.Fraction(1,3
output
3/2
5
1/3
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 22
ٝشعغ رٌذه ئٌذ٠ٚ .خ٠ش اٌؼبد١ ثؼط إٌزبئظ غٍٝ لذ ٔؾصً ػfloat خ٠ أصٕبت ئٔشبت اٌىغش ِٓ أسلبَ ػشش
. ً وّب رّذ ِٕبلشزٗ عبثمبٟخ اٌضٕبئ٠ش اٌىبًِ ٌالسلبَ اٌؼشش١ً غ١اٌزّض
ً ٠ أstring وذذبئٓ ثغٍغذذٍخٚذذً أ١ ثأشذذبت ِضFraction غذذّؼ ٌٕذذب٠ ٌؾغذذٓ اٌؾذذع
ذذبس١ اٌخٛ٘ذذزا ٘ذذٚ .عذذب
. decimal numbers خ٠اٌّفعً ػٕذ اعزخذاَ ا سلبَ اٌؼشش
import fractions
# As float
# Output: 2476979795053773/2251799813685248
print(fractions.Fraction(1.1))
# As string
# Output: 11/10
print(fractions.Fraction('1.1'))
output
2476979795053773/2251799813685248
11/10
. رٌهٍٝ ثؼط ا ِضٍخ ػٍٟ٠ ّب١فٚ .خ١بد ا عبع١ٍّغ اٌؼ١ّبٔبد ع١ع اٌجٛٔ ذػُ ٘زا٠ٚ
from fractions import Fraction as F
output
2/3
6/5
False
True
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 23
:Python Mathematicsاٌزؼبًِ ِغ اٌؾغبثبد أ ٚاٌش٠بظ١بد داخً ٌغخ اٌجبصْٛ
رذذذٛفش ٌغذذذخ ٚ Pythonؽذذذذاد ِ modulesضذذذً اٌش٠بظذذذ١بد ٚ mathاٌؼشذذذٛائ١خ ٌ randomزٕف١ذذذز
ؽغذذذذبثبد س٠بظذذذذ١خ ِخزٍفذذذذخ ِضذذذذً ػٍذذذذُ ؽغذذذذبة اٌّضٍضذذذذبد ٚ trigonometryػٍذذذذُ اٌٍٛغبس٠زّذذذذبد
ٚ logarithmsػٍُ االؽزّبالد ٚ probabilityػٍُ اإلؽصبت statisticsئٌ .
ٕ٘ ذذبن اٌىض١ذذش ِذذٓ اٌذذذٚاي ٚاٌخذذٛا اٌزذذّ٠ ٟىٕٕذذب اعذذزخذاِٙب داخذذً ٚؽذذذح ٌٍٚ mathزؼذذشف ػٍذذ٘ ٝذذزٖ
اٌذٚاي ٚاٌخٛا ّ٠ىٕه اٌذخٛي ػٍ٘ ٝزا اٌشاثػ . www.programiz.com
import math
)print(math.pi
))print(math.cos(math.pi
))print(math.exp(10
))print(math.log10(1000
))print(math.sinh(1
))print(math.factorial(6
output
3.141592653589793
-1.0
22026.465794806718
3.0
1.1752011936438014
720
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 24
ٟائٛ اٌشلُ اٌؼش:Random Number
ٌىذٓ ٌغذخrandom number ٟائٛ إلٔشذبت سلذُ ػشذrandom() داٌذخٝ ػٍذPython ٌغذخٞٛال رؾز
َب إلٔشذبت أسلذبِّٙىٓ اعزخذا٠ random ّٝ رغbuilt-in module خ ِذِغخ١ؽذح ّٔطٚ بٙ ثPython
: random number خ١ائٛػش
. بِٙ لجً اعزخذاimport شاد١ب اعزٌٙ ًّغت أْ ٔؼ٠ module ؽذحٚ ٞ العزخذاَ أ
:randrange)( function
. اٌ ُّؾذدobject type ٓع اٌىبئٛٔ داٌخ ثزشعغ
Synax : randrange(start, stop, step)
import random
x=random.randrange(1,10,1)
print("The random number is : ", x)
x=random.randrange(1,10,1)
print("The random number is : ", x)
x=random.randrange(1,10,1)
print("The random number is : ", x)
output
The random number is : 6
The random number is : 1
The random number is : 2
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 25
َ أٔظّخ ا سلب: number systems
: َٕ٘بن أوضش ِٓ ٔظبَ ٌٍزؼبًِ ِغ ا سلب
ٞ ٔظبَ ا سلبَ اٌؼشش: decimal number system
. 10 ٜٚ ٘زا إٌظبَ رغبٟ فbase ّخ ا عبط١لٚ َٛ٠ ًب وٙ ٔزؼبًِ ِؼٟ٘زا ٔظبَ ا سلبَ اٌز
: ٟر٢ظغ ثبدئخ لجً ٘زا اٌشلُ وبٚ ً ٘زٖ ا سلبَ ِٓ خالي١ّىٕٕب رّض٠ ْٛض٠ ثبٟ ف
# Output: 107
print(0b1101011)
# Output: 13
print(0o15)
output
107
253
13
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 26
انذرس انزابع :انسالسم (انُصوص)
) ( Strings
عذذززؼٍُ فذذ٘ ٟذذزا اٌجشٔذذبِظ اٌزؼٍّ١ذذ ٟئٔشذذبت عالعذذً فذذٚ Python ٟرٕغذذ١مٙب ٚرؼذذذٍٙ٠ب ٚؽذذزفٙب ٚعذذٛف
رزؼشف ٚأ٠عب ػٍ ٝػٍّ١بد ٚٚظبئ اٌغٍغٍخ اٌّخزٍفخ.
)"print("Hello
)'print('Hello
)'''print('''Hello
)"""print("""Hello
name = """Hello
""" Mahmoud
)print(name
output
Hello
Hello
Hello
Hello
Hello
Mahmoud
اٌفٙشط ] : [ indexاٌمّ١خ اٌزٔ ٟعؼٙب داخً ] [ ٝ٘ٚػجبسح ػٓ سلذُ اٌفٙذشط اٌذز٠ ٞؼجذش ػذٓ لّ١ذخ
ِٛظغ أِ ٚىبْ اٌؾشف فّضالً ] ٛ٘ [4ػجبسح ػٓ لّ١خ اٌشلُ 4اٌّٛعٛد ف ٟاٌغٍغٍخ .
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 22
ش١شذذ٠ ذذش١ ؽstring داخذذً اٌغٍغذذٍخnegative indexing خ١شعذذخ اٌغذذٍجٙ ثبٌفPython رغذذّؼ ٌغذذخ
اٌؼٕصذذذذذذذذذذذش ٝ ] ئٌذ-1 [ شطٙاٌف
-2 [ ش١ش٠ٚ ذذذذش ٌٍغٍغذذذذٍخ١ا خ
ذذذذذذذذذذذذذذش١خ٢ا ً اٌؼٕصذذش لجذذٝ] ئٌذذ
. ٘ىزاٚ
ػٕبصذش اٌغٍغذٍخٝي ئٌذٛصذٌٍٛ ] [ ٛسِض٘ذب ٘ذٚ Square brackets اط اٌّشثؼذخٛذزُ اعذزخذاَ ا لذ٠
] العذزخشاط: [ ٛ٘ سِض٘بٚ slicing operator غ١اط اٌّشثؼخ ِغ ػبًِ اٌزمطّٛىٓ اعزخذاَ ا ل٠ٚ
. string ػخ ِٓ اٌؼٕبصش ِٓ داخً اٌغٍغٍخِّٛغ
#Accessing string characters in Python
str = 'programiz'
print('str = ', str)
#first character
print('str[0] = ', str[0])
#last character
print('str[-1] = ', str[-1])
#Negative Indexing
print('str[-5:-2] = ', str[-5:-2])
output
str = programiz
str[0] = p
str[-1] = z
str[1:5] = rogr
str[-5:-2] = ram
str[5:-2] = am
str[:5] = progr
str[2:] = ogramiz
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 21
ّٝغذ٠ س خطذأٚ ؽذذٝ رٌذه ئٌذٞإد١ عذindex ذشطٙ ؽشف خذبسط ٔطذبق اٌفٌٝي ئٛصٌٌٛخ اٚ ػٕذ ِؾب
. ًؾب١ ػذدًا صؾindex ْٛى٠ ْغت أ٠ ٌٟثبٌزبٚ IndexError
my_string = 'programiz'
# index must be in range
my_string[15]
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 4, in <module>
my_string[15]
IndexError: string index out of range
.TypeError ٌٝ رٌه ئٞإد١ عٜاع أخشٛٔ أٚ أfloats ٌَخ اعزخذاٚ ػٕذ ِؾب
my_string = 'programiz'
# index must be in range
my_string[15]
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 3, in <module>
my_string[5.4]
TypeError: string indices must be integers
ّذخ ػٕبصذش اٌغٍغذٍخ ثؼذذ١ش ل١١ّىٓ رغ٠ أٔٗ الٕٝ ثّؼimmutable ش١١ش لبثً ٌٍزغ١ غstrings ً اٌغالع
: ٌٟ ِخزٍفخ ٌٕفظ االعُ الؽع اٌّضبي اٌزبstring ٓ١١ّىٕٕب ئػبدح رؼ٠ ٌىٕٕب ثجغبغخٚ ٓ اٌغٍغٍخ١١رؼ
my_string = 'programiz'
my_string[5] = 'a'
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 2, in <module>
my_string[5] = 'a'
TypeError: 'str' object does not support item assignment
. ً ٕٗ ِغجمب١خ رغزخذَ ٌؾزف وبئٓ رُ رؼ١ وٍّخ أعبعٝ٘ : del keyword
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 2, in <module>
del my_string[5]
TypeError: 'str' object doesn't support item deletion
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 24
. del خ١ّىٓ ؽزف اٌغٍغٍخ ثبٌىبًِ ثبعزخذاَ اٌىٍّخ ا عبع٠ ٓ ٌى
my_string = 'programiz'
del my_string
print(my_string)
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 3, in <module>
print(my_string)
NameError: name 'my_string' is not defined
ْٛض٠ اٌغٍغٍخ داخً ٌغخ اٌجبٍٝبد ػ١ٍّ ػ: Python String Operations
اؽذذحٚ بٍٙغؼ٠ ِّبString ً اٌغالعٍّٝىٓ ئعشاؤ٘ب ػ٠ ٟ اٌزOperations بد١ٍّذ ِٓ اٌؼ٠ٕ٘بن اٌؼذ
. ٍٟ٠ ّب١ب فٙ١ٍ عٕزؼشف ػPython ٟبٔبد اعزخذا ًِب ف١اع اٌجِٛٔٓ أوضش أ
output
str1 + str2 = HelloWorld!
str1 * 3 = HelloHelloHello
: ) ( اطّٛىٕٕب اعزخذاَ ا ل١س ِخزٍفخ فٛ عطٟ ئرا أسدٔب سثػ اٌغالعً ف
# two string literals together
str1= 'Hello ''World!1'
print(str1)
# using parentheses
str2 = ('Hello '
'World!2')
print(str2)
output
Hello World!1
Hello World!2
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 36
ًخ رىشاس اٌغالع١ٍّ ػ: Strings Iterating : ً ب١ٔ صب
ًس ػجذذش ا ؽذذشف داخذذّٚىٕٕذذب اٌّذذش١ فarrays فبدٛ ػجذذبسح ػذذٓ ِصذذفStrings ًٔظذ ًذشا ْ اٌغالعذذ
. for ِضً ؽٍمخLooping خ٠اٌغٍغٍخ ثبعزخذاَ اٌؾٍمخ اٌزىشاس
# Iterating through a string
count = 0
for letter in 'Hello World':
if(letter == 'l'):
count += 1
print(count,'letters found')
output
3 letters found
output
b
a
n
a
n
a
output
True
True
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 31
خ٠ٛ ِغ ِؼبِالد اٌؼعif ّىٓ اعزخذاَ عٍّخ٠
txt1 = "The best things in life are free!"
if "Mahmoud" not in txt1:
print("Mahmoud is not Found.")
output
Mahmoud is not Found.
Yes, 'free' is present.
ْٛض٠اي ٌٍزؼبًِ ِغ اٌغٍغٍخ داخً ٌغخ اٌجبٚ اٌذ: Python String Functions
: بِٕٙ String ً اٌغالعٍّٝىٓ ئعشاؤ٘ب ػ٠ ٟ اٌزFunctions ايٚذ ِٓ اٌذ٠ٕ٘بن اٌؼذ
. )ٓ ثزشعغ ػذد أؽشف اٌغٍغٍخ (اٌىبئٞي اٌغٍغٍخ أٛي ؛ ٌّؼشفخ غٛ داٌخ اٌط: Len() function
a = "Hello, World!"
print("Length of string is : ",len(a))
output
Length of string is : 13
ذذغ١ّّذذخ ع١لٚ index ذذشطٙ فٝ ػٍذذٞٛؾزذذ٠ داٌذذخ اٌؼذذذد؛ إلسع ذبع رؼذذذاد: enumerate() function
. iteration ذًا ٌٍزىشاس١ْ ٘زا ِفٛى٠ ّْىٓ أ٠ٚ . pairs اطٚ اٌغٍغٍخ وأصٟاٌؼٕبصش ف
str = 'cold'
# enumerate()
list_enumerate = list(enumerate(str))
print('list(enumerate(str) = ', list_enumerate)
output
list(enumerate(str) = [(0, 'c'), (1, 'o'), (2, 'l'), (3, 'd')]
len(str) = 4
. upper case شح١ف وجٚ ؛ ٌغؼً اٌغٍغٍخ ؽشٍٞٛ داٌخ اٌؼ: upper() function
. lower case شح١ف صغٚ ؛ ٌغؼً اٌغٍغٍخ ؽشٍٟ داٌخ اٌغف: lower() function
.upper case شح١ف وجٚ اٌغٍغٍخ ؽشٟي ؽشف ِٓ وٍّخ فٚ داٌخ اٌّمبي؛ ٌغؼً أ: title() function
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 32
a = "my name is mahmoud soliman"
print(a.upper())
print(a.lower())
print(a.title())
output
MY NAME IS MAHMOUD SOLIMAN
my name is mahmoud soliman
My Name Is Mahmoud Soliman
خ٠ ثذاٟدح فٛعٌّٛ اWhitespace عبت١ئصاٌخ اٌّغبفخ اٌجٚ ذ ؛ ٌؾزف٠ داٌخ اٌزغش: strip() function
. بٙز٠بٙٔ ٟ فٚاٌغٍغٍخ أ
a = " Hello, World! "
print(a.strip()) # returns "Hello, World!"
output
Hello, World!
. ٖ ثؼذٚ أٍٟدح لجً إٌص اٌفؼٛعٌّٛ اٌّغبفخ اٟ٘ عبت١ اٌّغبفخ اٌج: Whitespace
Whitespace عذذبت١ذذً اٌّغذذبفخ اٌج٠رضٚ داٌذذخ ثزؾذذزفٝ داٌذذخ االعذذزجذاي ؛ ٘ذذ: replace() function
. بٙز٠بٙٔ ٟ فٚخ اٌغٍغٍخ أ٠ ثذاٟدح فٛعٌّٛا
a = "Hello, World!"
print(a.replace("H", "J"))
output
Jello, World!
ّخ اٌ ُّشاد١ ( اٌمold value ّخ٠ّخ اٌمذ١ اٌمٝ٘ٚ يٚ ٓ اٌّؼبًِ ا١ٍِب ِؼبٌٙ ثّٕشس خالreplace داٌخ
. ) بٌٙزُ اعزجذا١ عّٟخ اٌز١ ( اٌمnew value ذح٠ّخ اٌغذ١ اٌمٝ٘ٚ ٟٔاٌّؼبًِ اٌضبٚ ) بٌٙاعزجذا
output
['Hello', ' World!']
. ) - ( ٚ ) أ, ( ٚ ) أ. ( ْٛى٠ فّضالً لذ ٛٓ إٌص١فصً ث٠ شئْٞ أٛى٠ اٌفبصً لذ: separator
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 33
ْٛض٠ك اٌغٍغٍخ داخً ٌغخ اٌجب١ رٕغ:Python String Formatting
: ٟر٢ اٍٝعٕزؼشف ػٚ ْٛض٠ اٌّخزٍفخ داخً ٌغخ اٌجبFormatting ك١ذ ِٓ أشىبي اٌزٕغ٠ٕ٘بن اٌؼذ
. format() function ك١ داٌخ اٌزٕغ: ًالٚ أ
. Escape Sequence ةٚشٌٙ رغٍغً اٚف أٚ ؽش: ً ب١ٔ صب
. Raw String sequence َ عٍغٍخ اٌخبٚ ؽشف اٌخبَ أ: ً صبٌضب
. Old style formatting ُ٠ك إٌّػ اٌمذ١ رٕغ: ً ساثؼب
. ً اٌغالعٟك ؛ إلدساط ا سلبَ ف١ داٌخ اٌزٕغ: format() function : ًالٚ أ
age = 36
txt = "My name is John, and I am {}"
print(txt.format(age))
output
My name is John, and I am 36
ْٛش رى١ اٌغٍغٍخ ؽٟب فٙرعؼٚ بٙم١رٕغٚ ش٘ب٠ رُ رّشُٟ اٌّؼبِالد اٌز١ لformat() رأخز اٌذاٌخ
. } { اٌشِضٝ٘ placeholders اٌؼٕبصش إٌبئجخ
بٌٙزُ اعزجذا٠ ٍخ٠ي ثذٛ ؽمٚفخ {} وؼٕبصش ٔبئجخ أٛاط ِؼمٛ ألٍٝك ػ١ عالعً اٌزٕغٞٛ رؾز
: اٌؼٕبصش إٌبئجخٟب فٙظؼٚ ُز٠ٚ د ِٓ اٌّؼبِالدٚش ِؾذ١ ػذدًا غformat() رأخز اٌذاٌخ
quantity = 3
itemno = 567
price = 49.95
myorder = "I want {} pieces of item {} for {} dollars."
print(myorder.format(quantity, itemno, price))
output
I want 3 pieces of item 567 for 49.95 dollars.
: ؾخ١ اٌؼٕبصش إٌبئجخ اٌصؾٟظغ اٌّؼبِالد فٚ ِٓ } ٌٍزأوذ0{ شطّٙىٕه اعزخذاَ أسلبَ اٌف٠
quantity = 3
itemno = 567
price = 49.95
myorder = "I want to pay {2} dollars for {0} pieces of item {1}."
print(myorder.format(quantity, itemno, price))
output
I want to pay 49.95 dollars for 3 pieces of item 567.
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 34
. Escape Sequence ةٚشٌٙ رغٍغً اٚف أٚ ؽش: ً ب١ٔ صب
. عٍغٍخٟخ ف١ٔٛٔش لب١ف رغزخذَ إلدساط أؽشف غٚ ؽشٝ٘
) ' ' ) ّىٕٕب اعزخذاَ ػالِذبد االلزجذبط اٌّفذشدح٠ " فالWhat's there ئرا أسدٔب غجبػخ ٔص ِضً " ؟
ٗذش أْ اٌذٕص ٔفغذ١ ثٕذبت اٌغٍّذخ ؽٟٕزظ خطذأ فذ١عذخ ) " " ( ْ ٘ذزا عذٚ ػالِذبد االلزجذبط اٌّضدٚأ
. عخِٚضدٚ ػالِبد الزجبط ِفشدحٍٝ ػٞٛؾز٠
print("He said, "What's there?"")
output
C:\Users\Hoda_PC>python c:/Users/Hoda_PC/Desktop/example.py
File "c:\Users\Hoda_PC\Desktop\example.py", line 1
print("He said, "What's there?"")
^
SyntaxError: invalid syntax
ِٓ ً ثذالٚ ) ''' ''' ( أٚخ ) """ """ ( أ١ّىٓ اعزخذاَ ػالِبد االلزجبط اٌضالص٠ ٘زٖ اٌّشىٍخٍٝ ٌٍزغٍت ػ
. Escape Sequence ةٚشٌّٙىٕٕب اعزخذاَ رغٍغالد ا٠ رٌه
( \ ) ٛسِض٘ذب ٘ذٚ backslash ثشذشغخ ِبئٍذخ ٌٍخٍذEscape Sequence ةٚذشٌٙجذذأ رغٍغذً ا٠
خ١ذً عٍغذٍخ ٔصذ١اؽذذح ٌزّضٚ فّذضالً ئرا اعذزخذِٕب ػالِذخ الزجذبط. ٗذذ ئدساعذ٠ رشٞػخ ثبٌؾشف اٌزِٛزج
اٌؾذبي ِذغ ػالِذبد االلزجذبطٛوّذب ٘ذٚ غ ػالِبد االلزجبط اٌّفذشدح داخذً اٌغٍغذٍخ١ّ عٟغت رخط١ف
. ً إٌص اٌغبثك١بَ ثزٌه ٌزّض١خ اٌم١ف١عخ الؽع وٚاٌّضد
print('''He said, "What's there?"''') # using triple quotes
output
He said, "What's there?"
He said, "What's there?"
He said, "What's there?"
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 35
Python ب ٌغخّٙ رذػٟ اٌزEscape Sequence ةٚشٌٙغ رغٍغالد ا١ّ لبئّخ ثغٍٟ٠ ّب١ ف
print("C:\\Python32\\Lib")
print('It\'s alright.')
print("Hello\nWorld!")
print("Hello\fWorld!")
print("Hello\rWorld!")
print("Hello\tWorld!")
print("Hello \bWorld!")
print("\110\145\154\154\157")
print("\x48\x65\x6c\x6c\x6f")
output
It's alright.
He said, "What's there?"
Hello
World!
Hello♀World!
World!
Hello World!
HelloWorld!
Hello
Hello?"
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 36
. Raw String sequence َ عٍغٍخ اٌخبٚ ؽشف اٌخبَ أ: ً صبٌضب
. Escape Sequence ةٚشٌٙف اٚف رغزخذَ ٌزغبً٘ ؽشٚ ؽشٝ٘
َذب١ ٌٍم. داخذً عٍغذٍخEscape Sequence ةٚشٌٙ رغبً٘ رغٍغالد اٟبْ لذ ٔشغت ف١ ثؼط ا ؽٟ ف
ٞزُ رغب٘ذً أ١عذٚ raw string َ أٔذٗ عٍغذٍخ خذبٟؼٕذ٠ ٘ذزا. أِذبَ اٌغٍغذٍخR ٚ أr ظذغٚ ّىٕٕذب٠ ثذزٌه
.ٍٗة ثذاخٚرغٍغً ٘ش
print("This is \x61 \ngood example")
print("\n")
output
This is a
good example
َذب١ ٌٍم. داخذً عٍغذٍخEscape Sequence ةٚشٌٙ رغبً٘ رغٍغالد اٟبْ لذ ٔشغت ف١ ثؼط ا ؽٟ ف
ٞزُ رغب٘ذً أ١عذٚ raw string َ أٔذٗ عٍغذٍخ خذبٟؼٕذ٠ ٘ذزا. أِذبَ اٌغٍغذٍخR ٚ أr ظذغٚ ّىٕٕذب٠ ثذزٌه
.ٍٗة ثذاخٚرغٍغً ٘ش
x = 12.3456789
print('The value of x is %3.2f' %x)
output
The value of x is 12.35
The value of x is 12.35
The value of x is 12.35
The value of x is 12.3457
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 32
انذرس انخايس :انقوائى (انًصفوفات )Arrays
) ( Lists
عززؼٍُ فذ٘ ٟذزا اٌجشٔذبِظ اٌزؼٍّ١ذ ٟئٔشذبت اٌمذٛائُ فذٚ Python ٟرمغذ ُ١اٌمبئّذخ ٚئظذبفخ اٌؼٕبصذش أٚ
ئصاٌزٙب ِٕٙب ِٚب ئٌ ٝرٌه .
رمذَ ِ Pythonغّٛػخ ِٓ أٔٛاع اٌج١بٔذبد اٌّشوجذخ اٌزذ٠ ٟشذبس ئٌٙ١ذب غبٌجًذب ثبٌزغٍغذالد . sequences
ػب عذًا اٌّغزخذِخ فٚ .Python ٟرزّ١ذض ٚاٌمبئّخ ٚ ٟ٘ listاؽذح ِٓ أوضش أٔٛاع اٌج١بٔبد اعزخذا ًِب ٚرًٕ ٛ
اٌمٛائُ ثأٔٙب ِشٔخ ٌٍغب٠خ وّب ال ٍ٠ضَ أْ رى ْٛوبفخ اٌؼٕبصش اٌّٛعٛدح ف ٟاٌمبئّخ ِٓ ٔفظ إٌٛع .
اٌمٛائُ ٚ ٟ٘ listsاؽذح ِٓ 4أٔٛاع ث١بٔبد ِعّٕخ فٚ Python ٟاٌز ٟرُغذزخذَ ٌزخذضِ ٓ٠غّٛػذخ ِذٓ
اٌج١بٔبد ٚاٌضالصخ ا خذش٘ ٜذٚ Dictionary ٚ Set ٚ Tuple ٟوٍٙذب راد خصذبئص ٚاعذزخذاِبد
ِخزٍفخ ٠ٚشبس ئٌ٘ ٝزٖ ا ٔٛاع ا سثؼخ ثبعُ اٌزغٍغالد . sequences
ّ٠ىٓ أْ رؾز ٞٛػٍ ٝأ ٞػذد ِٓ اٌؼٕبصش ٚلذ رى ِٓ ْٛأٔذٛاع ِخزٍفذخ ( integerأ floatٚأstring ٚ
عذب ػٍذ ٝلبئّذخ listأخذش ٜوؼٕصذش ٚرغذّٝأ ٚأٛٔ ٞع آخش ) وّب ّ٠ىذٓ أْ رؾزذ ٞٛاٌمبئّذخ listأً ٠
لبئّخ ِزذاخٍخ . nested list
ٌإلػذذالْ ػذذٓ لبئّذذخ listأِذذش عذذِٚ ًٙجبشذذش ٠ذذزُ رٌذذه ػذذٓ غش٠ذذك ٚظذذغ اٌؼٕبصذذش داخذذً ألذذٛاط [ ]
ِٚفصٛي ثّٕٙ١ب ثفبصٍخ ٚ Commaسِض٘ب ( ) ,وب٢ر: ٟ
# empty list
][ = my_list
)print(my_list
output
][
][1, 2, 3
][1, 'Hello', 3.4
]]'['mouse', [8, 4, 6], ['a
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 31
ٚ : List Itemsؽذاد اٌمبئّخ أ ٚػٕبصش اٌمبئّخ
ػٕبصش اٌمبئّخ ٌٙب صالس خصبئص :
oػٕبصش ِفٙشعخ indexing
٘ٚزا ٠ؼٕ ٟأْ اٌؼٕصش ا ٚي ثٗ فٙشط [ ]0اٌؼٕصش اٌضبٔ ٟثٗ فٙشط [٘ٚ ]1ىزا .
ِ الؽظخ ٕ٘ :بن ثؼط دٚاي ٌٍمبئّخ عزغ١ش اٌزشر١ت ٌٚىٓ ثشىً ػبَ ٌٓ ٠زغ١ش رشر١ت اٌؼٕبصش.
اٌفٙشط ] : [ indexاٌمّ١خ اٌزٔ ٟعؼٙب داخً ] [ ٝ٘ٚػجبسح ػٓ سلذُ اٌفٙذشط اٌذز٠ ٞؼجذش ػذٓ لّ١ذخ
ِٛظغ أِ ٚىبْ اٌؾشف فّضالً ] ٛ٘ [4ػجبسح ػٓ لّ١خ اٌشلُ 4اٌّٛعٛد ف ٟاٌغٍغٍخ .
رغّؼ ٌغخ Pythonثبٌفٙشعخ اٌغٍج١خ negative indexingداخً اٌمبئّخ listؽ١ذش ٠شذ١ش اٌفٙذشط
[ ] -1ئٌ ٝاٌؼٕصش ا خ١ش ٌٍغٍغٍخ ٠ٚش١ش [ ] -2ئٌ ٝاٌؼٕصش لجً ا٢خ١ش ٘ٚىزا .
٠ ذزُ اعذزخذاَ ا لذٛاط اٌّشثؼذخ ٚ Square bracketsسِض٘ذب ٘ذٌٍٛ ] [ ٛصذٛي ئٌذ ٝػٕبصذش اٌمبئّذخ
ّ٠ٚىٓ اعزخذاَ ا لٛاط اٌّشثؼخ ِغ ػبًِ اٌزمط١غ ٚ slicing operatorسِض٘ب ٘ ] : [ ٛالعذزخشاط
ِغّٛػخ ِٓ اٌؼٕبصش ِٓ داخً اٌمبئّخ . list
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 34
# List indexing
my_list = ['p', 'r', 'o', 'b', 'e']
# Output: p
print("my_list[0] is : " , my_list[0])
# Output: o
print("my_list[2] is : " , my_list[2])
# Output: e
print("my_list[4] is : " , my_list[4])
# Output: b
print("my_list[-2] is : " , my_list[-2])
# Nested List
n_list = ["Happy", [2, 0, 1, 5]]
# Nested indexing
print("n_list[0][1] is : " , n_list[0][1])
print("n_list[1][3] is : ",n_list[1][3])
my_list = ['p','r','o','g','r','a','m','i','z']
output
my_list[0] is : p
my_list[2] is : o
my_list[4] is : e
my_list[-2] is : b
n_list[0][1] is : a
n_list[1][3] is : 5
['o', 'g', 'r']
['p', 'r', 'o', 'g']
['a', 'm', 'i', 'z']
['p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z']
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 46
ّٝغذ٠ س خطذأٚ ؽذذٝ رٌذه ئٌذٞإد١ عذindex ذشطٙ ؽشف خذبسط ٔطذبق اٌفٌٝي ئٛصٌٌٛخ اٚ ػٕذ ِؾب
. ًؾب١ ػذدًا صؾindex ْٛى٠ ْغت أ٠ ٌٟثبٌزبٚ IndexError
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 3, in <module>
print(my_list[7])
IndexError: list index out of range
.TypeError ٌٝ رٌه ئٞإد١ عٜاع أخشٛٔ أٚ أfloats ٌَخ اعزخذاٚ ػٕذ ِؾب
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 7, in <module>
print(my_list[4.0])
TypeError: list indices must be integers or slices, not float
output
[1, 4, 6, 8]
[1, 3, 5, 7]
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 41
ئظبفخ ػٕبصش اٌمبئّخ: add list Items
. ػخ ِٓ اٌؼٕبصش ٌٍمبئّخّٛ ِغٚاي رغزخذَ إلظبفخ ػٕصش أٚ د3 ٕ٘بن
. خ اٌمبئّخ٠بٙٔ ٌٝ داٌخ اإلٌؾبق ؛ إلظبفخ ػٕصش ئ: append () function
. شط ِؾذدٙ فٟ داٌخ اإلدخبي ؛ إلدساط ػٕصش لبئّخ ف: insert() function
. خ١ٌ اٌمبئّخ اٌؾبٌٝ ئٜ داٌخ اإلِذاد ؛ إلٌؾبق ػٕبصش ِٓ لبئّخ أخش: extend() function
وذذبئٓ لبثذذً ٌٍزىذذشاسّٞىٕذذه ئظذذبفخ أ٠ ٌٓىذذٚ ائُ فمذذػٛ ثذذبٌمextend)( أْ رٍؾذذكٞسٚظ ِذذٓ اٌعذذش١ ٌذذ
.) dictionaries sets tuples(
thislist = ["apple", "banana", "cherry"]
thislist.append("orange")
print(thislist)
output
['apple', 'banana', 'cherry', 'orange']
['apple', 'orange', 'banana', 'cherry']
['apple', 'banana', 'cherry', 'mango', 'pineapple', 'papaya']
['apple', 'banana', 'cherry', 'kiwi', 'orange']
.ش١ً اٌؼٕصش ا خ٠ب عزضٙٔ فاpop() ٌٍذاٌخindex شطٙ ئرا ٌُ رؾذد اٌف
.ٜٛ ِؾزٍٝ ػٞٛب ال رؾزٕٙدح ٌىٛعِٛ رظً اٌمبئّخٌٟثبٌزبٚ غ اٌمبئّخ٠َ ثزفشٛ رمclear() اٌذاٌخ
.ًِ الصاٌخ اٌمبئّخ ثبٌىبٚ أpop() شط اٌّؾذد ِضً داٌخٙ ٌؾزف اٌفdel خ١ّىٓ اعزخذاَ اٌىٍّخ ا عبع٠
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 42
. ً ٕٗ ِغجمب١خ رغزخذَ ٌؾزف وبئٓ رُ رؼ١ وٍّخ أعبعٝ٘ : del keyword
my_list = ['p','r','o','b','l','e','m']
my_list.remove('p')
print(my_list) # Output: ['r', 'o', 'b', 'l', 'e', 'm']
# Output: 'o'
print(my_list.pop(1))
print(my_list) # Output: ['r', 'b', 'l', 'e', 'm']
# Output: 'm'
print(my_list.pop())
print(my_list) # Output: ['r', 'b', 'l', 'e']
my_list.clear()
print(my_list) # Output: []
output
['r', 'o', 'b', 'l', 'e', 'm']
o
['r', 'b', 'l', 'e', 'm']
m
['r', 'b', 'l', 'e']
[]
['p', 'r', 'b', 'l', 'e', 'm']
['p', 'm']
: ٟر٢ خطأ وبٟؼط١ب عٙ الؽع ػٕذ غجبػخ اٌذاٌخ ثؼذ ؽزف
my_list = ['p','r','o','b','l','e','m']
del my_list # delete entire list
print(my_list) # Error: List not defined
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 7, in <module>
print(my_list)
NameError: name 'my_list' is not defined
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 43
ْٛض٠ اٌمبئّخ داخً ٌغخ اٌجبٍٝبد ػ١ٍّ ػ: Python List Operations
: ٟر٢ب إِٙ List اٌمبئّخٍّٝىٓ ئعشاؤ٘ب ػ٠ ٟ اٌزOperations بد١ٍّذ ِٓ اٌؼ٠ٕ٘بن اٌؼذ
print(["re"] * 3)
output
[1, 3, 5, 9, 7, 5]
['re', 're', 're']
output
apple
banana
cherry
output
apple
banana
cherry
.لبثً ٌٍزىشاس ِٕبعت ٍِ إلٔشبتlen)( اٌذاٌخٚ range)( زُ اعزخذَ اٌذاٌخ٠ الؽع
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 44
ِ ضبي ػٍWhile Loop ٝ
]"thislist = ["apple", "banana", "cherry
i = 0
while i < len(thislist):
)]print(thislist[i
i = i + 1
output
apple
banana
cherry
output
apple
banana
cherry
ٕ٘ فشض أْ ٌذٕ٠ب ِغّٛػخ ِذٓ اٌفٛاوذٗ داخذً لبئّذخ ٔٚ listش٠ذذ لبئّذخ عذ٠ذذح رؾزذ ٞٛفمذػ ػٍذ ٝاٌفبوٙذخ
اٌز٠ ٟؾز ٞٛاعّٙب ػٍ ٝؽشف "."a
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 45
ِذغ اخزجذبس اٌشذشغfor ذه وزبثذخ ػجذبسح١ٍٓ ػ١زؼ١ عذList Comprehension َ ؽبٌذخ ػذذَ اعذزخذاٟ ف
: ٟر٢ب وبٍٙ ثذاخcondition
for x in fruits:
if "a" in x:
newlist.append(x)
print(newlist)
output
['apple', 'banana', 'mango']
: ٟر٢اؽذ فمػ وبٚ بَ ثىً رٌه ثغطش١ّىٕه اٌم٠ List Comprehension َ ؽبٌخ اعزخذاٟ ف
print(newlist)
output
['apple', 'banana', 'mango']
#Condition The condition is like a filter that only accepts the items that valuate to
True.
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x for x in fruits if x != "apple"]
print(newlist)
output
['banana', 'cherry', 'kiwi', 'mango']
['apple', 'banana', 'cherry', 'kiwi', 'mango']
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 46
: iterable List Comprehension ٍٝ ػ2 ِضبي
#The iterable can be any iterable object, like a list, tuple, set etc.
newlist = [x for x in range(10)]
print(newlist)
output
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4]
#The expression is the current item in the iteration, but it is also the outcome,
#which you can manipulate before it ends up like a list item in the new list:
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x.upper() for x in fruits]
print(newlist)
output
['APPLE', 'BANANA', 'CHERRY', 'KIWI', 'MANGO']
['hello', 'hello', 'hello', 'hello', 'hello']
['apple', 'orange', 'cherry', 'kiwi', 'mango']
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 42
ْٛض٠ائُ داخً ٌغخ اٌجبٛاي اٌمٚ د: Python list methods
ايٚػذذخ ِذذٓ اٌذذذّٛع ذب ً ِغ٠ٕ٘ذذبن أٚ list رزؼبِذذً ِذذغ اٌمبئّذذخٟاي اٌزذذٚػذذخ ِذذٓ اٌذذذّٛ ِغٝرؼشفٕذذب ػٍذذ
Python فشح ِغ وبئٕبد اٌمبئّخ داخً ٌغخ ثشِغخٛ اٌّزmethods ؼشف ثبٌطشق٠ ِبٚ أfunctions
list.method() ذذك٠ذذب ػذذٓ غشٙ١ٌي ئٛصذذٌّٛىٕذذه ا٠ٚ lists ُائٛ اٌمذذّٝىذذٓ ئعشاؤ٘ذذب ػٍذذ٠ ٟاٌزذذ
: ٍٟ٠ ّب١ب فٙ أغٍجٍٝعٕزؼشف ػ
. )ٓي ػٕبصش اٌمبئّخ (اٌىبئٛي ؛ ٌّؼشفخ غٛ داٌخ اٌط: len() function
. اٌمبئّخٟشط اٌؼٕصش اٌّؾذد فٙشط ؛ ٌّؼشفخ فٙ داٌخ اٌف: index() function
. اٌمبئّخٟب اٌؼٕصش اٌّؾذد فٙ١ش فٙظ٠ ٟ داٌخ اٌؼذد ؛ ٌّؼشفخ ػذد اٌّشاد اٌز: count() function
.ٌٟ رٕبصٚ أٞت رصبػذ١ت ػٕبصش اٌمبئّخ ثزشر١ داٌخ اٌفشص ؛ ٌزشر: sort() function
. ػىظ ػٕبصش اٌمبئّخٚ داٌخ اٌؼىظ ؛ ٌمٍت: reverse() function
. ِٓ اٌمبئّخٜ داٌخ إٌغ ؛ ٌؼًّ ٔغخخ آخش: copy() function
# Python list methods
my_list = [3, 8, 1, 6, 0, 8, 4]
print(len(my_list))
print(my_list.index(8))
print(my_list.count(8))
my_list.sort()
print(my_list)
my_list.reverse()
print(my_list)
# mixed list
list = ['cat', 0, 6.7]
# copying a list using slicing
new_list = list[:]
# Adding an element to the new list
new_list.append('dog')
output
7
1
2
[0, 1, 3, 4, 6, 8, 8]
[8, 8, 6, 4, 3, 1, 0]
Old List: ['cat', 0, 6.7]
New List: ['cat', 0, 6.7, 'dog']
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 41
انذرس انسادس :انًجًوعات (انتعذيذ)
)(Tuples
عذذززؼٍُ فذذ٘ ٟذذزا اٌجشٔذذبِظ اٌزؼٍّ١ذذِ ٟذذب ٘ذذ ٛاٌزؼذ٠ذذذ Tuplesفذذٚ Python ٟو١ف١ذذخ ئٔشذذبئٙب ِٚزذذٝ
رغزخذِٙب ٚاٌذٚاي اٌّخزٍفخ اٌز٠ ٟغت أْ رى ْٛػٍ ٝدسا٠خ ثٙب.
رمذَ ِ Pythonغّٛػخ ِٓ أٔٛاع اٌج١بٔذبد اٌّشوجذخ اٌزذ٠ ٟشذبس ئٌٙ١ذب غبٌجًذب ثبٌزغٍغذالد . sequences
ٚاٌّغّٛػذذخ ٘ tupleذذٚ ٟاؽذذذح ِذذٓ أٔذذٛاع اٌج١بٔذذبد اٌّغذذزخذِخ فذذٚ .Python ٟرزّ١ذذض اٌّغّٛػذذخ ثأٔٙذذب
ِشٔخ ٌٍغب٠خ وّب ال ٍ٠ضَ أْ رى ْٛوبفخ اٌؼٕبصش اٌّٛعٛدح ف ٟاٌمبئّخ ِٓ ٔفظ إٌٛع .
اٌّغّٛػخ ٚ ٟ٘ tupleاؽذح ِٓ 4أٔٛاع ث١بٔبد ِعّٕخ فٚ Python ٟاٌز ٟرُغزخذَ ٌزخضِ ٓ٠غّٛػذخ
ِٓ اٌج١بٔبد ٚاٌضالصخ ا خشٚ Dictionary ٚ Set ٚ lists ٟ٘ ٜوٍٙب راد خصبئص ٚاعذزخذاِبد
ِخزٍفخ ٠ٚشبس ئٌ٘ ٝزٖ ا ٔٛاع ا سثؼخ ثبعُ اٌزغٍغالد . sequences
ّ٠ىٓ أْ رؾز ٞٛػٍ ٝأ ٞػذد ِٓ اٌؼٕبصش ٚلذ رى ِٓ ْٛأٔذٛاع ِخزٍفذخ ( integerأ floatٚأstring ٚ
عذذذب ػٍذذذِ ٝغّٛػذذذخ tupleأخذذذشٜ
أ ٚأٔ ٞذذذٛع آخذذذش ) وّذذذب ّ٠ىذذذٓ أْ رؾزذذذ ٞٛاٌّغّٛػذذذخ tupleأً ٠
وؼٕصش ٚرغِّ ٝغّٛػخ ِزذاخٍخ . nested tuple
ٌإلػالْ ػٓ ِغّٛػخ tupleأِش عِٚ ًٙجبشش ٠زُ رٌه ػٓ غش٠ك ٚظغ اٌؼٕبصش داخذً ألذٛاط ( )
ِٚفصٛي ثّٕٙ١ب ثفبصٍخ ٚ Commaسِض٘ب ( ) ,وب٢ر: ٟ
# Empty tuple
)( = my_tuple
)print(my_tuple
output
)(
)(1, 2, 3
)(1, 'Hello', 3.4
))('mouse', [8, 4, 6], (1, 2, 3
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 44
ً ٠ّىٓ أ٠
.tuple packing ػخُّٛؼشف ثبعُ رؼجئخ اٌّغ٠ٚ اطْٛ اعزخذاَ ا لٚػخ ثذّٛعب ئٔشبت ِغ
my_tuple = 3, 4.6, "dog"
print(my_tuple)
print(a) # 3
print(b) # 4.6
print(c) # dog
output
(3, 4.6, 'dog')
3
4.6
dog
# Parentheses is optional
my_tuple = "hello",
print(type(my_tuple)) # <class 'tuple'>
output
<class 'str'>
<class 'tuple'>
<class 'tuple'>
ً ٠ّىٓ أ٠
إلٔشذبتtuple)( ثذـّٝغذ٠ ٞاٌزٚ constructor اٌ ُّٕشئٚ أconstructor ذ١عب اعزخذاَ اٌ ُّش
. ذ٘ب٠ ٔشٞػخ اٌزّٛٓ اٌّغ١عٛٓ ل١ب ثٍٙٔىزت ثذاخٚ tuple)( ش ٔىزت١ ؽtuple ػخِّٛغ
thistuple = tuple(("apple", "banana", "cherry"))
print(thistuple)
output
('apple', 'banana', 'cherry')
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 56
ٚ : Tuple Itemsؽذاد اٌّغّٛػخ أ ٚػٕبصش اٌّغّٛػخ
ػٕبصش اٌمبئّخ ٌٙب صالس خصبئص :
oػٕبصش ِفٙشعخ indexing
٘ٚزا ٠ؼٕ ٟأْ اٌؼٕصش ا ٚي ثٗ فٙشط [ ]0اٌؼٕصش اٌضبٔ ٟثٗ فٙشط [٘ٚ ]1ىزا .
ِ الؽظخ ٕ٘ :بن ثؼط دٚاي ٌٍمبئّخ عزغ١ش اٌزشر١ت ٌٚىٓ ثشىً ػبَ ٌٓ ٠زغ١ش رشر١ت اٌؼٕبصش.
و١ف١خ اٌٛصٛي ئٌ ٝا ؽشف أ ٚاٌؼٕبصش اٌّٛعٛدح داخً اٌّغّٛػخ Tuple؟
ّ٠ ىٕٕذذب اٌٛصذذٛي ئٌذذ ٝا ؽذذشف اٌفشد٠ذذخ أِ ٚغّٛػذذخ ِذذٓ ا ؽذذشف ثبعذذزخذاَ اٌفٙشعذذخ ٚ indexػبِذذً
اٌزمط١غ ( ٠ ) :جذأ اٌفٙشط ِٓ . 0
اٌفٙشط ] : [ indexاٌمّ١خ اٌزٔ ٟعؼٙب داخً ] [ ٝ٘ٚػجبسح ػٓ سلذُ اٌفٙذشط اٌذز٠ ٞؼجذش ػذٓ لّ١ذخ
ِٛظغ أِ ٚىبْ اٌؾشف فّضالً ] ٛ٘ [4ػجبسح ػٓ لّ١خ اٌشلُ 4اٌّٛعٛد ف ٟاٌغٍغٍخ .
٠ زُ اعزخذاَ ا لٛاط اٌّشثؼخ ٚ Square bracketsسِض٘ب ٌٍ٘ٛ ] [ ٛصذٛي ئٌذ ٝػٕبصذش اٌّغّٛػذخ
ّ٠ٚىذذذٓ اعذذذزخذاَ ا لذذذٛاط اٌّشثؼذذذخ ِذذذغ ػبِذذذً اٌزمط١ذذذغ ٚ slicing operatorسِض٘ذذذب ٘ذذذ] : [ ٛ
العزخشاط ِغّٛػخ ِٓ اٌؼٕبصش ِٓ داخً اٌّغّٛػخ .Tuple
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 51
# Accessing tuple elements using indexing
my_tuple = ('p','e','r','m','i','t')
print(my_tuple[0]) # 'p'
print(my_tuple[5]) # 't'
# nested tuple
n_tuple = ("mouse", [8, 4, 6], (1, 2, 3))
# nested index
print(n_tuple[0][3]) # 's'
print(n_tuple[1][1]) # 4
my_tuple = ('p','r','o','g','r','a','m','i','z')
# Output: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
print(my_tuple[:])
output
p
t
s
4
('r', 'o', 'g')
('p', 'r')
('i', 'z')
('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 52
ّٝغذ٠ س خطذأٚ ؽذذٝ رٌذه ئٌذٞإد١ عذindex ذشطٙ ؽشف خذبسط ٔطذبق اٌفٌٝي ئٛصٌٌٛخ اٚ ػٕذ ِؾب
. ًؾب١ ػذدًا صؾindex ْٛى٠ ْغت أ٠ ٌٟثبٌزبٚ IndexError
my_tuple = ('p','e','r','m','i','t')
# TypeError: list indices must be integers, not float
my_tuple[2.0]
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 5, in <module>
my_tuple[2.0]
TypeError: tuple indices must be integers or slices, not float
.TypeError ٌٝ رٌه ئٞإد١ عٜاع أخشٛٔ أٚ أfloats ٌَخ اعزخذاٚ ػٕذ ِؾب
my_tuple = ('p','e','r','m','i','t')
# IndexError: list index out of range
print(my_tuple[6])
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 3, in <module>
print(my_tuple[6])
IndexError: tuple index out of range
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 6, in <module>
my_tuple[1] = 9
TypeError: 'tuple' object does not support item assignment
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 53
ٖذذش ػٕبصذذش١١ّىٓ رغ١ فذذlist ذذش ِضذذً اٌمبئّذذخ١١بٔذذبد لبثذذً ٌٍزغ١ع ثٛ ٔفغذذٗ ٔذذٌٛىذذٓ ئرا وذذبْ اٌؼٕصذذش ٘ذذٚ
.)ٓ١١ُ ِخزٍفخ (ئػبدح اٌزؼ١ػخ ٌمّٛٓ ِغ١١عب رؼ ً ٠ّىٕٕب أ٠ وّب.اٌّزذاخٍخ
# Changing tuple values
my_tuple = (4, 2, 3, [6, 5])
# Output: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
print(my_tuple)
output
(4, 2, 3, [9, 5])
('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
لبئّذخٝػذخ ئٌذّٛذً اٌّغ٠ٛذك رؾ٠ ػذٓ غشٛ٘ٚ tuple ػخّٛ اٌّغٍُٝ ػ١ً اٌم٠ّىٕه ِٓ رؼذ٠ ً٠ ٕ٘بن ثذ
.ػخّٛ ِغًٌٝ اٌمبئّخ ئ٠ٛئػبدح رؾٚ ش اٌمبئّخ١١رغٚ
#this is a tuple
x = ("apple", "banana", "cherry")
#modify list
y[1] = "kiwi"
output
('apple', 'kiwi', 'cherry')
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 54
)"thistuple = ("apple", "banana", "cherry
thistuple.append("orange") # This will raise an error
)print(thistuple
output
Traceback (most recent call last):
>File "c:\Users\Hoda_PC\Desktop\example.py", line 2, in <module
thistuple.append("orange") # This will raise an error
'AttributeError: 'tuple' object has no attribute 'append
ٕ٘ بن ثذّ٠ ً٠ىٕه ِٓ ئظبفخ اٌم ُ١ػٍ ٝاٌّغّٛػخ ٛ٘ٚ tupleرّب ًِب ِضً اٌؾً اٌجذٌ ً٠زغ١١ذش اٌّغّٛػذخ
ّ٠ىٕه رؾٍٙ٠ٛب ئٌذ ٝلبئّذخ ٚئظذبفخ اٌؼٕبصذش ػذٓ غش٠ذك دٚاي ئظذبفخ اٌؼٕبصذش ػٍذ ٝاٌمبئّذخ اٌزذ ٟرذُ
دساعزٙب ف ٟاٌفصً اٌغبثك ٚرؾٍٙ٠ٛب ِشح أخش ٜئٌِ ٝغّٛػخ.
: append () function داٌخ اإلٌؾبق ؛ إلظبفخ ػٕصش ئٌٙٔ ٝب٠خ اٌمبئّخ .
: insert() function داٌخ اإلدخبي ؛ إلدساط ػٕصش لبئّخ ف ٟفٙشط ِؾذد .
: extend() function داٌخ اإلِذاد ؛ إلٌؾبق ػٕبصش ِٓ لبئّخ أخش ٜئٌ ٝاٌمبئّخ اٌؾبٌ١خ .
)"thistuple = ("apple", "banana", "cherry
)y = list(thistuple
)"y.append("orange
)thistuple = tuple(y
)print(thistuple
output
)'('apple', 'banana', 'cherry', 'orange
ئرا ٌُ رؾذد اٌفٙشط ٌٍ indexذاٌخ )( popفأٙب عزض ً٠اٌؼٕصش ا خ١ش.
اٌذاٌخ )( clearرم َٛثزفش٠غ اٌمبئّخ ٚثبٌزبٌ ٟرظً اٌمبئّخ ِٛعٛدح ٌىٕٙب ال رؾز ٞٛػٍِ ٝؾز.ٜٛ
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 55
.ًِ الصاٌخ اٌمبئّخ ثبٌىبٚ أpop() شط اٌّؾذد ِضً داٌخٙ ٌؾزف اٌفdel خ١ّىٓ اعزخذاَ اٌىٍّخ ا عبع٠
#Convert the tuple into a list, remove "apple", and convert it back into a tuple:
thistuple = ("apple", "banana", "cherry")
y = list(thistuple)
y.remove("apple")
thistuple = tuple(y)
print(thistuple)
output
('banana', 'cherry')
: ٟر٢ خطأ وبٟؼط١ب عٙ الؽع ػٕذ غجبػخ اٌذاٌخ ثؼذ ؽزف
#The del keyword can delete the tuple completely:
thistuple = ("apple", "banana", "cherry")
del thistuple
print(thistuple) #this will raise an error because the tuple no longer exists
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 11, in <module>
print(thistuple) #this will raise an error because the tuple no longer exists
NameError: name 'thistuple' is not defined
ْٛض٠ػخ داخً ٌغخ اٌجبّٛ اٌّغٍٝبد ػ١ٍّ ػ: Python Tuple Operations
: ٟر٢ب إِٙ Tuple ػخّٛ اٌّغٍّٝىٓ ئعشاؤ٘ب ػ٠ ٟ اٌزOperations بد١ٍّذ ِٓ اٌؼ٠ٕ٘بن اٌؼذ
# Repeat
# Output: ('Repeat', 'Repeat', 'Repeat')
print(("Repeat",) * 3)
output
(1, 2, 3, 4, 5, 6)
('Repeat', 'Repeat', 'Repeat')
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 56
ػخّٛخ رىشاس اٌّغ١ٍّ ػ: Tuple Iterating : ً ب١ٔ صب
ًس ػجذذش اٌؼٕبصذذش داخذذّٚىٕٕذذب اٌّذذش١ فarrays فبدٛػجذذبسح ػذذٓ ِصذذفTuple ػذذخّٛٔظذ ًذشا ْ اٌّغ
. for ِضً ؽٍمخLooping خ٠ػخ ثبعزخذاَ اٌؾٍمخ اٌزىشاسّٛاٌّغ
thistuple = ("apple", "banana", "cherry")
for x in thistuple:
print(x)
output
apple
banana
cherry
output
apple
banana
cherry
.لبثً ٌٍزىشاس ِٕبعت ٍِ إلٔشبتlen)( اٌذاٌخٚ range)( زُ اعزخذَ اٌذاٌخ٠ الؽع
output
apple
banana
cherry
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 52
ػخّٛ داخً ِغٛخ اخزجبس ػع١ٍّ ػ: Tuple Membership Test : ً صبٌضب
ذذخ١ػذذخ اٌفشػّٛػذذخ ٌؼّذذً اخزجذذبس ِذذب ئرا وبٔذذذ اٌّغّٛخ داخذذً اٌّغ٠ّٛىذذٓ اعذذزخذاَ ِؼذذبِالد اٌؼعذذ٠
: ػخ ّ٘بّٛٓ الخزجبس ػٕصش داخً ِغ١ٕ٘بن وٍّزٚ أَ ال ؟Tuple ػخّٛدح داخً ِغٛعِٛ
. ػخّٛ اٌّغٟٓ ف١د ؽشف ِؼٛعٚ ِٓ خ رغزخذَ ٌٍزؾمك١ وٍّخ أعبع: in keyword
. ػخّٛ اٌّغٟٓ ف١د ؽشف ِؼٛعٚ َخ رغزخذَ ٌٍزؾمك ِٓ ػذ١ وٍّخ أعبع: not in keyword
# Membership test in tuple
my_tuple = ('a', 'p', 'p', 'l', 'e',)
# In operation
print('a' in my_tuple)
print('b' in my_tuple)
# Not in operation
print('g' not in my_tuple)
output
True
False
True
print(len(my_tuple)) # Output: 5
print(my_tuple.count('p')) # Output: 2
print(my_tuple.index('l')) # Output: 3
output
5
2
3
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 51
١ِّ : Advantages of Tuple over Listضاد اٌّغّٛػخ ػٓ اٌمبئّخ داخً ٌغخ اٌجب٠ضْٛ
ٔظشا ْ tupleرشجٗ اٌمٛائُ listsرّب ًِب ٠ذزُ اعذزخذاَ والّ٘ذب فذِٛ ٟالذ ِّبصٍذخِٚ .ذغ رٌذه ٕ٘ذبنً
ِّ١ضاد ِؼٕ١خ ػٕذ رطج١ك اٌّغّٛػخ tupleثخالف اٌمبئّخ listفّ١ب ٍٟ٠ثؼط اٌّضا٠ب اٌشئ١غ١خ :
ٔ غزخذَ ثشىً ػبَ اٌّغّٛػبد ٔٛاع اٌج١بٔبد غ١ش اٌّزغبٔغخ (اٌّخزٍفخ) ٚاٌمٛائُ ٔٛاع اٌج١بٔبد
اٌّزغبٔغخ (اٌّزشبثٙخ).
ٔظشا ْ tupleغ١ش لبثٍخ ٌٍزغ١١ش فاْ اٌزىشاس ػجش ٠ tupleى ْٛأعشع ِٕٗ ِغ ٌٚ listزٌه
ً
ٕ٘بن رؾغٓ غف ١ف ٟا دات.
ّ٠ ىٓ اعزخذاَ اٌّغّٛػبد اٌز ٟرؾز ٞٛػٍ ٝػٕبصش غ١ش لبثٍخ ٌٍزغ١١ش وّفزبػ ٌٕٛ keyع اٌج١بٔبد
اٌمبِٛط ٌٚ dictionaryىٓ ٘زا غ١ش ِّىٓ ِغ اٌمٛائُ.
ئرا وبٔذ ٌذ٠ه ث١بٔبد ال رزغ١ش فاْ رٕف١ز٘ب ثصفزٙب tupleع١عّٓ أٔٙب رظً ِؾّ١خ ظذ اٌىزبثخ.
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 54
انذرس انسابع :انتشكيهة (انًجًوعة)
)(Sets
عذذززؼٍُ فذذ٘ ٟذذزا اٌجشٔذذبِظ اٌزؼٍّ١ذذ ٟعذذززؼٍُ وذذً شذذٟت ػذذٓ رشذذى١الد أِ ٚغّٛػذذبد setsداخذذً ٌغذذخ
اٌجب٠ض ْٛ؛ عززؼٍُ و٠ ١زُ ئٔشبؤ٘ب ٚو١ف١خ ئظبفخ أ ٚئصاٌخ اٌؼٕبصش ِٕٙذب ٚعّ١ذغ اٌؼٍّ١ذبد اٌزذ٠ ٟذزُ
ئعشاؤ٘ب ػٍ ٝرشى١الد setsف.Python ٟ
: Setsاٌزشى١الد (اٌّغّٛػبد)
٘ ٝػجبسح ػٓ عٍغٍخ غ١ش ِشرجخ ِٓ اٌؼٕبصش ؽ١ش رُغزخذَ ٌزخض ٓ٠ػٕبصش ِزؼذدح فِ ٟزغ١ش ٚاؽذ.
رمذَ ِ Pythonغّٛػخ ِٓ أٔٛاع اٌج١بٔذبد اٌّشوجذخ اٌزذ٠ ٟشذبس ئٌٙ١ذب غبٌجًذب ثبٌزغٍغذالد . sequences
ٚاٌزشىٍ١خ ٚ ٟ٘ setاؽذح ِٓ أٔٛاع اٌج١بٔبد اٌّغزخذِخ فذٚ .Python ٟرزّ١ذض اٌّغّٛػذخ ثأٔٙذب ِشٔذخ
وّب ال ٍ٠ضَ أْ رى ْٛوبفخ اٌؼٕبصش اٌّٛعٛدح ف ٟاٌمبئّخ ِٓ ٔفظ إٌٛع .
اٌزشىٍ١خ ٚ ٟ٘ Setاؽذح ِٓ 4أٔٛاع ث١بٔبد ِعّٕخ فٚ Python ٟاٌز ٟرُغزخذَ ٌزخذضِ ٓ٠غّٛػذخ ِذٓ
اٌج١بٔبد ٚاٌضالصخ ا خذش٘ ٜذٚ Dictionary ٚ Set ٚ Tuple ٟوٍٙذب راد خصذبئص ٚاعذزخذاِبد
ِخزٍفخ ٠ٚشبس ئٌ٘ ٝزٖ ا ٔٛاع ا سثؼخ ثبعُ اٌزغٍغالد . sequences
ّ٠ىٓ أْ رؾز ٞٛػٍ ٝأ ٞػذد ِٓ اٌؼٕبصش ٚلذ رى ِٓ ْٛأٔذٛاع ِخزٍفذخ ( integerأ floatٚأstring ٚ
أ ٚأٔ ٞذذٛع آخذذش ) ٌىذذٓ ال ّ٠ىذذٓ أْ رؾزذذ sets ٞٛػٍذذ ٝػٕبصذذش لبثٍذذخ ٌٍزغ١١ذذش ِضذذً اٌمذذٛائُ listsأٚ
اٌزشذذى١الد setsأ ٚاٌمذذٛاِ١ظ dictionariesوؼٕبصذذش ثذذذاخٍٙب ٌٚىذذٓ ّ٠ىذذٓ أْ رمجذذً ثذذذاخٍٙب ػٍذذٝ
ِغّٛػخ tupleوؼٕصش .
ٌإلػالْ ػٓ اٌزشىٍ١خ Setأِش عِٚ ًٙجبشش ٠زُ رٌذه ػذٓ غش٠ذك ٚظذغ اٌؼٕبصذش داخذً ألذٛاط } {
ِٚفصٛي ثّٕٙ١ب ثفبصٍخ ٚ Commaسِض٘ب ( ) ,أ ٚػٓ غش٠ك اٌ ُّش١ذ )( setوب٢ر: ٟ
# Different types of sets in Python
# set of integers
}my_set = {1, 2, 3
)print(my_set
output
}{1, 2, 3
}'{1.0, (1, 2, 3), (1, 3), 'Hello
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 66
: ٟر٢ وبset() ذ١ك اٌ ُّش٠ ػٓ غشset ٍخ١ وؼجبسح ػٓ رشىlist ص لبئّخ١ّىٓ رخص٠
# set cannot have duplicates
# Output: {1, 2, 3, 4}
my_set = {1, 2, 3, 4, 3, 2}
print(my_set)
output
{1, 2, 3, 4}
{1, 2, 3}
ٓ } { ال٠ٓ ٘ذز١اؽذذ ثذٚ د ػٕصشٛعٚ ْ ت ؛ٟأِشا صؼجًب ثؼط اٌش ً اؽذٚ ػخ ثؼٕصشّٛؼذ ئٔشبت ِغ٠
َ اعذذذذزخذاٌٝذذذذزٌه عذذذذٕؾزبط ئٌذذذذٚ set ظ١ٌذذذذٚ dictionary بٔذذذذبد١ع اٌجٛؼجذذذذش ػذذذذٓ ٔذذذذ٠ فٛعذذذذٚ ٟىفذذذذ٠
. set ٍخ فبسغخ١ش ػٓ رشى١ذٌٍزؼج١اٌ ُّش
# Distinguish set and dictionary while creating empty set
# initialize a with {}
a = {}
output
<class 'dict'>
<class 'set'>
ً ٠ّىذذٓ أ٠
إلٔشذذبتset)( ثذذـّٝغذذ٠ ٞاٌذذزٚ constructor اٌ ُّٕشذذئٚ أconstructor ذ١عذذب اعذذزخذاَ اٌ ُّشذذ
. ذ٘ب٠ ٔشٞ اٌزset ٍخ١ٓ اٌزشى١عٛٓ ل١ب ثٍٙٔىزت ثذاخٚ set)( ش ٔىزت١ ؽset ٍخ١رشى
thisset = set({"apple", "banana", "cherry"})
print(thisset)
output
{'banana', 'apple', 'cherry'}
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 61
ٚ : Set Itemsؽذاد اٌزشىٍ١خ أ ٚػٕبصش اٌزشىٍ١خ
ػٕبصش اٌمبئّخ ٌٙب صالس خصبئص :
oػٕبصش غ١ش ِفٙشعخ unindexed
٘ٚزا ٠ؼٕ ٟأٔٗ ال ّ٠ىٓ اٌٛصٛي ئٌ ٝػٕبصش setثبٌشعٛع ئٌ ٝفٙشط indexأ ٚاٌّفزبػ .key
ِ الؽظخ :ثّغشد ئٔشبت setال ّ٠ىٕه رغ١١ش ػٕبصش٘ب ٌٚىٓ ّ٠ىٕه ئظبفخ ػٕبصش عذ٠ذح.
و١ف١خ اٌٛصٛي ئٌ ٝا ؽشف أ ٚاٌؼٕبصش اٌّٛعٛدح داخً اٌّغّٛػخ Tuple؟
ال ّ٠ىٕٕب اٌٛصٛي ئٌ ٝػٕبصش اٌزشىٍ١خ setثذبٌشعٛع ئٌذ ٝاٌفٙشعذخ ٚ indexػبِذً اٌزمط١ذغ ( ٠ ) :جذذأ
اٌفٙذذشط ِذذٓ 0وّذذب دسعذذٕب فذذ ٟاٌّغّٛػذذبد ا٢خذذشٌٚ . ٜىذذٓ ّ٠ىٕذذه ئعذذشات رىذذشاس خذذالي ػٕبصذذش
اٌّغّٛػخ ثبعزخذاَ ؽٍمخ . for
}"thisset = {"apple", "banana", "cherry
for x in thisset:
)print(x
output
banana
apple
cherry
ّ٠ ىٕه اخزجبس ِب ئرا وبٔذ ٕ٘بن لّ١خ ِؾذدح ِٛعٛدح ف set ٟثبعزخذاَ اٌىٍّخ ا عبع١خ .in
output
True
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 62
ّٝغذ٠ س خطذأٚ ؽذذٝ رٌذه ئٌذٞإد١ عذindex ذشطٙذك اٌف٠ ػٕصذش ػذٓ غشٝي ئٌذٛصٌٌٛخ اٚ ػٕذ ِؾب
. ش ِشرجخ١غٚ شعخٙش ِف١ب ػٕبصش غٙٔ ؛TypeError
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 2, in <module>
print(thisset[1])
TypeError: 'set' object is not subscriptable
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 3, in <module>
print(thisset[1]=="Grape")
TypeError: 'set' object is not subscriptable
#To add items from another set into the current set
thisset = {"apple", "banana", "cherry"}
tropical = {"pineapple", "mango", "papaya"}
thisset.update(tropical)
print(thisset)
output
{'banana', 'orange', 'cherry', 'apple'}
{'papaya', 'mango', 'banana', 'pineapple', 'cherry', 'apple'}
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 63
dictionaries ٚ أtuples ٚ أlists ً وذذبئٓ لبثذذً ٌٍزىذذشاس ِضذذٞ أupdate() ّىذذٓ أْ رأخذذز اٌذاٌذذخ٠
.زُ رغٕت اٌزىشاساد٠ غ اٌؾبالد١ّ عٌٟىٓ فٚ بٌٙ وّؼبِالد
# add list to set
thisset = {"apple", "banana", "cherry"}
mylist = ["kiwi", "orange"]
thisset.update(mylist)
print(thisset)
output
{'cherry', 'kiwi', 'apple', 'orange', 'banana'}
{1, 3, 4, 5, 6, 8}
# discard an element
my_set.discard(4) # Output: {1, 3, 5, 6}
print(my_set)
# remove an element
my_set.remove(6) # Output: {1, 3, 5}
print(my_set)
# clear my_set
my_set.clear() # Output: set()
print(my_set)
output
{1, 3, 4, 5, 6}
{1, 3, 5, 6}
{1, 3, 5}
set()
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 64
ٓذش ِشرجذخ ٌذزٌه ٌذ١ػذخ غّٛ ِغٝ ٘ذset ٍخ١ٌىٓ رزوش أْ اٌزشىٚ ش١ً اٌؼٕصش ا خ٠ عزضpop() اٌذاٌخ
ْف الؽذع أٚش اٌؼٕصش اٌّؾز١١زُ رغ١د عٛز اٌى١زُ رٕف٠ وً ِشحٟفٚ ٗ رزُ ئصاٌزٞرؼشف اٌؼٕصش اٌز
.ٗ رّذ ئصاٌزٞ اٌؼٕصش اٌزٟ٘ pop)( ّخ ئسعبع اٌذاٌخ١ل
# initialize my_set
my_set = {1, 3, 4, 5, 6}
print(my_set)
# pop an element
print("the removed element is : ",my_set.pop())
# initialize my_set
# Output: set of unique elements
my_set = set("HelloWorld")
print(my_set)
# pop an element
print("the removed element is : ",my_set.pop())
output
{1, 3, 4, 5, 6}
the removed element is : 1
{'o', 'l', 'd', 'H', 'W', 'r', 'e'}
the removed element is : o
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 3, in <module>
my_set.remove(2)
KeyError: 2
. دٛعِٛ ش١س خطأ ئرا وبْ اٌؼٕصش اٌّشاد ئصاٌزٗ غٛٙ ظٌٝ ئٞ ال رإدdiscard() اٌذاٌخ
# discard my_set
my_set = {1, 3, 4, 5, 6}
my_set.discard(2)
print(my_set)
output
{1, 3, 4, 5, 6}
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 65
: ٟر٢ خطأ وبٟؼط١ب عٙ ثؼذ ؽزفset الؽع ػٕذ غجبػخ
#this will raise an error because the set no longer exists
thisset = {"apple", "banana", "cherry"}
del thisset
print(thisset)
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 4, in <module>
print(thisset)
NameError: name 'thisset' is not defined
ْٛض٠ٍخ داخً ٌغخ اٌجب١ اٌزشىٍٝبد ػ١ٍّ ػ: Python Set Operations
اٌزمذذبغغٚ union خ ِضذذً االرؾذذبد١بظذذ٠ػذذخ سّٛذذبد ِغ١ٍّ إلعذذشات ػSets الد١ّىذذٓ اعذذزخذاَ اٌزشذذى٠
ّىٕٕذذب٠ٚ symmetric difference ًاٌفذذشق اٌّزّبصذذٚ difference االخذذزالفٚ intersection
. خ١ر٢اي اٚ اٌذٚاًِ أٛك اٌؼ٠بَ ثزٌه ػٓ غش١اٌم
ٓ١ رشىٍزٚٓ أ١ػزّٛخ ارؾبد ِغ١ٍّ ػ: Set Union : ًالٚ أ
ًدح داخذذذٛعذذذٌّٛذذذغ اٌؼٕبصذذذش ا١ّ عٝي ػٍذذذٛذذذخ ٌٍؾصذذذ١ٍّ ػٝ٘ذذذ
: ك٠زُ رٌه ػٓ غش٠ٚ sets ٓ١ػزِّٛغ
: ) | ( ِؼبًِ االرؾبدo
.ٓ١ػزّٛغ اٌؼٕبصش داخً اٌّغ١ّ عٍٟ ػٜٛذح رؾز٠ عذset ثزشعغ: union() داٌخo
.1 ػخّٛ داخً اٌّغ2 ػخّٛ اٌّغٟدح فٛعٌّٛ ثزُذسط اٌؼٕبصش ا: update() داٌخo
# Set union method
set1 = {1, 2, 3, 4, 5} o
set2 = {4, 5, 6, 7, 8}
# use | operator
print(set1 | set2)
output
{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 3, 4, 5, 6, 7, 8}
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 66
صبٔ١ب ً : Set Intersection :ػٍّ١خ رمبغغ ِغّٛػز ٓ١أ ٚرشىٍزٓ١
٘ ٝػٍّ١خ ٌٍؾصٛي ػٍ ٝاٌؼٕبصذش اٌّشذزشوخ ثذِ ٓ١غّذٛػزsets ٓ١
٠ٚزُ رٌه ػٓ غش٠ك :
ِ oؼبًِ اٌزمبغغ ( & ) :
oداٌخ )( : intersectionثزشعغ setعذ٠ذح رؾز ٜٛػٍ ٟاٌؼٕبصش اٌّشزشوخ ثِ ٓ١غّٛػز.ٓ١
oداٌخ )( : intersection_updateثزؾزفع ثبٌؼٕبصش اٌّىشسح اٌّٛعٛدح ف ٟوال اٌّغّٛػز. ٓ١
# Set union method
}set1 = {1, 2, 3, 4, 5 o
}set2 = {4, 5, 6, 7, 8
output
}{4, 5
}{4, 5
}{4, 5
ٔ غزخذَ ٘ذزٖ اٌؼجذبسح اٌش٠بظذ١خ (ٌٍ A)A-Bؾصذٛي ػٍذِ ٝغّٛػذخ اٌؼٕبصذش اٌّٛعذٛدح فمذػ فذA ٟ
١ٌٚغذ ِٛعٛدح . B
ٔ غذزخذَ ٘ذزٖ اٌؼجذذبسح اٌش٠بظذ١خ (ٌٍ B)B-Aؾصذذٛي ػٍذِ ٝغّٛػذذخ اٌؼٕبصذش اٌّٛعذذٛدح فمذػ فذذB ٟ
١ٌٚغذ ِٛعٛدح . A
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 62
# Set union method
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8} o
# set of elements that are only in set1 but not in set2
print(set1 - set2) # use - operator
set3 = set1.difference(set2) # use difference() method
print(set3)
set1.difference_update(set2) # use difference_update() method
print(set1)
output
{1, 2, 3}
{1, 2, 3}
{1, 2, 3}
{4, 5, 6, 7, 8}
{4, 5, 6, 7, 8}
{4, 5, 6, 7, 8}
ٓ١ رشىٍزٚٓ أ١ػزّٛخ اٌفشق اٌّّبصً ٌّغ١ٍّ ػ: Set Symmetric Difference : ً ساثؼب
sets ٓ١ػزٛ ِغّذٟدح فذٛعذِٛ ذش١غ اٌؼٕبصذش اٌغ١ّ عٍٝي ػٛخ ٌٍؾص١ٍّ ػٝ٘
: ك٠زُ رٌه ػٓ غش٠ٚ .)ّب (ثبعزضٕبت اٌزمبغغٙ١ٍ وٟظ ف١ٌ ٌٓىٚ
: ) ^ ( ِؼبًِ االرؾبدo
.ٓ١ػزّٛ اٌّغٟدح فٛعِٛ ش١ رؾزفع ثبٌؼٕبصش اٌغ: symmetric_difference() داٌخo
.ٓ١ػزّٛ اٌّغٟدح فٛعِٛ ش١ رؾزفع ثبٌؼٕبصش اٌغ: symmetric_difference_update () داٌخo
# use | operator
print(set1 ^ set2)
# use symmetric_difference() method
set3 = set1.symmetric_difference(set2)
print(set3)
# use symmetric_difference update() method
set1.symmetric_difference_update(set2)
print(set1)
output
{1, 2, 3, 6, 7, 8}
{1, 2, 3, 6, 7, 8}
{1, 2, 3, 6, 7, 8}
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 61
خبِغب ً : Set Iterating :ػٍّ١خ رىشاس اٌزشىٍ١خ أ ٚاٌّغّٛػخ
ظشا ْ اٌزشىٍ١خ أ ٚاٌّغّٛػخ Setػجذبسح ػذٓ ِصذفٛفبد arraysفّ١ىٕٕذب اٌّذشٚس ػجذش اٌؼٕبصذش ٔ ً
داخً اٌّغّٛػخ ثبعزخذاَ اٌؾٍمخ اٌزىشاس٠خ ِ Loopingضً ؽٍمخ . for
for letter in set("apple"):
)print(letter
output
p
a
e
l
ال ّ٠ىٓ ػًّ ؽٍمخ رىشاس٠خ ػٓ غش٠ك ْ whileاٌّغّٛػخ setال رذػُ اٌفٙشعخ . index
عبدعب ً : Set Membership Test :ػٍّ١خ اخزجبس ػع ٛداخً اٌزشىٍ١خ أ ٚاٌّغّٛػخ set
ّ٠ىذذٓ اعذذزخذاَ ِؼذذبِالد اٌؼعذذ٠ٛخ داخذذً اٌّغّٛػذذخ ٌؼّذذً اخزجذذبس ِذذب ئرا وبٔذذذ اٌّغّٛػذذخ اٌفشػ١ذذخ
ِٛعٛدح داخً ِغّٛػخ Setأَ ال ؟ ٕ٘ٚبن وٍّز ٓ١الخزجبس ػٕصش داخً رشىٍ١خ ّ٘ب :
: in keyword وٍّخ أعبع١خ رغزخذَ ٌٍزؾمك ِٓ ٚعٛد ػٕصش ِؼ ٓ١ف ٟاٌّغّٛػخ.
: not in keyword وٍّخ أعبع١خ رغزخذَ ٌٍزؾمك ِٓ ػذَ ٚعٛد ػٕصش ِؼ ٓ١ف ٟاٌّغّٛػخ.
# in keyword in a set
# initialize my_set
)"my_set = set("apple
output
True
False
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 64
ْٛض٠ داخً ٌغخ اٌجبset ػخّٛاي خبصخ ثبٌّغٚ د: Python Set methods
: ٕخ١بَ ِؼِٙ ز١ ٌزٕفSet ػخّٛ اٌّغٍٚخ أ١ رزؼبًِ ِغ اٌزشىٟاي اٌزٚػخ ِٓ اٌذّٕٛ٘بن ِغ
. ٓ ثزشعغ ػذد ػٕبصش اٌىبئٞػخ أّٛي اٌّغٛي ؛ ٌّؼشفخ غٛ داٌخ اٌط: len() function
. set ػخّٛ ؛ ٌّؼشفخ أوجش ػٕصش داخً اٌّغّٜخ اٌىجش١ داٌخ اٌم: max() function
. set ػخّٛ ؛ ٌّؼشفخ أصغش ػٕصش داخً اٌّغّٜخ اٌصغش١ داٌخ اٌم: min() function
. set ػخّٛع وً اٌؼٕبصش داخً اٌّغّٛ داٌخ اٌغّغ ؛ ٌّؼشفخ ِغ: sum() function
ػذذخ (ال رفذذشصّٛذذذح ِذذٓ ػٕبصذذش اٌّغ٠ذذت ؛ رُشعذذغ لبئّذذخ ِشرجذذخ عذ١ داٌذذخ اٌزشر: sorted() function
.) بٙػخ ٔفغّٛاٌّغ
number = {3, 2, 8, 5, 10, 6}
output
The length of set is: 6
The largest number is: 10
The smallest number is: 2
The Sum of set is: 34
The Sorted set is: [2, 3, 5, 6, 8, 10]
unhashable ذش لبثٍذخ ٌٍزغضئذخ١ْ غٛذب رىذٙٔ فاmutable ذش١١ْ لبثٍخ ٌٍزغٛ رىٟ اٌزsets ػبدّٛاٌّغ
لبثٍذخfrozensets ْ فاٜخ أخش١ ِٓ ٔبؽ.dictionary keys طِٛؼ لب١ب وّفبرِّٙىٓ اعزخذا٠ ٌزا ال
. dictionary keys طِٛؼ ٌٍمب١ب وّفبرِّٙىٓ اعزخذا٠ ٌزاٚ hashable ٌٍزغضئخ
isdisjoint() ٚ intersection() ٚ difference() ٚ copy() اي وذـٚذ ِٓ اٌذذ٠ع اٌؼذٌٕٛذػُ ٘زا ا٠
ُذذب ال رذذذػٌٕٙىٚ union)( ٚ symmetric_difference() ٚ issuperset() ٚ issubset() ٚ
. immutable ش١١ش لبثٍخ ٌٍزغ١ب غٙٔ add() ئظبفخ اٌؼٕبصش ِضً اٌذاٌخٚ اي ؽزفٚد
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 26
frozenset)( ثبعزخذاَ اٌذاٌخFrozensets ػبدّّٛىٓ ئٔشبت ِغ٠
# Frozensets
# initialize A and B
A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6])
print(A)
print(A | B)
print(A & B)
print(A - B)
print(A ^ B)
output
frozenset({1, 2, 3, 4})
frozenset({1, 2, 3, 4, 5, 6})
frozenset({3, 4})
frozenset({1, 2})
frozenset({1, 2, 5, 6})
# Frozensets
# initialize A and B
A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6])
C=A.add(3)
print(C)
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 6, in <module>
C=A.add(3)
AttributeError: 'frozenset' object has no attribute 'add'
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 21
انذرس انثايٍ :انقايوس
)(Dictionary
عززؼٍُ ف٘ ٟزا اٌجشٔبِظ اٌزؼٍِ ّٟ١ب ٘ ٛاٌمبِٛط Dictionaryفذٚ Python ٟو١ف١ذخ ئٔشذبئٗ ٚو١ف١ذخ
اٌٛصٛي ئٌٚ ٗ١ئظبفزٗ ٚئصاٌزٗ ِٓ اٌؼٕبصش ٚاٌذٚاي اٌّخزٍفخ اٌز٠ ٟغت أْ رى ْٛػٍ ٝدسا٠خ ثٙب.
: Dictionaryاٌمبِٛط
٘ ٝػجبسح ػٓ عٍغٍخ غ١ش غ١ش ِشرجخ ِٓ صٚعِ ٓ١شرجّ٘ ٓ١ب صٚط اٌّفزبػ ٚاٌمّ١خ أِ ٚب ٠ؼذشف ثذـبعُ
. key-value pairs
رمذَ ِ Pythonغّٛػخ ِٓ أٔٛاع اٌج١بٔذبد اٌّشوجذخ اٌزذ٠ ٟشذبس ئٌٙ١ذب غبٌجًذب ثبٌزغٍغذالد . sequences
ٚاٌمبِٛط ٘ dictionaryذٚ ٟاؽذذح ِذٓ أٔذٛاع اٌج١بٔذبد اٌّغذزخذِخ فذٚ .Python ٟرغذزخذَ اٌمذٛاِ١ظ
ثشىً ػبَ ِذغ اٌىّ١ذخ اٌٙبئٍذخ ِذٓ اٌج١بٔذبد ٚرذُ رؾغذ ٓ١اٌمذٛاِ١ظ dictionaryالعذزشعبع اٌج١بٔذبد
ثغٌٛٙخ ٚثطش٠مخ عش٠ؼخ .
٠غذذت أْ ٔؼذذشف اٌّفزذذبػ keyالعذذزشداد اٌمّ١ذذخ ٌٚ valueىذذٓ ٌذذ١ظ اٌؼىذذظ ّ٠ٚىذذٓ أْ ٠ىذذ ْٛاٌّفزذذبػ
ٚاٌمّ١خ ِٓ أٛٔ ٞع .
اٌمذذبِٛط ٘ dictionaryذذٚ ٟاؽذذذح ِذذٓ 4أٔذذٛاع ث١بٔذذبد ِعذذّٕخ فذذٚ Python ٟاٌزذذ ٟرُغذذزخذَ ٌزخذذضٓ٠
ِغّٛػذذذذخ ِذذذذٓ اٌج١بٔذذذذبد ٚاٌضالصذذذذخ ا خذذذذش٘ ٜذذذذٚ tuple ٚ Set ٚ lists ٟوٍٙذذذذب راد خصذذذذبئص
ٚاعزخذاِبد ِخزٍفخ ٠ٚشبس ئٌ٘ ٝزٖ ا ٔٛاع ا سثؼخ ثبعُ اٌزغٍغالد . sequences
ّ٠ىٓ أْ رؾز ٞٛػٍ ٝأ ٞػذد ِٓ اٌؼٕبصش ٚلذ رى ِٓ ْٛأٔذٛاع ِخزٍفذخ ( integerأ floatٚأstring ٚ
عذب
أ ٚأٛٔ ٞع آخش ) وّب ّ٠ىٓ أْ ٠ؾز ٞٛاٌمبِٛط dictionaryػٍ ٝلبِٛط dictionaryآخش أً ٠
٠ٚغّ ٝف٘ ٟزٖ اٌؾبٌخ ثبعُ . nested dictionary
ثّٕ١ب ّ٠ىٓ أْ رى ْٛاٌم ِٓ values ُ١أٛٔ ٞع ث١بٔبد وّب ّ٠ىذٓ رىشاس٘ذب فذاْ اٌّفزذبػ ٠ keyغذت أْ
٠ىذذِ ْٛذذٓ إٌذذٛع اٌضبثذذذ ِ immutable typeضذذً (عٍغذذٍخ stringأ ٚسلذذُ numberأِ ٚغّٛػذذخ
ِ tupleغ ػٕبصش غ١ش لبثٍخ ٌٍزغ١١ش ) ٠ٚغت أْ رى ْٛل ُ١اٌّفزبػ keyفش٠ذح .
ٌإلػالْ ػٓ اٌمذٛاِ١ظ dictionaryأِذش عذِٚ ًٙجبشذش ٠ذزُ رٌذه ػذٓ غش٠ذك ٚظذغ اٌؼٕبصذش داخذً
ألذذذٛاط } { ِٚفصذذذٛي ثّٕٙ١ذذذب ثفبصذذذٍخ ٚ Commaسِض٘ذذذب ( ٔٚ ) ,فصذذذً ثذذذ ٓ١وذذذً key-value
ثبٌٕمطز ٓ١اٌشئغ١زٚ colon ٓ١سِض٘ب ( ) :وب٢ر: ٟ
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 22
# empty dictionary
my_dict = {}
print(my_dict)
print("\n")
#nested dictionary
myfamily = {"child1" : {"name" : "Emil","year" : 2004},
"child2" : {"name" : "Tobias", "year" : 2007},
"child3" : { "name" : "Linus", "year" : 2011 }
output
{}
{1: 'apple', 2: 'ball'}
{'fruit': 'apple', 'number': {'one': 1, 'two': 2}}
{'name': 'John', 1: [2, 4, 3]}
{'child1': {'name': 'Emil', 'year': 2004}, 'child2': {'name': 'Tobias', 'year': 2007},
'child3': {'name': 'Linus', 'year': 2011}}
ً ٠ّىٓ أ٠
إلٔشذبتdict)( ثذـّٝغذ٠ ٞاٌذزٚ constructor اٌ ُّٕشذئٚ أconstructor ذ١عب اعذزخذاَ اٌ ُّشذ
. ذ٘ب٠ ٔشٞػخ اٌزّٛٓ اٌّغ١عٛٓ ل١ب ثٍٙٔىزت ثذاخٚ dict)( ش ٔىزت١ ؽdictionary طِٛلب
# using dict()
my_dict = dict({1:'apple', 2:'ball'})
print(my_dict)
output
{1: 'apple', 2: 'ball'}
{1: 'apple', 2: 'ball'}
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 23
ٚ : dictionary Itemsؽذاد اٌمبِٛط أ ٚػٕبصش اٌمبِٛط
ػٕبصش اٌمبئّخ ٌٙب صالس خصبئص :
oػٕبصش غ١ش ِفٙشعخ unindexed
٘ٚزا ٠ؼٕ ٟأْ ال ّ٠ىٓ اٌٛصٛي ٌٍؼٕبصش ػٓ غش٠ك اٌفٙشط . index
output
Jack
26
ئرا اعزخذِٕب اٌذاٌخ )( getفغزشعغ اٌمّ١خ Noneئرا ٌُ ٠زُ اٌؼضٛس ػٍ ٝاٌّفزبػ.
# get vs [] for retrieving elements
}my_dict = {'name': 'Jack', 'age': 26
))'print(my_dict.get('address
output
None
ال ّ٠ىٕٕب اٌٛصٛي ئٌ ٝاٌؼٕبصش ثبعزخذاَ اٌفٙشعخ ٚ indexػبِذً اٌزمط١ذغ ( ْ ) :اٌمذبِٛط ال ٠ذذػُ
اٌفٙشط . index
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 24
.طِٛ اٌمبٟد ِفزبػ فٛعٚ َ ؽبٌخ ػذٟ فKeyError زُ سفغ١اط اٌّشثؼخ [ ] فغٛ ئرا اعزخذِٕب ا ل
my_dict = {'name': 'Jack', 'age': 26}
print(my_dict['address'])
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 9, in <module>
print(my_dict['address'])
KeyError: 'address'
. dictionary طِٛ داخً اٌمبkeys ؼ١غ اٌّفبر١ّؼ ؛ ٌّؼشفخ ع١ داٌخ اٌّفبر: keys() function
. dictionary طِٛ داخً اٌمبvalues ُ١غ اٌم١ُّ ؛ ٌّؼشفخ ع١ داٌخ اٌم: values() function
. dictionary طِٛ داخذً اٌمذبitems ذغ اٌؼٕبصذش١ّ داٌخ اٌؼٕبصش ؛ ٌّؼشفخ ع: items() function
. list لبئّخٟ فtuples ػبدّٛ شىً ِغٟش فٙظ٠ dictionary طِٛ اٌمبٟ فitem وً ػٕصش
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
output
dict_keys(['brand', 'model', 'year'])
dict_values(['Ford', 'Mustang', 1964])
dict_items([('brand', 'Ford'), ('model', 'Mustang'), ('year', 1964)])
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 25
طًِٛ ػٕبصش اٌمب٠ رؼذ: Modify dictionary Items
َدح ثبعذذزخذاٛعذذٌّّٛذذخ اٌؼٕبصذذش ا١ذذش ل١١ رغٚذذذح أ٠ّىٕٕذذب ئظذذبفخ ػٕبصذذش عذ٠ ٞذذش أ١١ظ لبثٍذذخ ٌٍزغ١ِاٛاٌمذذ
.ذخ١ٌّذخ اٌؾب١ش اٌم٠زُ رؾذذ١دًا ثبٌفؼذً فغذٛعذِٛ key الػ أٔٗ ئرا وذبْ اٌّفزذبػٚ .)=( ص١ػبًِ اٌزخص
.طِٛ اٌمبٌٝ) ئkey : value( ذ٠ط عذٚزُ ئظبفخ ص١ فغkey د اٌّفزبػٛعٚ َ ؽبٌخ ػذٟفٚ
# Changing and adding Dictionary Elements
my_dict = {'name': 'Jack', 'age': 26}
# update value
my_dict['age'] = 27
# add item
my_dict['address'] = 'Downtown'
output
{'name': 'Jack', 'age': 27}
{'name': 'Jack', 'age': 27, 'address': 'Downtown'}
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
thisdict["color"] = "red"
print(thisdict)
thisdict.update({"color": "'blue"})
print(thisdict)
output
{'brand': 'Ford', 'model': 'Mustang', 'year': 1964, 'color': 'red'}
{'brand': 'Ford', 'model': 'Mustang', 'year': 1964, 'color': 'blue'}
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 26
طِٛ ئصاٌخ ػٕبصش اٌمب: remove dictionary Items
: طِٕٛ٘بن ػذح غشق إلصاٌخ اٌؼٕبصش ِٓ اٌمب
. داٌخ اإلصاٌخ ؛ إلصاٌخ اٌؼٕصش ثبعُ اٌّفزبػ اٌ ُّؾذد: pop() function
. داٌخ ئصاٌخ اٌؼٕصش ؛ إلصاٌخ آخش ػٕصش ُِذسط: popitem() function
. طِٛ داٌخ اٌّغؼ ؛ ٌّغؼ ػٕبصش اٌمب: clear() function
.ًِط ثبٌىبِٛ الصاٌخ اٌمبًٚ اٌؼٕصش ثبعُ اٌّفزبػ اٌّؾذد أ٠ ٌزضdel خ١ّىٓ اعزخذاَ اٌىٍّخ ا عبع٠
# Removing elements from a dictionary
# create a dictionary
squares = {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
output
16
{1: 1, 2: 4, 3: 9, 5: 25}
(5, 25)
{1: 1, 2: 4, 3: 9}
{}
: ٟر٢ خطأ وبٟؼط١ب عٙط ثؼذ ؽزفِٛ الؽع ػٕذ غجبػخ اٌمب
thisdict = {"brand": "Ford","model": "Mustang","year": 1964}
del thisdict
print(thisdict) #this will cause an error because "thisdict" no longer exists.
output
Traceback (most recent call last):
File "c:\Users\Hoda_PC\Desktop\example.py", line 7, in <module>
print(thisdict) #this will cause an error because "thisdict" no longer exists.
NameError: name 'thisdict' is not defined
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 22
ْٛض٠ط داخً ٌغخ اٌجبِٛ اٌمبٍٝبد ػ١ٍّ ػ: Python dictionary Operations
: ٟر٢ اdictionary طِٛ اٌمبٍّٝىٓ ئعشاؤ٘ب ػ٠ ٟ اٌزOperations بد١ٍّذ ِٓ اٌؼ٠ٕ٘بن اٌؼذ
output
1
9
25
49
81
طِٛ داخً لبٛخ اخزجبس ػع١ٍّ ػ: dictionary Membership Test : ً ب١ٔ صب
دحٛعذِٛ key ّذخ ِفزذبػ١ط ٌؼًّ اخزجذبس ِذب ئرا وبٔذذ لِٛخ داخً اٌمب٠ّٛىٓ اعزخذاَ ِؼبِالد اٌؼع٠
: ػخ ّ٘بّٛٓ الخزجبس ػٕصش داخً ِغ١ٕ٘بن وٍّزٚ أَ ال ؟dictionary طِٛداخً اٌمب
. طِٛ اٌمبٟٓ ف١ ِؼkey دٛعٚ ِٓ خ رغزخذَ ٌٍزؾمك١ وٍّخ أعبع: in keyword
.طِٛ اٌمبٟٓ ف١ ِؼkey دٛعٚ َخ رغزخذَ ٌٍزؾمك ِٓ ػذ١ وٍّخ أعبع: not in keyword
# Membership Test for Dictionary Keys
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
print(1 in squares) # Output: True
print(2 not in squares) # Output: True
output
True
True
False
True
True
False
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 21
ْٛض٠ط داخً ٌغخ اٌجبِٛاي اٌمبٚ د: Python dictionary methods
: ُ٘ dictionary طِٛ رزؼبًِ ِغ اٌمبٟاي اٌزٚػخ ِٓ اٌذّٕٛ٘بن ِغ
. )ٓط (اٌىبئِٛي ػٕبصش اٌمبٛي ؛ ٌّؼشفخ غٛ داٌخ اٌط: len() function
.طِٛ اٌمبٟذح ف٠ ِشرجخ عذkeys ؼ١َ ثبسعبع لبئّخ ِفبرٛت؛ رم١ داٌخ اٌزشر: sorted() function
# Output: 6
print(len(squares))
output
6
[0, 1, 3, 5, 7, 9]
www.programiz.com ٘زا اٌشاثػٍّٝىٕه اٌعغػ ػ٠ ايٚذ ِٓ اٌذ٠ اٌّضٍٝ ٌٍزؼشف ػ
. value ًّض٠ٚ ُِشثغ اٌشلٚ key ًّض٠ٚ ُٓ ّ٘ب اٌشل١عٚط ػجبسح ػٓ صِٛ ِضبي ٌؼًّ لب
# Dictionary Comprehension
squares = {x: x*x for x in range(6)}
print(squares)
output
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 24
. اٌّضبي اٌغبثكٚ Dictionary Comprehension ٓ ثٕبت عٍّخ١ؼ ِمبسٔخ ث١ظٛسح ٌزٛ ص
.ط آخشِٛبٔبد ِٓ لب١ط ثبعزخذاَ ثُِٛ اٌمبّٙىٕٕب اعزخذاَ ف٠ ١ الؽع و
#item price in dollars
old_price = {'milk': 1.02, 'coffee': 2.5, 'bread': 2.5}
dollar_to_pound = 0.76
new_price = {item: value*dollar_to_pound for (item, value) in old_price.items()}
print(new_price)
output
{'milk': 0.7752, 'coffee': 1.9, 'bread': 1.9}
ُٙ اعزخذاَ ف.بدٙ١ٕ اٌغٌٝب ئٍٙ٠ٛلّٕب ثزؾٚ السٚ إٔٔب اعزشعؼٕب أعؼبس ا صٕبف ثبٌذّٜىٕٕب أْ ٔش٠
.ش١ألصش ثىضٚ ّخ أثغػٌّٙغؼً ٘زٖ ا٠ طِٛاٌمب
output
{'jack': 38, 'michael': 48}
.طُِٛ اٌمبٙ فٟ فif خ فمػ ثغجت عٍّخ١عّٚخ اٌض١ رّذ ئظبفخ اٌؼٕبصش راد اٌمٜ وّب ٔش
output
{'john': 33}
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 16
ف٘ ٟزٖ اٌؾبٌخ رّذ ئظبفخ اٌؼٕبصش راد اٌمّ١خ اٌفشد٠خ ا لً ِٓ 44فمػ ئٌ ٝاٌمبِٛط اٌغذ٠ذ ثغجت
عًّ ifاٌّزؼذدح ف ٟف ُٙاٌمبِٛط .ئٔٙب رىبفئ ٚرؼًّ ؽ١ش ٠غت أْ ٠ى ْٛوال اٌششغ ٓ١صؾ١ؾ.ٓ١
output
}'{'jack': 'young', 'michael': 'old', 'guido': 'old', 'john': 'young
ف٘ ٟزٖ اٌؾبٌخ ٠زُ ئٔشبت لبِٛط عذ٠ذ ػجش ف ُٙاٌمبِٛطٚ .اٌؼٕبصش اٌز ٟرجٍغ لّ١زٙب 44أ ٚأوضش ٌٙب
لّ١خ " " oldف ٟؽ ٓ١أْ اٌؼٕبصش ا خشٌٙ ٜب لّ١خ "." young
{ = dictionary
)k1: {k2: k1 * k2 for k2 in range(1, 6)} for k1 in range(2, 5
}
)print(dictionary
output
{
2: {1: 2, 2: 4, 3: 6, 4: 8, 5: 10},
3: {1: 3, 2: 6, 3: 9, 4: 12, 5: 15},
}4: {1: 4, 2: 8, 3: 12, 4: 16, 5: 20
}
ف٘ ٟزٖ اٌؾبٌخ ٠زُ ئٔشبت لبِٛط عذ٠ذ ػجش ف ُٙاٌمبِٛطٚ .اٌؼٕبصش اٌز ٟرجٍغ لّ١زٙب 44أ ٚأوضش ٌٙب
لّ١خ " " oldف ٟؽ ٓ١أْ اٌؼٕبصش ا خشٌٙ ٜب لّ١خ "." young
وّب رش ٜلّٕب ثجٕبت عذٚي اٌعشة ف ٟلبِٛط ِزذاخً ٌألسلبَ ِٓ 2ئٌ .4 ٝوٍّب رُ اعزخذاَ فُٙ
اٌمبِٛط اٌّزذاخً رجذأ ٌغخ Pythonأٚالً ِٓ اٌؾٍمخ اٌخبسع١خ صُ رٕزمً ئٌ ٝاٌؾٍمخ اٌذاخٍ١خ.
ٕ٘ بن ثشاِظ آخشِ ٜىبفئخ ٌٙزا إٌٛع اٌّضبٌ ٓ١ا٢رّ٘ ٓ١١ب ِضبٌِ ٓ١ىبفئٌٍ ٓ١جشٔبِظ اٌغبثك .
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 11
#the base program
dictionary = {
k1: {k2: k1 * k2 for k2 in range(1, 6)} for k1 in range(2, 5)
}
print(dictionary)
#the first program. So, the above code would be equivalent to:
dictionary = dict()
for k1 in range(2, 5):
dictionary[k1] = {k2: k1*k2 for k2 in range(1, 6)}
print(dictionary)
output
{2: {1: 2, 2: 4, 3: 6, 4: 8, 5: 10}, 3: {1: 3, 2: 6, 3: 9, 4: 12, 5: 15}, 4: {1: 4, 2: 8, 3: 12, 4: 16, 5: 20}}
{2: {1: 2, 2: 4, 3: 6, 4: 8, 5: 10}, 3: {1: 3, 2: 6, 3: 9, 4: 12, 5: 15}, 4: {1: 4, 2: 8, 3: 12, 4: 16, 5: 20}}
{2: {1: 2, 2: 4, 3: 6, 4: 8, 5: 10}, 3: {1: 3, 2: 6, 3: 9, 4: 12, 5: 15}, 4: {1: 4, 2: 8, 3: 12, 4: 16, 5: 20}}
طُِٛ اٌمبٙي اعزخذاَ فٛشاد ؽ٠ رؾز: Warnings on Using Dictionary Comprehension
غذ دائ ًّب١ٌ بٙٔب ئال أًٙ لشاترٙغ٠ مخ١ٔخ أ١ّبد ثشِغ١ٍط سائغ ٌىزبثخ رؼُِٛ اٌمبٙ اٌشغُ ِٓ أْ فٍٝػ
:ٌٟ اٌزبٛ إٌؾٍٝب ػِٙٓ أصٕبت اعزخذا٠ْ ؽزسٛغت أْ ٔى٠ ش١ؼ ؽ١بس اٌصؾ١االخز
.ذ ِٓ اٌزاوشح٠ٍه اٌّضٙرغزٚ بًٔب عؼً اٌشفشح رؼًّ ثشىً أثطأ١ُ أؽّٕٙى٠ o
.دٛخ لشاتح اٌى١ًٍ لبث١ٍعب رم
ً ٠ُ إّٔٙى٠ o
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 12
انذرس انتاسع :انقيى انًُطقية
)(boolean
٠ذذزُ ّ٠ضٍٙ١ذذب ٚأّ٘١زٙذذب عذذززؼٍُ فذذ٘ ٟذذزا اٌجشٔذذبِظ اٌزؼٍّ١ذذِ ٟذذب ٘ذذ ٟاٌمذذ ُ١إٌّطم١ذذخ ٚ Booleanو١ذ
داخً ٌغخ . python
: booleanاٌم ُ١إٌّطم١خ
٘ ٝػجبسح ػٓ لّ١ز٠ ٓ١زُ اعزخذاٌِ ُٙج١بْ ؽبٌخ اٌغٍّخ أ ٌزم١ذ ُ١رؼج١ذش ثٕذب ًت ػٍذ ٝشذشغ ِؼذ ٓ١داخذً ٌغذخ
اٌجب٠ض٠ٚ ْٛزُ رّض ً١اٌم ُ١إٌّطم١خ ثأؽذ اٌمّ١ز ٓ١ا٢ر١ز: ٓ١
: True صؾ١ؼ ٠ٚؼجش ػٕٙب ف ٟاٌجشٔبِظ ثبٌشلُ ِٚ 1ؼٕب٘ب رؾمك اٌششغ .
: False خطأ ٠ٚؼجش ػٕٙب ف ٟاٌجشٔبِظ ثبٌشلُ ِٚ 0ؼٕب٘ب ػذَ رؾمك اٌششغ .
غبٌجًب ِب رؾزبط ف ٟاٌجشِغذخ ئٌذِ ٝؼشفذخ ِذب ئرا وذبْ اٌزؼج١ذش expresionرؼج١ذش صذؾ١ؼ أَ رؼج١ذش خطذأ.
ّ٠ىٕه رم ُ١١أ ٞرؼج١ش ف ٟثب٠ضٚ ْٛاٌؾصٛي ػٍ ٝئؽذ ٜئعبثز True ٓ١أ. False ٚ
ٌإلػالْ ػٓ لّ١خ ِٕطم١خ Booleanأِش عِٚ ًٙجبشش ٠زُ رٌه ػٓ غش٠ك رخص١ص ئؽذ ٜل١ّ١زذٓ١
ٌٍّزغ١ش ئِب ٔخصص اٌمّ١خ Tueأ ٚاٌمّ١خ Falseوب٢ر: ٟ
a=True
b=False
)print(a
)print(b
output
True
False
ػٕذذ ِمبسٔذخ لّ١زذ٠ ٓ١ذزُ رم١ذ ُ١اٌزؼج١ذش ٚرشعذغ Pythonاإلعبثذخ إٌّطم١ذخ Booleanأ ٞثزشعذغ ئِذب
Trueأ. False ٚ
)print(10 > 9
)print(10 == 9
)print(10 < 9
output
True
False
False
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 13
شاد١اٌّزغٚ ُ١ُ اٌم١١ رم: Evaluate Values and Variables
ذخ١ّذخ ِٕطم١ لٝذش ئٌذ١ ِزغّٚذخ أ١ لٞذً أ٠ْٛ ثزؾٛض٠َ ٌغخ اٌجبٛش رم١ش ؽ١ ِزغٞ أّٚخ أ١ لُٞ أ١١ّىٓ رم٠
ُذز٠ٚ standard truth testing procedure ٟبعذ١مذخ اٌم١ ثبعزخذاَ ئعشات اخزجذبس اٌؾمBoolean
ً اٌّمبثذٟذه فذ١رؼطٚ ّذخ١ لُٞ أ١١ش رغّؼ ٌه ٘زٖ اٌذاٌخ ثزم١ ؽbool() ك اعزخذاَ اٌذاٌخ٠رٌه ػٓ غش
. False ٚ أTrue
.)False ٚ أTrue( خ١ّخ ِٕطم١ لٌّٝخ ئ١ً اٌم٠ٛخ ؛ ٌزؾ١ُ إٌّطم١ داٌخ اٌم: bool() function
: bool([value])
bool)( ّذذخ فذذاْ اٌذاٌذذخ١ذذش ل٠ ؽبٌذذخ ػذذذَ رّشٟفذذٚ bool)( ّٝذذخ ئٌذذ١ذذش ل٠ رّشٞسٚظ ِذذٓ اٌعذذش١ٌذذ
. False ّخ١عزشعغ اٌم
#Evaluate values
print(bool("Hello"))
print(bool(15))
#Evaluate variables
x = "Hello"
y = 15
print(bool(x))
print(bool(y))
output
True
True
True
True
test = [0]
print(test,'is',bool(test))
test = 0.0
print(test,'is',bool(test))
test = None
print(test,'is',bool(test))
test = True
print(test,'is',bool(test))
output
[] is False
[0] is True
0.0 is False
None is False
True is True
Easy string is True
ْ ِٓ فئخ رادٛه وبئٓ ِى٠رٌه ئرا وبْ ٌذٚ False ٌٝ ٘زٖ اٌؾبٌخ ئٟ وبئٓ آخش فّٚخ أ١ُ ل١١زُ رم٠
. False ٚ أ0 رُشعغٚ__ أlen__() داٌخٚ __ أbool)(__ داٌخ
class myclass():
def __len__(self):
return 0
myobj = myclass()
print(bool(myobj))
output
False
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 15
خ١ّخ ِٕطم١ رُشعغ لٟاي اٌزٚ اٌذ: Functions can Return a Boolean
خ١ّخ ِٕطم١ رُشعغ لٟ اٌزfunctions ايّٚىٓ ئٔشبت د٠
print(myFunction())
if myFunction():
print("YES!")
else:
print("NO!")
output
True
YES!
x = 200
print(isinstance(x, int))
output
True
The Way To Python 4 … Data types …. الطريق إلى لغة البايثون..… Author , Eng/ Mahmoud Soliman 16
انخاتًة
ئٌذذٕ٘ ٝذذب ٔىذذ ْٛلذذذ أزٕ١ٙذذب ِذذٓ اٌغذذضت اٌشاثذذغ ٘ٚذذِ ٛذذب اخذذزص ثذاسعذذخ أٔذذٛاع اٌج١بٔذذبد اٌزذذ ٟرذذذػّٙب ٌغذذخ
اٌجذب٠ضٚ ْٛاٌّؼذشٚف ثبعذُ ٚ Python data typesفذ ٟاٌذذسٚط اٌمبدِذخ عذٛف ٔزؼذشف ػٍذ ٝو١ف١ذخ
اٌزؼبًِ ِغ اٌٍّفبد filesداخً ٌغخ اٌجب٠ضٚ ْٛاٌّؼشٚفخ ثبعُ . Python File I/O
ِذذذذذذٓ ثذذذذذذبة ا ِبٔذذذذذذخ اٌؼٍّ١ذذذذذذخ فٙذذذذذذزا اٌىزذذذذذذبة ٘ذذذذذذ ٛؽصذذذذذذٍ١خ ٚرغّ١ؼذذذذذذخ ِؼٍِٛذذذذذذبد ِذذذذذذٓ ِٛلذذذذذذغ
ٚ /https://www.programiz.comرُ عشد وذً دسٚط ٘ذزٖ اٌغٍغذٍخ ثذٕفظ رغٍغذً ٘ذزا اٌّٛلذغ .
وّب االعزؼبٔخ ثّٛلغ . https://www.w3schools.com
٘ذذذزا اٌىزذذذبة ٘ذذذ ٛصذذذذلخ عبس٠ذذذخ ػذذذٓ ٔفغذذذٚ ٟأ٘ذذذً ث١زذذذٚ ٟأؽجذذذبثٚ ٟأعذذذأي أْ ٠زمجذذذً ٘ذذذزا اٌؼّذذذً
٠ٚغٍؼذذذٗ خبٌصذذذب ً ٌٛعٙذذذٗ اٌىذذذشٚ . ُ٠وّذذذب ٚظذذذؼزٗ ثذذذ ٓ١أ٠ذذذذوُ ٌزٕذذذبٌٛا ِٕذذذٗ ػٍّذذذب ً ٌٚذذذ ٛوذذذبْ ٠غذذذ١شا ً
فّ١ىذذذٕىُ أ٠عذذذب ً ٔشذذذشٖ ػٍذذذ ٝأِٛ ٞلذذذغ ٚرؼذذذذِ ً٠ؾزذذذٛاٖ ثّذذذب ٠خذذذذَ إٌذذذبط ٚااللزجذذذبط ِٕذذذٗ أ٠عذذذب ً وّذذذب
رشبت ْٚثذ ْٚاعزئزاْ.
٠ ِٓٚشغت فٔ ٟغخخ ٘ ِٓ Wordزا اٌىزبة فّ١ىٕٗ أْ ٠شاعٍٕ ٝػٍ ٝاإل١ّ٠الد .
سؽذذذُ سعذذذالً أ٘ذذذذٌ ٜذذذ ٟػ١ذذذٛث ٟأسعذذذِ ٛذذذٓ وذذذً شذذذخص ٠مذذذشأ ٘ذذذزا اٌىزذذذبة ئرا ٚلذذذ ػٕذذذذ خطذذذأ
ػٍّذذذ ٝأ ٚخطذذذأ ئِالئذذذ ٟأِ ٚؼٍِٛذذذخ لذذذذ ٠غذذذبت فّٙٙذذذب أْ ٠شاعذذذٍٕ ٟػٍذذذ ٝاإلّ٠ذذذ١الد ا٢ر١ذذذخ ٌىذذذ ٝألذذذَٛ
ثاصالؽٗ ف ٟاٌطجؼبد ا٢خش ٜوّب أسع ٛأال رٕغٔٛب ِٓ صبٌؼ دػٛارىُ .
E-mail : mmasoliman19962020@gmail.com
E-FaceBook : Mahmoud Soliman
Youtube : https://www.youtube.com/channel/UCfZvWjnYnfxI55v4LNhBekA
نتحًيم جًيع انكتب انخاصة بُا يًكٍ يتابعة قُاتي عهى انتيهيجزاو يٍ خالل هذا انزابط :
Telegram Channel : https://t.me/joinchat/-aC4Ps0pna5lY2M0
نتحًيم جًيع انكتب انخاصة بُا يًكٍ يتابعة صفحتي عهى انفيس بوك يٍ خالل هذا انزابط :
Public Page: Help-me-page
Mahmoud Soliman
The Way To Python 4 … Data types …. ..… Author , Eng/ Mahmoud Solimanالطريق إلى لغة البايثون 12
The Way To Python 4 … Data types …. الطريق إلى برمجة بلغة البايثون..… Author , Eng/ Mahmoud 11