Professional Documents
Culture Documents
ﺑ ﺲ ُ
أوو
اﻟﺠﺰء - 1
1
،DURGASOFT،ﺣﻴﺪر أ
ﺑﺎد - 500038 ، ﺑﻴ ﺖ ﺘﺮ#
ﻳﻔﺎﻧﺎم ،أﻣﻴﺮ 202، ﺑﻖ 2 ،
ﻫﺪى ﻣﺎﻳ اﻟﻄﺎ
Machine Translated by Google
ﺒﻘ ﺔ:
ﻣﺎ ﻫ ﻲ اﻟﻄ
ﺘﻐﻴﺮا ت
ﺑﺎﻟﻤﺜﻴﻞ اﻟﺨﺼﺎﺋﺺ
ﻳﻤﻜﻦﺗﻤ
ﺑﺎﻟﻄﺮق .ﺜﻴﻞ اﻹﺟﺮاءا ت
ﻳﻤﻜﻦﺗﻤ
ﺘﻐﻴﺮا ت واﻟﻄﺮق.
ﺘﻮي اﻟﻔﺌ ﺔ ﻋﲆ ﻛﻞ ﻣﻦ اﻟﻤ
ﺛﻢﺗﺤوﻣﻦ
ﻛﻴﻒﺗﺤﺪد ﻓﺌ ﺔ؟
ﺘﺨﺪام اﻟﻜﻠﻤ ﺔ اﻷﺳﺎﺳﻴ ﺔ ﻟﻠﻔﺼﻞ.
ﺑﺎﺳﻳﻤﻜﻨﻨﺎﺗﺤﺪﻳﺪ ﻓﺌ ﺔ
ﺘ ﺔ ،ﻃﺮق اﻟﻔﺼﻞ
ﺑﺜﺎ
ﺜﻴﻞ ،اﻟﻄﺮق اﻟ
اﻟﻄﺮق :ﻃﺮق اﻟﻤ
ﺘﻴﻦ
ﺘﺨﺪام اﻟﻄﺮﻳﻘ
ﺑﺎﺳ
ﺋﻤﺎ.ﻳﻤﻜﻨﻨﺎ اﻟﺤﺼﻮل ﻋﲆﺳﻠ ﺴﻠ ﺔ doc ﺛﺎﺋﻖ وﺻ ًﻔﺎ ﻟﻠﻔﺌ ﺔ .ﺿﻤﻦﺳﻠ ﺴﻠ ﺔ docﻟﻠﻔﺌ ﺔ اﺧ
ﺘﻴﺎرﻳ ﺔ دا ً ﺜﻞﺳﻠ ﺴﻠ ﺔ اﻟﻮ
ﺗﻤ
ﺘﻴﻦ.
ﺘﺎﻟﻴ
اﻟ
ﺜﺎل:
ﻣ
ﺘﻐﻴﺮا ت.
ﺘﺨﺪام اﻟﻤ
ﺑﺎﺳﺒﻴﺎﻧﺎ ت
ﺜﻴﻞ اﻟ
ﺜﻮنﻳﻤﻜﻨﻨﺎﺗﻤ
ﺑﺎﻳﺿﻤﻦ ﻓﺌ ﺔ
ﺑﻬﺎ.ﺘﻐﻴﺮا ت ﻣ ﺴﻤﻮح
ﻫﻨﺎك 3أﻧﻮاع ﻣﻦ اﻟﻤ
ﺘﻮى اﻟﻜﺎﺋﻦ(
ﺘﻐﻴﺮا ت ﻣ ﺴ
ﺜﻴﻞ )ﻣ
ﺘﻐﻴﺮا ت اﻟﻤ
)1ﻣ
ﺘﻮى اﻟﻔﺌ ﺔ(
ﺘﻐﻴﺮا ت ﻣ ﺴ
ﺘ ﺔ )ﻣ
ﺑﺜﺎ
ﺘﻐﻴﺮا ت اﻟ
)2اﻟﻤ
ﺘﻮى اﻟﻄﺮﻳﻘ ﺔ(
ﺘﻐﻴﺮا ت ﻣ ﺴ
ﺘﻐﻴﺮا ت اﻟﻤﺤﻠﻴ ﺔ )ﻣ
)3اﻟﻤ
2
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺜﻴﻞ
)1ﻃﺮق اﻟﻤ
)2ﻃﺮق اﻟﻔﺼﻞ
ﺘﺔ
ﺑﺜﺎ
)3اﻟﻄﺮق اﻟ
ﺜﺎل ﻟﻠﻔﺼﻞ:
ﻣ
ﻣﺎ ﻫﻮ اﻟﻜﺎﺋﻦ:
ﺒﻘ ﺔ ﻣﺎ ﻫﻮ إﻻ ﻛﺎﺋﻦ.ﻳﻤﻜﻨﻨﺎ إﻧﺸﺎء أي ﻋﺪد ﻣﻦ اﻟﻌﻨﺎﺻﺮ ﻟﻠﻔﺼﻞ.
إن اﻟﻮﺟﻮد اﻟﻤﺎدي ﻟﻠﻄ
= self.nameاﻻﺳﻢ =
self.rollnoاﻟﻌﻼﻣﺎ ت
ﺘﺎج:
اﻧ
D: \ durgaclasses> py test.py
ﺒﺎ اﺳﻤ ﻲ :دورﺟﺎ
ﻣﺮﺣ
ﺑ ﻲ ﻫﻮ101 :روﻟﻨﻮ اﻟﺨﺎص
ﺗ ﻲ ﻫ ﻲ80 :
ﻋﻼﻣﺎ
ﺗ ﻲ:
ﺘﻐﻴﺮ اﻟﺬا
اﻟﻤ
ﺜﻞ ﻫﺬه اﻟﻜﻠﻤ ﺔ اﻷﺳﺎﺳﻴ ﺔ
ﺋﻤﺎ إﱃ اﻟﻜﺎﺋﻦ اﻟﺤﺎﻟ ﻲ )ﻣ
ﺘﺮاﺿ ﻲ اﻟﺬيﻳﺸﻴﺮ دا ً
ﺘﻐﻴﺮ اﻻﻓ
• selfﻫﻮ اﻟﻤ
ﻓ ﻲ ﺟﺎﻓﺎ(
ﺜﻴﻞ ﻟﻠﻜﺎﺋﻦ.
ﺘﻐﻴﺮا ت اﻟﺤﺎﻟ ﺔ وﻃﺮق اﻟﻤ
ﺘﺨﺪام اﻟﺬا تﻳﻤﻜﻨﻨﺎ اﻟﻮﺻﻮل إﱃ ﻣ
ﺑﺎﺳ
•
ﻣﻠﺤﻮﻇ ﺔ:
اﻟﻤﻨﺸ ﺊ def __init __ (self):
)1ﻳﺠ ﺐ أنﺗﻜﻮن selfاﻟﻤﻌﻠﻤ ﺔ اﻷوﱃ داﺧﻞ ُ
ﺜﻴﻞ
)2ﻳﺠ ﺐ أنﺗﻜﻮن selfاﻟﻤﻌﻠﻤ ﺔ اﻷوﱃ داﺧﻞ ﻃﺮق اﻟﻤ
ﺗﺤﺪ ث ﻣﻮاﻃﻨﻪ )اﻟﺬا ت(:
ﺗ ًﻴﺎ(
اﻟﻤﻨﺸ ﺊ __ )__initذا
ﻳﺠ ﺐ أنﻳﻜﻮن اﺳﻢ ُ
اﻟﻤﻨﺸ ﺊﺗﻠﻘﺎﺋ ًﻴﺎ ﻓ ﻲ وﻗ ﺖ إﻧﺸﺎء اﻟﻜﺎﺋﻦ.
ﺘﻢﺗﻨﻔﻴﺬ ُ
ﺳﻴ
ﺘﻬﺎ.
ﺗﻬﻴﺌ
ﺘﻐﻴﺮا ت اﻟﺤﺎﻟ ﺔ و
ﺘﺼﺮﻳﺢ ﻋﻦ ﻣ
ﺋﻴ ﺴ ﻲ ﻟﻠﻤﻨﺸ ﺊ ﻫﻮ اﻟ
اﻟﻐﺮض اﻟﺮ
ﺗ ًﻴﺎ(
ﻟﻠﻤﻨﺸ ﺊ أنﻳﺄﺧﺬ ﺣﺠ ﺔ واﺣﺪة ﻋﲆ اﻷﻗﻞ )ﻋﲆ اﻷﻗﻞ ذا
ﻳﻤﻜﻦ ُ
ﺑﺬﻟﻚﺜﻮن
ﺑﻴﺘﻴﺎري وإذا ﻟﻢ ﻧﻮﻓﺮ أيُﻣﻨﺸ ﺊ ،ﻓ ﺴﻴﻘﻮم
اﻟﻤﻨﺸ ﺊ اﺧ
ُ
ﺘﺮاﺿ ﻲ.
اﻟﻤﻨﺸ ﺊ اﻻﻓ
ﺗﻮﻓﺮ ُ
ﺜﺎل:
ﻣ
4
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج |
اﻧ
اﻟﻤﻨﺸ ﺊ ...
ﺗﻨﻔﻴﺬ ُ
اﻟﻤﻨﺸ ﺊ ...
ﺗﻨﻔﻴﺬ ُ
اﻟﻤﻨﺸ ﺊ ...
ﺗﻨﻔﻴﺬ ُ
ﺘﻨﻔﻴﺬ ...
ﻃﺮﻳﻘ ﺔ اﻟ
ﺑﺮﻧﺎﻣﺞ:
).marks)) 11
ﺘﺎج |
اﻧ
اﺳﻢ اﻟﻄﺎﻟ ﺐ :دورﺟﺎ
روﻟﻨﻮ101 :
ﻋﻼﻣﺎ ت80 :
5
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﻓﻘﻂأي رﻗﻢ
ﺳﻠﻮ ب
ﻨﺸ ﺊ
اﻟﻤاﻷ
ﺘﺪﻋﺎء
ُ ﺗﻨﻔﻴﺬ
ﻳﻤﻜﻦ اﺳ
ﺘﻢ
)3ﻟﻜﻞ ﻛﺎﺋﻦ ،ﺳﻴ
اﻟﻤﺮا ت.
ﻣﻦواﺣﺪة
ﻣﺮة
ﺘﻬﺎ
ﺗﻬﻴﺌ
ﺜﻴﻞ و
ﺘﻐﻴﺮا ت اﻟﻤ
ﻷﻋﻤﺎل ﻣ
اﻹﻋﻼن ﻋﻦ ﺑ ﺔﻋﻠﻴﻨﺎ
ﻣﻨﻄﻖ ا ﺘﻌﻴﻦ
ﺘﺎ ﻨﺸ ﺊ ،ﻳ
ﻳﻤﻜﻨﻨﺎ ﻛ اﻟﻤ
داﺧﻞ ُ
اﻟﺪاﺧﻠﻴ ﺔ )4
ﻳﻘ ﺔ
)4اﻟﻄﺮ
ﺘﻐﻴﺮا ت:
أﻧﻮاع اﻟﻤ
ﺜﻮن 3.
ﺑﺎﻳﺘﻐﻴﺮا ت داﺧﻞ ﻓﺌ ﺔ
ﺑﺄﻧﻮاع اﻟﻤُﺴﻤﺢ
ﻳ
ﺘﻮى اﻟﻜﺎﺋﻦ(
ﺘﻐﻴﺮا ت ﻣ ﺴ
ﺜﻴﻞ )ﻣ
ﺘﻐﻴﺮا ت اﻟﻤ
)1ﻣ
ﺘﻮى اﻟﻔﺌ ﺔ(
ﺘﻐﻴﺮا ت ﻣ ﺴ
ﺘ ﺔ )ﻣ
ﺑﺜﺎ
ﺘﻐﻴﺮا ت اﻟ
)2اﻟﻤ
ﺘﻮى اﻟﻄﺮﻳﻘ ﺔ(
ﺘﻐﻴﺮا ت ﻣ ﺴ
ﺘﻐﻴﺮا ت اﻟﻤﺤﻠﻴ ﺔ )ﻣ
)3اﻟﻤ
ﺜﻴﻞ:
ﺘﻐﻴﺮا ت اﻟﻤ
)1ﻣ
ﺘﻐﻴﺮا ت اﻟﺤﺎﻟ ﺔ.
ﺘﻐﻴﺮا تﻳ ﺴﻤﻰ ﻣ
ﺘﻐﻴﺮ ﻣﻦ ﻛﺎﺋﻦ إﱃ ﻛﺎﺋﻦ ،ﻓﺈن ﻫﺬا اﻟﻨﻮع ﻣﻦ اﻟﻤ
ﺘﻠﻔ ﺖ ﻗﻴﻤ ﺔ اﻟﻤ
•إذا اﺧ
ﺜﻴﻞ:
ﺘﻐﻴﺮا ت اﻟﻤ
ﺣﻴ ﺚﻳﻤﻜﻨﻨﺎ اﻹﻋﻼن ﻋﻦ ﻣ
ﺗﻲ
ﺘﻐﻴﺮ اﻟﺬا
ﺘﺨﺪام اﻟﻤ
ﺑﺎﺳ)1ﻣﻨﺸ ﺊ داﺧﻠ ﻲ
ﺗﻲ
ﺘﻐﻴﺮ اﻟﺬا
ﺘﺨﺪام اﻟﻤ
ﺑﺎﺳﺜﻴﻞ اﻟﺪاﺧﻠ ﻲ
)2ﻃﺮﻳﻘ ﺔ اﻟﻤ
ﺘﻐﻴﺮ ﻣﺮﺟﻊ اﻟﻜﺎﺋﻦ
ﺘﺨﺪام ﻣ
ﺑﺎﺳ)3ﺧﺎرج اﻟﻔﺌ ﺔ
ﺗ ﻲ:
ﺘﻐﻴﺮ اﻟﺬا
ﺘﺨﺪام اﻟﻤ
ﺑﺎﺳ)1ﻣﻨﺸ ﺊ داﺧﻠ ﻲ
ﺘﻐﻴﺮا تﺗﻠﻘﺎﺋ ًﻴﺎ
ﺘﻢ إﺿﺎﻓ ﺔ ﻫﺬه اﻟﻤ
ﺘﺑﻤﺠﺮد إﻧﺸﺎء اﻟﻜﺎﺋﻦ ،ﺳﺗﻴ ﺔ.
ﺘﺨﺪام اﻟﻜﻠﻤ ﺔ اﻷﺳﺎﺳﻴ ﺔ اﻟﺬا
ﺑﺎﺳاﻟﻤﻨﺸ ﺊ
ﺘﻐﻴﺮا ت اﻟﺤﺎﻟ ﺔ داﺧﻞ ُ
ﻳﻤﻜﻨﻨﺎ اﻹﻋﻼن ﻋﻦ ﻣ
إﱃ اﻟﻜﺎﺋﻦ.
6
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
self.esal
اﻟﻤﻮﻇﻒ )() 9 6) =7)10000ﻫـ =
)8
ﺜﺎل ،دﻳﻜ ﺖ
ﺒﻴﻞ اﻟﻤ
ﺒﺎﻋ ﺔ )ﻋﲆﺳ
ﻃ
)_
ﺗ ﻲ:
ﺘﻐﻴﺮ اﻟﺬا
ﺘﺨﺪام اﻟﻤ
ﺑﺎﺳﺜﻴﻞ اﻟﺪاﺧﻠ ﻲ
)2ﻃﺮﻳﻘ ﺔ اﻟﻤ
ﺘﻢ
ﺜﻴﻞ ،ﻓ ﺴﻴ
ﺘﻐﻴﺮ ﺣﺎﻟ ﺔ داﺧﻞ ﻃﺮﻳﻘ ﺔ اﻟﻤ
ﺗ ﻲ .إذاﺗﻢ اﻹﻋﻼن ﻋﻦ أي ﻣ
ﺘﻐﻴﺮ اﻟﺬا
ﺘﺨﺪام اﻟﻤ
ﺑﺎﺳﺜﻴﻞ
ﺘﻐﻴﺮا ت اﻟﺤﺎﻟ ﺔ داﺧﻞ ﻃﺮﻳﻘ ﺔ اﻟﻤ ﻳﻤﻜﻨﻨﺎ أ ً
ﻳﻀﺎ إﻋﻼن ﻣ
ﺑﻤﺠﺮد أن ﻧ ﺴﻤ ﻲ ﻃﺮﻳﻘ ﺔﺗﺎه.ﺘﻐﻴﺮ اﻟﺤﺎﻟ ﺔ ﻫﺬا
إﺿﺎﻓ ﺔ ﻣ
7
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺜﻴﻞ:
ﺘﻐﻴﺮا ت اﻟﻤ
ﻛﻴﻔﻴ ﺔ اﻟﻮﺻﻮل إﱃ ﻣ
ﺘﺨﺪام ﻣﺮﺟﻊ اﻟﻜﺎﺋﻦ.
ﺑﺎﺳﺗ ﻲ وﺧﺎرج اﻟﻔﺌ ﺔ
ﺘﻐﻴﺮ اﻟﺬا
ﺘﺨﺪام اﻟﻤ
ﺑﺎﺳﺘﻐﻴﺮا ت اﻟﺤﺎﻟ ﺔ ﻓ ﻲ اﻟﻔﺌ ﺔ
ﻳﻤﻜﻨﻨﺎ اﻟﻮﺻﻮل إﱃ ﻣ
ﺘﺎج |
اﻧ
10
20
10 20
ﺜﻴﻞ ﻣﻦ اﻟﻜﺎﺋﻦ:
ﺘﻐﻴﺮ ﻣ
ﻛﻴﻔﻴ ﺔ ﺣﺬف ﻣ
ﺘﺎﻟ ﻲ
ﺘﻐﻴﺮ اﻟﺤﺎﻟ ﺔ ﻋﲆ اﻟﻨﺤﻮ اﻟ
)1داﺧﻞ اﻟﻔﺼﻞﻳﻤﻜﻨﻨﺎ ﺣﺬف ﻣ
del self.variableName
ﺘﺎﻟ ﻲ objectreference.variableName
ﺘﻐﻴﺮا ت اﻟﺤﺎﻟ ﺔ ﻋﲆ اﻟﻨﺤﻮ اﻟ
)2ﻣﻦ ﺧﺎرج اﻟﻔﺼﻞﻳﻤﻜﻨﻨﺎ ﺣﺬف ﻣ
del
دﻳﻞ اﻟﻨﻔ ﺲ د
8
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج |
اﻧ
}'أ' '10 ، :ب''20 ، :ج''30 ، :د'40} :
)6) 7
)3) 8
self.a
t1 ==Test
)10 4
)() 9
self.b
t2 ==Test
)20 5
)(
د = 40
ﺘﺎج |
اﻧ
ﺘﻐﻴﺮا ت اﻟﺤﺎﻟ ﺔ
ﺒﻘﻴ ﺔ ،ﻷﻧﻨﺎ ﻟﻜﻞ ﻛﺎﺋﻦ ﻧ ﺴﺨ ﺔ ﻣﻨﻔﺼﻠ ﺔ ﻣﻦ ﻣ
ﺘﺘﻐﻴﻴﺮا ت ﻋﲆ اﻟﻜﺎﺋﻨﺎ ت اﻟﻤ
ﺜﻴﻞ ﻟﻜﺎﺋﻦ واﺣﺪ ،ﻓﻠﻦﺗﻨﻌﻜ ﺲ ﻫﺬه اﻟ
ﺘﻐﻴﺮا ت اﻟﻤ
ﺘﻐﻴﻴﺮ ﻗﻴﻢ ﻣ
ﺑإذا ﻗﻤﻨﺎ
ﺘﺎﺣ ﺔ.
اﻟﻤ
self.b
= 888
= 20
)8)5
t1.b
6) t1
= 999
= Test
9) t2
)() 7
= Test
t1.a
ﺘﺎج |
اﻧ
t1: 888999
ر 2: 10 20
9
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘ ﺔ:
ﺑﺜﺎ
ﺘﻐﻴﺮا ت اﻟ
)2اﻟﻤ
ﺒﺎﺷﺮة وﻟﻜﻦ ﺧﺎرج
ﺘﻐﻴﺮا تﻳﺠ ﺐ أن ﻧﻌﻠﻦ ﻋﻨﻪ ﻓ ﻲ اﻟﻔﺼﻞ ﻣ
ﺜﻞ ﻫﺬا اﻟﻨﻮع ﻣﻦ اﻟﻤ
ﺘﻠﻒ ﻣﻦ ﻛﺎﺋﻦ إﱃ ﻛﺎﺋﻦ ،ﻓﺈن ﻣ
ﺘﻐﻴﺮ ﻻﺗﺨ
إذا ﻛﺎﻧ ﺖ ﻗﻴﻤ ﺔ اﻟﻤ
ﺘ ﺔ.
ﺑﺜﺎ
ﺘﻐﻴﺮا ت اﻟ
ﺘﻐﻴﺮا ت اﻟﻤ
اﻷﺳﺎﻟﻴ ﺐ.ﺗ ﺴﻤﻰ ﻫﺬه اﻷﻧﻮاع ﻣﻦ اﻟﻤ
ﺑ ﺖ:
ﺛﺎﺘﻐﻴﺮ
ﺑﻞ ﻣ
ﺜﻴﻞ ﻣﻘﺎ
ﺘﻐﻴﺮ ﻣ
ﻣ
ﺘﻜﻮن ﻧ ﺴﺨ ﺔ ﻣﻨﻔﺼﻠ ﺔ
ﺘﻐﻴﺮا ت اﻟﺤﺎﻟ ﺔ ﻟﻜﻞ ﻛﺎﺋﻦ ،ﺳ
ﻣﻼﺣﻈ ﺔ :ﻓ ﻲ ﺣﺎﻟ ﺔ ﻣ
ﺑﻮاﺳﻄ ﺔ ﻛﻞ ﻛﺎﺋﻦ ﻣﻦﺗﻠﻚ اﻟﻔﺌ ﺔ.ﺘﻬﺎ
ﺘﻢ إﻧﺸﺎء ﻧ ﺴﺨ ﺔ واﺣﺪة ﻓﻘﻂ وﻣﺸﺎرﻛ
ﺘ ﺔ ﻟﻠﻔﺌ ﺔ اﻹﺟﻤﺎﻟﻴ ﺔ ،ﺳﻴ
ﺑﺜﺎ
ﺘﻐﻴﺮا ت اﻟ
ﺗﻢ إﻧﺸﺎؤه ،وﻟﻜﻦ ﻓ ﻲ ﺣﺎﻟ ﺔ اﻟﻤ
ﺘﺎج |
اﻧ
ر 1: 10 20
ر 2: 10 20
t1: 888999
ﺗ ﻲ 2: 888 20
ﺘ ﺔ:
ﺑﺜﺎ
ﺘﻐﻴﺮا ت اﻟ
ﺘﻠﻔ ﺔ ﻟﻺﻋﻼن ﻋﻦ اﻟﻤ
أﻣﺎﻛﻦ ﻣﺨ
ﺒﺎﺷﺮة وﻟﻜﻦ ﻣﻦ ﺧﺎرج أي ﻃﺮﻳﻘ ﺔ
ﺘﺼﺮﻳﺢ داﺧﻞ اﻟﻔﺼﻞ ﻣ
ﺑﺸﻜﻞ ﻋﺎمﻳﻤﻜﻨﻨﺎ اﻟ
)1
ﺘﺨﺪام اﺳﻢ اﻟﻔﺌ ﺔ
ﺑﺎﺳ)2ﻣﻨﺸ ﺊ داﺧﻠ ﻲ
ﺘﺨﺪام اﺳﻢ اﻟﻔﺌ ﺔ
ﺑﺎﺳﺜﻴﻞ
)3داﺧﻞ أﺳﻠﻮ ب اﻟﻤ
ﺘﻐﻴﺮ cls
ﺘﺨﺪام اﺳﻢ اﻟﻔﺌ ﺔ أو ﻣ
ﺑﺎﺳ
)4داﺧﻞ classmethod
ﺘﺨﺪام اﺳﻢ اﻟﻔﺌ ﺔ
ﺑﺎﺳﺑ ﺖ اﻟﺪاﺧﻠ ﻲ
ﺜﺎ
)5اﻷﺳﻠﻮ ب اﻟ
10
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺗﻌﺮﻳﻒ
ﺒﺎر اﻟﻔﺌ ﺔ 2) :أ )= 10 3
ﺘ)1اﺧ
ﺗ ﻲ(:
__ )__initذا
ﺒﺎﻋ ﺔ
)19) Test.m2 () 20ﻃ
)__(Test .__ict
ﺒﻊ
)21) Test.m3 () 22اﻃ
)__(Test .__ict
ﺒﻊ
)23) Test.f = 60 24اﻃ
)__(Test .__ict
ﺘ ﺔ:
ﺑﺜﺎ
ﺘﻐﻴﺮا ت اﻟ
ﻛﻴﻔﻴ ﺔ اﻟﻮﺻﻮل إﱃ اﻟﻤ
ﺘﺨﺪام إﻣﺎ selfأو classname
ﺑﺎﺳاﻟﻤﻨﺸ ﺊ:
)1داﺧﻞ ُ
ﺘﺨﺪام إﻣﺎ selfأو classname
ﺑﺎﺳﺜﻴﻞ:
)2داﺧﻞ أﺳﻠﻮ ب اﻟﻤ
ﺘﻐﻴﺮ clsأو اﺳﻢ اﻟﻔﺌ ﺔ
ﺘﺨﺪام ﻣ
ﺑﺎﺳ)3ﻃﺮﻳﻘ ﺔ داﺧﻞ اﻟﺼﻨﻒ:
ﺘﺨﺪام classname
ﺑﺎﺳﺑ ﺖ اﻟﺪاﺧﻠ ﻲ:
ﺜﺎ
)4اﻷﺳﻠﻮ ب اﻟ
ﺘﺨﺪام إﻣﺎ ﻣﺮﺟﻊ اﻟﻜﺎﺋﻦ أو اﺳﻢ اﻟﻔﺌ ﺔ
ﺑﺎﺳ)5ﻣﻦ ﺧﺎرج اﻟﻔﺼﻞ اﻟﺪراﺳ ﻲ:
ﺗﻌﺮﻳﻒ
ﺒﺎر اﻟﻔﺌ ﺔ 2) :أ )= 10 3
ﺘ)1اﺧ
ﺒﺎﻋ ﺔ )(self.a) 5
ﺗ ﻲ(4) :ﻃ
__ )__initذا
ﺗ ﻲ(:
ﺒﺎر أ( )6) def m1ذا
ﺘﺒﺎﻋ ﺔ )اﺧ
ﻃ
)(cls.a)10
12)def
print
)m2(Test.a ﺒﺎﻋ ﺔ
)(cls): 11 )7ﻃ
print
8) print (Test.a) 9) classmethod
)(self.a
11
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺑ ﺖ:
ﺜﺎ
ﺘﻐﻴﺮ اﻟ
ﺣﻴ ﺚﻳﻤﻜﻨﻨﺎﺗﻌﺪﻳﻞ ﻗﻴﻤ ﺔ اﻟﻤ
ﺘﺨﺪام classname.
ﺑﺎﺳﺘﻌﺪﻳﻞ
ﻓ ﻲ أي ﻣﻜﺎنﺳﻮاء ﻓ ﻲ اﻟﻔﺼﻞ أو ﺧﺎرج اﻟﻔﺼﻞ ،ﻳﻤﻜﻨﻨﺎ اﻟ
ﺘﻐﻴﺮ cls.
ﺘﺨﺪام ﻣ
ﺑﺎﺳوﻟﻜﻦ داﺧﻞ ﻃﺮﻳﻘ ﺔ اﻟﺼﻨﻒ ،
) Test.a = 9999
ﺒﺎﻋ ﺔ )(Test.a
ﻃ
ﺒﺎﻋ ﺔ
)10) Test.m1 () 11ﻃ
)(Test.a
ﺒﺎﻋ ﺔ
)12) Test.m2 () 13ﻃ
)(Test.a
ﺘﺎج |
اﻧ
777
888
999
*****
| ﺘﺎج
اﻧ
10
888
| ﺘﺎج
اﻧ
1: 10 20 ر
2: 10 20 ر
t1: 888999
2: 10 20 ر
ﺗﻌﺮﻳﻒ
= 10 3) أ2) : ﺒﺎر اﻟﻔﺌ ﺔ
ﺘاﺧ1)
self.b = 20 5) t1 = :(ﺗ ﻲ
__)ذاinit __
() ﺒﺎر
ﺘ )(اﺧ6) t2 = ﺒﺎر
ﺘاﺧ4)
| ﺘﺎج
اﻧ
888999
888 20
13
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
__ ﺗﻌﺮﻳﻒ
= 10 3) أ2) : ﺒﺎر اﻟﻔﺌ ﺔ
ﺘاﺧ1)
self.b = 20 5) def m1 :(ﺗ ﻲ
__)ذاinit
t1.b) 13) print (t2.a، t2.b) :(ﺗ ﻲ
)ذا4)
Test
= ()
99911)8)t1.m1
9 ) t1 ()= 12)
Testprint
() 10)(t1.a،
t2 =
6) self.a = 888 7) self.b
| ﺘﺎج
اﻧ
888999
10 20
| ﺘﺎج
اﻧ
888 20
888 20
888999
14
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
:ﺘ ﺔ ﻟﻠﻔﺼﻞ
ﺑﺜﺎ
ﺘﻐﻴﺮا ت اﻟ
ﻛﻴﻔﻴ ﺔ ﺣﺬف اﻟﻤ
ﺘﺎﻟﻴ ﺔ
ﺘﺨﺪام اﻟﺼﻴﻐ ﺔ اﻟ
ﺑﺎﺳﺘ ﺔ ﻣﻦ أي ﻣﻜﺎن
ﺑﺜﺎ
ﺘﻐﻴﺮا ت اﻟ
ﻳﻤﻜﻨﻨﺎ ﺣﺬف اﻟﻤ1)
del classname.variablename
cls ﺘﻐﻴﺮ
ﺘﺨﺪام ﻣ ً ﻳﻤﻜﻨﻨﺎ أclassmethod وﻟﻜﻦ داﺧﻞ2)
ﻳﻀﺎ اﺳ
del cls.variablename
:ﺜﺎل
ﻣ
ﺗﻌﺮﻳﻒ
= 10 3) أ2) : ﺒﺎر اﻟﻔﺌ ﺔ
ﺘاﺧ1)
4) :(ﺗ ﻲ
__)ذاinit __
(Test 18)
.__ict__)
t = Test
20) ()t.m1
19) ()
print
21)
Test.d 17) print (Test .__ict__)
Test.e = 50 16) del
ﺒﻊ
اﻃ22) Test.m2 () 23)
(Test .__ict__)
ﺒﻊ
اﻃ24) Test.m3 () 25)
(Test .__ict__)
_ ﺒﺎر
ﺘﺒﻊ )اﺧ
اﻃ26) Test.f = 60 27)
_) دﻳﻜ ﺖ
15
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺒﻊ
)28) del Test.e 29اﻃ
)__(Test .__ict
****ﻣﻠﺤﻮﻇ ﺔ:
ﺘ ﺔ ،ﻟﻜﻦ ﻻﻳﻤﻜﻨﻨﺎﺗﻌﺪﻳﻠﻬﺎ أو ﺣﺬﻓﻬﺎ.
ﺑﺜﺎ
ﺘﻐﻴﺮا ت اﻟ
ﺘﻐﻴﺮ ﻣﺮﺟﻊ اﻟﻜﺎﺋﻦ /اﻟﺬا ت ،ﻳﻤﻜﻨﻨﺎ ﻗﺮاءة اﻟﻤ
ﺘﺨﺪام ﻣ
ﺑﺎﺳ
t1.a = 70
ﺜﺎل:
ﻣ
ﺒﺎر a
ﺘﺒﺎر اﻟﻔﺌ ﺔ 2) :أ = = 10 3) 4) t1اﺧ
ﺘ)1اﺧ
() 5) del t1.a ===> AttributeError:
ﺘﻐﻴﺮ cls.
ﺘﺨﺪام classnameأو ﻣ
ﺑﺎﺳﺘ ﺔ إﻻ
ﺑﺜﺎ
ﺘﻐﻴﺮا ت اﻟ
ﻻﻳﻤﻜﻨﻨﺎﺗﻌﺪﻳﻞ أو ﺣﺬف اﻟﻤ
ﺒﺎﻋ ﺔ )"أﻣﻮال ﻏﻴﺮ ﻛﺎﻓﻴ ﺔ ..ﻻﻳﻤﻜﻦﺗﻨﻔﻴﺬ ﻫﺬه اﻟﻌﻤﻠﻴ ﺔ"( self.balance = self.balance-amt
ﻃ
)( sys.exit
ﺒﻠﻎ27) ((':
)24إذا ﻛﺎن اﻟﺨﻴﺎر '== 'dأو اﻟﺨﻴﺎر )== 'D': 25) amt = floatاﻹدﺧﺎل )'أدﺧﻞ اﻟﻤ
)'أدﺧﻞ
)اﻹدﺧﺎل)() 33
ﺒﺎﻋ ﺔ
==ﻃ== 'E':
)'W':31
اﻟﺨﻴﺎر)28
= amt float
elifأو اﻟﺨﻴﺎر== elifأو
ﺧﻴﺎر ''e ==)29 )26ﺧﻴﺎر ''w
c.withdraw c.deposit
)(amt )(amt
ﺒﻠﻎ30) ((':
اﻟﻤ
ﺘﻴﺎر ﺧﻴﺎر
ﺒﻊ )"ﺧﻴﺎر ﻏﻴﺮ ﺻﺎﻟﺢ ..اﻟﺮﺟﺎء اﺧ
('Thanks for Banking') 32) sys.exitوإﻻ34) :اﻃ
ﺻﺎﻟﺢ"(
ﺘﺎج:
اﻧ
د -اﻹﻳﺪاع
ث-ﺳﺤ ﺐ
ﺘﺮوﻧ ﻲ
اﻟﻤﺨﺮج اﻹﻟﻜ
د -اﻹﻳﺪاع
ث-ﺳﺤ ﺐ
ﺘﺮوﻧ ﻲ
اﻟﻤﺨﺮج اﻹﻟﻜ
د -اﻹﻳﺪاع
ث-ﺳﺤ ﺐ
ﺘﺮوﻧ ﻲ
اﻟﻤﺨﺮج اﻹﻟﻜ
د -اﻹﻳﺪاع
ث-ﺳﺤ ﺐ
ﺘﺮوﻧ ﻲ
اﻟﻤﺨﺮج اﻹﻟﻜ
د -اﻹﻳﺪاع
ث-ﺳﺤ ﺐ
17
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺮوﻧ ﻲ
اﻟﻤﺨﺮج اﻹﻟﻜ
ﺘﺎج |
اﻧ
1000
2000
ﺒﺎر اﻟﻔﺌ ﺔ m2 (self): 6) b = 2000 7) print (a) #NameError: name 'a' :
ﺘ)1اﺧ
ﺘﻢﺗﻌﺮﻳﻔﻪ )( 11) t.m2
2) def m1 (self): 3) a = 1000 4) print (a) 5) defﻟﻢﻳ
)( 8) print (b) 9) t = Test () 10) t.m1
18
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
أﻧﻮاع اﻟﻄﺮق:
ﺜﻮن ﻣﻦ اﻟﻔﺌ ﺔ 3
ﺑﺎﻳﺑﺄﻧﻮاع ﻣﻦ اﻟﻄﺮق داﺧﻞُﺴﻤﺢ
ﻳ
ﺜﻴﻞ
)1ﻃﺮق اﻟﻤ
)2ﻃﺮق اﻟﻔﺼﻞ
ﺘﺔ
ﺑﺜﺎ
)3اﻟﻄﺮق اﻟ
ﺜﻴﻞ:
)1ﻃﺮق اﻟﻤ
ﺘﻐﻴﺮا ت اﻟﺤﺎﻟ ﺔ ،ﻓﻬﺬا اﻟﻨﻮع ﻣﻦ
ﺘﺨﺪم ﻣ
ﺗﻨﻔﻴﺬ اﻷﺳﻠﻮ ب اﻟﺪاﺧﻠ ﻲ إذا ﻛﻨﺎ ﻧ ﺴ
ﺜﻴﻞ.
ﺗ ﺴﻤﻰ اﻷﺳﺎﻟﻴ ﺐ أﺳﺎﻟﻴ ﺐ اﻟﻤ
ﺗ ﻲ(:
ﺗ ﻲ)def m1 .ذا
ﺘﻐﻴﺮ اﻟﺬا
ﺜﻴﻞ ،ﻋﻠﻴﻨﺎﺗﻤﺮﻳﺮ اﻟﻤ
ﺘﺼﺮﻳﺢ ﻋﻦ ﻃﺮﻳﻘ ﺔ اﻟﻤ
داﺧﻞ اﻟ
ﺗ ﻲ وﻣﻦ ﺧﺎرج
ﺘﻐﻴﺮ اﻟﺬا
ﺘﺨﺪام اﻟﻤ
ﺑﺎﺳﺜﻴﻞ
ﺘﺪﻋﺎء ﻃﺮﻳﻘ ﺔ اﻟﻤ
داﺧﻞ اﻟﻔﺼﻞﻳﻤﻜﻨﻨﺎ اﺳ
ﺘﺨﺪام ﻣﺮﺟﻊ اﻟﻜﺎﺋﻦ.
ﺑﺎﺳﺘﺪﻋﺎؤ ﻫﺎ
ﺘ ﻲﻳﻤﻜﻨﻨﺎ اﺳ
اﻟﻔﺌ ﺔ اﻟ
Ouput:
د\ durga_classes> py test.py :
أدﺧﻞ ﻋﺪد اﻟﻄﻼ ب2 :
19
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺒﺎ دورﺟﺎ
ﻣﺮﺣ
ﺗﻚ ﻫ ﻲ90 :
ﻋﻼﻣﺎ
ﺒﺎ راﻓ ﻲ
ﻣﺮﺣ
أﻧ ﺖ ﻓﺎﺷﻞ
ﻃﺮﻳﻘ ﺔ اﻟﻮاﺿﻊ:
ﺑﺎﺳﻢ ﻃﺮق اﻟﻄﻔﺮا ت. ُﻌﺮف ﻃﺮق اﻟﻮاﺿﻊ أ ً
ﻳﻀﺎ ﺘﻐﻴﺮا ت اﻟﺤﺎﻟ ﺔ.ﺗ
ﺘﻌﻴﻴﻦ اﻟﻘﻴﻢ إﱃ ﻣ
ﺘﺨﺪام ﻃﺮق setterﻟ
ﻳﻤﻜﻦ اﺳ
ﺘﻐﻴﺮ
ﺑﻨﺎء اﻟﺠﻤﻠ ﺔdef setVariable (self، variable): self.variable = :ﻣ
ﺘﻐﻴﺮ
ﺗﻴ ﺔ ﻣ
اﻟﻌﻮدة اﻟﺬا
ﺗ ﻲ ،اﻻﺳﻢ(:
)1) class Student: 2) def setNameذا
20
،DURGASOFT،ﺣﻴﺪر أ
ﺑﺎد - 500038 ، ﺑﻴ ﺖ ﺘﺮ#
ﻳﻔﺎﻧﺎم ،أﻣﻴﺮ 202، ﺑﻖ 2 ،
ﻫﺪى ﻣﺎﻳ اﻟﻄﺎ
Machine Translated by Google
ب15) ((':
اﻟﻄﻼ )7) 8
def setMarks
)')5أدﺧﻞ ﻋﺪد
(self،
defmarks):
getName9) (self):
self.marks
6) return
= Mark
self.name
)10) 11
ﻟـ iﻓ ﻲ اﻟﻨﻄﺎق () 17) name = input ('Enter Name:') 18) s .setName
ﺘﺎج:
اﻧ
ﺒﺎ دورﺟﺎ
ﻣﺮﺣ
ﺗﻚ ﻫ ﻲ100 :
ﻋﻼﻣﺎ
ﺒﺎ راﻓ ﻲ
ﻣﺮﺣ
)2ﻃﺮق اﻟﻔﺼﻞ:
ﺘ ﺔ( ،ﻓﺈن ﻫﺬا اﻟﻨﻮع ﻣﻦ اﻷﺳﺎﻟﻴ ﺐﻳﺠ ﺐ أن ﻧﻌﻠﻦ ﻋﻨﻪ ﻛﻄﺮﻳﻘ ﺔ ﺻﻨﻔﻴ ﺔ.
ﺑﺜﺎ
ﺘﻐﻴﺮا ت اﻟ
ﺘﻐﻴﺮا ت اﻟﺼﻨﻒ )اﻟﻤ
ﺘﺨﺪم ﻓﻘﻂ ﻣ
ﺗﻨﻔﻴﺬ اﻷﺳﻠﻮ ب اﻟﺪاﺧﻠ ﻲ إذا ﻛﻨﺎ ﻧ ﺴ
21
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج |
اﻧ
د\ python_classes> py test.py :
ﻛﻠ ﺐﻳﻤﺸ ﻲ ب 4أرﻃﺎل ...
ﻗﻄ ﺔﺗﻤﺸ ﻲ ب 4أرﻃﺎل ...
ﺘ ﺔ:
ﺑﺜﺎ
)3اﻟﻄﺮق اﻟ
ﺑﺸﻜﻞ ﻋﺎم ،ﻫﺬه اﻟﻄﺮق ﻫ ﻲ ﻃﺮق اﻟﻤﻨﻔﻌ ﺔ اﻟﻌﺎﻣ ﺔ.
ﺘﻐﻴﺮا ت ﻓﺌ ﺔ.
ﺜﻴﻞ أو ﻣ
ﺘﺨﺪم أي ﻣ
داﺧﻞ ﻫﺬه اﻟﻄﺮق ،ﻟﻦ ﻧ ﺴ
ﺗﻴ ﺔ أو clsﻓ ﻲ وﻗ ﺖ اﻹﻋﻼن.
ﻫﻨﺎ ﻟﻦ ﻧﻘﺪم اﻟﺤﺠﺞ اﻟﺬا
ﺘﺨﺪامdecorator dohtemcitats
ﺑﺎﺳﺑﺸﻜﻞ ﺻﺮﻳﺢﺘﺔ
ﺑﺜﺎ
ﺘﺼﺮﻳﺢ ﻋﻦ اﻟﻄﺮﻳﻘ ﺔ اﻟ
ﻳﻤﻜﻨﻨﺎ اﻟ
ﺘﺨﺪام اﺳﻢ اﻟﻔﺌ ﺔ أو ﻣﺮﺟﻊ اﻟﻜﺎﺋﻦ
ﺑﺎﺳﺘﺔ
ﺑﺜﺎ
ﻳﻤﻜﻨﻨﺎ اﻟﻮﺻﻮل إﱃ اﻷﺳﺎﻟﻴ ﺐ اﻟ
)1) class DurgaMath: 2) 3) staticmethod 4) def add (x، y): 5) print ('The Sum:'، x + y) 6
ﺘﺎج |
اﻧ
اﻟﻤﺠﻤﻮع30 :
ﺘﺞ200 :
اﻟﻤﻨ
ﺘﻮﺳﻂ15.0 :
اﻟﻤ
ﻣﻠﺤﻮﻇ ﺔ:
ﺘﺔ
ﺑﺜﺎ
ﺘ ﺔ ﻓﻘﻂ ،وﻳﻤﻜﻨﻨﺎ ذﻟﻚ داﺧﻞ اﻟﻄﺮﻳﻘ ﺔ اﻟ
ﺑﺜﺎ
ﺜﻴﻞ واﻟﻄﺮق اﻟ
ﺘﺨﺪام ﻃﺮق اﻟﻤ
ﺑﺸﻜﻞ ﻋﺎم ،ﻳﻤﻜﻨﻨﺎ اﺳ
•
ﺘﺨﺪام اﺳﻢ اﻟﻔﺌ ﺔ.
ﺑﺎﺳﺘﻮى اﻟﻔﺌ ﺔ
ﺘﻐﻴﺮا ت ﻣ ﺴ
اﻟﻮﺻﻮل إﱃ ﻣ
ﺜﻮن.
ﺒﺎﻳ
ﺘﺨﺪاﻣﺎ ﻓ ﻲ ﻟﻐ ﺔ اﻟ
ً ﺜﺮ اﺳ
ﺘﺼﻨﻴﻒ ﻫ ﻲ اﻷﺳﺎﻟﻴ ﺐ اﻷﻛ
ﺒﺮ ﻃﺮق اﻟ
ﺘﺗﻌ
•
)Test.modifyﻫـ(
23
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج |
اﻧ
د\ python_classes> py test.py :
رﻗﻢ اﻟﻤﻮﻇﻒ100 :
اﺳﻢ اﻟﻤﻮﻇﻒ :دورﺟﺎ
ﺗ ﺐ اﻟﻤﻮﻇﻒ20000 :
را
ﺒﺎر.
ﺘﺘﺎﺣﻮن ﻟﻔﺌ ﺔ اﻻﺧ
ﺒﻴﻖ أﻋﻼه ،أﻋﻀﺎء ﻓﺌ ﺔ اﻟﻤﻮﻇﻒ ﻣ
ﺘﻄﻓ ﻲ اﻟ
ﺒﻘﺎ ت اﻟﺪاﺧﻠﻴ ﺔ
اﻟﻄ
ﺑﺎﻟﻔﺌﺎ ت اﻟﺪاﺧﻠﻴ ﺔ.ﺑﻌﺾ اﻷﺣﻴﺎنﻳﻤﻜﻨﻨﺎ اﻹﻋﻼن ﻋﻦ ﻓﺌ ﺔ داﺧﻞ ﻓﺌ ﺔ أﺧﺮى ،ﻳ ﺴﻤﻰ ﻫﺬا اﻟﻨﻮع ﻣﻦ اﻟﻔﺌﺎ تﻓﻲ
ﺑﺪون وﺟﻮد ﻧﻮع واﺣﺪ ﻣﻦ اﻟﻌﻨﺎﺻﺮ إذا ﻟﻢﺗﻜﻦ ﻫﻨﺎك ﻓﺮﺻ ﺔ ﻟﻮﺟﻮد ﻧﻮع آﺧﺮ ﻣﻦ اﻟﻜﺎﺋﻨﺎ ت ،
ﺛﻢﻳﺠ ﺐ أن ﻧﺬ ﻫ ﺐ ﻟﻠﻔﺼﻮل اﻟﺪاﺧﻠﻴ ﺔ.
ﺛﻢﻳﺠ ﺐ أنﺗﻜﻮن ﻓﺌ ﺔ اﻟﻤﺤﺮك ﺟﺰءًا ﻣﻦ ﻓﺌ ﺔ اﻟ ﺴﻴﺎرة.ﺑﺪون ﻛﺎﺋﻦ اﻟ ﺴﻴﺎرة اﻟﻤﻮﺟﻮد ﻻﺗﻮﺟﺪ ﻓﺮﺻ ﺔ ﻟﻮﺟﻮد ﻛﺎﺋﻦ اﻟﻤﺤﺮك .وﻣﻦﺜﺎل:
ﻣ
ﻓﺌ ﺔ اﻟ ﺴﻴﺎرة:
.....
ﻓﺌ ﺔ اﻟﻤﺤﺮك:
......
ﻗ ﺴﻢ اﻟﻔﺼﻞ:
......
ﺛﻢﻳﺠ ﺐ أنﻳﻜﻮن اﻟﺮأس ﺟﺰءًا ﻣﻦ اﻹﻧ ﺴﺎن.ﺑﺪون وﺟﻮد اﻹﻧ ﺴﺎن ﻻﺗﻮﺟﺪ ﻓﺮﺻ ﺔ ﻟﻮﺟﻮد اﻟﺮأس .وﻣﻦﺜﺎل:
ﻣ
ﺑﺪون ﻛﺎﺋﻦ ﻓﺌ ﺔ ﺧﺎرﺟ ﻲ ﻻﺗﻮﺟﺪ ﻓﺮﺻ ﺔ ﻟﻮﺟﻮد ﻛﺎﺋﻦ ﻓﺌ ﺔ داﺧﻠ ﻲ.ﻣﻼﺣﻈ ﺔ:
ﺑﻜﺎﺋﻦ اﻟﻔﺌ ﺔ اﻟﺨﺎرﺟﻴ ﺔ.ﺋﻤﺎ
ﺒﻂ ﻛﺎﺋﻦ اﻟﻔﺌ ﺔ اﻟﺪاﺧﻠﻴ ﺔ دا ً
ﺗﺛﻢﻳﺮوﻣﻦ
24
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺒ ﻲ -1:
ﺘﺠﺮﻳ
ﺒﺮﻧﺎﻣﺞ اﻟ
اﻟ
ﺘﺎج |
اﻧ
ﺒﻘ ﺔ اﻟﺨﺎرﺟﻴ ﺔ
إﻧﺸﺎء ﻛﺎﺋﻦ اﻟﻄ
ﺒﻘ ﺔ اﻟﺪاﺧﻠﻴ ﺔإﻧﺸﺎء ﻛﺎﺋﻦ اﻟﻄ
ﺒﻘ ﺔ اﻟﺪاﺧﻠﻴ ﺔ
ﻃﺮﻳﻘ ﺔ اﻟﻄ
ﺒﻘ ﺔ اﻟﺪاﺧﻠﻴ ﺔ
ﺘﺪﻋﺎء ﻃﺮﻳﻘ ﺔ اﻟﻄ
ﻣﻼﺣﻈ ﺔ :ﻓﻴﻤﺎﻳﻠ ﻲ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﺼﻴﻎ اﻟﻤﻤﻜﻨ ﺔ ﻻﺳ
ﺒ ﻲ -2:
ﺘﺠﺮﻳ
ﺒﺮﻧﺎﻣﺞ اﻟ
اﻟ
= self.yyﻋﺮض def
ﺗ ﻲ(:
)1947ذا
ﺗﻨ ﺴﻴﻖ ))(self.dd، self.mm، self.yy
ﺒﺎﻋ ﺔ ('Dob = {} / {} / {}'.
ﻃ
25
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
اﻟﺸﺨﺺ14) p =
17) x.display ()
() 16) x = p.db
() 15) p.display
| ﺘﺎج
اﻧ
دورﺟﺎ:اﻻﺳﻢ
= 10/5/1947 دو ب
-3: ﺒ ﻲ
ﺘﺠﺮﻳ
ﺒﺮﻧﺎﻣﺞ اﻟ
اﻟ
.ﺒﻘﺎ ت اﻟﺪاﺧﻠﻴ ﺔ
داﺧﻞ اﻟﻔﺼﻞﻳﻤﻜﻨﻨﺎ أن ﻧﻌﻠﻦ ﻋﻦ أي ﻋﺪد ﻣﻦ اﻟﻄ
| ﺘﺎج
اﻧ
ﻣﺸﻤ ﺲ.. ﺒﺎ
ﻣﺮﺣ
...ﺘﺤﺪ ث
ﺗ
... ﺘﻔﻜﻴﺮ
اﻟ
26
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺟﻤﻊ اﻟﻘﻤﺎﻣ ﺔ
ﺛﻨﺎء إﻧﺸﺎء ﻛﺎﺋﻦ ،وﻟﻜﻨﻪ
ﺜﻴ ﺮًا أ
ﺒﺮﻣﺞ ﻛ
ﺘﻢ اﻟﻤ ً
وﻋﺎدة ﻣﺎﻳﻬ ﺒﺮﻣﺞ ﻣ ﺴﺆوﻻ ً ﻋﻦ ﻛﻞ ﻣﻦ إﻧﺸﺎء اﻟﻜﺎﺋﻨﺎ ت و
ﺗﺪﻣﻴﺮ ﻫﺎ ، ﺜﻞ C ++ ،ﻳﻜﻮن اﻟﻤ
ﻓ ﻲ اﻟﻠﻐﺎ ت اﻟﻘﺪﻳﻤ ﺔ ﻣ
ﺑﺄﺷﻴﺎء ﻋﺪﻳﻤ ﺔ اﻟﻔﺎﺋﺪة ﻣﻤﺎﻳﺆدي إﱃ ﻣﺸﺎﻛﻞ ﻓ ﻲ اﻟﺬاﻛﺮةﺒ ﺐ nEglectance ،ﻳﻤﻜﻦ ﻣﻞء اﻟﺬاﻛﺮة اﻹﺟﻤﺎﻟﻴ ﺔ
ﺑﺴﺘﺨﻠﺺ ﻣﻦﺗﺪﻣﻴﺮ اﻟﻜﺎﺋﻨﺎ ت ﻋﺪﻳﻤ ﺔ اﻟﻔﺎﺋﺪة.
ﻳ
ﺒﻴﻖ اﻟﻜﻠ ﻲ ﻣﻊ ﺧﻄﺄ ﻧﻔﺎد اﻟﺬاﻛﺮة.
ﺘﻄوﺳﻮفﻳﻨﺨﻔﺾ اﻟ
ﺑﺸﻜﻞ ﺻﺮﻳﺢ
ﺘﻌﻄﻴﻞ GC
)( 2) gc.disableﻟ
ﺑﺸﻜﻞ ﺻﺮﻳﺢ
ﺘﻤﻜﻴﻦ GC
)( 3) gc.enableﻟ
ﺘﺎج |
اﻧ
ﺣﻘﻴﻘ ﻲ
ﺧﻄﺄ ﺷﻨﻴﻊ
ﺣﻘﻴﻘ ﻲ
اﻟﻤﺪﻣﺮا ت:
ﺘﺪﻣﻴﺮ ﻃﺮﻳﻘ ﺔ ﺧﺎﺻ ﺔ وﻳﺠ ﺐ أنﻳﻜﻮن اﻻﺳﻢ ____del
اﻟ
ﺘﺪﻣﻴﺮ
ﺘﺪﻋﺎء أداة اﻟ
ﺑﺎﺳﺋﻤﺎ
ﺑﺮﻧﺎﻣﺞ Garbage Collectorدا ًﺒﻞﺗﺪﻣﻴﺮ ﻛﺎﺋﻦ ،ﻳﻘﻮم
ﻗ
ﺛﻴﻖ ،إﻟﺦ(.
ﺒﻴﺎﻧﺎ ت اﻟﻮ
ﺗﺼﺎل ﻗﺎﻋﺪة اﻟ
ﺜﻞ ا
ﺘﻨﻈﻴﻒ )أﻧﺸﻄ ﺔ إﻟﻐﺎءﺗﺨﺼﻴﺺ اﻟﻤﻮارد ﻣ
أﻧﺸﻄ ﺔ اﻟ
ﺘﺪﻣﻴﺮ
ﺑﺎﻟﺗﻠﻘﺎﺋ ًﻴﺎ
ﺑﺮﻧﺎﻣﺞ Garbage Collectorﺘﺪﻣﻴﺮ ،ﻳﻘﻮم
ﺘﻤﺎلﺗﻨﻔﻴﺬ اﻟ
ﺑﻤﺠﺮد اﻛ
ﻫﺬا اﻟﻜﺎﺋﻦ.
ﺘﻨﻈﻴﻒ.
ﺑﺄﻧﺸﻄ ﺔ اﻟﺘﺪﻣﻴﺮ ﻟﻴ ﺴ ﺖﺗﺪﻣﻴﺮ اﻷﺷﻴﺎء وإﻧﻤﺎ ﻫ ﻲ ﻓﻘﻂ اﻟﻘﻴﺎم
ﻣﻠﺤﻮﻇ ﺔ :وﻇﻴﻔ ﺔ اﻟ
ﺒﺎر اﻟﻔﺌ ﺔ Initialization ...") 5) def __del __ (self): 6) print ("Fulfilling Last Wish :
ﺘﺘﻴﺮاد )2اﺧ
)1وﻗ ﺖ اﻻﺳ
ﺒﺎر = () 9) t1ﻻ ﺷ ﻲء )"
ﺘﺘﻨﻈﻴﻒ ") 7) 8) t1 = ...اﺧ
3) def __init __ (self): 4) print ("Objectوأداء أﻧﺸﻄ ﺔ اﻟ
10) time.sleep (5) 11) print (" End of application
ﺘﺎج |
اﻧ
ﺗﻬﻴﺌ ﺔ اﻟﻜﺎﺋﻦ ...
ﺘﻨﻈﻴﻒ ...
ﺒﺎ ت وأداء أﻧﺸﻄ ﺔ اﻟ
ﺑﺂﺧﺮ اﻟﺮﻏاﻟﻮﻓﺎء
ﺒﻴﻖ
ﺘﻄﻧﻬﺎﻳ ﺔ اﻟ
ﺜﺎل ،إذا ﻛﺎن اﻟﻌﺪد اﻟﻤﺮﺟﻌ ﻲ ﺻﻔ ﺮًا ، ﺘﻐﻴﺮ ﻣﺮﺟﻌ ﻲ ،ﻓﺈﻧﻪﻳﻜﻮن ﻣﺆ ﻫ ﻼ ً ﻟـ GCﻓﻘﻂ .ﻋﲆﺳ
ﺒﻴﻞ اﻟﻤ ﺘﻮي ﻋﲆ أي ﻣ
ﻣﻼﺣﻈ ﺔ :إذا ﻛﺎن اﻟﻜﺎﺋﻦ ﻻﻳﺤ
ﺬﻳﻜﻮن اﻟﻌﻨﺼﺮ اﻟﻮﺣﻴﺪ اﻟﻤﺆ ﻫﻞ ﻟﻠﺤﺼﻮل ﻋﲆ GC.
ﻓﻌﻨﺪﺋ ٍ
ﺜﺎل:
ﻣ
ﺘﺎج |
اﻧ
اﻟﻤﻨﺸ ﺊ ...
ﺗﻨﻔﻴﺬ ُ
اﻟﻤﻨﺸ ﺊ ...
ﺗﻨﻔﻴﺬ ُ
اﻟﻤﻨﺸ ﺊ ...
ﺗﻨﻔﻴﺬ ُ
ﺗﻨﻔﻴﺬ اﻟﻤﺪﻣﺮ ...
ﺗﻨﻔﻴﺬ اﻟﻤﺪﻣﺮ ...
ﺗﻨﻔﻴﺬ اﻟﻤﺪﻣﺮ ...
ﺒﻴﻖ
ﺘﻄﻧﻬﺎﻳ ﺔ اﻟ
اﻹﺧﺮاج 5
ﺘﺮاﺿ ﻲ واﺣﺪ.
ﺘﻐﻴﺮ ﻣﺮﺟﻌ ﻲ اﻓ
ﺑﻤﺘﻔﻆ Pythonداﺧﻠ ًﻴﺎ
ﻣﻼﺣﻈ ﺔ :ﻟﻜﻞ ﻛﺎﺋﻦ ،ﺗﺤ
29
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺑ ﺲ ُ
أوو
اﻟﺠﺰء 2
30
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺟﺪول أﻋﻤﺎل
اﻟﻤﻴﺮا ث _
ﻟﻪ ﻋﻼﻗ ﺔ
IS-Aاﻟﻌﻼﻗ ﺔ
ﺑﻞ HAS-A
ﻋﻼﻗ ﺔ IS-Aﻣﻘﺎ
ﺘﺠﻤﻴﻊ
ﺑﻞ اﻟ
ﺘﺮﻛﻴ ﺐ ﻣﻘﺎ
اﻟ
أﻧﻮاع اﻟﻤﻴﺮا ث
ﺛ ﺔ واﺣﺪة
ورا
ﺘﻮﻳﺎ ت
ﺘﻌﺪدة اﻟﻤ ﺴ
ﺛﺔ ﻣ
•اﻟﻮرا
•اﻟﻤﻴﺮا ث اﻟﻬﺮﻣ ﻲ
ﺗﻌﺪد اﻟﻤﻴﺮا ث
ﺛ ﺔ اﻟﻬﺠﻴﻨ ﺔ
•اﻟﻮرا
ﺛ ﺔ اﻟﺪورﻳ ﺔ
•اﻟﻮرا
ﺘﺨﺪام اﻟﻜﻮد.
ﺑﻠﻴ ﺔ إﻋﺎدة اﺳ
ﺋﻴ ﺴﻴ ﺔ ﻟﻌﻼﻗ ﺔ Has-Aﻫ ﻲ ﻗﺎ
اﻟﻤﻴﺰة اﻟﺮ
ﺒ ﻲ -1:
ﺘﺠﺮﻳ
ﺒﺮﻧﺎﻣﺞ اﻟ
اﻟ
31
ﺜﺎﻧﻴ ﺔ دورﺟﺎﺳﻮﻓ ﺖ ،رﻗﻢ 202 ، 2اﻟ
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
("ﺑﺎﻟﻤﺤﺮك
11) print ('Car using Engine اﻟﺨﺎﺻ ﺔ
Class )"اﻟﻮﻇﺎﺋﻒ
Functional') 12)print
:ﻓﺌ ﺔ اﻟ ﺴﻴﺎرة6) 7)
ﺒﺎﻋ ﺔ
ﻃ8) def __init __ (self): 9) self.engine = Engine () 10) def m2 (self):
= جm1 () 15) .ﺗ ﻲ
ﻣﺤﺮك ذا14) ( ب.ﺗ ﻲ
ﺒﺎﻋ ﺔ )ﻣﺤﺮك ذا
ﻃ13) ( اﻟﻤﺤﺮك أ.ﺗ ﻲ
)ذا
2 () )(ﺳﻢ16) ﺳﻴﺎرة
:ﺘﺎج
اﻧ
ﺘﺨﺪم وﻇﻴﻔ ﺔ ﻓﺌ ﺔ اﻟﻤﺤﺮك
ﺘ ﻲﺗ ﺴ
اﻟ ﺴﻴﺎرة اﻟ
10
20
ﺑﺎﻟﻤﺤﺮكاﻟﻮﻇﺎﺋﻒ اﻟﺨﺎﺻ ﺔ
-2: ﺒ ﻲ
ﺘﺠﺮﻳ
ﺒﺮﻧﺎﻣﺞ اﻟ
اﻟ
('Durga'،
32
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج:
اﻧ
اﺳﻢ اﻟﻤﻮﻇﻒ :دورﺟﺎ
رﻗﻢ اﻟﻤﻮﻇﻒ10000 :
ﻣﻌﻠﻮﻣﺎ تﺳﻴﺎرة اﻟﻤﻮﻇﻒ:
اﺳﻢ اﻟ ﺴﻴﺎرة :إﻳﻨﻮﻓﺎ ،اﻟﻤﻮدﻳﻞ2.5 :ﻓﻮﻟ ﺖ ،واﻟﻠﻮن :رﻣﺎدي
ﺛﻢﻳﻤﻜﻦ ﻟﻔﺌ ﺔ اﻟﻤﻮﻇﻒ اﻟﻮﺻﻮل إﱃ ﺟﻤﻴﻊ أﻋﻀﺎء ﻓﺌ ﺔ اﻟ ﺴﻴﺎرة.ﻓ ﻲ ﻓﺌ ﺔ اﻟﻤﻮﻇﻒ أﻋﻼه ،ﻳﻤﻜﻦ ﻟﻤﺮﺟﻊ Has-A Carوﻣﻦ
ﺒ ﻲ -3:
ﺘﺠﺮﻳ
ﺒﺮﻧﺎﻣﺞ اﻟ
اﻟ
ﺗ ﻲ(print :
)8اﻟﻔﺌ ﺔ __ )Y: 9) c = 30 10) def __initذا
)")11) self.d = 40 12) def m2 (self): 13ﻃﺮﻳﻘ ﺔ m2
ﻣﻦ ﻓﺌ ﺔ )Y") 14
ﺘﺎج:
اﻧ
10
20
ﻃﺮﻳﻘ ﺔ m1ﻣﻦ ﻓﺌ ﺔ X
30
40
ﻃﺮﻳﻘ ﺔ m2ﻣﻦ ﺻﻨﻒ
ﻃﺮﻳﻘ ﺔ m3ﻣﻦ ﺻﻨﻒ
33
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج:
اﻧ
10
10
ﺜﻴﻞ اﻷﺻﻞ
ﻃﺮﻳﻘ ﺔ اﻟﻤ
ﻃﺮﻳﻘ ﺔ ﻓﺌ ﺔ اﻟﻮاﻟﺪﻳﻦ
ﺑﺖ
ﺜﺎ
ﻃﺮﻳﻘ ﺔ اﻷﺻﻞ اﻟ
34
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج:
اﻧ
ﻃﺮﻳﻘ ﺔ ﻓﺌ ﺔ اﻟﻮاﻟﺪﻳﻦ
ﻃﺮﻳﻘ ﺔ ﻓﺌ ﺔ اﻟﻄﻔﻞ
ﺋﻴ ﺴ ﻲ وﻃﺮق
ﺘﺪﻋﺎء ﻛﻞ ﻣﻦ ﻃﺮق اﻟﻔﺼﻞ اﻟﺮ
ﺘﺎﻟ ﻲ ﻓ ﻲ ﻣﺮﺟﻊ ﻓﺌ ﺔ اﻟﻄﻔﻞ ،ﻳﻤﻜﻨﻨﺎ اﺳ
ﺑﺎﻟ
ﺘﺎﺣ ﺔﺗﻠﻘﺎﺋ ًﻴﺎ ﻟﻠﻔﺌ ﺔ اﻟﻔﺮﻋﻴ ﺔ ،و
ﻣﺎ ﻫ ﻲ اﻟﻄﺮق اﻟﻤﻮﺟﻮدة ﻓ ﻲ ﻓﺌ ﺔ اﻟﻮاﻟﺪﻳﻦ ﻣ
ﺛﻠ ﺔ أﻳﻀﺎ
ﺘﻐﻴﺮا ت ﻣﻤﺎ
ﻣ
35
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺒ ﻲ ﻟﻠﻤﻴﺮا ث:
ﺑﺮﻧﺎﻣﺞﺗﺠﺮﻳ
)1ﻓﺌ ﺔ اﻟﺸﺨﺺ)2) def __init __ :اﻟﺬا ت ،اﻻﺳﻢ ،اﻟﻌﻤﺮ(Biryani and Drink Beer' ' ) 7) 8) :
3) self.name = name 4) self.age = age 5) def eatndrink (self): 6) print ('Eatﻓﺌ ﺔ اﻟﻤﻮﻇﻒ
))eno ، esal): 11اﻻﺳﻢ ،
10) self.eno
__super () .
= eno
)init 12
__ ،self.
esalاﻟﻌﻤﺮ
ﺳﻢ ،esalاﻻ=
) 13ت ،
))14اﻟﺬا
9) def
def__init
work__(self):
)اﻟﺸﺨﺺ(:
اﻟﻌﻤﺮ(
("Employee Age:"،
20) print )self .age
اﻟﻤﻮﻇﻒ": 19) def
)16رﻗﻢ print ﺒﺮدة"( "(
empinfo ﺒﻴﺮة اﻟﻤ
(self): printب اﻟ
)17 ﺜﻞ ﺷﺮ ﺗﻤﺎﻣﺎ ﻣﺳﻬﻞ ﺟﺪًا
("Employee
ً 15) print
Name:"، )("Coding18
)self.name Python
print
ﺗ ﺐ اﻟﻤﻮﻇﻒ self.esal) 21) 22) e = ":اﻟﻤﻮﻇﻒ )( 23 ) e.eatndrink () 24) e.work () 25) e.empinfo
)")self.enoرا
)('Durga'، 48، 100، 10000
ﺘﺎج:
اﻧ
ﺒﻴﺮة
ﺒﺮﻳﺎﻧ ﻲ واﺷﺮ ب اﻟ
أﻛﻞ اﻟ
ﺜﻠﺠ ﺔ
ﺒﻴﺮة اﻟﻤ ﻳﻌﺪﺗﺮﻣﻴﺰ Pythonأﻣ ﺮًاﺳﻬ ﻼ ً ﻟﻠﻐﺎﻳ ﺔ ﻣ
ﺜﻞ ﺷﺮ ب اﻟ
اﺳﻢ اﻟﻤﻮﻇﻒ :دورﺟﺎ
ﻋﻤﺮ اﻟﻤﻮﻇﻒ48 :
رﻗﻢ اﻟﻤﻮﻇﻒ100 :
ﺗ ﺐ اﻟﻤﻮﻇﻒ10000 :
را
ﺑﻞ HAS-A:
ﻋﻼﻗ ﺔ IS-Aﻣﻘﺎ
ﺑﺬﻟﻚﺒﻌﺾ اﻟﻮﻇﺎﺋﻒ اﻹﺿﺎﻓﻴ ﺔ ،ﻓﺈﻧﻨﺎ ﻧﻘﻮم
ﺑ•إذا أردﻧﺎﺗﻮﺳﻴﻊ اﻟﻮﻇﺎﺋﻒ اﻟﺤﺎﻟﻴ ﺔ
ﻳﺠ ﺐ أنﺗﺬ ﻫ ﺐ ﻟﻌﻼﻗ ﺔ IS-A.
ﺘﺎر ﻋﻼﻗ ﺔ HAS-A.
ﺘﺨﺪام اﻟﻮﻇﺎﺋﻒ اﻟﺤﺎﻟﻴ ﺔ ،ﻓﻌﻠﻴﻨﺎ أن ﻧﺨ
ﺘﻤﺪﻳﺪ وﻋﻠﻴﻨﺎ ﻓﻘﻂ اﺳ
•إذا ﻟﻢ ﻧﺮﻏ ﺐ ﻓ ﻲ اﻟ
36
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺷﺨﺺ
ﻫﻮ
أHAS -
ﻣﻮﻇﻒ ﺳﻴﺎرة
ﻧﻤﻮذجself.model
self.color = color
37
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج:
اﻧ
ﺒﻴﺮة
ﺒﺮﻳﺎﻧ ﻲ واﺷﺮ ب اﻟ
أﻛﻞ اﻟ
ﺜﻠﺠ ﺔ
ﺒﻴﺮة اﻟﻤ ﻳﻌﺪﺗﺮﻣﻴﺰ Pythonأﻣ ﺮًاﺳﻬ ﻼ ً ﻟﻠﻐﺎﻳ ﺔ ﻣ
ﺜﻞ ﺷﺮ ب اﻟ
اﺳﻢ اﻟﻤﻮﻇﻒ :دورﺟﺎ
ﻋﻤﺮ اﻟﻤﻮﻇﻒ48 :
رﻗﻢ اﻟﻤﻮﻇﻒ100 :
ﺗ ﺐ اﻟﻤﻮﻇﻒ10000 :
را
ﻣﻌﻠﻮﻣﺎ تﺳﻴﺎرة اﻟﻤﻮﻇﻒ:
اﺳﻢ اﻟ ﺴﻴﺎرة :إﻳﻨﻮﻓﺎ
اﻟﻤﻮدﻳﻞ2.5 :ﻓﻮﻟ ﺖ
اﻟﻠﻮن :رﻣﺎدي
ﺘﺠﻤﻴﻊ:
ﺑﻞ اﻟ
ﺘﺮﻛﻴ ﺐ ﻣﻘﺎ
اﻟ
ﺒﻴﺮ:
ﺗﻌ
ﺒﺎط اﻟﻘﻮي
ﺗﺑﻘﻮة وأن ﻫﺬا اﻻرﺒﻄ ﺔ
ﺗﺘﻮاة ﻣﺮ
ﺘﻮي ﻣﻮﺟﻮد ،ﻓﺈن اﻟﺤﺎوﻳ ﺔ واﻟﻜﺎﺋﻨﺎ ت اﻟﻤﺤ
ﺑﺪون ﻛﺎﺋﻦ اﻟﺤﺎوﻳ ﺔ اﻟﻤﻮﺟﻮد إذا ﻟﻢﺗﻜﻦ ﻫﻨﺎك ﻓﺮﺻ ﺔ ﻟﻮﺟﻮد ﻛﺎﺋﻦ ﻣﺤ
ﻟﻴ ﺲﺳﻮىﺗﻜﻮﻳﻦ.
ﻛﺎﺋﻦ اﻟﺠﺎﻣﻌ ﺔ
)ﻛﺎﺋﻦ اﻟﺤﺎوﻳ ﺔ(
38
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺗﺠﻤﻴﻊ:
ﺒﺎط
ﺗﺑﺸﻜﻞ ﺿﻌﻴﻒ وأن ﻫﺬا اﻻرﺒﻄ ﺔ
ﺗﺘﻮاة ﻣﺮ
ﺘﻮي ﻣﻮﺟﻮد ،ﻓﺈن اﻟﺤﺎوﻳ ﺔ واﻟﻜﺎﺋﻨﺎ ت اﻟﻤﺤ
ﺑﺪون ﻛﺎﺋﻦ ﺣﺎوﻳ ﺔ ﻣﻮﺟﻮد إذا ﻛﺎﻧ ﺖ ﻫﻨﺎك ﻓﺮﺻ ﺔ ﻟﻮﺟﻮد ﻛﺎﺋﻦ ﻣﺤ
اﻟﻀﻌﻴﻒ ﻟﻴ ﺲﺳﻮىﺗﺠﻤﻴﻊ.
ﺒﺮوﻓﻴ ﺴﻮر
ﺛﻢ ﻓﺈن ﻛﺎﺋﻨﺎ ت اﻟﻘ ﺴﻢ واﻟﺘﺎذ ﻣﻮﺟﻮد .وﻣﻦ
ﺑﺪون اﻟﻘ ﺴﻢ اﻟﺤﺎﻟ ﻲ ،ﻗﺪﺗﻜﻮن ﻫﻨﺎك ﻓﺮﺻ ﺔﻷﺳﺗﺬة.
ﺘﻮي اﻟﻘ ﺴﻢ ﻋﲆ ﻋﺪة أﺳﺎ
ﺜﺎل:ﻳﺤ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺘﺠﻤﻴﻊ.
ﺑﺸﻜﻞ ﺿﻌﻴﻒ ،و ﻫﺬا ﻟﻴ ﺲﺳﻮى اﻟﺒﻄ ﺔ
ﺗﻣﺮ
x
x
: :
: : ﻛﺎﺋﻦ اﻷﺳ
ﺘﺎذ
:
)ﻛﺎﺋﻦ ﻣﻀﻤﻦ(
:
x
ﺘﺮﻣﻴﺰ:
ﺜﺎل اﻟ
ﻣ
ﺘﺎج:
اﻧ
دورﺟﺎﺳﻮﻓ ﺖ
دورﺟﺎ
ﺑﻘﻮة و ﻫﻮ ﻟﻴ ﺲﺳﻮىﺗﻜﻮﻳﻦ.ﺒﻄﺎن
ﺗﺛﻢ ﻓﺈن ﻛﺎﺋﻦ اﻟﻄﺎﻟ ﺐ واﺳﻤﻪ ﻣﺮﺑﺪون ﻛﺎﺋﻦ اﻟﻄﺎﻟ ﺐ اﻟﻤﻮﺟﻮد ﻻﺗﻮﺟﺪ ﻓﺮﺻ ﺔ ﻟﻮﺟﻮد اﺳﻤﻪ .وﻣﻦﺜﺎل أﻋﻼه
ﻓ ﻲ اﻟﻤ
39
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳاﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺗﻤ ﺔ:
ﺧﺎ
ﺘﺠﻤﻴﻊ.
ﺘ ﺔ واﻟﻜﺎﺋﻦ ﻫ ﻲ اﻟ
ﺑﺜﺎ
ﺘﻐﻴﺮا ت اﻟ
ﺑﻴﻦ اﻟﻤﺘﺮﻛﻴ ﺐ ﺣﻴ ﺚﺗﻜﻮن اﻟﻌﻼﻗ ﺔ
ﺜﻴﻠﻪ ﻫ ﻲ اﻟ
ﺘﻐﻴﺮا ت ﻣ
ﺑﻴﻦ اﻟﻜﺎﺋﻦ وﻣﺋﻤﺎ ﻣﺎﺗﻜﻮن اﻟﻌﻼﻗ ﺔ
دا ً
ﺘﻢﺗﻨﻔﻴﺬ
ﺘﻮي ﻋﲆُﻣﻨﺸ ﺊ ،ﻓ ﺴﻴ
ﺘﻢﺗﻨﻔﻴﺬُﻣﻨﺸ ﺊ اﻟﻔﺌ ﺔ اﻟﻔﺮﻋﻴ ﺔ .إذا ﻛﺎﻧ ﺖ اﻟﻔﺌ ﺔ اﻟﻔﺮﻋﻴ ﺔ ﻻﺗﺤ
ﺑﺈﻧﺸﺎء ﻛﺎﺋﻦ ﻓﺌ ﺔ ﻓﺮﻋﻴ ﺔ ،ﺳﻴﻣﻼﺣﻈ ﺔ :ﻋﻨﺪﻣﺎ ﻧﻘﻮم
ﺘﻢ إﻧﺸﺎء اﻟﻜﺎﺋﻦ اﻷﺻﻞ.
ُﻣﻨﺸ ﺊ اﻟﻔﺌ ﺔ اﻷﺻﻞ ،وﻟﻜﻦ ﻟﻦﻳ
ﺘﺎج:
اﻧ
6207088
6207088
)1ﻓﺌ ﺔ اﻟﺸﺨﺺ)2) def __init __ :اﻟﺬا ت ،اﻻﺳﻢ ،اﻟﻌﻤﺮ(name 4) self.age = age 5) class Student (Person): 6) def __init __ :
= )3) self.nameاﻟﺬا ت ،اﻻﺳﻢ ،اﻟﻌﻤﺮ rollno ، ،اﻟﻌﻼﻣﺎ ت()7) super () .__ init __ :اﻻﺳﻢ ،اﻟﻌﻤﺮ( )9) 10) def __str __ (self): 11
ﺗﻨ ﺴﻴﻖ (self.name، self.age، sel
8) self.rollno = rollnoإرﺟﺎع 'Name = {} \ nAge = {} \ nRollno = {} \ nاﻟﻌﻼﻣﺎ ت = {} '.
ﻋﻼﻣﺎ ت = self.marksﻋﻼﻣﺎ ت
ﺘﺎج:
اﻧ
اﻻﺳﻢ =دورﺟﺎ
اﻟﻌﻤﺮ = 48
Rollno = 101
ﻋﻼﻣﺎ ت = 90
ﺑﺈﻧﺸﺎء ﻛﺎﺋﻦ ﻓﺌ ﺔ ﻓﺮﻋ ﻲ ،ﺗﻢﺗﻨﻔﻴﺬ ﻛﻞ ﻣﻦُﻣﻨﺸﺌ ﻲ اﻟﻔﺌ ﺔ اﻷ ب واﻷمﻷداءﺗﻬﻴﺌ ﺔ اﻟﻜﺎﺋﻦ اﻟﻔﺮﻋ ﻲ.ﺜﺎل أﻋﻼه ،ﻋﻨﺪﻣﺎ ﻧﻘﻮم
ﻣﻼﺣﻈ ﺔ :ﻓ ﻲ اﻟﻤ
40
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
)1اﻟﻤﻴﺮا ث اﻟﻮﺣﻴﺪ:
ﺑﺎﺳﻢ اﻟﻤﻴﺮا ث اﻟﻔﺮدي.ﺛ ﺔ اﻟﺨﺼﺎﺋﺺ ﻣﻦ ﻓﺌ ﺔ إﱃ ﻓﺌ ﺔ أﺧﺮى
ُﻌﺮف ﻣﻔﻬﻮم ورا
ﻳ
ﺘﺎج:
اﻧ
ﻃﺮﻳﻘ ﺔ اﻟﻮاﻟﺪﻳﻦ
ﻃﺮﻳﻘ ﺔ اﻟﻄﻔﻞ
ص
اﻟﻤﻴﺮا ث اﻟﻮاﺣﺪ
ج
ﺘﻮﻳﺎ ت:
ﺘﻌﺪدة اﻟﻤ ﺴ
ﺛﺔ ﻣ
)2اﻟﻮرا
ﺘﻮﻳﺎ ت.
ﺘﻌﺪدة اﻟﻤ ﺴ
ﺛﺔ ﻣ
ﺑﺎﺳﻢ اﻟﻮراﺑﻤﻔﻬﻮم واﺣﺪﺗﻠﻮ اﻵﺧﺮﺘﻌﺪدة إﱃ ﻓﺌ ﺔ واﺣﺪة
ﺛ ﺔ اﻟﺨﺼﺎﺋﺺ ﻣﻦ ﻓﺌﺎ ت ﻣ
ُﻌﺮف ﻣﻔﻬﻮم ورا
ﻳ
)10ج )( = CC
41
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج:
اﻧ
ﻃﺮﻳﻘ ﺔ اﻟﻮاﻟﺪﻳﻦ
ﻃﺮﻳﻘ ﺔ اﻟﻄﻔﻞ
ﻃﺮﻳﻘ ﺔ اﻟﻄﻔﻞ اﻟﻔﺮﻋﻴ ﺔ
ص
ج ﺘﻮﻳﺎ ت
ﺘﻌﺪدة اﻟﻤ ﺴ
ﺛﺔ ﻣ
اﻟﻮرا
ﻧ ﺴﺨ ﺔ
ص
C1 C2
اﻟﻬﺮﻣﻴ ﺔ
ﻣﻴﺮا ث
:ﺘﺎج
اﻧ
ﻃﺮﻳﻘ ﺔ اﻟﻮاﻟﺪﻳﻦ
1 ﻃﺮﻳﻘ ﺔ اﻟﻄﻔﻞ
ﻃﺮﻳﻘ ﺔ اﻟﻮاﻟﺪﻳﻦ
Child2 ﻃﺮﻳﻘ ﺔ
:ﺗﻌﺪد اﻟﻤﻴﺮا ث
4)
.ﺘﻌﺪد
ﺑﺎﺳﻢ اﻟﻤﻴﺮا ث اﻟﻤﺘﻌﺪدة إﱃ ﻓﺌ ﺔ واﺣﺪة ﻓ ﻲ وﻗ ﺖ واﺣﺪ
ﺛ ﺔ اﻟﺨﺼﺎﺋﺺ ﻣﻦ ﻓﺌﺎ ت ﻣ
ُﻌﺮف ﻣﻔﻬﻮم ورا
ﻳ
P1 P2
ج
ﻋﺪﻳﺪ
ﻣﻴﺮا ث
43
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج:
اﻧ
ﻃﺮﻳﻘ ﺔ Parent1
ﻃﺮﻳﻘ ﺔ Parent2
ﻃﺮﻳﻘ ﺔ Child2
ﺘﺎج:
اﻧ
ﻃﺮﻳﻘ ﺔ Parent1
ﻃﺮﻳﻘ ﺔ اﻟﻄﻔﻞ
44
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺛ ﺔ اﻟﻬﺠﻴﻨ ﺔ:
)5اﻟﻮرا
ﺛ ﺔ اﻟﻬﺠﻴﻨ ﺔ.
ﺑﺎﺳﻢ اﻟﻮراﺘ ﺴﻠ ﺴﻞ اﻟﻬﺮﻣ ﻲ
ﺘﻌﺪد واﻟ
ﺘﻮﻳﺎ ت واﻟﻤ
ﺘﻌﺪد اﻟﻤ ﺴ
ﺑﻴﻦ اﻟﻤﻴﺮا ث اﻟﻔﺮدي واﻟﻤُﻌﺮف اﻟﺠﻤﻊ
ﻳ
د
ه
F
ﺟﻲ ح
)6اﻟﻤﻴﺮا ث اﻟﺪوري:
ﺒﻊ ﻓﻬﻮ ﻏﻴﺮ ﻣﻄﻠﻮ ب
ﺑﺎﻟﻄﺜﻮن اﻟﻤﻴﺮا ث اﻟﺪوري
ﺑﺎﻳﺑﻄﺮﻳﻘ ﺔ دورﻳ ﺔ اﺳﻢ اﻟﻤﻴﺮا ث اﻟﺪوري ،وﻟﻦﻳﺪﻋﻢﺛ ﺔ اﻟﺨﺼﺎﺋﺺ ﻣﻦ ﻓﺌ ﺔ إﱃ ﻓﺌ ﺔ أﺧﺮى
ُﻄﻠﻖ ﻋﲆ ﻣﻔﻬﻮم ورا
ﻳ
ﺣ ًﻘﺎ.
ﺘﻴﺎز
ﺜﺎل - 1:اﻟﻔﺌ ﺔ أ )أ( :اﺟ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ّف
NameError:اﻻﺳﻢ ""Aﻏﻴﺮ ﻣﻌ ﺮ
أ
ﺜﺎل - 2:
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺘﻴﺎز
)1اﻟﻔﺌ ﺔ أ ) ب(2) :اﺟ
ﻳﻤﺮ
أ
ب
اﻟﺨﻮارزﻣﻴ ﺔ.
• MRO (X) = X +دﻣﺞ (MRO (P1) ، MRO (P2) ، ... ،ﻗﺎﺋﻤ ﺔ اﻟﻮاﻟﺪﻳﻦ(
ﺑ ﺔ ذﻳﻞ.
ﺜﺎ
ﺑﻤﺒﻘ ﻲ
ﺘﺒﺮ اﻟﻤ
ﺘﺋﻴ ﺴ ًﻴﺎ وﻳﻌ
ﺒﺮ C1ﻋﻨﺼ ﺮًا ر
ﺘ•ﻳﻌ
ﻛﻴﻒﺗﺠﺪ دﻣﺞ:
•ﺧﺬ رأس اﻟﻘﺎﺋﻤ ﺔ اﻷوﱃ
•إذا ﻛﺎن اﻟﺮأس ﻣﻮﺟﻮدًا ﻓ ﻲ اﻟﺠﺰء اﻟﺨﻠﻔ ﻲ ﻣﻦ أي ﻗﺎﺋﻤ ﺔ أﺧﺮى ،ﻓﻔﻜﺮ ﻓ ﻲ ﻋﻨﺼﺮ اﻟﺮأس
46
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
أ
ج
ب
د
test.py
:ﺘﺎج
اﻧ
[<class '__main __. A'>، <class 'object'>]
[<class '__main __. B'>، <class '__main __. A'>، <class 'object'>]
[<class '__main __. C'>، <class '__main __. A'>، <class 'object'>]
[<class '__main __. D'> ، <class '__main __. B'> ، <class '__main __. C'> ، <class '__main __. A'> ، <class 'object'>]
47
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﻫﺪف
ج
أ ب
X ص
ﻣﺮو ) ب( = ب ،ﻛﺎﺋﻦ
ﺑﻪﻣﺮو )ج( =ج ،ﻣﻔﻌﻮل
mro (X) = X ، A ، B ،ﻛﺎﺋﻦ
mro (Y) = Y ، B ، C ،ﻛﺎﺋﻦ
mro (P) = P ، X ، A ، Y ، B ، C ،ﻛﺎﺋﻦ
اﻟﺼﻴﻐ ﺔMRO (X) = X + :دﻣﺞ (MRO (P1) ، MRO (P2) ، ... ،ﻗﺎﺋﻤ ﺔ اﻟﻮاﻟﺪﻳﻦ(
mro (p) = P +دﻣﺞ )(mro (X) ، mro (Y) ، mro (C) ، XYC
= P +دﻣﺞ )(XABO، YBCO، CO، XYC
= P + X +دﻣﺞ )(ABO، YBCO، CO، YC
= P + X + A +دﻣﺞ )(BO، YBCO، CO، YC
= P + X + A + Y +دﻣﺞ )(BO ، BCO ، CO ، C
= P + X + A + Y + B +دﻣﺞ )(O ، CO ، CO ، C
= P + X + A + Y + B + C +دﻣﺞ )(O ، O ، O
=P+X+A+Y+B+C+O
test.py
:ﺘﺎج
اﻧ
[<class '__main __. A'>، <class 'object'>]
[<class '__main __. X'> ، <class '__main __. A'> ، <class '__main __. B'> ، <class 'object'>]
[<class '__main __. Y'> ، <class '__main __. B'> ، <class '__main __. C'> ، <class 'object'>]
<class '__main __. X'> ، <class '__main __. A'> ، <class '__main __. Y'> ، <class '__main __. B'> ،
[<class '__main __. P'> ،
<class '__main __. C'>، <class 'object'>]
test.py
P ﻃﺮﻳﻘ ﺔ ﻓﺌ ﺔ:اﻹﺧﺮاج
PXAYBCO :ﺘﺎﻟ ﻲ
ﺗﻴ ﺐ اﻟ
ﺘﺮﺑﺎﻟﺣﻞ اﻷﺳﻠﻮ ب
49
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﻫﺪف
ب
ج
أ
test.py
ﺘﻴﺎز )2اﻟﻔﺌ ﺔ
)1اﻟﻔﺌ ﺔ D:اﺟ
ﺘﻴﺎز
ﺘﻴﺎز )3اﻟﻔﺌ ﺔ F:اﺟ
E:اﺟ
ﺘﻴﺎز
)4اﻟﻔﺌ ﺔ B (D ، E):اﺟ
ﺘﻴﺎز
)5اﻟﻔﺌ ﺔ C (D ، F):اﺟ
ﺘﻴﺎز
)6اﻟﻔﺌ ﺔ A (B ، C):اﺟ
ﺒﺎﻋ ﺔ )(D.mro ()) 8
)7ﻃ
ﺒﺎﻋ ﺔ ))( (B.mro
ﻃ
50
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
:ﺘﺎج
اﻧ
[<class '__main __. D'>، <class 'object'>]
[<class '__main __. B'> ، <class '__main __. D'> ، <class '__main __. E'> ، <class 'object'>]
[<class '__main __. C'> ، <class '__main __. D'> ، <class '__main __. F'> ، <class 'object'>]
'__main __. A'> ، <class '__main __. B'> ، <class '__main __. C'> ، <class '__main __. D'> ، <class '__main __. E'> ،
[<class
<class '__main __. F'>، <class 'object'>]
:اﻟﻄﺮﻳﻘ ﺔ اﻟﻔﺎﺋﻘ ﺔ
.ﺘﻐﻴﺮا ت واﻟﻄﺮق ﻣﻦ اﻟﻔﺌ ﺔ اﻟﻔﺮﻋﻴ ﺔ
ﺒﻘ ﺔ اﻟﻔﺎﺋﻘ ﺔ واﻟﻤ
ﺘﺪﻋﺎءُﻣﻨﺸﺌﺎ ت اﻟﻄ
ﻫ ﻲ ﻃﺮﻳﻘ ﺔ ﻣﻀﻤﻨ ﺔ ﻣﻔﻴﺪة ﻻﺳsuper ()
(): ﺑﺮ
ﻟﻠ ﺴﻮ-1 ﺒ ﻲ
ﺘﺠﺮﻳ
ﺒﺮﻧﺎﻣﺞ اﻟ
اﻟ
:ﺘﺎج
اﻧ
دورﺟﺎ:اﻻﺳﻢ
22 :اﻟﻌﻤﺮ
101 :رﻗﻢ اﻟﻠﻔ ﺔ
90 :ﻋﻼﻣﺎ ت
51
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
17) self.b = 999 18) 19) 20) 21) 22) 23) 24) c = C () اﻟﻔﺌ ﺔ1)
13) 14) class C (P): 15) a = 888 16) def __init __ (self):
11) def m3 (): 12) print ('Parent static method')
(cls):
('Parent
9) print
example
('Parent
method')
class method')
7) classmethod
10) staticmethod
8) def m2
def __init __ (self): 4) self.b = 10 5) def m1 (self): 6) print
P: 2) a = 10 3)
:ﺘﺎج
اﻧ
10
ﺜﻴﻞ اﻷﺻﻞ
ﻃﺮﻳﻘ ﺔ اﻟﻤ
ﻃﺮﻳﻘ ﺔ ﻓﺌ ﺔ اﻟﻮاﻟﺪﻳﻦ
ﺑﺖ
ﺜﺎ
ﻃﺮﻳﻘ ﺔ اﻷﺻﻞ اﻟ
.ﺑﺎء
ﺑﺎﻟﻌﺪﻳﺪ ﻣﻦ أﻋﻀﺎء ﻓﺌ ﺔ اﻵﺗﺼﺎل
ﻟﻼsuper () ﺘﺨﺪم
ﻧ ﺴ، ﺜﺎل أﻋﻼه
ﻓ ﻲ اﻟﻤ
52
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺗ ﻲ(
)2) A.m1ذا
ﺘﺪﻋ ﻲ ﻃﺮﻳﻘ ﺔ )( A class m1
ﺳﻮفﺗ ﺴ
)'Method
6) print
4)('B
class
class
B (A):
)'Method
5) def 7
m1(self):ﺔ )
)1اﻟﻔﺌ
A: 2) def m1 (self): 3) print ('A classاﻟﻔﺌ ﺔ
(self): 12) print
)'Method ('D class
10) class 'Method
D (C): 11) def) m1
)13
C (B): 8) def m1 (self): 9) print ('C class
ﺗ ﻲ(15) :
اﻟﻔﺌ ﺔ )E (D): 14) def m1ذا
ﺗ ﻲ( )( e = E () 18) e.m1
)A.m1ذا
)16) 17
ﺑﺮ ():
ﺘﻠﻔ ﺔ ﺣﻮلﺳﻮ
ﻧﻘﺎط ﻣﻬﻤ ﺔ ﻣﺨ
ﺘﺨﺪام
ﺘﺨﺪام super () ،إﻟﺰاﻣ ﻲﻳﺠ ﺐ ﻋﻠﻴﻨﺎ اﺳ
ﺑﺎﺳﺜﻴﻞ اﻟﻔﺌ ﺔ اﻷﺻﻠﻴ ﺔ
ﺘﻐﻴﺮا ت ﻣ
ﺑﺎﻟﻮﺻﻮل إﱃ ﻣُﺴﻤﺢ ﻟﻨﺎ
اﻟﺤﺎﻟ ﺔ 1:ﻣﻦ ﻓﺌ ﺔ اﻷﻃﻔﺎل ،ﻻﻳ
اﻟﺬا ت ﻓﻘﻂ.
ﺘﺨﺪام super ().
ﺑﺎﺳﺘ ﺔ ﻟﻠﻔﺌ ﺔ اﻷﺻﻞ
ﺑﺜﺎ
ﺘﻐﻴﺮا ت اﻟ
ﻟﻜﻦﻳﻤﻜﻨﻨﺎ اﻟﻮﺻﻮل إﱃ اﻟﻤ
53
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
(). b) (self.b)
print #invalid#valid
11) c 10)
= C print
() 12) (super
c.m1 ()
8) print (super (). a) #valid 9)
:ﺘﺎج
اﻧ
10
20
"b" "ﻟﻴ ﺲ ﻟﻪﺳﻤ ﺔsuper" اﻟﻜﺎﺋﻦAttributeError:
ﺘ ﺔ وﻃﺮﻳﻘ ﺔ
ﺑﺜﺎ
ﺜﻴﻞ اﻟﻔﺌ ﺔ اﻷﺻﻞ واﻟﻄﺮﻳﻘ ﺔ اﻟ
ﻳﻤﻜﻨﻨﺎ اﻟﻮﺻﻮل إﱃ ﻃﺮﻳﻘ ﺔ ﻣ، ﺜﻴﻞ
ﻣﻦُﻣﻨﺸ ﺊ اﻟﻔﺌ ﺔ اﻟﻔﺮﻋﻴ ﺔ وﻃﺮﻳﻘ ﺔ اﻟﻤ2: اﻟﺤﺎﻟ ﺔ
super () ﺘﺨﺪام
ﺑﺎﺳاﻟﻔﺌ ﺔ
54
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج:
اﻧ
اﻟﻤﻨﺸ ﺊ اﻷﺻﻞ
ﺜﻴﻞ اﻷﺻﻞ
ﻃﺮﻳﻘ ﺔ اﻟﻤ
ﻃﺮﻳﻘ ﺔ ﻓﺌ ﺔ اﻟﻮاﻟﺪﻳﻦ
ﺑﺖ
ﺜﺎ
ﻃﺮﻳﻘ ﺔ اﻷﺻﻞ اﻟ
اﻟﻤﻨﺸ ﺊ اﻷﺻﻞ
ﺜﻴﻞ اﻷﺻﻞ
ﻃﺮﻳﻘ ﺔ اﻟﻤ
ﻃﺮﻳﻘ ﺔ ﻓﺌ ﺔ اﻟﻮاﻟﺪﻳﻦ
ﺑﺖ
ﺜﺎ
ﻃﺮﻳﻘ ﺔ اﻷﺻﻞ اﻟ
ﺑﺸﻜﻞ
ﺘﺨﺪام )( super
ﺑﺎﺳﺜﻴﻞ اﻟﻔﺌ ﺔ اﻷﺻﻠﻴ ﺔ واﻟﻤﻨﺸﺌﺎ ت
اﻟﺤﺎﻟ ﺔ 3:ﻣﻦ اﻟﻔﺌ ﺔ اﻟﻔﺮﻋﻴ ﺔ ،ﻃﺮﻳﻘ ﺔ اﻟﻔﺌ ﺔ ﻻﻳﻤﻜﻨﻨﺎ اﻟﻮﺻﻮل إﱃ ﻃﺮق ﻣ
ﺘ ﺔ وﻃﺮق ﻓﺌ ﺔ اﻟﻮاﻟﺪﻳﻦ.
ﺑﺛﺎﺒﺎﺷﺮ( .وﻟﻜﻦﻳﻤﻜﻨﻨﺎ اﻟﻮﺻﻮل إﱃ ﻃﺮق
ﺑﺸﻜﻞ ﻏﻴﺮ ﻣﺒﺎﺷﺮ )وﻟﻜﻦ ﻣﻤﻜﻦ
ﻣ
)(ﻏﻴﺮ
m2 )P:19
2) def __init
super __ (). (self):
ﺻﺎﻟﺤ ﺔ )3ﻏﻴﺮ
)17print ('Parent
#super )'Constructor
(). m1 ﺻﺎﻟﺤ ﺔ >() ---
)21م )( 1
ﺘﺎج:
اﻧ
ﻃﺮﻳﻘ ﺔ ﻓﺌ ﺔ اﻟﻮاﻟﺪﻳﻦ
ﺑﺖ
ﺜﺎ
ﻃﺮﻳﻘ ﺔ اﻷﺻﻞ اﻟ
55
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
:واﻟﻤﻨﺸﺌﻴﻦ
ُ ﺑﺎءﺜﻴﻞ ﻓﺌ ﺔ اﻵ
ﺘﺪﻋﺎء ﻃﺮق ﻣ
ﻛﻴﻔﻴ ﺔ اﺳ، ﻣﻦ ﻃﺮﻳﻘ ﺔ اﻟﻔﺼﻞ اﻟﺪراﺳ ﻲ ﻟﻔﺌ ﺔ اﻟﻄﻔﻞ
cls) .__ init __ (cls) 12) super (B، cls) .m1 (cls) 13) اﻟﻔﺌ ﺔ1)
B (A): 9) classmethod 10 ) def m2 (cls): 11) super (B،
m1 (self): 6) print ('Parent example
(" ﺊ اﻷﺻﻞmethod') 7) 8) class
)"اﻟﻤﻨﺸprint
A: 2) def __init __ (self): 3) 4) 5) def
14) B.m2 ()
:ﺘﺎج
اﻧ
اﻟﻤﻨﺸ ﺊ اﻷﺻﻞ
ﺜﻴﻞ اﻷﺻﻞ
ﻃﺮﻳﻘ ﺔ اﻟﻤ
(ﺘﺨﺪاﻣﻬﺎ
ﺑﻄﺮﻳﻘ ﺔ ﺧﺎﺻ ﺔﻳﻤﻜﻨﻨﺎ اﺳﺑﺸﻜﻞ ﻋﺎم )وﻟﻜﻦ
super () ﺘﺨﺪام
ﺑﺎﺳُﺴﻤﺢ ﻟﻨﺎ
ﻻﻳ، ﺘ ﺔ ﻟﻔﺌ ﺔ اﻷﻃﻔﺎل
ﺑﺜﺎ
ﻓ ﻲ اﻟﻄﺮﻳﻘ ﺔ اﻟ4: اﻟﺤﺎﻟ ﺔ
staticmethod 15) def m1 (): 16) super (). m1 () -> اﻟﻔﺌ ﺔ1)
11) print ('Parent static method') 12) 13) class C (P): 14)
('Parent class method')
method') 9) staticmethod
6) classmethod 7) def m2 10)
(cls def
): 8)m3 ():
print
Constructor') 4) def m1 (self): 5) print ('Parent example
() --->
ﺻﺎﻟﺢ ﺻﺎﻟﺢﻏﻴﺮ ﻏﻴﺮP: 2)
18) super (). def
m3 __init
() ---> __ (self):
ﺻﺎﻟﺢ 3) print
ﻏﻴﺮ17) super('Parent
(). m2
19)
1 () م20)
56 - 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
اﻟﻄﺎ
Machine Translated by Google
ﺒﺎﻋ ﺔ
)1اﻟﻔﺌ ﺔ أ2) 3) staticmethod 4) def m1 (): 5) :ﻃ
ﺘ ﺔ"( )6) 7اﻟﻔﺌ ﺔ ) 9) def m2 (): 10
ﺑﺜﺎ
)"اﻟﻄﺮﻳﻘ ﺔ اﻷﺻﻠﻴ ﺔ اﻟ
ﺑﺮ ) ب ،ب( .م )1 () 11
B (A): 8) staticmethodﺳﻮ
ﺑﺖ
ﺜﺎ
اﻹﺧﺮاج :اﻟﻄﺮﻳﻘ ﺔ اﻷﺻﻞ اﻟ
ﺑ ﺲ ُ
أوو
اﻟﺠﺰء - 3
ﺗﻌﺪد اﻷﺷﻜﺎل
ﺗﻌﻨ ﻲ اﻷﺷﻜﺎل.
ﺜﻴﺮMorphs .
ﺑﻮﻟ ﻲﻳﻌﻨ ﻲ اﻟﻜ
ﺗﻌﺪد اﻷﺷﻜﺎلﻳﻌﻨ ﻲ "اﻟﻌﺪﻳﺪ ﻣﻦ اﻷﺷﻜﺎل".
ﺜﺎل ﻋﲆﺗﻌﺪد اﻷﺷﻜﺎل .أﻣﺎم واﻟﺪﻳﻚﺳﻴﻜﻮن ﻟﺪﻳﻚ ﻧﻮع واﺣﺪ ﻣﻦ اﻟ ﺴﻠﻮك وﻣﻊ اﻷﺻﺪﻗﺎء ﻧﻮع آﺧﺮ ﻣﻦ اﻟ ﺴﻠﻮك ،ﺷﺨﺺ
ﺜﺎل 1:ﻧﻔ ﺴﻚ ﻫﻮ أﻓﻀﻞ ﻣ
ﻣ
ﺘﻠﻔ ﺔ ،و ﻫﺬا ﻟﻴ ﺲﺳﻮىﺗﻌﺪد اﻷﺷﻜﺎل.
ﺘﻠﻔ ﺔ ﻓ ﻲ أﻣﺎﻛﻦ ﻣﺨ
واﺣﺪ وﻟﻜﻦﺳﻠﻮﻛﻴﺎ ت ﻣﺨ
ﺑﻴ ﺔ
ﺘﺸﻐﻴﻞ Eg2: +ﻳﻌﻤﻞ ﻛ ﺴﻠ ﺴﻠ ﺔ وإﺿﺎﻓ ﺔ ﺣ ﺴﺎ
ﻋﺎﻣﻞ اﻟ
*
ﺘﻜﺮار
ﻋﺎﻣﻞﻳﻌﻤﻞ ﻛﻌﺎﻣﻞ اﻟﻀﺮ ب واﻟ
Eg3:
ﺗﺠﺎوز(
ﺘﻠﻔ ﺔ ﻓ ﻲ ﻓﺼﻮل اﻟﻮاﻟﺪﻳﻦ واﻟﻔﺼﻮل اﻟﻔﺮﻋﻴ ﺔ) .
ﺒﻴﻘﺎ ت ﻣﺨ
ﺜﺎل 4:ﻧﻔ ﺲ اﻟﻄﺮﻳﻘ ﺔ ﻣﻊﺗﻄ
ﻣ
ﺘﺎﻟﻴ ﺔ ﻣﻬﻤ ﺔ
ﺑﻌ ﺔ اﻟ
ﺘﻌﺪد اﻷﺷﻜﺎل ،ﻓﺈن اﻟﻤﻮﺿﻮﻋﺎ ت اﻷر
ﺑﺘﻌﻠﻖ
ﻓﻴﻤﺎﻳ
ﺜﻮن
ﺑﺎﻳﺒﻄ ﺔ ﻓ ﻲ
ﺒﺎﻋ ﺔ اﻟ
)1ﻓﻠ ﺴﻔ ﺔ ﻃ
ﺘﺤﻤﻴﻞ اﻟﺰاﺋﺪ
)2اﻟ
)1اﻟﺤﻤﻮﻟ ﺔ اﻟﺰاﺋﺪة ﻋﲆ اﻟﻤﺸﻐﻞ
ﺘﺤﻤﻴﻞ اﻟﺰاﺋﺪ
)2ﻃﺮﻳﻘ ﺔ اﻟ
)3اﻟﺤﻤﻮﻟ ﺔ اﻟﺰاﺋﺪة ﻟﻠﻤﻨﺸ ﺊ
ﺗﺠﺎوز
)3
)1ﻃﺮﻳﻘ ﺔﺗﺠﺎوز
ﺗﺠﺎوز اﻟﻤﻨﺸ ﺊ
)2
ﺜﻮن:
ﺑﺎﻳﺒﻂ ﻓ ﻲ
ﺑ ﺔ اﻟ
ﺘﺎ
)1ﻓﻠ ﺴﻔ ﺔ ﻛ
ﺛﻢﺒﺎر اﻟﻨﻮعﺗﻠﻘﺎﺋ ًﻴﺎ .وﻣﻦ
ﺘﺘﻢ اﻋ
ﺘﺸﻐﻴﻞ ،ﺳﻴ
ﺑﻨﺎ ًء ﻋﲆ اﻟﻘﻴﻤ ﺔ اﻟﻤﻘﺪﻣ ﺔ ﻓ ﻲ وﻗ ﺖ اﻟﺑﺸﻜﻞ ﺻﺮﻳﺢ.ﺜﻮن ﻻﻳﻤﻜﻨﻨﺎﺗﺤﺪﻳﺪ اﻟﻨﻮع
ﺑﺎﻳﻓﻲ
ﺒﻮﻋ ﺔ دﻳﻨﺎﻣﻴﻜ ًﻴﺎ.
ﺑﺮﻣﺠ ﺔ ﻣﻄﺜﻮن ﻟﻐ ﺔ
ﺑﺎﻳﺒﺮ
ﺘﺗﻌ
def f1 (obj):
)( obj.talk
ﺒﻄ ﺔ
ﺒﺎﻋ ﺔ اﻟ
ﺑﻔﻠ ﺴﻔ ﺔ ﻃﺒﺪأ .و ﻫﺬا ﻣﺎﻳ ﺴﻤﻰ
ﺜﻮن ﻫﺬا اﻟﻤ
ﺑﺎﻳﺒﻊ
ﺘﺑﻄ ﺔ".ﺗﺒﻄ ﺔ ،ﻳﺠ ﺐ أنﻳﻜﻮن
ﺜﻞ اﻟ
ﺘﺤﺪ ث ﻣ
ﺒﻄ ﺔ وﻳ
ﺜﻞ اﻟ
ﺘﺸﻐﻴﻞ ،إذا ﻛﺎن "ﻳ ﺴﻴﺮ ﻣ
ﻓ ﻲ وﻗ ﺖ اﻟ
ﺜﻮن.
ﺑﺎﻳﻓﻲ
59
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
:ﺘﺎج
اﻧ
.. دﺟﺎل.. دﺟﺎل
.. ﻣﻮ ﻣﻮ
..اﻟﻘﻮس اﻟﻘﻮس
.. ﻣﻴ ﺔ ﻣﻴ ﺔ
60
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
د =اﻟﻜﻠ ﺐ14)
( )()د15) f1
:ﺘﺎج
اﻧ
\ durga_classes> py test.py :د
.. دﺟﺎل.. دﺟﺎل
:()أﺣﺪ ث ﻣﻜﺎﻟﻤ ﺔ أﺧﻴﺮةTraceback
<module> ﻓ ﻲ22 ، "اﻟ ﺴﻄﺮtest.py" ، ﻣﻠﻒ
()د1 و
f1 ﻓ ﻲ13 ، "اﻟ ﺴﻄﺮtest.py" ، ﻣﻠﻒ
obj.talk ()
"talk" اﻟﻜﺎﺋﻦ "اﻟﻜﻠ ﺐ" ﻟﻴ ﺲ ﻟﻪﺳﻤ ﺔAttributeError:
ﺘﻐﻴﺮ
ﻳﻤﻜﻦ أنﺗﻜﻮن اﻟ ﺴﻤ ﺔ اﺳﻢ اﻟﻄﺮﻳﻘ ﺔ أو اﺳﻢ اﻟﻤhasattr (obj، 'attributename')
61
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
)27ﻣﻴﺎ ﻣﻴ ﺔ ﻣﻴ ﺔ ...
ﺘﺤﻤﻴﻞ اﻟﺰاﺋﺪ
)2اﻟ
ﺘﻠﻔ ﺔ.
ﺘﺨﺪام ﻧﻔ ﺲ اﻟﻤﺸﻐﻞ أو اﻷﺳﺎﻟﻴ ﺐﻷﻏﺮاض ﻣﺨ
ﻳﻤﻜﻨﻨﺎ اﺳ
ﺗ ﺴﻠ ﺴﻞ اﻟ ﺴﻠ ﺴﻠ ﺔ
ﺑ ﻲو
ﺘﺸﻐﻴﻞ 1: +ﻟﻠﺠﻤﻊ اﻟﺤ ﺴﺎ
ﺘﺨﺪام ﻋﺎﻣﻞ اﻟ
ﺜﺎل ،ﻳﻤﻜﻦ اﺳ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
print (10 + 20) # 30
print ('durga' + 'soft') #دورﺟﺎﺳﻮﻓ ﺖ
ﺗﻜﺮار اﻟ ﺴﻠ ﺴﻠ ﺔ.
ﺘﺸﻐﻴﻞﻷﻏﺮاض اﻟﻀﺮ ب و
ﺘﺨﺪام ﻋﺎﻣﻞ اﻟ
ﺜﺎل * 2:ﻳﻤﻜﻦ اﺳ
ﻣ
ﺒﺎﻋ ﺔ (10 * 20) # 200
ﻃ
print ('durga' * 3) #durgadurgadurga
ﺘﺤﻤﻴﻞ اﻟﺰاﺋﺪ
ﻫﻨﺎك 3أﻧﻮاع ﻣﻦ اﻟ
)1اﻟﺤﻤﻮﻟ ﺔ اﻟﺰاﺋﺪة ﻋﲆ اﻟﻤﺸﻐﻞ
ﺘﺤﻤﻴﻞ اﻟﺰاﺋﺪ
)2ﻃﺮﻳﻘ ﺔ اﻟ
)3اﻟﺤﻤﻮﻟ ﺔ اﻟﺰاﺋﺪة ﻟﻠﻤﻨﺸ ﺊ
ﺗ ﺴﻠ ﺴﻞ اﻟ ﺴﻠ ﺴﻠ ﺔ
ﺑ ﻲو
ﺘﺸﻐﻴﻞ 1: +ﻟﻠﺠﻤﻊ اﻟﺤ ﺴﺎ
ﺘﺨﺪام ﻋﺎﻣﻞ اﻟ
ﺜﺎل ،ﻳﻤﻜﻦ اﺳ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
print (10 + 20) # 30
print ('durga' + 'soft') #دورﺟﺎﺳﻮﻓ ﺖ
ﺗﻜﺮار اﻟ ﺴﻠ ﺴﻠ ﺔ.
ﺘﺸﻐﻴﻞﻷﻏﺮاض اﻟﻀﺮ ب و
ﺘﺨﺪام ﻋﺎﻣﻞ اﻟ
ﺜﺎل * 2:ﻳﻤﻜﻦ اﺳ
ﻣ
ﺒﺎﻋ ﺔ (10 * 20) # 200
ﻃ
print ('durga' * 3) #durgadurgadurga
62
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺤﻤﻴﻞ اﻟﺰاﺋﺪ
ﺜﺎل ،ﺗﺪﻋﻢ Pythonاﻟ
ﺒﻴﻞ اﻟﻤ ﺘﺎ ب أ ً
ﻳﻀﺎ .ﻋﲆﺳ ﺘﺸﻐﻴﻞ ﻟﻠﻌﻤﻞ ﻣﻊ ﻛﺎﺋﻨﺎ ت اﻟﻜ
ﺘﺤﻤﻴﻞ +ﻋﺎﻣﻞ اﻟ
ﻳﻤﻜﻨﻨﺎ زﻳﺎدة اﻟ
ﻋﲆ اﻟﻤﺸﻐﻞ.
ﺘﺎﺣ ﺔ .ﻟﺰﻳﺎدةﺗﺤﻤﻴﻞ أي ﻋﺎﻣﻞ ﻋﻠﻴﻨﺎ
ﻟﻜﻞ ﻋﺎﻣﻞ ﻃﺮق اﻟ ﺴﺤﺮ اﻟﻤ
ﺗﺠﺎوزﺗﻠﻚ اﻟﻄﺮﻳﻘ ﺔ ﻓ ﻲ ﺻﻔﻨﺎ.
ﺘﺎ ب ﻟﺪﻳﻨﺎ:
ﺘﺤﻤﻴﻞ اﻟﺰاﺋﺪ +اﻟﻤﺸﻐﻞ ﻟﻜﺎﺋﻨﺎ ت ﻓﺌ ﺔ اﻟﻜ
ﺒ ﻲ ﻟﻠ
ﺑﺮﻧﺎﻣﺞﺗﺠﺮﻳ
ﺑﻠ ﺔ.
ﻓﻴﻤﺎﻳﻠ ﻲ ﻗﺎﺋﻤ ﺔ اﻟﻌﻮاﻣﻞ واﻟﻄﺮق اﻟ ﺴﺤﺮﻳ ﺔ اﻟﻤﻘﺎ
ﺘﺎج |
اﻧ
= 10> 20ﺧﻄﺄ
= s1> s2ﺧﻄﺄ
= s1 <s2ﺻﺤﻴﺢ
= s1 <= s2ﺻﺤﻴﺢ
= s1> = s2ﺧﻄﺄ
64
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺤﻤﻴﻞ اﻟﺰاﺋﺪ:
)2ﻃﺮﻳﻘ ﺔ اﻟ
ﺑﺸﻜﻞ زاﺋﺪ.ﺒﺎرة ﻋﻦ ﻃﺮق ﻣﺤﻤﻠ ﺔ ﺘﻠ ًﻔﺎ ﻣﻦ اﻟﻮﺳﻴﻄﺎ ت ،ﻓ
ُﻴﻘﺎل إن ﻫﺬه اﻟﻄﺮق ﻋ ﺘﺎن ﻟﻬﻤﺎ ﻧﻔ ﺲ اﻻﺳﻢ وﻟﻜﻦ ﻧﻮﻋً ﺎ ﻣﺨ
•إذا ﻛﺎﻧ ﺖ ﻫﻨﺎك ﻃﺮﻳﻘ
م )1ﻣﺰدوج د(
ﺘﺤﻤﻴﻞ اﻟﺰاﺋﺪ.
•ﻟﻜﻦ ﻓ ﻲ ﻃﺮﻳﻘ ﺔ Python ،ﻻﻳﻤﻜﻦ اﻟ
ﺒ ﻲ:
ﺑﺮﻧﺎﻣﺞﺗﺠﺮﻳ
ﺜﻮن:
ﺑﺎﻳﺘﺤﻤﻴﻞ اﻟﺰاﺋﺪ ﻓ ﻲ
ﺒﺎ ت ﻃﺮﻳﻘ ﺔ اﻟ
ﺘﻄﻠ
ﺘﻌﺎﻣﻞ ﻣﻊ ﻣ
ﻛﻴﻒﻳﻤﻜﻨﻨﺎ اﻟ
ﺘﻐﻴﺮ ﻣﻦ أﺳﺎﻟﻴ ﺐ
ﺘﺮاﺿﻴ ﺔ أو ﻣﻊ ﻋﺪد ﻣ
ﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻮﺳﻴﻄﺎ ت اﻻﻓ
ﺑ ﺔ ،ﻓﻴﻤﻜﻨﻨﺎ اﻟ
ﺘﻐﻴﺮ ﻣﻦ اﻟﻮﺳﺎﺋﻂ ﻣﻄﻠﻮ
ﻓ ﻲ ﻣﻌﻈﻢ اﻷﺣﻴﺎن ،إذا ﻛﺎﻧ ﺖ اﻟﻄﺮﻳﻘ ﺔ ﻣﻊ ﻋﺪد ﻣ
اﻟﻮﺳﻴﻄﺎ ت.
ﺘﺮاﺿﻴ ﺔ:
ﺑﺎﻟﺤﺠﺞ اﻻﻓﺒﻲ
ﺑﺮﻧﺎﻣﺞﺗﺠﺮﻳ
ﺑﻼ6) :
ﺑﻼ و ب! =
)2) def sum (self، a = None، b = None، c = None): 3) 4
ﺛﻼ ث'(ﺘﻴﻦ أو
ُﺮﺟﻰﺗﻘﺪﻳﻢ وﺳﻴﻄ ﺑﻼ7):آﺧﺮ8) :ﻃ
ﺒﺎﻋ ﺔ )'ﻳ = +ب(
ﺑﻼ ،أو ج!ﺑﻼ و ب! =
رﻗﻤﻴﻦ': ﻛﺎن أ! =
ﻣﺠﻤﻮع ﺒﺎﻋ ﺔإذا '(
ﻃ
ﺒﺎر )() 10) t.sum (10،20) 11) t.sum (10،20،30) 12) t.sum (10
ﺘ= 9) tاﺧ
ﺘﺎج |
اﻧ
ﻣﺠﻤﻮع ﻋﺪدﻳﻦ30 :
ﻣﺠﻤﻮع 3أﻋﺪاد60 :
ﺘﻐﻴﺮ ﻣﻦ اﻟﺤﺠﺞ:
ﺒ ﻲ ﻣﻊ ﻋﺪد ﻣ
ﺑﺮﻧﺎﻣﺞﺗﺠﺮﻳ
2) def
ﺒﺎﻋ ﺔ )"("No-Arg Constructor
ﻃ
66
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺛﻨﺎﺋ ﻲ اﻷرﺟﻞاﻹﺧﺮاجُ:ﻣﻨﺸ ﺊ
ﺘﺮاﺿﻴ ﺔ و
ﺑﺤﺠﺞ اﻓاﻟﻤﻨﺸ ﺊ
ﺗﻨﺎ ،ﻳﻤﻜﻨﻨﺎ أن ﻧﻌﻠﻦ ﻋﻦ ُ
ﺒﺎ
ﺘﻄﻠ
ﺑﻨﺎ ًء ﻋﲆ ﻣ•وﻟﻜﻦ
ﺘﻐﻴﺮ ﻣﻦ اﻟﺤﺠﺞ.
ﻋﺪد ﻣ
ﺘﺮاﺿﻴ ﺔ:
اﻟﻤﻨﺸ ﺊ ﻣﻊ اﻟﻮﺳﻴﻄﺎ ت اﻻﻓ
ُ
ﺘﺎج |
اﻧ
ُﻣﻨﺸ ﺊ ﻣﻊ ﻋﺪد 0 | 1 | 2 | 3ﻣﻦ اﻟﻮﺳﻴﻄﺎ ت
ُﻣﻨﺸ ﺊ ﻣﻊ ﻋﺪد 0 | 1 | 2 | 3ﻣﻦ اﻟﻮﺳﻴﻄﺎ ت
ُﻣﻨﺸ ﺊ ﻣﻊ ﻋﺪد 0 | 1 | 2 | 3ﻣﻦ اﻟﻮﺳﻴﻄﺎ ت
ُﻣﻨﺸ ﺊ ﻣﻊ ﻋﺪد 0 | 1 | 2 | 3ﻣﻦ اﻟﻮﺳﻴﻄﺎ ت
ﺘﻐﻴﺮ ﻣﻦ اﻟﺤﺠﺞ:
اﻟﻤﻨﺸ ﺊ ﻣﻊ ﻋﺪد ﻣ
ُ
67
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج:
اﻧ
ﺘﻐﻴﺮ ﻣﻦ اﻟﻮﺳﺎﺋﻂ
ﻣﻨﺸ ﺊ ﻣﻊ ﻋﺪد ﻣ
ﺘﻐﻴﺮ ﻣﻦ اﻟﻮﺳﺎﺋﻂ
ﻣﻨﺸ ﺊ ﻣﻊ ﻋﺪد ﻣ
ﺘﻐﻴﺮ ﻣﻦ اﻟﻮﺳﺎﺋﻂ
ﻣﻨﺸ ﺊ ﻣﻊ ﻋﺪد ﻣ
ﺘﻐﻴﺮ ﻣﻦ اﻟﻮﺳﺎﺋﻂ
ﻣﻨﺸ ﺊ ﻣﻊ ﻋﺪد ﻣ
ﺘﻐﻴﺮ ﻣﻦ اﻟﻮﺳﺎﺋﻂ
ﻣﻨﺸ ﺊ ﻣﻊ ﻋﺪد ﻣ
ﺗﺠﺎوز
)3
ﺘﺠﺎوز
أﺳﻠﻮ ب اﻟ
ﺘﺮاﺿ ًﻴﺎ ﻟﻠﻔﺌ ﺔ اﻟﻔﺮﻋﻴ ﺔ ﻣﻦ ﺧﻼل اﻟﻤﻴﺮا ث .إذا ﻟﻢﺗﻜﻦ اﻟﻔﺌ ﺔ اﻟﻔﺮﻋﻴ ﺔ راﺿﻴ ﺔ ﻋﻦ
ﺣﺎ اﻓ
ﺘﺎ ً
ﺘﺎح ﻣﻦ أي وﻗ ﺖ ﻣﻀﻰ اﻷﻋﻀﺎء ﻓ ﻲ ﻓﺌ ﺔ اﻷﺻﻞ ﻣ
ﻣﺎ ﻫﻮ ﻣ
ﺘﺠﺎوز.
ﺗﻬﺎ .ﻫﺬا اﻟﻤﻔﻬﻮمﻳ ﺴﻤﻰ اﻟ
ﺒﺎ
ﺘﻄﻠ
ﺑﻨﺎ ًء ﻋﲆ ﻣﺑﺈﻋﺎدةﺗﻌﺮﻳﻒﺗﻠﻚ اﻟﻄﺮﻳﻘ ﺔ ﻓ ﻲ اﻟﻔﺼﻞ اﻟﻔﺮﻋ ﻲُﻴ ﺴﻤﺢ ﻟﻠﻔﺌ ﺔ اﻟﻔﺮﻋﻴ ﺔ
ﺋﻴ ﺴ ﻲ ،ﻓ
ﺒﻴﻖ اﻟﻔﺼﻞ اﻟﺮ
ﺗﻄ
ﺘﺎج |
اﻧ
ذ ﻫ ﺐ +أرض +ﻧﻘﺪ +ﻗﻮة
ﺗﺮﻳﻨﺎ ﻛﻴﻒ
ﻛﺎ
ﺒﺎﻋ ﺔ
)1ﻓﺌ ﺔ )P: 2ﺧﺎﺻﻴ ﺔ )def (self): 3ﻃ
)'('Gold + Land + Cash + Power
68
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج |
اﻧ
ذ ﻫ ﺐ +أرض +ﻧﻘﺪ +ﻗﻮة
ﺑﺎﻻﻣﺎ
أ
ﺗﺮﻳﻨﺎ ﻛﻴﻒ
ﻛﺎ
self.eno'،=self.eno)
Number: eno 16) ﻋﺮض9) 10) 11) 12)
self.esal
('Employee = esal
Age:'، self.age) 15) print ('Employee
13) print ('Employee Name:'، self.name) 14) print
self.esal) 17) 18) e1 = :ﺗ ﺐ اﻟﻤﻮﻇﻒ
ﺒﻊ '(را
اﻃdef (self):
48،872425،26000)
39،872426،36000)19)
21)e1.display
e2.display() ()20) e2 = ('اﻟﻤﻮﻇﻒ
اﻟﻤﻮﻇﻒ Durga،'،
('Sunny'،
| ﺘﺎج
اﻧ
دورﺟﺎ:اﺳﻢ اﻟﻤﻮﻇﻒ
48 :ﻋﻤﺮ اﻟﻤﻮﻇﻒ
٨٧٢٤٢٥ :رﻗﻢ اﻟﻤﻮﻇﻒ
26000 :ﺗ ﺐ اﻟﻤﻮﻇﻒ
را
ﺻﻨ ﻲ:اﺳﻢ اﻟﻤﻮﻇﻒ
39 :ﻋﻤﺮ اﻟﻤﻮﻇﻒ
٨٧٢٤٢٦ :رﻗﻢ اﻟﻤﻮﻇﻒ
36000 :ﺗ ﺐ اﻟﻤﻮﻇﻒ
را
70
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺑ ﺲ ُ
أوو
اﻟﺠﺰء - 4
ﺟﺪول أﻋﻤﺎل
)1ﻃﺮﻳﻘ ﺔ ﻣﺠﺮدة
)2ﻓﺌ ﺔ اﻟﻤﻠﺨﺺ
)3اﻟﻮاﺟﻬ ﺔ
)4اﻷﻋﻀﺎء اﻟﻌﺎم واﻟﺨﺎص واﻟﻤﺤﻤ ﻲ
)( __ 5) __strاﻟﻄﺮﻳﻘ ﺔ
ﺘﻴﻦ )( strو )( repr ﺑﻴﻦ اﻟﺪاﻟ)6اﻟﻔﺮق
ﺒﻴﻖ اﻟﺨﺪﻣﺎ ت اﻟﻤﺼﺮﻓﻴ ﺔ اﻟﺼﻐﻴﺮة
ﺗﻄ)7
ﻃﺮﻳﻘ ﺔ ﻣﺠﺮدة:
ﺑﺎﻷﺳﺎﻟﻴ ﺐ اﻟﻤﺠﺮدة ،واﻟﻄﺮﻳﻘ ﺔ اﻟﻤﺠﺮدةﺑﺈﻣﻜﺎﻧﻨﺎ اﻹﻋﻼن ﻋﻦ ﻃﺮﻳﻘ ﺔ.ﺗ ﺴﻤﻰ ﻫﺬه اﻷﻧﻮاع ﻣﻦ اﻷﺳﺎﻟﻴ ﺐ ﺑﻌﺾ اﻷﺣﻴﺎن ﻻ ﻧﻌﺮف ﺷﻴ ًﺌﺎ ﻋﻦ اﻟ
ﺘﻨﻔﻴﺬ ،ﻻﻳﺰال •ﻓ ﻲ
ﻟﻬﺎﺗﺼﺮﻳﺢ ﻓﻘﻂ وﻟﻜﻦ ﻟﻴ ﺲﺗﻨﻔﻴ ً
ﺬا.
ﺘﺨﺪامdecorator as dohtemtcartsba
ﺑﺎﺳﺜﻮنﻳﻤﻜﻨﻨﺎ أن ﻧﻌﻠﻦ ﻋﻦ ﻃﺮﻳﻘ ﺔ ﻣﺠﺮدة
ﺑﻴ•ﻓ ﻲ
ﺒﻊ.
ﺘﻳ
_ abstractmethod
ﺗ ﻲ(:ﺗﻤﺮﻳﺮ
)• def m1ذا
ﻳﻤﺮ
ﺜﺎل:
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
*
)1ﻣﻦ )4) def m1 (self): 5
2) class Test: 3) abstractmethod
abc import
ﻳﻤﺮ
72
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺜﺎل:
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
*
)1ﻣﻦ 3) abstractmethod 4) def
abc import 2) class Fruit:اﻟﺬوق
)(self): 5
ﻳﻤﺮ
ﻓﺌ ﺔ اﻟﻤﻠﺨﺺ:
ﺘﻘﺎق ﻛﻞ ﻓﺌ ﺔ ﻣﺠﺮدة ﻓ ﻲ
ﺋ ﻲ ﻓﺌﺎ ت ﻣﺠﺮدة.ﻳﺠ ﺐ اﺷ
ﺘﻨﻔﻴﺬ اﻟﺠﺰ
ُﻄﻠﻖ ﻋﲆ ﻫﺬا اﻟﻨﻮع ﻣﻦ ﻓﺌﺎ ت اﻟ
ﺘﻤﻞﺗﻨﻔﻴﺬ ﻓﺌ ﺔ ﻣﺎ ،ﻳ
ﺑﻌﺾ اﻷﺣﻴﺎن ﻻﻳﻜﻓﻲ
Pythonﻣﻦ ﻓﺌ ﺔ ABCاﻟﻤﻮﺟﻮدة ﻓ ﻲ وﺣﺪة abc.
ﺣﺎﻟ ﺔ 1:
*
)1ﻣﻦ )( pass 4) 5) t = Test
)import 2) class Test: 3
abc
اﻟﺤﺎﻟ ﺔ 2:
*
)1ﻣﻦ )( pass 4) 5) t = Test
)2) class Test (ABC): 3
abc import
اﻟﺤﺎﻟ ﺔ 3:
*
)1ﻣﻦ )4) def m1 (self): 5
Test (ABC): 3) abstractmethod
abc import 2) class
ﻳﻤﺮ
73
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺒﺎر
ﺘ)6) 7ر =اﺧ
)(
اﻟﺤﺎﻟ ﺔ 4:
*
)1ﻣﻦ )( 5) pass 6) 7) t = Test
abstractmethod 4) def m1 (self):
)abc import 2) class Test: 3
ﺘﻮﺳﻴﻊ ﻓﺌ ﺔ ABC.
ﺑﺘﻮي ﻋﲆ ﻃﺮﻳﻘ ﺔ ﻣﺠﺮدة b'zﻧﺤﻦ ﻻ ﻧﻘﻮم
ﺘﻰ ﻓﺌ ﺔﺗﺤ
ﻳﻤﻜﻨﻨﺎ إﻧﺸﺎء ﻛﺎﺋﻦ ﺣ
اﻟﺤﺎﻟ ﺔ 5:
*
)1ﻣﻦ )( 6) 7) t = Test () 8) t.m1
)'4) def m1 (self): 5) print ('Hello
2) class Test: 3) abstractmethod
abc import
ﺒﺎ
اﻹﺧﺮاج :ﻣﺮﺣ ً
ﺜﻴﻞ ﻣﻤﻜﻨًﺎ.
ﺘﻮﺳﻴﻊ ﻓﺌ ﺔ ABC ،ﻓﻠﻦﻳﻜﻮن إﻧﺸﺎء ﻣ
ﺑﺘﻮى اﻟﻔﺼﻞ ﻋﲆ ﻃﺮﻳﻘ ﺔ ﻣﺠﺮدة واﺣﺪة ﻋﲆ اﻷﻗﻞ وإذا ﻛﻨﺎ ﻧﻘﻮم
اﻟﺨﻼﺻ ﺔ :إذا اﺣ
ﺣﺎﻟ ﺔ 1:
*
)1ﻣﻦ (ABC): 3) abstractmethod
abc import 2) class Vehicle
74
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺗ ﻲ(5) 6) :
)4) def noofwheelsذا
ﻳﻤﺮ
ﺒ ﺔ(:ﺗﻤﺮ
)7ﺣﺎﻓﻼ ت ﻓﺌ ﺔ )ﻣﺮﻛ
اﻟﺤﺎﻟ ﺔ 2:
*
)1ﻣﻦ )( (Vehicle): pass 8) b = Bus
noofwheels (self): 5) 6) 7) class Bus
(ABC): 3) abstractmethod 4) def
abc import 2) class Vehicle
ﻳﻤﺮ
*
)1ﻣﻦ ) noofwheels (self): 9) 10) 11
5) 6) 7) class Bus (Vehicle): 8) def
4) def noofwheels (self):
Vehicle (ABC): 3) abstractmethod
ﺒ ﺔ(:
اﻟﻔﺌ ﺔ )Autoﻣﺮﻛ
abc import 2) classﻳﻤﺮ
() 18) print (a.noofwheels ()) # 3
(b.noofwheels ()) # 7 16) 17) a = Auto
13) return 3 14) b = Bus () 15) print
اﻟﻌﻮدة 7
12) def noofwheels (self):
75
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
:ﺜﻮن
ﺑﺎﻳواﺟﻬﺎ ت ﻓ ﻲ
.ﺒﺮ واﺟﻬ ﺔ
ﺘ ﻓﺈن ﻫﺬا اﻟﻨﻮع ﻣﻦ ﻓﺌ ﺔ اﻟﻤﻠﺨﺺﻳﻌ، ﺘﻮ ت ﻓﺌ ﺔ ﻣﺠﺮدة ﻋﲆ ﻃﺮق ﻣﺠﺮدة ﻓﻘﻂ
إذا اﺣ، ﺑﺸﻜﻞ ﻋﺎم
*
(ABC): 3) abstractmethod 4) def connect (self): pass 5) ﻣﻦ1)
abc import 2) class DBInterface
connect (self): 11) print ('Connecting to Oracle Database ...') 12) def
7) def disconnect (self): pass 8) 9) class Oracle (DBInterface): 10) def
22) classname = globals () [dbname] 23) x = ﻓﺼﻞ6) abstractmethod
Sybase Database ...') 20) 21) dbname = input ('Enter Database Name:')
Database ...') 18 ) def disconnect (self): 19) print ('Disconnecting to
(DBInterface): 16) def connect
13) print ('Disconnecting (self):Database
to Oracle 17) print ...')
('Connecting to Sybase
14) 15) class
() 24) x.connect () 25) x.disconnect () (اﺳﻢ اﻟﻔﺌ ﺔself):
76
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
config.txt
ﺑ ﺴﻮن
إ
test.py
*
(ABC): 3) abstractmethod 4) def printit (self، text): pass 5) ﻣﻦ1)
abc import 2) class Printer
printit (self، text): 11) print ('Printing from EPSON Printer ...') 12)
7) def disconnect (self): pass 8) 9) class EPSON (Printer): 10) def
13) def disconnect (self): 14) print (ﺒﺎﻋ ﺔ )ﻧﺺ
ﻃ6) abstractmethod
HP (Printer): 17) def printit (self، text): 18) print ﺒﺎﻋ ﺔ ﻋﲆ
ﺗﻢ اﻟﻄ
")
HP ...") 19) ﺑﻌ ﺔ
ﺒﺎﻋ ﺔ ﻣﻦ ﻃﺎ
) "اﻟﻄEPSON Printer ...") 15) 16) class
() ﻋﲆ
28) ﺔx.printit
ﺒﺎﻋ
ﺘﻤﻠ'(ﺖ اﻟﻄ
)"اﻛﻛـ ﺒﺎﻋ ﺔ
ﻃ21) '،'
("config.txt :(ﻲr ﺗ
')ﺘﺢ)ذا
ﺗﺼﺎل
اﻻﻣﻊ ﻓ
HPﻗﻄﻊ 20)
...") 22)()ﻧﺺ
23) ﺒﺎﻋ ﺔ
ﺑﻌ ﻃ
ﻃﺎ
() 25) 26)() classname
x.disconnect .. .ﺘﻬﺎ ﻳﺠ=ﺐ ﻃ
ﺒﺎﻋ globals ﺬه)(اﻟ
ﺒﻴﺎﻧﺎ ت [pname] 27) x ==classname
ﻫf: 24) pname f.readline
') 29)
:ﺘﺎج
اﻧ
EPSON ... ﺑﻌ ﺔ
ﺒﺎﻋ ﺔ ﻣﻦ ﻃﺎ
اﻟﻄ
... ﺒﻴﺎﻧﺎ ت
ﺒﺎﻋ ﺔ ﻫﺬه اﻟ
ﻳﺠ ﺐ ﻃ
EPSON ... ﺑﻌ ﺔ
ﺒﺎﻋ ﺔ ﻋﲆ ﻃﺎ
ﺘﻤﻠ ﺖ اﻟﻄ
اﻛ
77
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
*
ﺘﻴﺮاد pass 7) abstractmethod 8) def m3 (self) :
)1ﻣﻦ اﺳ
4) def m1 (self): pass 5) abstractmethod 6) def m2 (self):
2) class CollegeAutomation (ABC): 3) abstractmethod
ﺘﻴﺎز 10) def m1 (self): 11) print ('m1 method
abcاﺟ
ﺗﻨﻔﻴﺬ'( ('m2 method
9) class AbsCls (CollegeAutomation):
ﺗﻨﻔﻴﺬ'( )14) 15ﻓﺌ ﺔ )( .m3ج )() 22
12) def m2 (self): 13) print
18) 19) c = ConcreteCls () 20) c.m1 () 21) c.m2
)'def m3 (self): 17) print ('m3 method implemnentation
)ConcreteCls (AbsCls): 16
ﻳﻤﻜﻦ اﻟﻮﺻﻮل إﱃ اﻟ ﺴﻤﺎ ت اﻟﻤﺤﻤﻴ ﺔ داﺧﻞ اﻟﻔﺼﻞ اﻟﺪراﺳ ﻲ ﻓ ﻲ أي ﻣﻜﺎن وﻟﻜﻦ ﻣﻦ ﺧﺎرج اﻟﻔﺼﻞ ﻓﻘﻂ ﻓ ﻲ اﻟﻔﺼﻮل اﻟﻔﺮﻋﻴ ﺔ.ﻳﻤﻜﻨﻨﺎﺗﺤﺪﻳﺪﺳﻤ ﺔ ﻋﲆ
ﺑﺎﻟﺮﻣﺰ.ﺒﻘ ﺔ
ﺘﻬﻴﺌ ﺔ اﻟﻤ ﺴ _
أﻧﻬﺎ ﻣﺤﻤﻴ ﺔ ﻋﻦ ﻃﺮﻳﻖ اﻟ
78
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺑﺸﻜﻞﺘﻐﻴﺮ ﺧﺎص
ﻳﻤﻜﻦ اﻟﻮﺻﻮل إﱃ اﻟ ﺴﻤﺎ ت اﻟﺨﺎﺻ ﺔ ﻓﻘﻂ داﺧﻞ class.ieﻣﻦ ﺧﺎرج اﻟﻔﺼﻞ اﻟﺬي ﻻﻳﻤﻜﻨﻨﺎ اﻟﻮﺻﻮل إﻟﻴﻪ.ﻳﻤﻜﻨﻨﺎ أن ﻧﻌﻠﻦ أن اﻟﻤ
ﺑﺮﻣﺰﻳﻦ ﺷﺮﻃ ﺔﺳﻔﻠﻴ ﺔ.ﺑﺎدﺋ ﺔﺑﺔ
ﺘﺎ
ﺻﺮﻳﺢ ﻋﻦ ﻃﺮﻳﻖ ﻛ
ﺘﺎج:
اﻧ
10
20
30
10
20
)Tracebackأﺣﺪ ث ﻣﻜﺎﻟﻤ ﺔ أﺧﻴﺮة(:
ﻣﻠﻒ "test.py" ،اﻟ ﺴﻄﺮ 14 ،ﻓ ﻲ ><module
ﺒﺎر z) __.
ﺘﺒﺎﻋ ﺔ )اﺧ
ﻃ
ﺒﺎر" ﻟﻴ ﺲ ﻟﻪﺳﻤ ﺔ ""__z
ﺘAttributeError:ﻧﻮع اﻟﻜﺎﺋﻦ "اﺧ
79
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
)= Student ('Ravi'، 102) 11) print (s1) 12) print (s2
(self): 7) 8) 9) s1 = Student ('Durga'، 101) 10) s2
rollno):
1) class
3) self.name
)Student: 2
= name
def __init
4) 5)__6)(self،
def __str
name،
__
self.rollno = rollno
إرﺟﺎع )'This is Student with Name: {} and Rollno: {}'. format (self.name، self.rollno
ﺘﺠﺎوز ():
اﻹﺧﺮاج ﻣﻊ اﻟ
ﺑﺎﻻﺳﻢ :دورﺟﺎ وروﻟﻨﻮ101 :ﻫﺬا ﻃﺎﻟ ﺐ
ﺑﺎﻻﺳﻢ :راﻓ ﻲ وروﻟﻨﻮ102 :ﻫﺬا ﻃﺎﻟ ﺐ
ﺒﺎﻋ ﺔ.
ﺜﻴﻞ ﺟﻴﺪ ﻟﻠﻄ
ﺘﻮي ﻋﲆ ﻛﺎﺋﻦﺗﻤ
ﺗﻌﻴﺪﺳﻠ ﺴﻠ ﺔﺗﺤ
)( • str
80
ﺜﺎﻧﻴ ﺔ دورﺟﺎﺳﻮﻓ ﺖ ،رﻗﻢ 202 ، 2اﻟ
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺒﺎﻋ ﺔ ﻟﻠﻜﺎﺋﻦ.
ﺑﻞ ﻟﻠﻄ
ﺜﻴﻞ ﻗﺎ
ﺘﻮي ﻋﲆﺗﻤ
ﻟﻜﻦ )( reprﻳﻌﻴﺪﺳﻠ ﺴﻠ ﺔﺗﺤ
ﺘ ﻲ ﻗﺪ ﻻﺗﻜﻮن ﻣﻤﻜﻨ ﺔ ﻓ ﻲ داﻟ ﺔ ().
ﺘﺨﺪام وﻇﻴﻔ ﺔ Eval () ،واﻟ
ﺑﺎﺳﺘﻴﺠ ﺔ إﱃ ﻛﺎﺋﻦ أﺻﻠ ﻲ
ﺋﻴ ﺴ ﻲ ﻣﻦ )( reprﻫﻮ واﺿﺢ.ﻳﻤﻜﻨﻨﺎﺗﺤﻮﻳﻞﺳﻠ ﺴﻠ ﺔ اﻟﻨ
اﻟﻬﺪف اﻟﺮ
str
ﺘﺎج:
اﻧ
)datetime.datetime (2018، 5، 18، 22، 51، 10، 875838
2018-05-18 22: 51: 10.875838
ﺑﺪﻻ ﻣﻦ )( str
ﺘﺨﺪام )( repr
ﺑﺎﺳﻣﻼﺣﻈ ﺔ:ﻳﻮﺻﻰ
ﺒﻴﻖ ﻣﺼﺮﻓ ﻲ
ﻣﺸﺮوع ﺻﻐﻴﺮ:ﺗﻄ
min_balance
= 1000) ﺘﻮازن
اﻟﺤﺪ اﻷدﻧﻰ ﻟﻠ، اﻟﺮﺻﻴﺪ، )اﻻﺳﻢsuper () .__ init __
:ﺘﺎج
اﻧ
D: \ durgaclasses> py test.py
10000 :ﺑﺮﺻﻴﺪﺣ ﺴﺎ بﺗﻮﻓﻴﺮ دورﺟﺎ
15000 :رﺻﻴﺪ اﻟﺤ ﺴﺎ ب
82
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺜﻨﺎء
ﺘاﺳ
ﻣﻌﺎﻟﺠ ﺔ
83
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
)1أﺧﻄﺎء ﻧﺤﻮﻳ ﺔ
ﺘﺸﻐﻴﻞ
)2أﺧﻄﺎء وﻗ ﺖ اﻟ
ﺒﺎﻋ ﺔ
إذا ﻛﺎﻧ ﺖ x == 10ﻃ
ﺒﺎ"(
)"ﻣﺮﺣ ً
ﺒﺎ"
ﺒﺎﻋ ﺔ "ﻣﺮﺣ ً
ﺜﺎل 2:ﻃ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺒﺎﻋ ﺔ"
ﺘﺪﻋﺎء "ﻃ
ﺘﺮﻛﻴ ﺐ :أﻗﻮاس ﻣﻔﻘﻮدة ﻓ ﻲ اﺳ
ﺧﻄﺄ ﻓ ﻲ اﻟ
ﺒﺮﻧﺎﻣﺞ ﻓﻘﻂ.
ﺒﺪأﺗﻨﻔﻴﺬ اﻟ
ﺑﻤﺠﺮدﺗﺼﺤﻴﺢ ﺟﻤﻴﻊ اﻷﺧﻄﺎء اﻟﻨﺤﻮﻳ ﺔ ،ﺳﻴﺒﺮﻣﺞ ﻣ ﺴﺆول ﻋﻦﺗﺼﺤﻴﺢ ﻫﺬه اﻷﺧﻄﺎء اﻟﻨﺤﻮﻳ ﺔ.
ﻣﻼﺣﻈ ﺔ :اﻟﻤ
ﺘﺸﻐﻴﻞ:
)2أﺧﻄﺎء وﻗ ﺖ اﻟ
ﺒﺮﻣﺠ ﺔ أو ﻣﺸﺎﻛﻞ اﻟﺬاﻛﺮة وﻣﺎ
ﺘﺨﺪم اﻟﻨﻬﺎﺋ ﻲ أو ﻣﻨﻄﻖ اﻟ
ﺒ ﺐ إدﺧﺎل اﻟﻤ ﺴ
ﺑﺴﺒﺮﻧﺎﻣﺞ إذا ﺣﺪ ث ﺧﻄﺄ ﻣﺎ
ﺛﻨﺎءﺗﻨﻔﻴﺬ اﻟ
ﺜﻨﺎءا ت• .أ
ﺘﺑﺎﺳﻢ اﻻﺳ ُﻌﺮف أ ً
ﻳﻀﺎ ﺗ
•
ﺘﺸﻐﻴﻞ.
إﱃ ذﻟﻚ ،ﻓ ﺴﻨﺤﺼﻞ ﻋﲆ أﺧﻄﺎء وﻗ ﺖ اﻟ
)1) print (10/0اﻟﻘ ﺴﻤ ﺔ ﻋﲆ ﺻﻔﺮ 2) print (10 / "ten") TypeError :ﻧﻮع )أﻧﻮاع( اﻟﻤﻌﺎﻣﻞ ﻏﻴﺮ ﺜﺎلZeroDivisionError: :
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
اﻟﻤﺪﻋﻮم ﻟـ 'int' :/و ''str
84
،DURGASOFT،ﺣﻴﺪر أ
ﺑﺎد - 500038 ، ﺑﻴ ﺖ ﺘﺮ#
ﻳﻔﺎﻧﺎم ،أﻣﻴﺮ 202، ﺑﻖ 2 ،
ﻫﺪى ﻣﺎﻳ اﻟﻄﺎ
Machine Translated by Google
ﺜﻨﺎء؟
ﺘﻣﺎ ﻫﻮ اﻻﺳ
ﺜﻨﺎء.
ﺘﺒﺮﻧﺎﻣﺞ اﺳ
ﺒﻴﻌ ﻲ ﻟﻠ
ﺘﺪﻓﻖ اﻟﻄ
ﺘﻮﻗﻊ اﻟﺬيﻳﺰﻋﺞ اﻟ
ﻳ ﺴﻤﻰ اﻟﺤﺪ ث ﻏﻴﺮ اﻟﻤﺮﻏﻮ ب ﻓﻴﻪ وﻏﻴﺮ اﻟﻤ
ﺜﺎل:
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
• ZeroDivisionError
• TypeError
•ﺧﻄﺄ اﻟﻘﻴﻤ ﺔ
• FileNotFoundError
• EOFError
• SleepingError
• TyrePuncturedError
ﺒﻴﻌ ﻲ.
ﺑﺸﻜﻞ ﻃﺒﺮﻧﺎﻣﺞ
ﺑﻘﻴ ﺔ اﻟﺑﺪﻳﻠ ﺔ ﻟﻤﻮاﺻﻠ ﺔﺜﻨﺎء .ﻋﻠﻴﻨﺎﺗﺤﺪﻳﺪ ﻃﺮﻳﻘ ﺔ
ﺘﺜﻨﺎءا ت ﻻﺗﻌﻨ ﻲ إﺻﻼح اﻻﺳ
ﺘﻣﻌﺎﻟﺠ ﺔ اﻻﺳ
ﺣﺎ ،
ﺘﺎ ً
ﺘﺸﻐﻴﻞ إذا ﻟﻢﻳﻜﻦ ﻣﻠﻒ Londonﻣ
ﺑﻌﻴﺪ ﻣﺤﺪد ﻓ ﻲ ﻟﻨﺪن .ﻓ ﻲ وﻗ ﺖ اﻟﺒﻴﺎﻧﺎ ت ﻣﻦ ﻣﻠﻒ
ﺒﺮﻣﺠ ﺔ ﻟﺪﻳﻨﺎ ﻫ ﻲ ﻗﺮاءة اﻟ
ﺒﺎ ت اﻟ
ﺘﻄﻠ
ﺜﺎل :ﻣ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺒﺪﻳﻞ ﻟﻴ ﺴ ﺖ
ﺒﻴﻌ ﻲ .ﻫﺬه اﻟﻄﺮﻳﻘ ﺔ ﻓ ﻲﺗﻌﺮﻳﻒ اﻟ
ﺑﺸﻜﻞ ﻃﺒﺮﻧﺎﻣﺞ
ﺑﻘﻴ ﺔ اﻟﺘﻌﻴﻦ ﻋﻠﻴﻨﺎﺗﻮﻓﻴﺮ ﻣﻠﻒ ﻣﺤﻠ ﻲ ﻟﻤﻮاﺻﻠ ﺔ
ﺒﻴﻌ ﻲ.ﻳ
ﺑﺸﻜﻞ ﻏﻴﺮ ﻃﺒﺮﻧﺎﻣﺞ
ﻓﻼﻳﺠ ﺐ إﻧﻬﺎء اﻟ
ﺜﻨﺎﺋﻴ ﺔ.
ﺘﺳﻮى ﻣﻌﺎﻟﺠ ﺔ اﺳ
ﻳﺤﺎول:
ﺑﻌﻴﺪ ﻣﺤﺪد ﻓ ﻲ ﻟﻨﺪن.ﺒﻴﺎﻧﺎ ت ﻣﻦ ﻣﻠﻒ
اﻗﺮأ اﻟ
ﺜﻨﺎء FileNotFoundError:
ﺘﺑﺎﺳ
ﺒﻴﻌ ﻲ
ﺑﺸﻜﻞ ﻃﺒﺮﻧﺎﻣﺞ
ﺑﻘﻴ ﺔ اﻟﺑﻊ
ﺗﺎ
ﺘﺨﺪم اﻟﻤﻠﻒ اﻟﻤﺤﻠ ﻲ و
اﺳ
ﺜﻨﺎء؟
ﺘس :ﻣﺎ ﻫﻮ اﻻﺳ
ﺜﻨﺎءا ت؟
ﺘس :ﻣﺎ ﻫﻮ اﻟﻐﺮض ﻣﻦ ﻣﻌﺎﻟﺠ ﺔ اﻻﺳ
ﺜﻨﺎءا ت؟
ﺘس :ﻣﺎ ﻣﻌﻨﻰ ﻣﻌﺎﻟﺠ ﺔ اﻻﺳ
ﺜﻮن:
ﺑﺎﻳﺘﺮاﺿ ﻲ ﻓ ﻲ
ﺜﻨﺎءا ت اﻻﻓ
ﺘﺗ ﺴﻠﻴﻢ اﻻﺳ
ﺑﻞ
ﺜﻨﺎء اﻟﻤﻘﺎ
ﺘﺜﻮن ﻫﻮ ﻛﺎﺋﻦ .ﻟﻜﻞ ﻧﻮع اﻻﺳ
ﺑﺎﻳﺜﻨﺎء ﻓ ﻲ
ﺘ•ﻛﻞ اﺳ
ﺘﻮﻓﺮة.
اﻟﻔﺼﻮل اﻟﺪراﺳﻴ ﺔ ﻣ
ﺘﺤﻜﻢ.
ﺑﻠ ﺔ إﱃ وﺣﺪة اﻟ
ﺜﻨﺎء اﻟﻤﻘﺎ
ﺘﺒﻊ ﻣﻌﻠﻮﻣﺎ ت اﻻﺳ
ﺒﻴﻌ ﻲ وﻳﻄ
ﺑﺸﻜﻞ ﻏﻴﺮ ﻃﺒﺮﻧﺎﻣﺞ
ﺑﺈﻧﻬﺎء اﻟﺘﺮﺟﻢ اﻟﻔﻮري
ﻳﻘﻮم اﻟﻤ
ﺒﺮﻧﺎﻣﺞ.
ﺑﺎﻗ ﻲ اﻟﺘﻢﺗﻨﻔﻴﺬ
•ﻟﻦﻳ
ﺒﺎﻋ ﺔ )2
)1ﻃ
ﺒﺎﻋ ﺔ )3 )"("Helloﻃ
ﺒﺎﻋ ﺔ )"("Hi
)(10/0ﻃ
ZeroDivisionError:اﻟﻘ ﺴﻤ ﺔ ﻋﲆ ﺻﻔﺮ
ﺜﻮن
ﺑﺎﻳﺜﻨﺎء
ﺘﺘ ﺴﻠ ﺴﻞ اﻟﻬﺮﻣ ﻲ ﻻﺳ
اﻟ
BaseException
ﺜﻨﺎء
ﺘاﺳ SystemExit اﻟﻤﻮﻟﺪ ﺗﻴﺢ اﻟﻤﻘﺎﻃﻌ ﺔ
ﻟﻮﺣ ﺔ اﻟﻤﻔﺎ
ﺗﺠﺎوز إذن
ﺧﻄﺄ ﺧﻄﺄ
ﻧﻔﺬ اﻟﻮﻗ ﺖ
ﺧﻄﺄ
ﺜﻨﺎء
ﺘﺜﻨﺎءا ت ﻫ ﻲ ﻓﺌﺎ ت ﻓﺮﻋﻴ ﺔ ﻣﻦ BaseException.ieﻛﻞ ﻓﺌ ﺔ اﺳ
ﺘﺜﻮن ﻫﻮ ﻓﺌ ﺔ• .ﺟﻤﻴﻊ ﻓﺌﺎ ت اﻻﺳ
ﺑﺎﻳﺜﻨﺎء ﻓ ﻲ
ﺘ•ﻛﻞ اﺳ
ﺘ ﺴﻠ ﺴﻞ Python Exception.
ﺛﻢ ،ﻳﻌﻤﻞ BaseExceptionﻛﺠﺬر ﻟﺒﺎﺷﺮ .وﻣﻦ
ﺒﺎﺷﺮ أو ﻏﻴﺮ ﻣ
ﺑﺸﻜﻞ ﻣﺘﺪ BaseExceptionإﻣﺎ
ﻳﻤ
ﺘﺮﻛﻴﺰ ﻋﲆ Exceptionوﻃﻔﻠﻪ
ﺘﻌﻴﻦ ﻋﻠﻴﻨﺎ اﻟ
ﺒﺮﻣﺠﻴﻦ ﻓ ﻲ ﻣﻌﻈﻢ اﻷﺣﻴﺎن ،ﻳ
•ﻟﻜﻮﻧﻨﺎ ﻣ
ﺒﻘﺎ ت.
اﻟﻄ
86
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺜﻨﺎء:
ﺘﺑﺎﺳﺘﺨﺪام اﻟﻤﺤﺎوﻟ ﺔ
ﺑﺎﺳﺜﻨﺎءا ت اﻟﻤﺨﺼﺼ ﺔ
ﺘﻣﻌﺎﻟﺠ ﺔ اﻻﺳ
ﺜﻨﺎءا ت.
ﺘﺑﻤﻌﺎﻟﺠ ﺔ اﻻﺳﺑﺸﺪة•ﻳﻮﺻﻰ
ﺘﻠ ﺔ try.رﻣﺰ اﻟﻤﻨﺎوﻟ ﺔ
ﺑﺎﻟﻤﺨﺎﻃﺮ داﺧﻞ ﻛﺑﺮﻣﺠﻴ ﺔ ﻣﺤﻔﻮﻓ ﺔﺘﻌﺎﻣﻞ ﻣﻊﺗﻌﻠﻴﻤﺎ ت
ﺑﺎﻟﻤﺨﺎﻃﺮ وﻋﻠﻴﻨﺎ أن ﻧ ً
ﻣﺤﻔﻮﻓﺎ ﺜﻨﺎء رﻣ ًﺰا
ﺘﺜﻴﺮ اﻻﺳ
ُﻄﻠﻖ ﻋﲆ اﻟﻜﻮد اﻟﺬي ﻗﺪﻳ
•ﻳ
ﺘﻠ ﺔ.
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺑﻞ اﻟﺬيﻳﺠ ﺐ أن ﻧﺄﺧﺬه ﻓ ﻲ اﻟﺪاﺧﻞ
اﻟﻤﻘﺎ
ﻳﺤﺎول:
ﺑﺎﻟﻤﺨﺎﻃﺮرﻣﺰ ﻣﺤﻔﻮف
ﺜﻨﺎء XXX:
ﺘﺑﺎﺳ
ﺑﺪﻳﻞﺘﻌﺎﻣﻞ ﻣﻊ رﻣﺰ /رﻣﺰ
اﻟ
ﺜﻨﺎء:
ﺘﺑﺎﺳﺑﺪون ﻣﺤﺎوﻟ ﺔ
ﺘﺎج |
اﻧ
stmt-1
ZeroDivisionError:اﻟﻘ ﺴﻤ ﺔ ﻋﲆ ﺻﻔﺮ
ﺒﻴﻌ ﻲ /إﻧﻬﺎء ﻏﻴﺮ رﺷﻴﻖ
إﻧﻬﺎء ﻏﻴﺮ ﻃ
ﺜﻨﺎء:
ﺘﺑﺎﺳﻣﻊ اﻟﻤﺤﺎوﻟ ﺔ
ﺘﺎج |
اﻧ
stmt-1
5.0 stmt-3إﻧﻬﺎء ﻋﺎدي /إﻧﻬﺎء ﻟﻄﻴﻒ
ﺜﻨﺎء:
ﺘﺑﺎﺳﺘﺪﻓﻖ ﻓ ﻲ اﻟﻤﺤﺎوﻟ ﺔ
ﺘﺤﻜﻢ ﻓ ﻲ اﻟ
اﻟ
ﻳﺤﺎول:
stmt-1
stmt-2
stmt-3
ﺜﻨﺎء XXX:
ﺘﺑﺎﺳ
stmt-4
stmt-5
ﺜﻨﺎء
ﺘاﻟﺤﺎﻟ ﺔ 1:إذا ﻟﻢﻳﻜﻦ ﻫﻨﺎك اﺳ
1 ، 2 ، 3 ، 5واﻹﻧﻬﺎء اﻟﻌﺎدي
ﺑﻘ ﺔ
ﺘﻄﺎ
ﺘﻠ ﺔ اﻟﻤ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺑﻠﻬﺎ
ﺜﻨﺎء ﻓ ﻲ stmt-2وﻣﺎﻳﻘﺎ
ﺘﺛﻴﺮ اﺳ
اﻟﺤﺎﻟ ﺔ 2:إذا أ
1،4،5اﻹﻧﻬﺎء اﻟﻌﺎدي
ﺑﻘ ﺔ
ﺘﻄﺎ
ﺘﻠ ﺔ ﻏﻴﺮ ﻣ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺑﻠ ﺔ
ﺘﻠ ﺔ اﻟﻤﻘﺎ
ﺜﻨﺎء ﻋﻨﺪ stmt-2وﻛﺎﻧ ﺖ اﻟﻜ
ﺘاﻟﺤﺎﻟ ﺔ 3:إذا ﻇﻬﺮ اﺳ
ﺒﻴﻌ ﻲ
1 ،إﻧﻬﺎء ﻏﻴﺮ ﻃ
ﺒﻴﻌ ﻲ.
ﺋﻤﺎ إﻧﻬﺎء ﻏﻴﺮ ﻃ
ﺜﻨﺎء ﻓ ﻲ stmt-4أو stmt-5 ،ﻓﻬﺬاﻳﻌﻨ ﻲ دا ً
ﺘاﻟﺤﺎﻟ ﺔ 4:إذا ﻇﻬﺮ اﺳ
ﺘﺎﺟﺎ ت:
ﺘﻨاﻻﺳ
ﺘﻌﻴﻦ ﻋﻠﻴﻨﺎ
ﺛﻢﻳﺜﻨﺎء .وﻣﻦ
ﺘﺘﻠ ﺔ tryﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أﻧﻨﺎﺗﻌﺎﻣﻠﻨﺎ ﻣﻊ ﻫﺬا اﻻﺳ
ﺑﻘﻴ ﺔ ﻛﺘﻢﺗﻨﻔﻴﺬ
ﺜﻨﺎء ﻓ ﻲ أي ﻣﻜﺎن ،ﻓﻠﻦﻳ
ﺘﺘﻠ ﺔ tryﻓ ﻲ ﺣﺎﻟ ﺔ ﻇﻬﻮر اﺳ
)1داﺧﻞ ﻛ
ﺘﻠ ﺔ اﻟﻤﺤﺎوﻟ ﺔ أﻗﻞ ﻣﺎﻳﻤﻜﻦ.
ﺘﻠ ﺔ اﻟﻤﺤﺎوﻟ ﺔ وﻳﺠ ﺐ أنﻳﻜﻮن ﻃﻮل ﻛ
ﺑﺎﻟﻤﺨﺎﻃﺮ ﻓﻘﻂ داﺧﻞ ﻛ ً
ﻣﺤﻔﻮﻓﺎ أن ﻧﺄﺧﺬ رﻣ ًﺰا
ﺘﻞ أ ً
ﻳﻀﺎ. ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺜﻨﺎءا ت ﻓ ﻲ اﻟﺪاﺧﻞ
ﺘﺘﻠ ﺔ اﻟﻤﺤﺎوﻟ ﺔ ،ﻗﺪﺗﻜﻮن ﻫﻨﺎك ﻓﺮﺻ ﺔ ﻟﺮﻓﻊ اﻻﺳ
ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ﻛ
)2
ﺋﻤﺎ
ﺜﻨﺎ ًء ،ﻓﻬ ﻲ دا ً
ﺘﺘﻠ ﺔ tryاﺳ
ﺒﺎرة ﻟﻴ ﺴ ﺖ ﺟﺰءًا ﻣﻦ ﻛ
ﺛﺎر ت أي ﻋ
)3إذا أ
ﺒﻴﻌ ﻲ.
إﻧﻬﺎء ﻏﻴﺮ ﻃ
ﺜﻨﺎء:
ﺘﺒﺎﻋ ﺔ ﻣﻌﻠﻮﻣﺎ ت اﻻﺳ
ﻛﻴﻔﻴ ﺔ ﻃ
ﻳﺤﺎول:
ﺜﻨﺎء
ﺘﺜﻨﺎء ZeroDivisionErrorﻛـ ")msg: 3) printاﺳ
ﺘﺑﺎﺳ
)1) print (10/0) 2
ﺜﺎر ووﺻﻔﻪ ﻫﻮmsg) ،":
ُﻣ
ﺘﻞ:
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺘﻌﺪدة
ﺘﻞ اﻟﻤ
ﺟﺮ ب ﻣﻊ اﻟﻜ
ﺘﻌﻴﻦ ﻋﻠﻴﻨﺎ
ﺘ ﻲﻳ
ﺘﻠ ﺔ اﻟ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺜﻨﺎءا ت ﻣﻨﻔﺼﻠ ﺔ
ﺘﺜﻨﺎء ،ﻟﺬﻟﻚ ﻓﻠﻜﻞ ﻧﻮع ﻣﻦ أﻧﻮاع اﻻﺳ
ﺘﺜﻨﺎء إﱃ اﺳ
ﺘﺜﻨﺎء ﻣﻦ اﺳ
ﺘﺘﻌﺎﻣﻞ ﻣﻊ اﻻﺳ
ﺘﻨﻮع ﻃﺮﻳﻘ ﺔ اﻟ
ﺗ
ﺘﺨﺪاﻣﻪ.
ﺑﺎﺳﺜﻨﺎء أﻣﺮ ﻣﻤﻜﻦ وﻳﻮﺻﻰ
ﺘﺑﺎﺳﺘﻌﺪدة
ﺘﻞ ﻣ
ﺜﺎل ،ﺣﺎول ﻣﻊ ﻛ
ﺒﻴﻞ اﻟﻤ
ﺗﻮﻓﻴﺮ ﻫﺎ .ﻋﲆﺳ
ﺜﺎل:
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﻳﺤﺎول:
-------
-------
-------
ﺜﻨﺎء ZeroDivisionError:
ﺘﺑﺎﺳ
ﺑﺪﻳﻠ ﺔﺑﻴ ﺔ
إﺟﺮاء ﻋﻤﻠﻴﺎ ت ﺣ ﺴﺎ
ﺜﻨﺎء FileNotFoundError:
ﺘﺑﺎﺳ
ﺒﻌﻴﺪ
ﺑﺪﻻ ﻣﻦ اﻟﻤﻠﻒ اﻟﺘﺨﺪام اﻟﻤﻠﻒ اﻟﻤﺤﻠ ﻲ
اﺳ
ﺑﻘ ﺔ.
ﺜﻨﺎء اﻟﻤﻄﺎ
ﺘﺑﺎﺳﺘﻠ ﺔ
ﺘﻢﺗﻨﻔﻴﺬ اﻟﻜ
ﺑﺎرز ،ﺳﻴﺜﻨﺎء
ﺘﺑﻨﺎ ًء ﻋﲆ اﺳﺬ
ﺘﺎﺣ ﺔ ،ﻓﺤﻴﻨﺌ ٍ
ﺜﻨﺎء اﻟﻤ
ﺘﺑﺎﺳﺘﻞ
إذا ﺣﺎوﻟ ﺖ ﻣﻊ ﻋﺪة ﻛ
5.0
ﺋﻤﺎ ﻣﻦ أﻋﲆ
ﺒﺎر دا ً
ﺘﺜﻮن ﻓ ﻲ اﻻﻋ
ﺑﺎﻳﺘﺮﺟﻢ
ﺘﻞ ﻣﻬﻢ.ﺳﻴﺄﺧﺬ ﻣ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺘﻞ
ﺗﻴ ﺐ ﻫﺬه اﻟﻜ
ﺘﺎﺣ ﺔ ،ﻓﺈنﺗﺮ
ﺜﻨﺎء اﻟﻤ
ﺘﺑﺎﺳﺘﻌﺪدة
ﺘﻞ اﻟﻤ
إذا ﺣﺎوﻟ ﺖ ﻣﻊ اﻟﻜ
ﺘﻠ ﺔ اﻟﻤﺤﺪدة.
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺑﻖ
ﺘﻄﺎ
ﺘﻢ اﻟ
ﺘﻰﻳ
إﱃ أﺳﻔﻞ ﺣ
89
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺑﻲ
ﺧﻄﺄ ﺣ ﺴﺎ
ﺘﻌﺪدة:
ﺜﻨﺎءا ت ﻣ
ﺘﺘﻌﺎﻣﻞ ﻣﻊ اﺳ
ﺘ ﻲﻳﻤﻜﻨﻬﺎ اﻟ
ﺘﻠ ﺔ اﻟ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳواﺣﺪ
ﺜﻨﺎءا ت.
ﺘﺘﻠﻔ ﺔ ﻣﻦ اﻻﺳ
ﺘﻌﺎﻣﻞ ﻣﻊ ﻋﺪة أﻧﻮاع ﻣﺨ
ﺘ ﻲﻳﻤﻜﻨﻬﺎ اﻟ
ﺜﻨﺎء اﻟ
ﺘﺑﺎﺳﺘﻠ ﺔ واﺣﺪة
ﺑﺔ ﻛ
ﺘﺎ
ﻳﻤﻜﻨﻨﺎ ﻛ
ﺜﻨﺎء 3 ، ..):أو
ﺘﺜﻨﺎء 2 ،اﺳ
ﺘﺜﻨﺎء 1 ،اﺳ
ﺘﺜﻨﺎء )اﺳ
ﺘﺑﺎﺳ
ﺜﻨﺎء )3 ، ..ﻛﺮﺳﺎﻟ ﺔ:
ﺘﺜﻨﺎء 2 ،اﺳ
ﺘﺜﻨﺎء 1 ،اﺳ
ﺘﺜﻨﺎء )اﺳ
ﺘﺑﺎﺳ
)1ﺟﺮ ب("Enter First Number: ")) 3) y = int (input ("Enter Second Number: ")) 4) print (x / y) 5) :
ﺒﺎﻋ ﺔ )"اﻟﺮﺟﺎءﺗﻘﺪﻳﻢ أرﻗﺎم
ﺜﻨﺎء )(ZeroDivisionError ، ValueErrorﻛـ )msg: 6ﻃ
ﺘﺑﺎﺳ
2) x = int (input
ﺻﺎﻟﺤ ﺔ ﻓﻘﻂ واﻟﻤﺸﻜﻠ ﺔ ﻫ ﻲ" ، msg) :
ﺜﺎﻧ ﻲ :ﻋﺸﺮة اﻟﺮﺟﺎءﺗﻘﺪﻳﻢ أرﻗﺎم ﺻﺎﻟﺤ ﺔ ﻓﻘﻂ واﻟﻤﺸﻜﻠ ﺔ ﻫ ﻲ :ﺣﺮﻓﻴ ﺔ ﻏﻴﺮ ﺻﺎﻟﺤ ﺔ
D: \ Python_classes> py test.pyأدﺧﻞ اﻟﺮﻗﻢ اﻷول10 :أدﺧﻞ اﻟﺮﻗﻢ اﻟ
ﻟـ )( intﻣﻊ bﻫ ﻲ '10: 'ten
ﺜﻨﺎء اﻟﺤﻈﺮ:
ﺘﺑﺎﺳﺘﺮاﺿ ﻲ
اﻻﻓ
ﺜﻨﺎءا ت.
ﺘﺘﻌﺎﻣﻞ ﻣﻊ أي ﻧﻮع ﻣﻦ اﻻﺳ
ﺘﺮاﺿﻴ ﺔ ﻟﻠ
ﺜﻨﺎء اﻻﻓ
ﺘﺘﻠ ﺔ اﻻﺳ
ﺘﺨﺪام ﻛ
ﻳﻤﻜﻨﻨﺎ اﺳ
ﺒﺎﻋ ﺔ رﺳﺎﺋﻞ اﻟﺨﻄﺄ اﻟﻌﺎدﻳ ﺔ.
ﺘﻠ ﺔ ،ﻳﻤﻜﻨﻨﺎ ﻃ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺘﺮاﺿ ﻲ
ﺑﺸﻜﻞ اﻓ
ﺜﻨﺎء:
ﺘﺑﺎﺳﺑﻨﺎء اﻟﺠﻤﻠ ﺔ:
ﺻﻴﺎﻏﺎ ت
)1ﺟﺮ ب")) 3) y = int (input ("Enter Second Number: ")) 4) print (x / y) 5) :
ﺜﻨﺎء 6 ) print ("ZeroDivisionError:
ﺘﺑﺎﺳ
2) x = int (input ("Enter First Number:
ﺜﻨﺎءPlz :
ﺘﺑﺎﺳﺘﺮاﺿ ﻲ
ﺜﻨﺎء")8) print :اﻓ
ﺘﺑﺎﺳ
ﺑﺼﻔﺮ"( )7ZeroDivisionError:ﻻﻳﻤﻜﻦ اﻟﻘ ﺴﻤ ﺔ
ً
إدﺧﺎﻻ ﺻﺎﻟﺤًﺎ ﻓﻘﻂ"( ﺗﻮﻓﺮ
90
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺜﺎﻧ ﻲ :ﻋﺸﺮة
أدﺧﻞ اﻟﺮﻗﻢ اﻟ
ﺜﻨﺎء اﻟﺤﻈﺮ
ﺘﺑﺎﺳﺘﺮاﺿ ﻲ
ﺘﺎﺣ ﺔ ،ﻓﻴﺠ ﺐ أنﻳﻜﻮن اﻟﻮﺿﻊ اﻻﻓ
ﺜﻨﺎء اﻟﻤ
ﺘﺑﺎﺳﺘﻞ
***ﻣﻼﺣﻈ ﺔ :إذا ﺣﺎوﻟ ﺖ ﻣﻊ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻜ
ﺑﻨﺎء اﻟﺠﻤﻠ ﺔ.أﺧﻴ ﺮًا ،وإﻻ ﻓ ﺴﻨﺤﺼﻞ ﻋﲆ ﺧﻄﺄ ﻓ ﻲ
ﺜﻨﺎء5) :
ﺘﺑﺎﺳ
)1ﺟﺮ بprint (10/0) 2) 3) :
ﺜﻨﺎء
ﺘﺳ
ﺑﺎ)6
print
4) print
)"("ZeroDivisionError
)"("Default except
ZeroDivisionError:
ﺘﻞ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺘﻨﻮﻋ ﺔ ﻣﻦ اﻟﻤﺠﻤﻮﻋﺎ ت اﻟﻤﻤﻜﻨ ﺔ
ﻣﻼﺣﻈ ﺔ :ﻓﻴﻤﺎﻳﻠ ﻲ ﻣﺠﻤﻮﻋ ﺔ ﻣ
ﺜﻨﺎء ZeroDivisionError:
ﺘﺑﺎﺳ
)1
ﺜﻨﺎء ZeroDivisionErrorﻛـ msg:
ﺘﺑﺎﺳ
)2
ﺜﻨﺎء (ZeroDivisionError، ValueError):
ﺘﺑﺎﺳ
)3
ﺜﻨﺎء )(ZeroDivisionError، ValueErrorﻛـ msg:
ﺘﺑﺎﺳ
)4
ﺜﻨﺎء:
ﺘﺑﺎﺳ
)5
ﺘﻨﻈﻴﻒ.
ﺘﻠ ﺔ اﻟﻨﻬﺎﺋﻴ ﺔ ﻫﻮ اﻟﺤﻔﺎظ ﻋﲆ رﻣﺰ اﻟ
ﺋﻴ ﺴ ﻲ ﻣﻦ اﻟﻜ
ﺛﻢ ﻓﺈن اﻟﻐﺮض اﻟﺮوﻣﻦ
ﻳﺤﺎول:
ﺑﺎﻟﻤﺨﺎﻃﺮرﻣﺰ ﻣﺤﻔﻮف
ﺜﻨ ﻲ:
ﺘﻳﺴ
رﻣﺰ اﻟﻤﻨﺎوﻟ ﺔ
91
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
أﺧﻴﺮاً:
ﺘﻨﻈﻴﻒ
ﻛﻮد اﻟ
ﺜﻨﺎء أم ﻻ.
ﺘﺘﻌﺎﻣﻞ ﻣﻊ اﻻﺳ
ﺜﻨﺎء أم ﻻ وﺳﻮاءﺗﻢ اﻟ
ﺘﺋﻤﺎﺳﻮاءﺗﻢ رﻓﻊ اﻻﺳ
ﺘﻢﺗﻨﻔﻴﺬ ﻫﺎ دا ً
ﺘﻠ ﺔ اﻟﻨﻬﺎﺋﻴ ﺔ ﻫﻮ أﻧﻪﺳﻴ
ﺗﺨﺼﺺ اﻟﻜ
ﺜﻨﺎء
ﺘاﻟﺤﺎﻟ ﺔ 1:إذا ﻟﻢﻳﻜﻦ ﻫﻨﺎك اﺳ
ﺘﺎج |
اﻧ
ﺣﺎول ﻓ ﻲ
اﻟﻨﻬﺎﻳ ﺔ
ﺘﻌﺎﻣﻞ ﻣﻌﻪ
ﺜﻨﺎء وﻟﻜﻦﺗﻢ اﻟ
ﺘاﻟﺤﺎﻟ ﺔ -2:إذاﺗﻢ ﻃﺮح اﺳ
ﺒﺎﻋ ﺔ )4
ﺒﺎﻋ ﺔ )"ﺟﺮ ب"( )3ﻃ
)1ﺟﺮ ب2) :ﻃ
ﺒﺎﻋ ﺔ
ZeroDivision:ﻃ
ﺒﺎﻋ ﺔ )"أﺧﻴ ﺮًا"( ﺧﻄﺄا5) :
)7ﻃ ﺜﻨﺎءأﺧﻴ ﺮً
ﺘ )6 ﺑﺎﺳ )(10/0
ﺜﻨﺎء"(ﺘﺑﺎﺳ)"
ﺘﺎج |
اﻧ
ﺣﺎول إﻻ ﻓ ﻲ
اﻟﻨﻬﺎﻳ ﺔ
ﺘﻌﺎﻣﻞ ﻣﻌﻪ
ﺘﻢ اﻟ
ﺜﻨﺎء وﻟﻜﻦ ﻟﻢﻳ
ﺘاﻟﺤﺎﻟ ﺔ 3:إذاﺗﻢ ﻃﺮح اﺳ
92
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج |
اﻧ
ﺣﺎول ﻓ ﻲ اﻟﻨﻬﺎﻳ ﺔ
ﺒﻴﻌ ﻲ(
ZeroDivisionError:اﻟﻘ ﺴﻤ ﺔ ﻋﲆ ﺻﻔﺮ )إﻧﻬﺎء ﻏﻴﺮ ﻃ
ﺒﺎﻋ ﺔ
ﺘﻮرد )2ﺣﺎول3) :ﻃ
ﺗﺴ)1
)"ﺟﺮ ب"( )4) os._exit (0) 5
ﺒﺎﻋﺔﺔ
ﺒﺎﻋ
)8ﻃﻃ
ﺳﻢ:ا6) :
اﻻأﺧﻴ ًﺮ
ﺧﻄﺄ )7 ﺜﻨﺎء
ﺜﻨﺎء"(ﺘﺘ
ﺳﺳﺑﺎ
ﺑﺎ
)"
)"أﺧﻴ ﺮًا"(
اﻹﺧﺮاج :ﺣﺎول
ﻣﻠﺤﻮﻇ ﺔ:
)os._exit (0
ﺜﻞ 0رﻣﺰ اﻟﺤﺎﻟ ﺔ وﻳﺸﻴﺮ إﱃ اﻹﻧﻬﺎء اﻟﻌﺎدي
ﺣﻴ ﺚﻳﻤ
ﻫﻨﺎك اﻟﻌﺪﻳﺪ ﻣﻦ رﻣﻮز اﻟﺤﺎﻟ ﺔ اﻟﻤﻤﻜﻨ ﺔ.
ﺜﻨ ﻲ:
ﺘﻳﺴ
stmt-4
أﺧﻴﺮاً:
stmt-5
stmt-6
ﺜﻨﺎء
ﺘاﻟﺤﺎﻟ ﺔ 1:إذا ﻟﻢﻳﻜﻦ ﻫﻨﺎك اﺳ
1،2،3،5،6اﻹﻧﻬﺎء اﻟﻌﺎدي
ﺜﻨﺎء
ﺘﺑﺎﺳﺘﻠ ﺔ
ﺜﻨﺎء ﻛ
ﺘﺑﺎﺳﺑﻘ ﺔ
ﺜﻨﺎء ﻓ ﻲ stmt2واﻟﻤﻄﺎ
ﺘﺛﻴﺮ اﺳ
اﻟﺤﺎﻟ ﺔ 2:إذا أ
1،4،5،6اﻹﻧﻬﺎء اﻟﻌﺎدي
ﺑﻘ ﺔ
ﺘﻄﺎ
ﺑﻠ ﺔ ﻏﻴﺮ ﻣ
ﺜﻨﺎء اﻟﻤﻘﺎ
ﺘﺘﻠ ﺔ اﻻﺳ
ﺜﻨﺎء ﻋﻨﺪ stmt2ﻟﻜﻦ ﻛ
ﺘاﻟﺤﺎﻟ ﺔ 3:ﻓ ﻲ ﺣﺎﻟ ﺔ ﻇﻬﻮر اﺳ
ﺒﻴﻌ ﻲ
1،5إﻧﻬﺎء ﻏﻴﺮ ﻃ
ﺒﻴﻌ ﻲ
ﺋﻤﺎ إﻧﻬﺎء ﻏﻴﺮ ﻃ
ﺜﻨﺎء ﻓ ﻲ stmt-5أو stmt-6 ،ﻓﻬﻮ دا ً
ﺘﺛﻴﺮ اﺳ
اﻟﺤﺎﻟ ﺔ 5:إذا أ
ﺘﺪاﺧﻠ ﺔ:
ﺜﻨﺎء اﻟﻨﻬﺎﻳ ﺔ اﻟﻤ
ﺘﺑﺎﺳﺘﻞ اﻟﻤﺤﺎوﻟ ﺔ
ﻛ
ﺜﻨﺎء blockأو أﺧﻴ ﺮًا.
ﺘﺑﺎﺳﺘﻞ try-except-finallyداﺧﻞ tryأو
ﻳﻤﻜﻨﻨﺎ أﺧﺬ اﻟﻜ
ﻳﺤﺎول:
----------
----------
----------
ﻳﺤﺎول:
-------------
--------------
--------------
ﺜﻨ ﻲ:
ﺘﻳﺴ
--------------
--------------
--------------
------------
ﺜﻨ ﻲ:
ﺘﻳﺴ
-----------
-----------
-----------
ﺜﻨﺎء
ﺘﺑﺎﺳﺒﺎﻋ ﺔ )"اﻟﺠﺰء اﻟﺨﺎرﺟ ﻲ
ﺜﻨﺎء11) :ﻃ
ﺘﺑﺎﺳ
)10
ﺘﻠ ﺔ اﻟﺨﺎرﺟﻴ ﺔ
ﺒﺎﻋ ﺔ )"اﻟﻜ
ﺘﻠ ﺔ"( )12أﺧﻴ ﺮًا13) :ﻃ
اﻟﻜ
اﻟﻨﻬﺎﺋﻴ ﺔ"(
ﺘﺎج |
اﻧ
ﺘﻠ ﺔ اﻟﻤﺤﺎوﻟ ﺔ اﻟﺨﺎرﺟﻴ ﺔ
ﻛ
ﺘﻠ ﺔ اﻟﻤﺤﺎوﻟ ﺔ اﻟﺪاﺧﻠﻴ ﺔ
ﻛ
ﺘﻠ ﺔ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳاﻟﺪاﺧﻠﻴ ﺔ
ﺘﻠ ﺔ
ﺘﻠ ﺔ اﻟﺪاﺧﻠﻴ ﺔ أﺧﻴ ًﺮا اﻟﻜ
اﻟﻜ
اﻟﺨﺎرﺟﻴ ﺔ أﺧﻴ ﺮًا
ﻳﺤﺎول:
stmt-4
stmt-5
stmt-6
ﺜﻨﺎء X:
ﺘﺑﺎﺳ
stmt-7
أﺧﻴﺮاً:
stmt-8
stmt-9
ﺜﻨﺎء ص:
ﺘﺑﺎﺳ
stmt-10
أﺧﻴﺮاً:
stmt-11
stmt-12
ﺜﻨﺎء
ﺘاﻟﺤﺎﻟ ﺔ 1:إذا ﻟﻢﻳﻜﻦ ﻫﻨﺎك اﺳ
1،2،3،4،5،6،8،9،11،12اﻹﻧﻬﺎء اﻟﻌﺎدي
ﺜﻨﺎء
ﺘﺑﺎﺳﺘﻠ ﺔ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺑﻘ ﺔ
ﺜﻨﺎء ﻓ ﻲ stmt-2واﻟﻤﻄﺎ
ﺘﺛﻴﺮ اﺳ
اﻟﺤﺎﻟ ﺔ 2:إذا أ
1،10،11،12اﻹﻧﻬﺎء اﻟﻌﺎدي
ﺑﻘ ﺔ
ﺘﻄﺎ
ﺑﻠ ﺔ ﻏﻴﺮ ﻣ
ﺜﻨﺎء اﻟﻤﻘﺎ
ﺘﺑﺎﺳﺘﻠ ﺔ
ﺜﻨﺎء ﻋﻨﺪ stmt-2وﻛ
ﺘاﻟﺤﺎﻟ ﺔ 3:إذاﺗﻢ رﻓﻊ اﺳ
ﺒﻴﻌ ﻲ
1،11 ،إﻧﻬﺎء ﻏﻴﺮ ﻃ
ﺑﻘ ﺔ
ﺘﻄﺎ
ﺘﻠ ﺔ اﻟﻤ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺜﻨﺎء ﻋﻨﺪ stmt-5وداﺧﻠ ﻲ
ﺘاﻟﺤﺎﻟ ﺔ 4:إذاﺗﻢ رﻓﻊ اﺳ
1،2،3،4،7،8،9،11،12اﻹﻧﻬﺎء اﻟﻌﺎدي
95
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺑﻘ ﺔ
ﺘﻄﺎ
ﺘﻠ ﺔ اﻟﻤ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺑﻘ ﺔ وﻟﻜﻦ ﺧﺎرﺟﻴ ﺔ
ﺘﻄﺎ
ﺘﻠ ﺔ ﻏﻴﺮ ﻣ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺜﻨﺎء ﻋﻨﺪ stmt-5وداﺧﻠ ﻲ
ﺘاﻟﺤﺎﻟ ﺔ 5:إذاﺗﻢ رﻓﻊ اﺳ
1،2،3،4،8،10،11،12 ،اﻹﻧﻬﺎء اﻟﻌﺎدي
ﺘﻞ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺘﻞ اﻟﺪاﺧﻠﻴ ﺔ واﻟﺨﺎرﺟﻴ ﺔ
ﺑﻘ ﺔ اﻟﻜ
ﺘﻢ ﻣﻄﺎ
ﺜﻨﺎء ﻋﻨﺪ stmt-5وﻟﻢﺗ
ﺘاﻟﺤﺎﻟ ﺔ 6:ﻓ ﻲ ﺣﺎﻟ ﺔ ﻇﻬﻮر اﺳ
ﺒﻴﻌ ﻲ
1،2،3،4،8،11 ،إﻧﻬﺎء ﻏﻴﺮ ﻃ
ﺑﻘ ﺔ
ﺘﻄﺎ
ﺘﻠ ﺔ اﻟﻤ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺑﻠﻬﺎ
ﺜﻨﺎء ﻓ ﻲ stmt-7وﻣﺎﻳﻘﺎ
ﺘﺛﻴﺮ اﺳ
اﻟﺤﺎﻟ ﺔ 7:إذا أ
1،2،3 ،. ،. ،. ، 8،10،11،12 ،اﻹﻧﻬﺎء اﻟﻌﺎدي
ﺑﻘ ﺔ
ﺘﻄﺎ
ﺘﻠ ﺔ ﻏﻴﺮ ﻣ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺑﻠﻬﺎ
ﺜﻨﺎء ﻓ ﻲ stmt-7وﻣﺎﻳﻘﺎ
ﺘﺛﻴﺮ اﺳ
اﻟﺤﺎﻟ ﺔ 8:إذا أ
ﺒﻴﻌ ﻲ
1،2،3 ،. ،. ،. ، 8،11 ،إﻧﻬﺎء ﻏﻴﺮ ﻃ
ﺑﻘ ﺔ
ﺘﻄﺎ
ﺘﻠ ﺔ اﻟﻤ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺑﻠﻬﺎ
ﺜﻨﺎء ﻓ ﻲ stmt-8وﻣﺎﻳﻘﺎ
ﺘﺛﻴﺮ اﺳ
اﻟﺤﺎﻟ ﺔ 9:إذا أ
1،2،3 ،. ،. ،. ،. ، 10،11،12اﻹﻧﻬﺎء اﻟﻌﺎدي
ﺑﻘ ﺔ
ﺘﻄﺎ
ﺘﻠ ﺔ ﻏﻴﺮ ﻣ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺑﻠﻬﺎ
ﺜﻨﺎء ﻓ ﻲ stmt-8وﻣﺎﻳﻘﺎ
ﺘﺛﻴﺮ اﺳ
اﻟﺤﺎﻟ ﺔ 10:إذا أ
ﺒﻴﻌ ﻲ
1،2،3 ،. ،. ،. ،. ، 11 ،إﻧﻬﺎء ﻏﻴﺮ ﻃ
ﺑﻘ ﺔ
ﺘﻄﺎ
ﺘﻠ ﺔ ﻏﻴﺮ ﻣ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺑﻠﻬﺎ
ﺜﻨﺎء ﻓ ﻲ stmt-9وﻣﺎﻳﻘﺎ
ﺘﺛﻴﺮ اﺳ
اﻟﺤﺎﻟ ﺔ 12:إذا أ
ﺒﻴﻌ ﻲ
1،2،3 ،. ،. ،. ،. ، 8،11 ،إﻧﻬﺎء ﻏﻴﺮ ﻃ
ﺒﻴﻌ ﻲ.
ﺋﻤﺎ إﻧﻬﺎء ﻏﻴﺮ ﻃ
ﺜﻨﺎء ﻓ ﻲ stmt-11أو stmt-12 ،ﻓﻬﻮ دا ً
ﺘﺛﻴﺮ اﺳ
اﻟﺤﺎﻟ ﺔ 14:إذا أ
ﺜﻨﺎء-أﺧﻴ ﺮًا:
ﺘﺑﺎﺳﺘﺨﺪام اﻟﻤﺤﺎوﻟ ﺔ
ﺑﺎﺳآﺧﺮ ﺣﻈﺮ
ﺜﻨﺎءا ت
ﺘﺘﻠ ﺔ elseإذا وﻓﻘﻂ ﻓ ﻲ ﺣﺎﻟ ﺔ ﻋﺪم وﺟﻮد اﺳ
ﺘﻢﺗﻨﻔﻴﺬ ﻛ
ﺘﻞ try-except-final block.ﺳﻴ
ﺘﺨﺪام elseﻣﻊ ﻛ
ﻳﻤﻜﻨﻨﺎ اﺳ
ﺘﻠ ﺔ try.
داﺧﻞ ﻛ
ﻳﺤﺎول:
96
،DURGASOFT،ﺣﻴﺪر أ
ﺑﺎد - 500038 ، ﺑﻴ ﺖ ﺘﺮ#
ﻳﻔﺎﻧﺎم ،أﻣﻴﺮ 202، ﺑﻖ 2 ،
ﻫﺪى ﻣﺎﻳ اﻟﻄﺎ
Machine Translated by Google
آﺧﺮ:
ﺜﺎل:
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﻳﺤﺎول:
ﺒﺎﻋ ﺔ )"آﺧﺮ"(
ﻃ
أﺧﻴﺮاً:
ﺒﺎﻋ ﺔ )"أﺧﻴ ﺮًا"(
ﻃ
آﺧﺮ
أﺧﻴﺮا ً
ﺗﺞ:
ﺘﻠ ﺔ try.ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔﻳﻜﻮن اﻟﻨﺎ
ﺜﻨﺎء داﺧﻞ ﻛ
ﺘﺘﻢﺗﻨﻔﻴﺬ اﻟﺤﻈﺮ وإﻻ ﻓ ﺴﻴﻜﻮن ﻫﻨﺎك اﺳ
ﺘﻌﻠﻴﻖ ﻋﲆ اﻟ ﺴﻄﺮ اﻷول ،ﻓﻠﻦﻳ
ﺑﺎﻟإذا ﻟﻢ ﻧﻘﻢ
ﻳﺤﺎول
ﺜﻨ ﻲ
ﺘﻳﺴ
أﺧﻴﺮا ً
ﺘﻞ
ﺑ ﺔ ﻋﺪة ﻛ
ﺘﺎ
ﺜﻨﺎء ﻧﻔ ﺲ اﻟﻤﺤﺎوﻟ ﺔ ،ﻟﻜﻦ ﻻﻳﻤﻜﻨﻨﺎ ﻛ
ﺘﺑﺎﺳﺘﻌﺪدة
ﺘﻞ ﻣ
ﺑﺔ ﻛ
ﺘﺎ
)4ﻳﻤﻜﻨﻨﺎ ﻛ
ﺘﻞ ﻟﻨﻔ ﺲ اﻟﻤﺤﺎوﻟ ﺔ
أﺧﻴ ﺮًا ﻛ
ﺘﻠ ﺔ .أي
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺘﻠ ﺔ إﻟﺰاﻣﻴ ﺔ
ﺘﻠ ﺔ أﺧﺮىﻳﺠ ﺐ أنﺗﻜﻮن ﻫﻨﺎك ﻛ
ﺘ ﺐ ﻓﻴﻪ ﻛ
)5ﻓ ﻲ أي وﻗ ﺖ ﻧﻜ
ﺘﻠ ﺔ أﺧﺮى.
ﺑﺔ ﻛ
ﺘﺎ
ﺑﺪون إﻻ ﻻﻳﻤﻜﻨﻨﺎ ﻛ
ﺗﻴ ﺐ ﻣﺤﺎوﻟ ﺔ ﻣﺎ ﻋﺪا آﺧﺮ أﺧﻴ ﺮًا.
)6ﻣﻦ اﻟﻤﻬﻢﺗﺮ
ﺋﻤﺎﺗﺪاﺧﻞ ﻣﺤﺎوﻟ ﺔ ﻣﺎ
ﺜﺎل ،ﻣﻦ اﻟﻤﻤﻜﻦ دا ً
ﺒﻴﻞ اﻟﻤ
ﺘﻞ .ﻋﲆﺳ
ﺜﻨﺎء else ، ،وأﺧﻴ ﺮًا اﻟﻜ
ﺘﺑﺎﺳ
)7ﻳﻤﻜﻨﻨﺎﺗﺤﺪﻳﺪ try-except-else-أﺧﻴ ﺮًا داﺧﻞ try ،
ﻋﺪا ،آﺧﺮ ،أﺧﻴ ًﺮا.
97
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﻳﺤﺎول:
1
ﺒﺎﻋ ﺔ )"ﺟﺮ ب"(
ﻃ
ﺒﺎ"(
ﺒﺎﻋ ﺔ )"ﻣﺮﺣ ً
ﺜﻨﺎء :ﻃ
ﺘﺑﺎﺳ
2
آﺧﺮ:
3
ﺒﺎ"(
ﺒﺎﻋ ﺔ )"ﻣﺮﺣ ً
ﻃ
ﺒﺎ"(
ﺒﺎﻋ ﺔ )"ﻣﺮﺣ ً
أﺧﻴ ﺮًا :ﻃ
4
ﻳﺤﺎول:
)"print ("try
5
ﺜﻨﺎءprint ("except") :
ﺘﺑﺎﺳ
ﻳﺤﺎول:
ﻳﺤﺎول:
)"print ("try
ﺜﻨﺎءprint ("except") :
ﺘﺑﺎﺳ
7
آﺧﺮ:
ﺒﺎﻋ ﺔ )"آﺧﺮ"(
ﻃ
ﻳﺤﺎول:
ﺒﺎﻋ ﺔ )"آﺧﺮ"(
ﻃ
ﻳﺤﺎول:
ﻳﺤﺎول:
ﺜﻨﺎء
ﺘﺑﺎﺳ
)"print ("try
ﺜﻨﺎء
ﺘﺑﺎﺳ
)"XXX: print ("except-1
10
)"YYY: print ("except-2
ﻳﺤﺎول:
98
،DURGASOFT،ﺣﻴﺪر أ
ﺑﺎد - 500038 ، ﺑﻴ ﺖ ﺘﺮ#
ﻳﻔﺎﻧﺎم ،أﻣﻴﺮ 202، ﺑﻖ 2 ،
ﻫﺪى ﻣﺎﻳ اﻟﻄﺎ
Machine Translated by Google
آﺧﺮ:
ﺒﺎﻋ ﺔ )"آﺧﺮ"(
ﻃ
آﺧﺮ:
ﺒﺎﻋ ﺔ )"آﺧﺮ"(
ﻃ
ﻳﺤﺎول:
ﺜﻨﺎء:
ﺘﺑﺎﺳ
)"print ("try
ﺒﺎﻋ ﺔ
)"print ("except-1أﺧﻴ ﺮًا :ﻃ
ﺒﺎﻋ ﺔ )"أﺧﻴ ﺮًا"(
)"أﺧﻴ ﺮًا"( أﺧﻴ ﺮًا :ﻃ
12
ﻳﺤﺎول:
)"print ("Hello
13 ﺜﻨﺎء:
ﺘﺑﺎﺳ
)"print ("try
)"print ("except
ﻳﺤﺎول:
)"print ("try
ﺜﻨﺎءprint ("Hello") :
ﺘﺑﺎﺳ
14 ﺜﻨﺎء:
ﺘﺑﺎﺳ
)"print ("except
)"print ("except
ﻳﺤﺎول:
ﻳﺤﺎول:
)"print ("try
ﺜﻨﺎءprint ("Hello") :
ﺘﺑﺎﺳ
16 )"print ("exceptوإﻻ:
ﺒﺎﻋ ﺔ )"آﺧﺮ"(
ﻃ
ﻳﺤﺎول:
)"print ("try
ﺜﻨﺎءprint ("except") :
ﺘﺑﺎﺳ
17
ﻳﺤﺎول:
99
،DURGASOFT،ﺣﻴﺪر أ
ﺑﺎد - 500038 ، ﺑﻴ ﺖ ﺘﺮ#
ﻳﻔﺎﻧﺎم ،أﻣﻴﺮ 202، ﺑﻖ 2 ،
ﻫﺪى ﻣﺎﻳ اﻟﻄﺎ
Machine Translated by Google
ﺜﻨﺎء"(
ﺘﺑﺎﺳ
ﺒﺎﻋ ﺔ )"
ﺜﻨﺎء :ﻃ
ﺘﺑﺎﺳ
ﻳﺤﺎول:
)"print ("try
ﺜﻨﺎءprint ("except") :
ﺘﺑﺎﺳ
18
ﻳﺤﺎول:
ﻳﺤﺎول:
)"print ("try
ﺜﻨﺎءprint ("except") :
ﺘﺑﺎﺳ
19
إذا ﻛﺎن 10> 20:
ﺒﺎﻋ ﺔ )"إذا"(
ﻃ
آﺧﺮ:
ﺒﺎﻋ ﺔ )"آﺧﺮ"(
ﻃ
ﻳﺤﺎول:
ﺜﻨﺎء:
ﺘﺑﺎﺳ
)"print ("try") try: print ("inner try
ﺒﺎﻋ ﺔ
)"print ("inner except blockأﺧﻴ ﺮًا :ﻃ
)"اﻟﺠﺰء اﻟﺪاﺧﻠ ﻲ أﺧﻴ ﺮًا"(
20
ﺜﻨﺎء"(
ﺘﺑﺎﺳ
ﺒﺎﻋ ﺔ )"
ﺜﻨﺎء :ﻃ
ﺘﺑﺎﺳ
ﻳﺤﺎول:
ﺜﻨﺎء"( ﺣﺎول:
ﺘﺑﺎﺳ
ﺒﺎﻋ ﺔ )"
ﺜﻨﺎء :ﻃ
ﺘﺑﺎﺳ
21
ﺒﺎﻋ ﺔ
ﺜﻨﺎء :ﻃ
ﺘﺑﺎﺳﺒﺎﻋ ﺔ )"ﻣﺤﺎوﻟ ﺔ داﺧﻠﻴ ﺔ"(
ﻃ
ﺘﻠ ﺔ
ﺒﺎﻋ ﺔ )"ﻛ
ﺘﻠ ﺔ"( أﺧﻴ ًﺮا :ﻃ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳ)"داﺧﻠ ﻲ
داﺧﻠﻴ ﺔ أﺧﻴ ﺮًا"(
ﻳﺤﺎول:
100
،DURGASOFT،ﺣﻴﺪر أ
ﺑﺎد - 500038 ، ﺑﻴ ﺖ ﺘﺮ#
ﻳﻔﺎﻧﺎم ،أﻣﻴﺮ 202، ﺑﻖ 2 ،
ﻫﺪى ﻣﺎﻳ اﻟﻄﺎ
Machine Translated by Google
ﻳﺤﺎول:
ﺜﻨﺎء:
ﺘﺑﺎﺳﺒﺎﻋ ﺔ )"ﻣﺤﺎوﻟ ﺔ داﺧﻠﻴ ﺔ"(
ﻃ
ﺒﺎﻋ ﺔ
ﺘﻠ ﺔ"( أﺧﻴ ﺮًا :ﻃ
ﺜﻨﺎء اﻟﻜ
ﺘﺑﺎﺳﺒﺎﻋ ﺔ )"داﺧﻠ ﻲ
ﻃ
ﺘﻠ ﺔ داﺧﻠﻴ ﺔ أﺧﻴ ﺮًا"(
)"ﻛ
ﻳﺤﺎول:
ﺜﻨﺎء:
ﺘﺑﺎﺳ
)"print ("try
)"print ("except
23
ﻳﺤﺎول:
ﺒﺎﻋ ﺔ )"آﺧﺮ"(
ﻃ
ﻳﺤﺎول:
ﻳﺤﺎول:
ﺜﻨﺎء:
ﺘﺑﺎﺳﺒﺎﻋ ﺔ )"آﺧﺮ"(
ﻃ
25
ﺒﺎﻋ ﺔ
ﺜﻨﺎء"( أﺧﻴ ًﺮا :ﻃ
ﺘﺑﺎﺳ
ﺒﺎﻋ ﺔ )"
ﻃ
)"أﺧﻴ ﺮًا"(
ﺜﻨﺎءا ت:
ﺘأﻧﻮاع اﻻﺳ
ﺜﻨﺎءا ت اﻟﻤﻤﻜﻨ ﺔ.
ﺘﺜﻮن ﻫﻨﺎك ﻧﻮﻋﺎن ﻣﻦ اﻻﺳ
ﺑﺎﻳﻓﻲ
ﺒ ًﻘﺎ
ﺜﻨﺎءا ت ﻣﺤﺪدة ﻣ ﺴ
ﺘ)1اﺳ
ﺘﺨﺪم
ﺘ ﻲﻳﺤﺪد ﻫﺎ اﻟﻤ ﺴ
ﺜﻨﺎءا ت اﻟ
ﺘ)2اﻻﺳ
ﺒ ًﻘﺎ:
ﺜﻨﺎءا ت ﻣﺤﺪدة ﻣ ﺴ
ﺘ)1اﺳ
ﺑﻮاﺳﻄ ﺔ ﺟﻬﺎز Pythonاﻟﻈﺎ ﻫﺮي ﻋﻨﺪﻣﺎﻳﻜﻮن ﻣﻠﻒﺘﻢ رﻓﻌﻬﺎﺗﻠﻘﺎﺋ ًﻴﺎ
ﺘ ﻲﻳ
ﺜﻨﺎءا ت اﻟ
ﺘﺜﻨﺎءا ت اﻟﺪاﺧﻠﻴ ﺔ .اﻻﺳ
ﺘﺑﺎﺳﻢ اﻻﺳ ُﻌﺮف أ ً
ﻳﻀﺎ ﺗ
•
ﺒ ًﻘﺎ.
ﺜﻨﺎءا ت ﻣﺤﺪدة ﻣ ﺴ
ﺘﻳ ﺴﻤﻰ ﺣﺪ ث ﻣﻌﻴﻦﻳﺤﺪ ث اﺳ
ﺒﺎﻋ ﺔ )(10/0
ﺗﻠﻘﺎﺋ ًﻴﺎ ZeroDivisionError.ﻃ
ﺘﺮﻓﻊ Python
ﺜﺎل 1:ﻋﻨﺪﻣﺎ ﻧﺤﺎولﺗﻨﻔﻴﺬ اﻟﻘ ﺴﻤ ﺔ ﻋﲆ اﻟﺼﻔﺮ ،ﺳ
ﻣ
101
،DURGASOFT،ﺣﻴﺪر أ
ﺑﺎد - 500038 ، ﺑﻴ ﺖ ﺘﺮ#
ﻳﻔﺎﻧﺎم ،أﻣﻴﺮ 202، ﺑﻖ 2 ،
ﻫﺪى ﻣﺎﻳ اﻟﻄﺎ
Machine Translated by Google
ﺘﺮﻓﻊ
ﺜﺎل 2:ﻋﻨﺪﻣﺎ ﻧﺤﺎولﺗﺤﻮﻳﻞ ﻗﻴﻤ ﺔ اﻹدﺧﺎل إﱃ ﻧﻮع intوإذا ﻛﺎﻧ ﺖ ﻗﻴﻤ ﺔ اﻹدﺧﺎل ﻟﻴ ﺴ ﺖ ﻗﻴﻤ ﺔ int ،ﻓﺈن Pythonﺳ
ﻣ
ﺗﻠﻘﺎﺋ ًﻴﺎ
ValueError
)"x = int ("ten ValueError
ﺘﺨﺪم:
ﺜﻨﺎءا ت ﻣﻦﺗﺤﺪﻳﺪ اﻟﻤ ﺴ
ﺘ)2اﺳ
ﺒﺮﻧﺎﻣﺠﻴ ﺔ
ﺜﻨﺎءا ت اﻟ
ﺘﺜﻨﺎءا ت اﻟﻤﺨﺼﺼ ﺔ أو اﻻﺳ
ﺘﺑﺎﺳﻢ اﻻﺳ ُﻌﺮف أ ً
ﻳﻀﺎ ﺗ
•
ﺜﻨﺎءا ت
ﺘﺜﻨﺎءا ت اﻻﺳ
ﺘُﻄﻠﻖ ﻋﲆ ﻫﺬا اﻟﻨﻮع ﻣﻦ اﻻﺳ
ﺑﺸﻜﻞ ﺻﺮﻳﺢ ﻟﻺﺷﺎرة إﱃ ﺣﺪو ث ﺧﻄﺄ ﻣﺎ ،ﻳﺜﻨﺎءا ت ورﻓﻌﻬﺎ
ﺘﺘﻌﻴﻦ ﻋﻠﻴﻨﺎﺗﺤﺪﻳﺪ اﻻﺳ
ﺑﻌﺾ اﻟﻮﻗ ﺖ ،ﻳ•ﻓ ﻲ
ﺘﺨﺪم أو اﻟﻤﺨﺼﺼ ﺔ
ﺑﻮاﺳﻄ ﺔ اﻟﻤ ﺴاﻟﻤﺤﺪدة
ﺜﻨﺎءا ت
ﺘاﺳ
ﺘﺨﺪام
ﺑﺎﺳﺗﻨﺎ
ﺒﺎ
ﺘﻄﻠ
ﺑﻨﺎ ًء ﻋﲆ ﻣﺑﺸﻜﻞ ﺻﺮﻳﺢﺛﻢ ﻋﻠﻴﻨﺎ أن ﻧﺮﻓﻊﺜﻨﺎءا ت وﻟﻴ ﺲ ﻟﺪى Pythonأي ﻓﻜﺮة ﻋﻨﻬﺎ .وﻣﻦ
ﺘﺒﺮﻣﺞ ﻣ ﺴﺆول ﻋﻦﺗﺤﺪﻳﺪ ﻫﺬه اﻻﺳ
•اﻟﻤ
ﻛﻠﻤ ﺔ "رﻓﻊ".
ﺜﺎل:
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
InSufficientFundsException
InvalidInputException
TooYoungException
TooOldException
ﺘﺎﻟ ﻲ
ﺋﻴ ﺴﻴ ﺔ ﻋﲆ اﻟﻨﺤﻮ اﻟ
ﺘﺨﺪام رﻓﻊ اﻟﻜﻠﻤﺎ ت اﻟﺮ
ﺑﺎﺳﺜﻨﺎء
ﺘﻳﻤﻜﻨﻨﺎ رﻓﻊ اﺳ
رﻓﻊ )"TooYoungException ("message
ﺜﻨﺎء(TooOldException :
ﺘ)1ﻓﺌ ﺔ )TooYoungExceptionاﺳ
def __init __ (self، arg): 3) self.msg = arg 4) 5) class
ﺜﻨﺎء(__init __ (self، arg): 7) self.msg = arg 8) :
ﺘﺳ
)6 ))2ا
def
ﺘﺤﺼﻞ ﻋﲆ
ﺑﻌﺾ اﻟﻮﻗ ﺖ وﺳﺘﻈﺮ
D: \ Python_classes> py test.pyأدﺧﻞ اﻟﻌﻤﺮ90 __main __. TooYoungException: :ﻣﻦ ﻓﻀﻠﻚ اﻧ
ﺒﺎ !!!
ﺑﻖ ﻗﺮﻳ ً
أﻓﻀﻞﺗﻄﺎ
ﺘﺮوﻧ ﻲ !!!
ﺒﺮﻳﺪ اﻹﻟﻜ
ﺒﺮ اﻟ
ﺒﺎ ﻋ
ﺒﺎراة ﻗﺮﻳ ً
ﺘﺤﺼﻞ ﻋﲆﺗﻔﺎﺻﻴﻞ اﻟﻤ
D: \ Python_classes> py test.pyأدﺧﻞ اﻟﻌﻤﺮ27 :ﺳ
ﺒ ًﻘﺎ
ﺜﻨﺎءا ت اﻟﻤﺤﺪدة ﻣ ﺴ
ﺘﺜﻨﺎءا ت اﻟﻤﺨﺼﺼ ﺔ وﻟﻜﻦ ﻟﻴ ﺲ ﻟﻼﺳ
ﺘﺋﻴ ﺴﻴ ﺔ ﻫ ﻲ اﻷﻧ ﺴ ﺐ ﻟﻼﺳ
ﻣﻼﺣﻈ ﺔ :زﻳﺎدة اﻟﻜﻠﻤﺎ ت اﻟﺮ
103
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﻣﻠﻒ
ﻣﻌﺎﻟﺠ ﺔ
104
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺗﻨﺎ.
ﺑﻴﺎﻧﺎﺘﺨﺰﻳﻦ
ﺗﻌﺪ اﻟﻤﻠﻔﺎ ت ﻣﻨﺎﻃﻖﺗﺨﺰﻳﻦ داﺋﻤ ﺔ ﺷﺎﺋﻌ ﺔ ﺟﺪًا ﻟ
•
ﺜﻨﺎﺋﻴ ﺔ:
)2اﻟﻤﻠﻔﺎ ت اﻟ
ﺜﻞ اﻟﺼﻮر وﻣﻠﻔﺎ ت اﻟﻔﻴﺪﻳﻮ وﻣﻠﻔﺎ ت اﻟﺼﻮ ت وﻣﺎ إﱃ
ﺜﻨﺎﺋﻴ ﺔ ﻣ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺘﺨﺰﻳﻦ اﻟ
ﺜﻨﺎﺋﻴ ﺔ ﻟ
ﺘﺨﺪام اﻟﻤﻠﻔﺎ ت اﻟ
ﻋﺎدةﻳﻤﻜﻨﻨﺎ اﺳ
ذﻟﻚ ...
ﺘﺢ ﻣﻠﻒ:
ﻓ
ﺜﻮن اﻟﺪاﺧﻠﻴ ﺔ )( open
ﺑﺎﻳﺘﺨﺪام داﻟ ﺔ ﺑ ﺔ( ﻋﲆ اﻟﻤﻠﻒ ،ﻳﺠ ﺐ أوﻻ ً ﻓ
ﺘﺢ ﻫﺬا اﻟﻤﻠﻒ ،ﻟﺬﻟﻚﻳﺠ ﺐ اﺳ ﺘﺎ
ﺜﻞ اﻟﻘﺮاءة أو اﻟﻜ
ﺒﻞ إﺟﺮاء أي ﻋﻤﻠﻴ ﺔ )ﻣ
•ﻗ
ﺜﻮن ﻫ ﻲ
ﺑﺎﻳﺑﻬﺎ ﻓ ﻲاﻷوﺿﺎع اﻟﻤ ﺴﻤﻮح
ﺑﺪاﻳ ﺔ اﻟﻤﻠﻒ ،وإذا ﻟﻢﻳﻜﻦ اﻟﻤﻠﻒ اﻟﻤﺤﺪد ﻣﻮﺟﻮدًا ،ﻓ ﺴﻨﺤﺼﻞ ﻋﲆﺘﻢ وﺿﻊ ﻣﺆﺷﺮ اﻟﻤﻠﻒ ﻓ ﻲ
ﺘﺢ ﻣﻠﻒ ﻣﻮﺟﻮد ﻟﻌﻤﻠﻴ ﺔ اﻟﻘﺮاءة.ﻳ
ﻓ ) 1ص
ﺘﺮاﺿ ﻲ.
FileNotFoundError ،و ﻫﺬا ﻫﻮ اﻟﻮﺿﻊ اﻻﻓ
ﺑﺎﻟﻔﻌﻞ ،ﺣﺎ
ﺘﺎ ً
ﺘﻢﺗﺠﺎوزه .إذا ﻟﻢﻳﻜﻦ اﻟﻤﻠﻒ اﻟﻤﺤﺪد ﻣ
ﺒﻴﺎﻧﺎ ت ،ﻓ ﺴﻴ
ﺑﻌﺾ اﻟﺑﺎﻟﻔﻌﻞ ﻋﲆﺘﻮي
ﺑ ﺔ .إذا ﻛﺎن اﻟﻤﻠﻒﻳﺤ
ﺘﺎ
ﺘﺢ ﻣﻠﻒ ﻣﻮﺟﻮد ﻟﻌﻤﻠﻴ ﺔ اﻟﻜ
)2ﻓ
ﺑﺈﻧﺸﺎء ﻫﺬا اﻟﻤﻠﻒ.ﻓ ﺴﻴﻘﻮم ﻫﺬا اﻟﻮﺿﻊ
ﺒﻴﺎﻧﺎ ت اﻟﻤﻮﺟﻮدة.
ﺘﺠﺎوز اﻟ
ﺒﻴﺎﻧﺎ ت.ﺳﻮفﻳ
ﺑ ﺔ وﻗﺮاءة اﻟ
ﺘﺎ
5) w +ﻟﻜ
ﺒﻴﺎﻧﺎ ت اﻟﻤﻮﺟﻮدة.
ﺘﺠﺎوز اﻟ
ﺒﻴﺎﻧﺎ ت ﻣﻦ اﻟﻤﻠﻒ .ﻟﻦﺗ
6) a +ﻹﻟﺤﺎق وﻗﺮاءة اﻟ
105
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺜﻨﺎﺋﻴ ﺔ.
ﺜﻞ اﻟﻤﻠﻔﺎ ت اﻟ
ﺑـ "b" ،ﻓﻬﺬهﺗﻤﺒﻴﻖ ﻋﲆ اﻟﻤﻠﻔﺎ ت اﻟﻨﺼﻴ ﺔ .إذا ﻛﺎﻧ ﺖ اﻷوﺿﺎع اﻟﻤﺬﻛﻮرة أﻋﻼه ﻣﻠﺤﻘ ﺔ
ﺘﻄﺑﻠ ﺔ ﻟﻠ
ﻣﻼﺣﻈ ﺔ :ﺟﻤﻴﻊ اﻷوﺿﺎع اﻟﻤﺬﻛﻮرة أﻋﻼه ﻗﺎ
ﺜﺎلrb ، wb ، ab ، r + b ، w + b ، a + b ، xb :
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
إﻏﻼق ﻣﻠﻒ:
ﺑﺈﻏﻼق اﻟﻤﻠﻒ.ﺑﺸﺪةﺗﻨﺎ ﻋﲆ اﻟﻤﻠﻒ ،ﻳﻮﺻﻰ
ﺘﻬﺎء ﻣﻦ ﻋﻤﻠﻴﺎ
ﺑﻌﺪ اﻻﻧ
)( f.close
ﺘﻮح
اﺳﻢ اﻟﻤﻠﻒ اﻟﻤﻔ •اﺳﻢ
ﺘﺢ اﻟﻤﻠﻒ
ﺘﻢ ﻓﻴﻪ ﻓ
اﻟﻮﺿﻊ اﻟﺬيﻳ •اﻟﻮﺿﻊ
•ﻣﻐﻠﻖ إرﺟﺎع اﻟﻘﻴﻤ ﺔ اﻟﻤﻨﻄﻘﻴ ﺔﺗﺸﻴﺮ إﱃ أن اﻟﻤﻠﻒ ﻣﻐﻠﻖ أم ﻻ
ﺑ ﻼ ً ﻟﻠﻘﺮاءة أم ﻻ
ﺗﺸﻴﺮ اﻟﻘﻴﻤ ﺔ اﻟﻤﻨﻄﻘﻴ ﺔ Retrunsإﱃ ﻣﺎ إذا ﻛﺎن اﻟﻤﻠﻒ ﻗﺎ
ﺑﻞ ﻟﻠﻘﺮاءة )(
•ﻗﺎ
ﺑ ﺔ أم ﻻ.ﺑ ﻼ ً ﻟﻠﻜ
ﺘﺎ )( • writableإرﺟﺎع اﻟﻘﻴﻤ ﺔ اﻟﻤﻨﻄﻘﻴ ﺔﺗﺸﻴﺮ إﱃ ﻣﺎ إذا ﻛﺎن اﻟﻤﻠﻒ ﻗﺎ
1) f = open ("abc.txt"، 'w') 2) print ("File Name: "، f.name) 3) print ("File Mode: "، f.mode) 4) print ("Isﻳﻤﻜﻦ ﻗﺮاءة اﻟﻤﻠﻒ7) f.close () 8) :
ﺘﺎج |
اﻧ
D: \ Python_classes> py test.pyاﺳﻢ اﻟﻤﻠﻒ:
abc.txt
ﺑ ﺔ :ﺻﺤﻴﺢ
ﺘﺎ
ﺑﻞ ﻟﻠﻜ
ﻫﻞ اﻟﻤﻠﻒ ﻗﺎ
106
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
abcd.txt:
دورﺟﺎ
ﺑﺮﻣﺠ ﺔ
ﺣﻠﻮل
)\ n"، "bunny \ n"، "vinny \ n"، "chinny"] 3) f.writelines (list ) 4
ﺒﺎﻋ ﺔ )"ﻗﺎﺋﻤ ﺔ اﻷﺳﻄﺮ
1) f = open ("abcd.txt"، 'w') 2) list = ["sunnyﻃ
ﺑﻨﺠﺎح"( )( 5) f.closeﺑ ﺔ إﱃ اﻟﻤﻠﻒ
ﺘﻮاﻟﻤﻜ
abcd.txt:
ﻣﺸﻤ ﺲ
اﻻرﻧ ﺐ
ﻓﻴﻨ ﻲ
ذﻗﻦ
107
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج |
اﻧ
اﻻرﻧ ﺐ
اﻟﻤﺸﻤ ﺲ
chinny
ﻓﻴﻨ ﻲ
ﺘﺎج |
اﻧ
اﻷرﻧ ﺐ
اﻟﻤﺸﻤ ﺲ
108
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج |
اﻧ
ﺻﻨ ﻲ
اﻻرﻧ ﺐ
chinny
ﺘﺎج |
اﻧ
اﻻرﻧ ﺐ
اﻟﻤﺸﻤ ﺲ
chinny
ﻓﻴﻨ ﻲ
ﺜﺎل 5:
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺒﺎﻋ ﺔ )3
)1) f = open ("abc.txt"، "r") 2ﻃ
ﺒﺎﻋ ﺔ
ﺒﺎﻋ ﺔ )(f.readline ()) 4ﻃ
))(f.read (3ﻃ
ﺒﻘﻴ ﺔ"(
ﺘﺒﻴﺎﻧﺎ ت اﻟﻤ
ﺒﺎﻋ ﺔ )"اﻟ
)(f.read (4)) 5ﻃ
ﺒﺎﻋ ﺔ ))( (f.read
)6ﻃ
ﺘﺎج |
اﻧ
ﺷﻤ ﺲ
ﻧﻴﻮﻳﻮرك
ﻛﻌﻜ ﺔ
ﺒﻘﻴ ﺔ
ﺘﺒﻴﺎﻧﺎ ت اﻟﻤ
اﻟ
ذ chinny
ﻓﻴﻨ ﻲ
ﺒﻴﺎن:
ﻣﻊ اﻟ
ﺘﻠ ﺔ.
ﺒﺎرا تﺗﺸﻐﻴﻞ اﻟﻤﻠﻒ داﺧﻞ ﻛ
ﺘﺠﻤﻴﻊ ﻋ
ﺘﺨﺪاﻣﻬﺎ ﻟ
ﺘﺢ ﻣﻠﻒ ،وﻳﻤﻜﻨﻨﺎ اﺳ
ﺛﻨﺎء ﻓ
ﺘﺨﺪامﺗﻌﻠﻴﻤ ﺔ withأ
•ﻳﻤﻜﻦ اﺳ
ﺑﺈﻏﻼقﺒﻴﻦ ﺜﻨﺎءا ت أ ً
ﻳﻀﺎ ،وﻟ ﺴﻨﺎ ﻣﻄﺎﻟ ﺘﺘﻰ ﻓ ﻲ ﺣﺎﻟ ﺔ اﻻﺳ
ﺘﻜﻤﺎل ﺟﻤﻴﻊ اﻟﻌﻤﻠﻴﺎ تﺗﻠﻘﺎﺋ ًﻴﺎ ﺣ
ﺑﻌﺪ اﺳﺑﺈﻏﻼق اﻟﻤﻠﻒ ،ﺘﻢ
•ﻣﻴﺰة with statementﻫ ﻲ أﻧﻪﺳﻴﻬ
ﺑﺸﻜﻞ ﺻﺮﻳﺢ.اﻟﻤﻠﻒ
109
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج |
اﻧ
ﻫﻞ اﻟﻤﻠﻒ ﻣﻐﻠﻖ :ﺧﻄﺄ
ﺒﺎر ():
ﺘﻤﺎس )(وإﺧ
ﻃﺮق اﻟ
ﺒﺮ)(:
ﻳﺨ
ﺘﺨﺪام ﻃﺮﻳﻘ ﺔ )( tellﻹرﺟﺎع اﻟﻤﻮﺿﻊ اﻟﺤﺎﻟ ﻲ ﻟﻠﻤﺆﺷﺮ )ﻣﺆﺷﺮ اﻟﻤﻠﻒ( ﻣﻦ
•ﻳﻤﻜﻨﻨﺎ اﺳ
ﺒﺎر ﻣﻮﺿﻊ اﻟﻤﺆﺷﺮ اﻟﺤﺎﻟ ﻲ[
ﺑﺪاﻳ ﺔ اﻟﻤﻠﻒ ] .ﻫﻞﻳﻤﻜﻨﻚ إﺧ
ﺜﻞ ﻓﻬﺮس اﻟ ﺴﻠ ﺴﻠ ﺔ.
ﺗﻤﺎﻣﺎ ﻣ
ً •ﻣﻮﺿﻊ )ﻓﻬﺮس( اﻟﺤﺮف اﻷول ﻓ ﻲ اﻟﻤﻠﻔﺎ ت ﻫﻮ ﺻﻔﺮ
abc.txt:
ﻣﺸﻤ ﺲ
اﻻرﻧ ﺐ
ذﻗﻦ
ﻓﻴﻨ ﻲ
ﺘﺎج:
اﻧ
0
ﺳﻮ
2
nny
5
ﻳﻄﻠ ﺐ)(:
ﺘﺤﺮﻳﻚ اﻟﻤﺆﺷﺮ )ﻣﺆﺷﺮ اﻟﻤﻠﻒ( إﱃ اﻟﻤﻮﻗﻊ اﻟﻤﺤﺪد.
ﺘﺨﺪام ﻃﺮﻳﻘ ﺔ )() (Seeﻟ
ﻳﻤﻜﻨﻨﺎ اﺳ
ﺒﺤ ﺚ ﻋﻦ اﻟﻤﺆﺷﺮ إﱃ ﻣﻮﻗﻊ ﻣﻌﻴﻦ[
] ﻫﻞﻳﻤﻜﻨﻚ ﻣﻦ ﻓﻀﻠﻚ اﻟ
ﺜﻞ ﻋﺪد اﻟﻤﻮاﺿﻊ
)f.seek (offset، fromwhereﻳﻤ offset
110
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺮاﺿﻴ ﺔ(
ﺑﺪاﻳ ﺔ اﻟﻤﻠﻒ )اﻟﻘﻴﻤ ﺔ اﻻﻓ0ﻣﻦ
1ﻣﻦ اﻟﻮﺿﻊ اﻟﺤﺎﻟ ﻲ
)f.read () 6) print (text) 7) print ("The Current Cursor Position: "، f.tell ()) 8
= f: 5) textﻣﻮﺿﻊ اﻟﻤﺆﺷﺮ() 13) print (" Data After Modification: ") 14) :
ﺒﺎﻋ ﺔ
"، f.tell ()) 10) f.write (" GEMS !!! ") 11) f.seek (0) 12) text = f.readﻃ
)ﻧﺺ(
ﺘﺎج |
اﻧ
ﺒﻴﺎء
ﺟﻤﻴﻊ اﻟﻄﻼ ب أﻏ
ﺘﻌﺪﻳﻞ :ﺟﻤﻴﻊ
ﺑﻌﺪ اﻟﺒﻴﺎﻧﺎ ت
وﺿﻊ اﻟﻤﺆﺷﺮ اﻟﺤﺎﻟ ﻲ17 :اﻟ
ﺘﻮاه؟
ﺒﺎﻋ ﺔ ﻣﺤ
ﺑﻄﺣﺎ ،ﻓﻘﻢ
ﺘﺎ ً
ﺘﺤﻘﻖ ﻣﻤﺎ إذا ﻛﺎن اﻟﻤﻠﻒ اﻟﻤﺤﺪد ﻣﻮﺟﻮدًا أم ﻻ .إذا ﻛﺎن ﻣ
ﺑﺮﻧﺎﻣﺠًﺎ ﻟﻠﺘﺐ
س( اﻛ
111
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺒﺎﻋ ﺔ "(
ﺑﻴﺎﻧﺎﻃ ت(
)fname 8)=sys.exit
ﺒﺎﻋ ﺔ )
ﻃ )f.read ()(0
)11ﻣﻮﺟﻮد، ":ت )9
ﻏﻴﺮ)10اﻟ
ﺒﻴﺎﻧﺎ )"اﻟﻤﻠﻒ
ﻫﻮ(": ﺒﺎﻋ ﺔاﻟﻤﻠﻒ
ﻣﺤﻃ
ﺘﻮى )7
ﺘﺎج |
اﻧ
D: \ Python_classes> py test.pyأدﺧﻞ اﺳﻢ اﻟﻤﻠﻒdurga.txt :اﻟﻤﻠﻒ ﻏﻴﺮ
abc.txt
ﺘﻮى اﻟﻤﻠﻒ
اﻟﻤﻠﻒ ﻣﻮﺟﻮدabc.txt :ﻣﺤ
ﻫﻮ:
ﻣﻠﺤﻮﻇ ﺔ:
ﺒﺮﻧﺎﻣﺞ.
ﺑﺎﻗ ﻲ اﻟﺑﺪونﺗﻨﻔﻴﺬ)sys.exit (0ﻟﻠﺨﺮوج ﻣﻦ اﻟﻨﻈﺎم
ﺘﺮاﺿﻴ ﺔ.
ﺗﻌﻨ ﻲ اﻹﻧﻬﺎء اﻟﻌﺎدي و ﻫ ﻲ اﻟﻘﻴﻤ ﺔ اﻻﻓ
ﺜﻞ اﻟﻮﺳﻴﻄ ﺔ رﻣﺰ اﻟﺤﺎﻟ ﺔ0 .
ﺗﻤ
)lcount
wcount16)=print
wcountlenﻓ+ﻲ "(
ﺴﻄﺮ )fnameﻟﻠ
)(Words 8)print
)15 sys.exit (0) Number
("The 9) lcountof
= wcount
Lines:"،
)lcount + 1 12) ccount = ccount + len (line) 13) Words = line.split () 14
ﺘﺎج |
اﻧ
D: \ Python_classes> py test.pyأدﺧﻞ اﺳﻢ
اﻟﻤﻠﻒdurga.txt :اﻟﻤﻠﻒ ﻏﻴﺮ ﻣﻮﺟﻮد durga.txt :
abc.txt
ﺟﻤﻴﻊ اﻟﻄﻼ ب ﻫﻢ ﻣﻦ اﻷﺣﺠﺎر اﻟﻜﺮﻳﻤ ﺔ !!!
ﺜﻨﺎﺋﻴ ﺔ:
ﺒﻴﺎﻧﺎ ت اﻟ
ﻣﻌﺎﻟﺠ ﺔ اﻟ
ﺗﻴ ﺔ وﻣﺎ إﱃ ذﻟﻚ.
ﺜﻞ اﻟﺼﻮر وﻣﻠﻔﺎ ت اﻟﻔﻴﺪﻳﻮ واﻟﻤﻠﻔﺎ ت اﻟﺼﻮ
ﺜﻨﺎﺋﻴ ﺔ ﻣ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺑ ﺔ اﻟ
ﺘﺎ
ﻣﻦ اﻟﺸﺎﺋﻊ ﺟﺪًا ﻗﺮاءة أو ﻛ
113
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
csv 4) w.writerow ([" ENO "،" ENAME "،" ESAL "،" EADDR "]) 5) n = intإدﺧﺎل ﻋﺪد اﻟﻤﻮﻇﻔﻴﻦ")) 6) :
اﻟﻤﻮﻇﻒ(" :
esal، ﺳﻢ )]eaddr
أدﺧﻞ ا)12 ﻋﻨﻮان )") 8
اﻟﻤﻮﻇﻒ: ename = input
أدﺧﻞ "( )") 10 اﻟﻤﻮﻇﻒ:
eaddr "( رﻗﻢ
= input أدﺧﻞ (n): 7) eno
اﻟﻤﻮﻇﻒ: ﺗﺐ أدﺧﻞ=را
input (" esal
)") 9 اﻟﻨﻄﺎق ﻟـ iﻓ ﻲ
= input
ﺑﻨﺠﺎح"(
ﺑﻴﺎﻧﺎ ت اﻟﻤﻮﻇﻔﻴﻦ اﻹﺟﻤﺎﻟﻴ ﺔ إﱃ ﻣﻠﻒ csvﺑﺔ
ﺘﺎ
ﺗﻤ ﺖ ﻛ
ﺒﺎﻋ ﺔ )"
") 11) w.writerow ([eno، ename،ﻃ
ﺑﺪوﻧﻬﺎ
ﺘﺨﺪامﺳﻤ ﺔ اﻟ ﺴﻄﺮ اﻟﺠﺪﻳﺪ و
ﺑﺎﺳﺘﻼف
ﻣﻼﺣﻈ ﺔ :ﻻﺣﻆ اﻻﺧ
ﺜﻞ f:
ﻣﻊ )"open ("emp.csv"، "wﻣ
ﺘﺎج |
اﻧ
D: \ Python_classes> py test.py
100دورﺟﺎ 1000ﻫﻴﺪ
ﺒﺎي
200ﺳﺎﺷﻴﻦ 2000ﻣﻮﻣ
300دوﻧ ﻲ 3000راﻧﺸ ﻲ
114
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺋﻴ ﺴﻴ ﺔ ﻫ ﻲ:
اﻟﻤﺰاﻳﺎ اﻟﺮ
ﺘﺨﺪام اﻟﺬاﻛﺮة
ﺘﺤ ﺴﻴﻦ اﺳ
)1ﻟ
)2ﻳﻤﻜﻨﻨﺎﺗﻘﻠﻴﻞ وﻗ ﺖ اﻟﻨﻘﻞ
)3ﻳﻤﻜﻨﻨﺎﺗﺤ ﺴﻴﻦ اﻷداء.
)f.writeاﺳﻢ اﻟﻤﻠﻒ(
*
ﺘﻴﺮاد ﻣﻠﻒ )5) f .write ("file3.txt") 6) f.close () 7
)1ﻣﻦ اﺳ
)"ZIP_DEFLATED) 3) f.write ("file1.txt") 4) f.write ("file2.txt
ﺗﻢ إﻧﺸﺎء ﻣﻠﻒ files.zip
ﺒﺎﻋ ﺔ )"
zip 2) f = ZipFile ("files.zip"، 'w'،ﻃ
ﺑﻨﺠﺎح"(
ﺘﺤﺪﻳﺪ ﻫﺎ.
ﺑﺒﻴﻦ
ﺘﺎﻟ ﻲ ﻟ ﺴﻨﺎ ﻣﻄﺎﻟ
ﺑﺎﻟ
ﺘﺮاﺿﻴ ﺔ و
ﺜﻞ ZIP_STOREDﻋﻤﻠﻴ ﺔ ﻓﻚ اﻟﻀﻐﻂ .ﻫﺬه ﻫ ﻲ اﻟﻘﻴﻤ ﺔ اﻻﻓ
ﻳﻤ
ﺘﺨﺪام ﻃﺮﻳﻘ ﺔ
ﺑﺎﺳﺑﻤﺠﺮد إﻧﺸﺎء ﻛﺎﺋﻦ ZipFileﻟﻌﻤﻠﻴ ﺔ ﻓﻚ اﻟﻀﻐﻂ ،ﻳﻤﻜﻨﻨﺎ اﻟﺤﺼﻮل ﻋﲆ ﺟﻤﻴﻊ أﺳﻤﺎء اﻟﻤﻠﻔﺎ ت اﻟﻤﻮﺟﻮدة ﻓ ﻲ ﻫﺬا اﻟﻤﻠﻒ اﻟﻤﻀﻐﻮط
namelist ().
أﺳﻤﺎء )( = f.namelist
*
ﺘﻴﺮاد ﻣﻠﻒ )zip 2) f = ZipFile ("files.zip"، 'r'، ZIP_STORED) 3 ) names = f.namelist () 4ﻟﻼﺳﻢ ﻓ ﻲ اﻷﺳﻤﺎءname) 5 ) :
)1ﻣﻦ اﺳ
print ( "File Name: "،
اﻟﻌﻤﻞ ﻣﻊ اﻟﺪﻻﺋﻞ:
ﺜﻞ
ﻣﻦ اﻟﺸﺎﺋﻊ ﺟﺪًا إﺟﺮاء ﻋﻤﻠﻴﺎ تﻷدﻟ ﺔ ﻣ
)1ﻟﻤﻌﺮﻓ ﺔ دﻟﻴﻞ اﻟﻌﻤﻞ اﻟﺤﺎﻟ ﻲ
)2ﻹﻧﺸﺎء دﻟﻴﻞ ﺟﺪﻳﺪ
)3ﻹزاﻟ ﺔ دﻟﻴﻞ ﻣﻮﺟﻮد
)4ﻹﻋﺎدةﺗ ﺴﻤﻴ ﺔ دﻟﻴﻞ
ﺘﻮﻳﺎ ت اﻟﺪﻟﻴﻞ
)5ﻟ ﺴﺮد ﻣﺤ
إﻟﺦ...
)"os.mkdir ("mysub
ﺒﺎﻋ ﺔ )"دﻟﻴﻞ mysubاﻟﺬيﺗﻢ إﻧﺸﺎؤه ﻓ ﻲ )"cwd
ﻃ
| -Mysub
| -Mysub2
ﺘﺸﻐﻴﻞ
ﺘﻴﺮاد ﻧﻈﺎم اﻟ
اﺳ
116
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
س )5ﻹزاﻟ ﺔ دﻟﻴﻞ
ﺘﺸﻐﻴﻞ
ﺘﻴﺮاد ﻧﻈﺎم اﻟ
اﺳ
ﺘﻮﻳﺎ ت اﻟﺪﻟﻴﻞ
س )8ﻟﻤﻌﺮﻓ ﺔ ﻣﺤ
ﺘﻮﻳﺎ ت اﻟﺪﻟﻴﻞ اﻟﻔﺮﻋ ﻲ.
ﺘﻮﻳﺎ ت اﻟﺪﻟﻴﻞ اﻟﻤﺤﺪد .ﻟﻦﻳﻌﺮض ﻣﺤ
ﺗﻮﻓﺮ وﺣﺪة )( OS Module listdirﻟ ﺴﺮد ﻣﺤ
ﺘﺎج |
اﻧ
]' __'module1.py' ، 'myl og.txt' ، 'newdir' ، 'newpic. jpg '، ' pack1 '، ' rossum.jpg '، ' test.py '، ' __pycache
'com'، 'demo.py'، 'durgamath.py'، 'emp.csv'، 'file1.txt' ، 'file2.txt' ، 'file3.txt' ، 'files.zip' ، 'log.txt' ،
D: \ Python_classes> py test.py ['abc.py'، 'abc.txt'، 'abcd.txt'،
ﺘﻮﻳﺎ ت
ﺘﻮﻳﺎ ت دﻟﻴﻞ اﻟﻌﻤﻞ اﻟﺤﺎﻟ ﻲ وﻟﻜﻦ ﻟﻴ ﺲ ﻣﺤ
ﺒﺮﻧﺎﻣﺞ أﻋﻼه ﻣﺤ
•ﻳﻌﺮض اﻟ
اﻟﺪﻻﺋﻞ اﻟﻔﺮﻋﻴ ﺔ.
ﺒﺤ ﺚ ﻋﻨﻪ
ﺑﻤﺎ ﻓ ﻲ ذﻟﻚ اﻷدﻟ ﺔ اﻟﻔﺮﻋﻴ ﺔ ،ﻓﻌﻠﻴﻨﺎ اﻟﺘﻮﻳﺎ ت دﻟﻴﻞ
•إذا أردﻧﺎ ﻣﺤ
اﻟﻤﺸ ﻲ )(وﻇﻴﻔ ﺔ.
ﺘﻮﻳﺎ ت ذﻟﻚ
ﺘﻤﻜﻦ ﻣﻦ ﻣﻌﺮﻓ ﺔ ﺟﻤﻴﻊ ﻣﺤ
ﺘﻰ ﻧ
•] ﻫﻞﻳﻤﻜﻨﻚ اﻟﺪﺧﻮل ﻓ ﻲ اﻟﺪﻟﻴﻞ ﺣ
اﻟﺪﻟﻴﻞ[
117
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳاﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺑﻂ رﻣﺰﻳ ﺔ
ﺑﺮوا• followlinks = Trueﻟﺰﻳﺎرة اﻟﺪﻻﺋﻞ اﻟﻤﺸﺎر إﻟﻴﻬﺎ
ﺘﺎج |
اﻧ
ﻣ ﺴﺎر اﻟﺪﻟﻴﻞ اﻟﺤﺎﻟ ﻲ.:
اﻟﺪﻻﺋﻞ['com'، 'newdir'، 'pack1'، '__pycache__'] :
اﻟﻤﻠﻔﺎ ت['abc.txt'، 'abcd.txt'، 'demo.py'، 'durgamath.py'، 'emp.csv'، 'file1.txt'، 'file2.txt'، 'file3. :
]' txt '، ' files.zip '، ' log.txt '، ' module1.py '، ' mylog.txt '، ' newpic.jpg '، ' rossum.jpg '، ' test.py
")os.walkاﺳﻢ اﻟﺪﻟﻴﻞ"(
")os.systemﺳﻠ ﺴﻠ ﺔ أواﻣﺮ"(
ﺘﻢﺗﻨﻔﻴﺬه ﻣﻦ DOS.
اﻟﺤﺠ ﺔ ﻫ ﻲ أي أﻣﺮﻳ
ﺜﺎل:
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺘﺸﻐﻴﻞ
ﺘﻴﺮاد ﻧﻈﺎم اﻟ
اﺳ
118
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎﻟﻴ ﺔ:
ﺘﻀﻤﻦ إﺣﺼﺎﺋﻴﺎ ت اﻟﻤﻠﻒ اﻟﻤﻌﻠﻤﺎ ت اﻟ
ﺗ
ﺑ ﺖ اﻟﺤﻤﺎﻳ ﺔ
1) st_mode
2) st_inoرﻗﻢ Inode
)3ﺟﻬﺎز st_dev
ﺒﺔ
ﺑﻂ اﻟﺼﻠ
4) st_nlinkﻋﺪد اﻟﺮوا
ﺑﺎﻟﻤﺎﻟﻚﺘﺨﺪم اﻟﺨﺎص
5) st_uidﻣﻌﺮف اﻟﻤ ﺴ
6) st_gidﻣﻌﺮف اﻟﻤﺠﻤﻮﻋ ﺔ اﻟﻤﺎﻟﻚ
ﺒﺎﻳ ﺖ
ﺑﺎﻟ7) st_sizeﺣﺠﻢ اﻟﻤﻠﻒ
8) st_atimeوﻗ ﺖ أﺣﺪ ث وﺻﻮل
ﺘﻌﺪﻳﻞ اﻷﺧﻴﺮ
9) st_mtimeوﻗ ﺖ اﻟ
ﺒﻴﺎﻧﺎ ت اﻟﻮﺻﻔﻴ ﺔ
10) st_ctimeوﻗ ﺖ أﺣﺪ ثﺗﻐﻴﻴﺮ ﻓ ﻲ اﻟ
ﺘﺨﺪام وﺣﺪة
ﺑﺎﺳﺣﺎ.
ﺒﺎ ً
ﺛﺎﻧﻴ ﺔ ﻣﻨﺬ اﻷول ﻣﻦﻳﻨﺎﻳﺮ 1970 ،اﻟ ﺴﺎﻋ ﺔ 12:00ﺻُﺮﺟﻊ st_atimeو st_mtimeو st_ctimeاﻟﻮﻗ ﺖ ﻛﺮﻗﻢ ﻣﻠ ﻲ
ﻣﻼﺣﻈ ﺔ:ﺗ
ﺒﻂ.
ﺑﺎﻟﻀﺘﺎرﻳﺦ واﻟﻮﻗ ﺖ
ﺑﻊ اﻟﺰﻣﻨ ﻲ () ،ﻳﻤﻜﻨﻨﺎ اﻟﺤﺼﻮل ﻋﲆ اﻟ
ﺘﺎرﻳﺦ واﻟﻮﻗ ﺖ ﻣﻦ وﻇﻴﻔ ﺔ اﻟﻄﺎ
اﻟ
ﺘﺎج |
اﻧ
st_nlin k = 1 ، st_uid = 0 ، st_gid = 0 ، st_size = 22410 ، st_atime = 1505451446 ، st_mtime = 1505538999 ، st_1446
os.stat_result (st_mode = 33206 ، st_ino = 844424930132788 ، st_dev = 2657980798 ،
119
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج |
اﻧ
ﺒﺎﻳ ﺖ 22410 :وﻗ ﺖ آﺧﺮ وﺻﻮل ﻟﻠﻤﻠﻒ10: 27: 26.599490 :
ﺑﺎﻟﺣﺠﻢ اﻟﻤﻠﻒ
2017-09-15وﻗ ﺖ آﺧﺮﺗﻌﺪﻳﻞ ﻟﻠﻤﻠﻒ2017-09-16 10: 46: 39.245394 :
ﺘﺤﻬﺎ:
ﺗﺨﻠﻴﻞ اﻷﺷﻴﺎء وﻓ
ﺑ ﺔ اﻟﺤﺎﻟ ﺔ اﻟﻜﻠﻴ ﺔ ﻟﻠﻜﺎﺋﻦ إﱃ اﻟﻤﻠﻒ وﻋﻠﻴﻨﺎ ﻗﺮاءة اﻟﻜﺎﺋﻦ اﻟﻜﻠ ﻲ ﻣﻦ اﻟﻤﻠﻒ.
ﺘﺎ
ﺘﻌﻴﻦ ﻋﻠﻴﻨﺎ ﻛ
ﺑﻌﺾ اﻷﺣﻴﺎنﻳ•ﻓ ﻲ
ﺘﺨﻠﻴﻞ وﻋﻤﻠﻴ ﺔ
ﺑ ﺔ ﺣﺎﻟ ﺔ اﻟﻜﺎﺋﻦ إﱃ اﻟﻤﻠﻒ ﻋﻤﻠﻴ ﺔ اﻟ
ﺘﺎ
ﺗ ﺴﻤﻰ ﻋﻤﻠﻴ ﺔ ﻛ
•
ﻗﺮاءة ﺣﺎﻟ ﺔ ﻛﺎﺋﻦ ﻣﻦ اﻟﻤﻠﻒﺗ ﺴﻤﻰ unpickling.
ﺘﺨﺪام وﺣﺪة pickleﻣﻦ Python.
ﺑﺎﺳ
ﺘﺨﻠﻴﻞ و unpickling
•ﻳﻤﻜﻨﻨﺎﺗﻨﻔﻴﺬ اﻟ
ﺘﺨﻠﻴﻞ)pickle.dump .ﻛﺎﺋﻦ ،ﻣﻠﻒ(
ﺘﻔﺮﻳﻎ )(ﻷداء اﻟ
ﺘﻮي وﺣﺪة اﻟﻤﺨﻠﻞ ﻋﲆ وﻇﻴﻔ ﺔ اﻟ
ﺗﺤ
ﺘﻮي وﺣﺪة pickleﻋﲆ وﻇﻴﻔ ﺔ )( loadﻷداء )unpickling obj = pickle.loadﻣﻠﻒ(
ﺗﺤ
ﺗﺨﻠﻴﻞ
ﻣﺨﻠﻞ
إﻧﻮ100 : ) ﻫـ 1 ،و(
ename:دورﺟﺎ
إﻳﺼﺎل10000 :
ﻣﺪﻳﺮHYD :
ه1 إﻧﻮ100 :
ename:دورﺟﺎ
إﻳﺼﺎل10000 :
ﻣﺪﻳﺮHYD :
ﺘﻴﺮاد اﻟﻤﺨﻠﻞ )2ﻓﺌ ﺔ اﻟﻤﻮﻇﻒ"\ t"، self.ename، "\ t"، self.esal، "\ t"، self.eaddr) 10) :
)1اﺳ
8) def display (self): 9) print (self.eno،؛ 7) self.eaddr = eaddr؛ 6) self.esal = esal؛ ename
= 5) self.ename؛3) def __init __ (self، eno، ename، esal، eaddr): 4) self.eno = enoﻣﻊ )"
open ("emp .dat "،" wbﻛـ = f: 11) eاﻟﻤﻮﻇﻒ )" (100،" Durga "، 1000،" Hyd
120
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
emp.py:
(self.eno، "\ t"، self.ename، "\ t"، self.esal، "\ t"، self.eaddr) ﺒﺎﻋ ﺔ
ﻃ
pick.py:
((":ﺗ ﺐ اﻟﻤﻮﻇﻒ
)"أدﺧﻞ راesal = float (input
unpick.py:
121
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺗﻢ إﻛﻤﺎل
ﺒﺎﻋ ﺔ "(
ﻃ EOF:
)11 ﺧﻄﺄ )9
f.close ﺜﻨﺎءﺔ )(
ﺘ
ﺘﺮاﺣﺑﺎاﺳ7) obj.display
)10 )() 8
ﺟﻤﻴﻊ اﻟﻤﻮﻇﻔﻴﻦ"(
122
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﻌﺪد
ﻣ
ﺧﻴﻮط
ﺘﻌﺪد اﻟﻤﻬﺎم:
ﻣ
ﺗﻨﻔﻴﺬ ﻋﺪة ﻣﻬﺎم ﻓ ﻲ وﻗ ﺖ واﺣﺪ ﻫﻮ ﻣﻔﻬﻮمﺗﻌﺪد اﻟﻤﻬﺎم.
ﺘﻌﺪدة
ﻫﻨﺎك ﻧﻮﻋﺎن ﻣﻦ اﻟﻤﻬﺎم اﻟﻤ
ﺘﺸﻐﻴﻞ.
ﺘﻮى ﻧﻈﺎم اﻟ
ﺘﻌﺪدة ﻫﻮ اﻷﻧ ﺴ ﺐ ﻟﻤ ﺴ
ﻫﺬا اﻟﻨﻮع ﻣﻦ اﻟﻤﻬﺎم اﻟﻤ
ﺒﺮﻧﺎﻣﺠ ﻲ.
ﺘﻮى اﻟ
ﺘﻌﺪدة ﻫﻮ اﻷﻧ ﺴ ﺐ ﻋﲆ اﻟﻤ ﺴ
• ﻫﺬا اﻟﻨﻮع ﻣﻦ اﻟﻤﻬﺎم اﻟﻤ
ﺑ ﺔ.
ﺘﺠﺎ
ﺘﻌﺪد اﻟﻤﻬﺎم ﻫ ﻲﺗﺤ ﺴﻴﻦ أداء اﻟﻨﻈﺎم ﻋﻦ ﻃﺮﻳﻖﺗﻘﻠﻴﻞ وﻗ ﺖ اﻻﺳ
ﺋﻴ ﺴﻴ ﺔ ﻟ
ﺘﻤﺪ ﻋﲆ اﻟﻌﻤﻠﻴ ﺔ أو ﻋﲆ اﻟﺨﻴﻂ ،ﻓﺈن اﻟﻤﻴﺰة اﻟﺮ
ﻣﻼﺣﻈ ﺔ:ﺳﻮاء ﻛﺎنﻳﻌ
ﺘﻌﺪدة ﻫ ﻲ:
ﺋﻴ ﺴﻴ ﺔ ﻟﻠﺨﻴﻮط اﻟﻤ
ﺒﻴﻖ اﻟﻤﻬﻤ ﺔ اﻟﺮ
ﺘﻄﻣﺠﺎﻻ ت اﻟ
ﺘﻌﺪدة
ﺘﻨﻔﻴﺬ رﺳﻮﻣﺎ ت اﻟﻮﺳﺎﺋﻂ اﻟﻤ
)1ﻟ
ﺘﺤﺮﻛ ﺔ
ﺘﻄﻮﻳﺮ اﻟﺮﺳﻮم اﻟﻤ
)2ﻟ
ﺒﻴﻘﺎ ت
ﺘﻄﺗﻄﻮﻳﺮ ﺧﻮادم اﻟﻮﻳ ﺐ واﻟ
)4
إﻟﺦ...
ﺜﻮن.
ﺑﺎﻳﻟﻠﻐﺎﻳ ﺔ ﻓ ﻲ
124
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﻨﻔﻴﺬ اﻟﺤﺎﻟﻴ ﺔ
ﺒﺎﻋ ﺔ اﺳﻢﺳﻠ ﺴﻠ ﺔ اﻟ
ﺑﺮﻧﺎﻣﺞ ﻟﻄس(
ﺜﻮن:
ﺑﺎﻳﺑﻂ ﻓ ﻲ
ﻃﺮق إﻧﺸﺎء ﻣﺆﺷﺮﺗﺮا
ﺘﺨﺪام 3ﻃﺮق
ﺑﺎﺳﺜﻮن
ﺑﺎﻳﻳﻤﻜﻨﻨﺎ إﻧﺸﺎء ﺧﻴﻂ ﻓ ﻲ
ﺘﺨﺪام أي ﻓﺌ ﺔ
)1إﻧﺸﺎء ﻣﻮﺿﻮع دون اﺳ
)2إﻧﺸﺎء ﻣﻮﺿﻮع ﻋﻦ ﻃﺮﻳﻖﺗﻤﺪﻳﺪ ﻓﺌ ﺔ اﻟﻤﻮﺿﻮع
ﺑﺪونﺗﻤﺪﻳﺪ ﻓﺌ ﺔ اﻟﻤﻮﺿﻮع)3إﻧﺸﺎءﺳﻠ ﺴﻠ ﺔ رﺳﺎﺋﻞ
ﺘﺨﺪام أي ﻓﺌ ﺔ
)1إﻧﺸﺎءﺳﻠ ﺴﻠ ﺔ رﺳﺎﺋﻞ دون اﺳ
*
ﺒﺎﻋ ﺔ )Thread 7
ﺘﻴﺮاد اﻟﺨﻴﻂ )2ﻋﺮض )def (): 3ﻟـ iﻓ ﻲ اﻟﻨﻄﺎق )(1،11): 4ﻃ
)1ﻣﻦ اﺳ
(target = display) #creating Thread object 6) t .start () #starting of
("Child Thread") 5) t = Threadﻟـ )"i in range (1،11): 8) print ("Main Thread
ﺘﻌﺪدة اﻟﺨﻴﻮط.
ﺒﺮاﻣﺞ ﻣ
ﺘﺎﻟ ﻲ ﻻﻳﻤﻜﻨﻨﺎﺗﻮﻗﻊ إﺧﺮاج دﻗﻴﻖ ﻟﻠ
ﺑﺎﻟ
ﺘﻨﻔﻴﺬ ،و
ﺗﻴ ﺐ اﻟ
ﺑﺮﻧﺎﻣﺠﻨﺎ ،ﻓﻼﻳﻤﻜﻨﻨﺎﺗﻮﻗﻊﺗﺮﻓ ﻲ ﺣﺎﻟ ﺔ وﺟﻮد اﻟﻌﺪﻳﺪ ﻣﻦﺳﻼﺳﻞ اﻟﺮﺳﺎﺋﻞ ﻓ ﻲ
ﺘﺸﻐﻴﻞ.
ﺘﻢﺗﺸﻐﻴﻠﻪ ﻟﻠ
ﺘﻠﻒ ﻣﻦ آﻟ ﺔ إﱃ أﺧﺮى وﻳ
ﺒﺮﻧﺎﻣﺞ أﻋﻼه ،ﻓﻬﻮﻳﺨ
B'zﻣﻦ ﻫﺬا ﻻﻳﻤﻜﻨﻨﺎﺗﻮﻓﻴﺮ ﻣﺨﺮﺟﺎ ت دﻗﻴﻘ ﺔ ﻟﻠ
ﺘﻮﺳﻴﻊ ﻓﺌ ﺔ اﻟﻤﻮﺿﻮع
ﺑﺑﻂ
)2إﻧﺸﺎء ﻣﺆﺷﺮﺗﺮا
ﺑ ﺔ .ﻋﻨﺪﻣﺎ ﻧﻄﻠﻖ ﻋﲆ ﻃﺮﻳﻘ ﺔ () ،
ﺘﻨﺎ اﻟﻤﻄﻠﻮ
ﺑﻮﻇﻴﻔ
ﺘﻌﻴﻦ ﻋﻠﻴﻨﺎﺗﺠﺎوز ﻃﺮﻳﻘ ﺔ )( run
ﻋﻠﻴﻨﺎ إﻧﺸﺎء ﻓﺌ ﺔ ﻓﺮﻋﻴ ﺔ ﻟﻔﺌ ﺔ اﻟﻤﻮﺿﻮع .ﻓ ﻲﺗﻠﻚ اﻟﻔﺌ ﺔ اﻟﻔﺮﻋﻴ ﺔ ،ﻳ
ﺘﻨﺎ.
ﺗﺆدي وﻇﻴﻔ
ﺗﻠﻘﺎﺋ ًﻴﺎ و
ﺘﻢﺗﻨﻔﻴﺬ ﻃﺮﻳﻘ ﺔ )( run
startﺳﻴ
125
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
*
ﺘﻴﺮاد اﻟﺨﻴﻂ )2ﻓﺌ ﺔ )() 7 ) t.start () 8)1ﻣﻦ اﺳ
5) print ("Child Thread-1") 6) t = MyThread
3) def run (self): 4) for i in range (10):
ﺒﺎﻋ ﺔ
MyThreadﻟـ iﻓ ﻲ اﻟﻨﻄﺎق )(10): 9ﻃ (Thread):
)"("Main Thread-1
*
ﺒﺎر3) :ﻋﺮض def
ﺘﺘﻴﺮاد اﻟﺨﻴﻂ )2ﻓﺌ ﺔ اﻻﺧ)1ﻣﻦ اﺳ
ﺗ ﻲ(4) :ﻟـ iﻓ ﻲ اﻟﻨﻄﺎق )obj.display) 8) t.start () 9
)ذا
= 6) obj = Test () 7) t = Thread (target
i(10):ﻟـ )"Thread-2 5) print
in range ("Child
(10): )"Thread-2
10) print ("Main
ﺘﻌﺪدة
ﺑﺪون ﺧﻴﻮط ﻣ
*
ﺑﺎﻷرﻗﺎم 7) def :
ﺘﻴﺮاد )3ﻣﻀﺎﻋﻔﺎ ت )defأرﻗﺎم(4) :ﻟـ n
ﺘﻴﺮاد اﻟﺨﻴﻂ )2وﻗ ﺖ اﻻﺳ
)1ﻣﻦ اﺳ
ﺑﺎﻷرﻗﺎم 11) :
ﺑﻌﺎ ت ) اﻷرﻗﺎم(8) :ﻟـ n
)5) time.sleep (1) 6) print ("Double:"، 2 * nاﻟﻤﺮ
)9) time.sleep (1) 10) print ("Square:"، n * nاﻷرﻗﺎم )begintime = time.time () 13
ﺒﺎﻋ ﺔ "(إﺟﻤﺎﻟ ﻲ اﻟﻮﻗ ﺖ
ﺑﻌﺎ ت )أرﻗﺎم( )15ﻃ
)14ﻣﺮ
ﺒﺪء(
)أرﻗﺎم(
ﺘﻀﺎﻋﻒوﻗ ﺖ اﻟ
time.time
]= [1،2،3،4،5،6ﻳ
ﺘﻐﺮق() - ، ":
ﺴ)12
اﻟﻤ
126
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﻌﺪدة
ﻣﻊ ﺧﻴﻮط ﻣ
*
ﺑﺎﻷرﻗﺎم 7) def :
ﺘﻴﺮاد )3ﻣﻀﺎﻋﻔﺎ ت )defأرﻗﺎم(4) :ﻟـ n
ﺘﻴﺮاد اﻟﺨﻴﻂ )2وﻗ ﺖ اﻻﺳ
)1ﻣﻦ اﺳ
ﺑﺎﻷرﻗﺎم :
ﺑﻌﺎ ت ) اﻷرﻗﺎم(8) :ﻟـ n
)5) time.sleep (1) 6) print ("Double:"، 2 * nاﻟﻤﺮ
11) 12) number = [1،2،3،4،5،6] 13) Begintime = time.time () 14) t1 = Thread
t1.join
ﻷرﻗﺎم = ((،
)() 19
)argsا
t2.join
)20ﻲ)(= ،
اﻟﺰوﺟ
print
)اﻟﻬﺪف =
(" ((،time.sleep
))args(1اﻷرﻗﺎم
) 10ت)= ،9
ﺑﻌﺎاﻟﻤﺮ
print
)اﻟﻬﺪف =
("Square:"،
)15اﻟﺨﻴﻂ
n * t2
)n
ﺘﻐﺮق() - Begintime) ، ":
16) t1.start () 17) t2.startإﺟﻤﺎﻟ ﻲ اﻟﻮﻗ ﺖ اﻟﻤ ﺴ )() 18
time.time
ﺘﺎﻟﻴ ﺔ.
ﺑﻂ اﻟ
ﺘﺮا
ﺘﺨﺪام ﻃﺮق ﻓﺌ ﺔ ﻣﺆﺷﺮ اﻟ
ﺑﺎﺳﺗﻌﻴﻴﻨﻪ
ﻳﻤﻜﻨﻨﺎ اﻟﺤﺼﻮل ﻋﲆ اﺳﻢ اﻟﻤﻮﺿﻮع و
)( t.getNameإرﺟﺎع اﺳﻢ اﻟﻤﻮﺿﻮع
ﺑﻨﺎﺘﻌﻴﻴﻦ اﻻﺳﻢ اﻟﺨﺎص
)t.setName (newNameﻟ
*
ﺒﺎﻋ ﺔ getName ()) 5) print (current_thread ().
ﺑﻂ )2ﻃ
ﺘﺮا
ﺘﻴﺮاد اﻟ
)1ﻣﻦ اﺳ
(). setName ("Pawan Kalyan") 4) print (current_thread ().
(current_thread (). getName ()) 3) current_threadاﺳﻢ(
ﺘﺎج |
اﻧ
ﺋﻴ ﺴ ﻲ
ﻣﻮﺿﻮع اﻟﺮ
ﺑﺎوان ﻛﺎﻟﻴﺎن
ﺑﺎوان ﻛﺎﻟﻴﺎن
*
Thread Identification Number:"، current_thread (). ident) 7) ﺒﺎﻋ ﺔ
ﻃdef (): 3) ﺒﺎر
ﺘاﺧ2) ﺘﻴﺮاد اﻟﺨﻴﻂ
ﻣﻦ اﺳ1)
t.ident)
:ﺘﺎج
اﻧ
ﺧﻴﻂ اﻟﻄﻔﻞ
2492 :ﺋﻴ ﺴ ﻲ
رﻗﻢﺗﻌﺮﻳﻒ اﻟﺨﻴﻂ اﻟﺮ
active_count ():
.ﺘﺸﻐﻴﻞ ﺣﺎﻟ ًﻴﺎ
ﺑﺈرﺟﺎع ﻋﺪدﺳﻼﺳﻞ اﻟﺮﺳﺎﺋﻞ اﻟﻨﺸﻄ ﺔ ﻗﻴﺪ اﻟﺗﻘﻮم ﻫﺬه اﻟﻮﻇﻴﻔ ﺔ
*
(). getName ()، "... ﺒﺎﻋ ﺔ
ﻃdef (): 4) ﻋﺮض3) ﺘﻴﺮاد
وﻗ ﺖ اﻻﺳ2) ﺘﻴﺮاد اﻟﺨﻴﻮط
ﻣﻦ اﺳ1)
()، "... ended") 7) print ("The Number of active Threads:"، active_count ()) 8) t1 =
10)t2.start
12) t3 = ﺳﻢ ()اﻻ13)
، اﻟﻌﺮض = )اﻟﻬﺪف
t3.start () 14) 5) time.sleep
print (" ( اﻻﺳﻢ3) 6) print
، اﻟﻌﺮض (current_thread
= )اﻟﻬﺪف () .getName
" =اﻟﺨﻴﻂChildThread2")
active Threads:"، active_count ()) ،": " =ﻋﺪد اﻟﺨﻴﻮط اﻟﻨﺸﻄ ﺔChildThread3") 11) t1.start ()
:ﺘﺎج
اﻧ
\ python_classes> py test.py :د
1 :ﻋﺪد اﻟﺨﻴﻮط اﻟﻨﺸﻄ ﺔ
ﺑﺪأ
ChildThread1 ...
ﺑﺪأ ت
ChildThread2 ...
ﺑﺪأ
ChildThread3 ...
128
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﻬﻰ
اﻧChildThread1 ...
ﺘﻬﻰ
اﻧChildThread2 ...
ﺘﻬﻰ
اﻧChildThread3 ...
:ّد )(اﻟﻮﻇﻴﻔ ﺔ
ﻋﺪ
.ﺘﺸﻐﻴﻞ ﺣﺎﻟ ًﻴﺎ
ﺑﺠﻤﻴﻊ اﻟﻤﻮاﺿﻴﻊ اﻟﻨﺸﻄ ﺔ ﻗﻴﺪ اﻟﺑﺈرﺟﺎع ﻗﺎﺋﻤ ﺔﺗﻘﻮم ﻫﺬه اﻟﻮﻇﻴﻔ ﺔ
*
(). getName ()، "... ﺒﺎﻋ ﺔ
ﻃdef (): 4) ﻋﺮض3) ﺘﻴﺮاد
وﻗ ﺖ اﻻﺳ2) ﺘﻴﺮاد اﻟﺨﻴﻮط
ﻣﻦ اﺳ1)
for t in l: 15)
10)print (" اﻟﻤﻮﺿﻮع
t1.start = "ChildThread2")
() 11) t2.start 9) t3
() 12) t3.start = ﺳﻢ
() 13) l =اﻻ ، )اﻟﻬﺪف =اﻟﻌﺮض
enumerate () 14)
16) time.sleep (5) 17) l = enumerate () 18) for t in l: 19) print (" Thread
"، t.name)
:ﺘﺎج
اﻧ
ﺑﺪأ ت
ChildThread2 ...
ﺑﺪأ
ChildThread3 ...
ﺘﻬﻰ
اﻧChildThread1 ...
ﺘﻬﻰ
اﻧChildThread2 ...
ﺘﻬﻰ
اﻧChildThread3 ...
129
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
*
(). getName ()، "... ﺒﺎﻋ ﺔ
ﻃdef (): 4) ﻋﺮض3) ﺘﻴﺮاد
وﻗ ﺖ اﻻﺳ2) ﺘﻴﺮاد اﻟﺨﻴﻮط
ﻣﻦ اﺳ1)
t2.start () 11) 12) print (t1.name، "is Alive :"، t1.isAlive ()) 13) print (t2.name،
:ﺘﺎج
اﻧ
\ python_classes> py test.py :د
ﺑﺪأ
ChildThread1 ...
ﺑﺪأ ت
ChildThread2 ...
ﺻﺤﻴﺢ:ﺣ ﻲChildThread1
ﺘﻬﻰ
اﻧChildThread1 ...
ﺘﻬﻰ
اﻧChildThread2 ...
ﺧﻄﺄ:ﺣ ﻲChildThread1
ﺧﻄﺄ:ﺣ ﻲChildThread2
*
ﻋﺮض3) ﺘﻴﺮاد
وﻗ ﺖ اﻻﺳ2) ﺘﻴﺮاد اﻟﺨﻴﻮط
ﻣﻦ اﺳ1)
9) t.start () (اﻟﻌﺮض
130
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺗﺞ:
ﺘﻤﻞ اﻟﺨﻴﻂ اﻟﻔﺮﻋ ﻲ .ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔﻳﻜﻮن اﻟﻨﺎ
ﺘﻰﻳﻜ
ﺋﻴ ﺴ ﻲ ﺣ
ﺘﻈﺮ اﻟﺨﻴﻂ اﻟﺮ
ﺜﺎل أﻋﻼه ،اﻧ
ﻓ ﻲ اﻟﻤ
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
ﺘﺮة اﻟﺰﻣﻨﻴ ﺔ أ ً
ﻳﻀﺎ. ﺘﺪﻋﺎء ﻃﺮﻳﻘ ﺔ اﻻﻧﻀﻤﺎم )(ﻣﻊ اﻟﻔ
ﻣﻼﺣﻈ ﺔ:ﻳﻤﻜﻨﻨﺎ اﺳ
ﺜﻮاﻧ ﻲ(
ﺑﺎﻟ
t.اﻻﻧﻀﻤﺎم )
ﺘﻈﺮ اﻟﺨﻴﻂ ﻣﻘﺪا ًرا ﻣﺤﺪدًا ﻣﻦ اﻟﻮﻗ ﺖ ﻓﻘﻂ.
ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔ ،ﺳﻴﻨ
*
ﺘﻴﺮاد )3ﻋﺮض = def (): 4) 5) 6) 7) 8) tﺘﻴﺮاد اﻟﺨﻴﻂ )2وﻗ ﺖ اﻻﺳ
)1ﻣﻦ اﺳ
ﺛﻮان ﻓﻘﻂ.
ٍ ﺋﻴ ﺴ ﻲ 5
ﺘﻈﺮ اﻟﺨﻴﻂ اﻟﺮ
ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔ ،اﻧ
ﺘﺎج |
اﻧ
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
راﻣﺎ اﻟﻤﻮﺿﻮع
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
ﻣﻮﺿﻮع Seetha
ﺑﻂ و Thread
ﺘﺮا
ﺑﻮﺣﺪة اﻟﺘﻌﻠﻘ ﺔ
ﻣﻠﺨﺺ ﻟﺠﻤﻴﻊ اﻟﻄﺮق اﻟﻤ
ﺧﻴﻮط اﻟﺸﻴﻄﺎن:
ﺘ ﻲﺗﻌﻤﻞ ﻓ ﻲ اﻟﺨﻠﻔﻴ ﺔ ﺧﻴﻮط اﻟﺸﻴﻄﺎن.
ﺗ ﺴﻤﻰ اﻟﺨﻴﻮط اﻟ
•
ﺋﻴ ﺴ ﻲ(
ﺜﻞ اﻟﺨﻴﻂ اﻟﺮ
اﻟﺨﻴﻮط )ﻣ
*
ﺒﺎﻋ ﺔ print (current_thread (). daemon) #False
ﺑﻂ )2ﻃ
ﺘﺮا
ﺘﻴﺮاد اﻟ
)1ﻣﻦ اﺳ
)t.setDaemonﺻﺤﻴﺢ(
*
ﺒﺎﻋ ﺔ )(). setDaemon (True
ﺑﻂ )2ﻃﺘﺮا
ﺘﻴﺮاد اﻟ
)1ﻣﻦ اﺳ
(current_thread (). isDaemon ()) 3) current_thread
ﺑﻂ اﻟﻨﺸﻂ
ﺘﺮا
ّﻴ ﺔ ﻟﻤﺆﺷﺮ اﻟ
RuntimeError:ﻻﻳﻤﻜﻦﺗﻌﻴﻴﻦ اﻟﺤﺎﻟ ﺔ اﻟﺨﻔ
ﺘﺮاﺿﻴ ﺔ:
ﺒﻴﻌ ﺔ اﻻﻓ
اﻟﻄ
ﺒﻴﻌ ﺔ اﻟﺨﻔﻴ ﺔ ﻣﻦ اﻷ ب إﱃ اﻟﻄﻔﻞ .أي إذا ﻛﺎن
ﺘﻢﺗﻮرﻳ ﺚ اﻟﻄ
ﺒﻘﻴ ﺔ ،ﺳﻴ
ﺘﺒ ﺔ ﻟﻠﺨﻴﻮط اﻟﻤ
ﺑﺎﻟﻨ ﺴﺋﻤﺎ ﻏﻴﺮ ﺧﻔ ﻲ ،وﻟﻜﻦ
ﺋﻴ ﺴ ﻲ دا ً
ﺑﻂ اﻟﺮ
ﺘﺮا
ﺘﺮاﺿ ًﻴﺎ ،ﻳﻜﻮن ﻣﺆﺷﺮ اﻟ
اﻓ
ﺋﻴ ﺴ ﻲ ﻟﻴ ﺲ ﺧﻔ ًﻴﺎ ،ﻓ ﺴﻴﻜﻮن ChildThread
ﺑﻂ اﻟﺮ
ﺘﺮا ﺋﻴ ﺴ ﻲ ﻫﻮ Daemon ،ﻓﺈن اﻟﺨﻴﻂ اﻟﻔﺮﻋ ﻲ ﻫﻮ أ ً
ﻳﻀﺎ Daemonوإذا ﻛﺎن ﻣﺆﺷﺮ اﻟ ﺑﻂ اﻟﺮ
ﺘﺮا
ﻣﺆﺷﺮ اﻟ
أ ً
ﻳﻀﺎ
ﻏﻴﺮ اﻟﺸﻴﻄﺎن.
*
ﺘﻴﺮاد اﻟﺨﻴﻂ False 6) t.setDaemon
)1ﻣﻦ اﺳ
(target = job) 5) print (t.isDaemon ()) #
(): 3) (t.isDaemon
print )"print ("Child Thread )4) t2
)ﺻﺤﻴﺢ ( ()) # = Thread
def job
) 7ﺻﺤﻴﺢ
ﺒﺪاﻳ ﺔ ﻓﻘﻂ.
ﺑﺎﻟﻔﻌﻞ ﻓ ﻲ اﻟﺑﺪأﺋﻤﺎ ﻏﻴﺮ ﺧﻔ ﻲ وﻻﻳﻤﻜﻨﻨﺎﺗﻐﻴﻴﺮ Daemon Natureﻷﻧﻪ
ﺋﻴ ﺴ ﻲ دا ً
ﻣﻠﺤﻮﻇ ﺔ :اﻟﺨﻴﻂ اﻟﺮ
*
ﺘﻴﺮاد )3ﻣﻬﻤ ﺔ )(): 4
ﺘﻴﺮاد اﻟﺨﻴﻂ )2وﻗ ﺖ اﻻﺳ
)1ﻣﻦ اﺳ
ﺒﺎﻋ ﺔ (2) 7) 8) t = Thread
defﻟـ iﻓ ﻲ اﻟﻨﻄﺎق )(10): 5ﻃ
)("Lazy Thread") 6) time.sleepاﻟﻬﺪف =اﻟﻤﻬﻤ ﺔ(
)time.sleep (5
t.setDaemon 12) print
)(True ===>("End
)Line-1Of10
Main )"Thread
t.start )() 11
9) #
133
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﻰ
ﺘﻢﺗﻨﻔﻴﺬ ﻛﻼ ﻫﻤﺎ ﺣ
ﺘﺎﻟ ﻲﺳﻴ
ﺑﺎﻟ
ﺋﻴ ﺴ ﻲ واﻟﺨﻴﻮط اﻟﻔﺮﻋﻴ ﺔ ﻏﻴﺮ ﺷﻴﻄﺎن ،و
ﺒﺮﻧﺎﻣﺞ أﻋﻼه ،إذا ﻋﻠﻘﻨﺎ ﻋﲆ اﻟ ﺴﻄﺮ اﻷول ،ﻓ ﺴﻴﻜﻮن ﻛﻞ ﻣﻦ اﻟﺨﻴﻂ اﻟﺮ
ﻓ ﻲ اﻟ
ﺘﻤﺎﻟﻬﻤﺎ.
اﻛ
ﺗﺞ:
ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔﻳﻜﻮن اﻟﻨﺎ
ﺧﻴﻂ ﻛ ﺴﻮل
ﺧﻴﻂ ﻛ ﺴﻮل
ﺧﻴﻂ ﻛ ﺴﻮل
ﺋﻴ ﺴ ﻲ
ﻧﻬﺎﻳ ﺔ اﻟﺨﻴﻂ اﻟﺮ
ﺧﻴﻂ ﻛ ﺴﻮل
ﺧﻴﻂ ﻛ ﺴﻮل
ﺧﻴﻂ ﻛ ﺴﻮل
ﺧﻴﻂ ﻛ ﺴﻮل
ﺧﻴﻂ ﻛ ﺴﻮل
ﺧﻴﻂ ﻛ ﺴﻮل
ﺧﻴﻂ ﻛ ﺴﻮل
ﺧﻴﻂ ﻛ ﺴﻮل
ﺧﻴﻂ ﻛ ﺴﻮل
ﺧﻴﻂ ﻛ ﺴﻮل
ﺋﻴ ﺴ ﻲ
ﻧﻬﺎﻳ ﺔ اﻟﺨﻴﻂ اﻟﺮ
ﺘﺰاﻣﻦ:
اﻟ
ﺒﻴﺎﻧﺎ ت.
إذاﺗﻢﺗﻨﻔﻴﺬ اﻟﻌﺪﻳﺪ ﻣﻦﺳﻼﺳﻞ اﻟﺮﺳﺎﺋﻞ ﻓ ﻲ وﻗ ﺖ واﺣﺪ ،ﻓﻘﺪﺗﻜﻮن ﻫﻨﺎك ﻓﺮﺻ ﺔ ﻟﺤﺪو ث ﻣﺸﺎﻛﻞ ﻋﺪمﺗﻨﺎﺳﻖ اﻟ
*
ﺘﻌﺮﻳﻒ
ﺒ ﺔ اﻟ
ﺘﻴﺮاد )3رﻏ
ﺘﻴﺮاد اﻟﺨﻴﻮط )2وﻗ ﺖ اﻻﺳ
)1ﻣﻦ اﺳ
ﺒﺎﻋ ﺔ ("Good Evening:" ،
)اﻻﺳﻢ(4) :ﻟـ iﻓ ﻲ اﻟﻨﻄﺎق (10):ﻃ
اﻟﻨﻬﺎﻳ ﺔ )( args = ("Yuvraj"،)) 10) t1.start ( ) 11) t2.start
args
)(2) 6 ))= ("Dhoni"،
7) print 9) t1
)(name) 8 t2 = Thread (target = wish،
= ") 5) time.sleep
ﺘﺎج |
اﻧ
ﻣ ﺴﺎء اﻟﺨﻴﺮ :ﻣ ﺴﺎء اﻟﺨﻴﺮﻳﻮﻓﺮاج
دوﻧ ﻲ
134
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺰاﻣﻨ ﺔ )(
ﺒﺔ ﻣ
ﺘﻈﻢ b'zﻛﻼ اﻟﺨﻴﻮطﻳﻨﻔﺬان رﻏ
•ﻧﺤﺼﻞ ﻋﲆ إﺧﺮاج ﻏﻴﺮ ﻣﻨ
وﻇﻴﻔ ﺔ.
ﺘﻐﻠ ﺐ ﻋﻠﻴﻬﺎ
ﺘﻤﻜﻦ ﻣﻦ اﻟ
ﺘﻰ ﻧ
ﺘﻢﺗﻨﻔﻴﺬ اﻟﺨﻴﻮط واﺣﺪةﺗﻠﻮ اﻷﺧﺮى ﺣ
ﺘﺰاﻣﻦ ،ﺳﻴ
ﺘﺰاﻣﻦ• .ﻓ ﻲ ﺣﺎﻟ ﺔ اﻟ
ﺘﻐﻠ ﺐ ﻋﲆ ﻫﺬه اﻟﻤﺸﻜﻠ ﺔﻳﺠ ﺐ أن ﻧﺬ ﻫ ﺐ إﱃ اﻟ
•ﻟﻠ
ﺘﺰاﻣﻦ ﻫ ﻲ
ﺋﻴ ﺴﻴ ﺔ ﻟﻠ
ﺒﻴﻖ اﻟﺮ
ﺘﻄﻣﺠﺎﻻ ت اﻟ
ﺘﺮﻧ ﺖ
ﺒﺮ اﻹﻧ
)1ﻧﻈﺎم اﻟﺤﺠﺰ ﻋ
ﺘﺮﻛ ﺔ
ﺑﺎ ت اﻟﻤﺸ
ﺗﺤﻮﻳﻞ اﻷﻣﻮال ﻣﻦ اﻟﺤ ﺴﺎ
)2
إﻟﺦ
ﺘﺨﺪام ﻣﺎﻳﻠ ﻲ
ﺑﺎﺳﻓ ﻲ Python ،ﻳﻤﻜﻨﻨﺎﺗﻨﻔﻴﺬ اﻟﻤﺰاﻣﻨ ﺔ
)1ﻗﻔﻞ
2) RLock
)3ﺳﻴﻤﺎﻓﻮر
ﺘ ﺴﺎ ب )( () l.acquire
ﺘﺨﺪام ﻃﺮﻳﻘ ﺔ اﻻﻛ
ﺑﺎﺳ•ﻳﻤﻜﻦ ﻟﻠﺨﻴﻂ اﻟﺤﺼﻮل ﻋﲆ اﻟﻘﻔﻞ
ﺜﻨﺎء
ﺘﺑﺎﻟﻔﻌﻞ ،وإﻻﺳﻨﺤﺼﻞ ﻋﲆ اﺳﺘﻮي اﻟﺨﻴﻂ ﻋﲆ اﻟﻘﻔﻞ
ﺘﺪﻋﺎء اﻹﺻﺪار () ،ﻳﺠ ﺐ أنﻳﻜﻮن اﻟﺨﻴﻂ اﻹﻟﺰاﻣ ﻲ ﻫﻮ ﻣﺎﻟﻚ ﻫﺬا اﻟﻘﻔﻞ.ﻳﺠ ﺐ أنﻳﺤ
ﻣﻼﺣﻈ ﺔ :ﻻﺳ
ﺘﺸﻐﻴﻞﻳﻘﻮل
وﻗ ﺖ اﻟ
ﺘﺸﻐﻴﻞ :ﺣﺮر ﻗﻔﻞ ﻏﻴﺮ ﻣﻘﻔﻞ.
ﺧﻄﺄ وﻗ ﺖ اﻟ
*
)( () 3) # l.acquire ﺘﻴﺮاد اﻟﺨﻴﻮط = 2) lﻗﻔﻞ )( 1 4) l.release
)1ﻣﻦ اﺳ
اﻟﻤﺆﻣ ﻦ
ﱠ إذا ﻛﻨﺎ ﻧﻌﻠﻖ ﻋﲆ اﻟ ﺴﻄﺮ 1 ،ﻓ ﺴﻨﺤﺼﻞ ﻋﲆ RuntimeError:ﺣﺮر اﻟﻘﻔﻞ ﻏﻴﺮ
*
ﺘﻴﺮاد
ﺘﻴﺮاد ﺧﻴﻮط )2وﻗ ﺖ اﻻﺳ
)1ﻣﻦ اﺳ
ﺘﻈﻢ.
ﺘﺎﻟ ﻲﺳﻨﺤﺼﻞ ﻋﲆ إﺧﺮاج ﻣﻨ
ﺑﺎﻟ
ﺘﻨﻔﻴﺬ ﻃﺮﻳﻘ ﺔ wish () ،و
ﺑﺑﺨﻴﻂ واﺣﺪ ﻓﻘﻂُﺴﻤﺢ
ﺒﺮﻧﺎﻣﺞ أﻋﻼه ،ﻓ ﻲ ﻛﻞ ﻣﺮة ،ﻳ
ﻓ ﻲ اﻟ
ﺒ ﺴﻴﻂ:
ﻣﺸﻜﻠ ﺔ اﻟﻘﻔﻞ اﻟ
ﺘﻰ أن
ﺘﻢ ﺣﻈﺮه ،ﺣ
ﺑﺎﻟﺨﻴﻂ اﻟﺬيﻳﺤﻤﻞ ﻫﺬا اﻟﻘﻔﻞ ﺣﺎﻟ ًﻴﺎ ،ﻓﺈذاﺗﻢﺗﻌﻠﻴﻖ اﻟﻘﻔﻞ وﻣﺤﺎوﻟ ﺔ أي ﺧﻴﻂ ﻟﻠﺤﺼﻮل ﻋﲆ اﻟﻘﻔﻞ ،ﻓ ﺴﻴﺘﻢ ﻛﺎﺋﻦ اﻟﻘﻔﻞ اﻟﻘﻴﺎﺳ ﻲ
ﻻﻳﻬ
ﺑﺎﻟﻔﻌﻞ.ﻧﻔ ﺲ اﻟﺨﻴﻂﻳﺤﻤﻞ ﻫﺬا اﻟﻘﻔﻞ
*
ﺘﻴﺮاد اﻟﺨﻴﻮط 2) l = Lock () 3) print ("Main Threadﻳﺤﺎول اﻟﺤﺼﻮل ﻋﲆ
)1ﻣﻦ اﺳ
Lock") 4) l.acquire () 5) print ("Main Threadﻳﺤﺎول اﻟﺤﺼﻮل ﻋﲆ Again") 6) l.
ﺘ ﺴ ﺐ)(
Lockﻳﻜ
ﺘﺎج |
اﻧ
د\ python_classes> py test.py :
ﺋﻴ ﺴ ﻲﻳﺤﺎول اﻟﺤﺼﻮل ﻋﲆ اﻟﻘﻔﻞ
اﻟﻤﻮﺿﻮع اﻟﺮ
ﺋﻴ ﺴ ﻲﻳﺤﺎول اﻟﺤﺼﻮل ﻋﲆ Lockﻣﺮة أﺧﺮى
اﻟﻤﻮﺿﻮع اﻟﺮ
-
ﺘﻐﻠ ﺐ ﻋﲆ ﻫﺬه اﻟﻤﺸﻜﻠ ﺔ ،ﻳﺠ ﺐ أن ﻧﺬ ﻫ ﺐ إﱃ RLock (Reentrant Lock). Reentrantﻳﻌﻨ ﻲ أن اﻟﺨﻴﻂﻳﻤﻜﻨﻪ اﻟﺤﺼﻮل ﻋﲆ ﻧﻔ ﺲ اﻟﻘﻔﻞ ﻣﺮا ًرا
ﻟﻠ
ﺘﻢ ﺣﻈﺮ اﻟﺨﻴﻂ ﻓﻘﻂ.
ﺑﻮاﺳﻄ ﺔ ﺧﻴﻮط أﺧﺮى ،ﻓ ﺴﻴﺗﻜﺮا ًرا ،إذاﺗﻢﺗﻌﻠﻴﻖ اﻟﻘﻔﻞ
و
*
ﺋﻴ ﺴ ﻲﻳﺤﺎول اﻟﺤﺼﻮل
ﺒﺎﻋ ﺔ )"اﻟﺨﻴﻂ اﻟﺮ
ﺘﻴﺮاد اﻟﺨﻴﻮط )2) l = RLock () 3ﻃ
)1ﻣﻦ اﺳ
ﺋﻴ ﺴ ﻲﻳﺤﺎول اﻟﺤﺼﻮل ﻋﲆ 6) l.
ﺒﺎﻋ ﺔ )"اﻟﺨﻴﻂ اﻟﺮ
ﻋﲆ )Lock") 4) l.acquire () 5ﻃ
ﺘ ﺴ ﺐ)(
)"Lock Againﻳﻜ
ﺜﺎل ،
ﺒﻴﻞ اﻟﻤ
ﺘﺎﺣ ﺔ .ﻋﲆﺳ
ﺘ ﺴﺎ ب )(إﻃﻼق إﻟﺰاﻣ ﻲ ﻟﻠﻤﻜﺎﻟﻤ ﺔ )(ﻣ
ﺘﺎﻟ ﻲﻳﺠ ﺐ أنﺗﻜﻮن ﻛﻞ ﻣﻜﺎﻟﻤ ﺔ اﻛ
ﺑﺎﻟ
ﺘﻮى اﻟﻌﻮدﻳ ﺔ و
ﺒﻊ ﻣ ﺴ
ﺘﺘﺑﻳﻘﻮم RLockﻫﺬا
ﺘﻢﺗﺤﺮﻳﺮ اﻟﻘﻔﻞ ﻓﻘﻂ.
ﺛﻢﻳ
ﺘﺤﺮﻳﺮ )(
ﺘﺤﻮاذ )(وﻣﻜﺎﻟﻤﺎ ت اﻟ
ﺑﻘ ﺔ ﻋﺪد ﻣﻜﺎﻟﻤﺎ ت اﻻﺳ
ﻳﺠ ﺐ ﻣﻄﺎ
ﺜﺎل:
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
)( l = RLock
)( l.acquire
)( l.acquire
)( l.release
)( l.release
ﻣﻠﺤﻮﻇ ﺔ:
ﺘﺨﺪام RLock:
ﺑﺎﺳﺘﺰاﻣﻦ
ﺒ ﻲ ﻟﻠ
ﺑﺮﻧﺎﻣﺞﺗﺠﺮﻳ
*
ﺘﻴﺮاد
ﺘﻴﺮاد اﻟﺨﻴﻮط )2وﻗ ﺖ اﻻﺳ
)1ﻣﻦ اﺳ
ﺘﻌﺮﻳﻒ )() 6
)3) l = RLock () 4ﻋﺎﻣﻞ اﻟ
(n): 5) l.acquireإذا ﻛﺎن )n == 0: 7
ﺘﻴﺠ ﺔ = 1
اﻟﻨ
137
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
t1
def
اﻟﻌﺎﻣﻞ =
ﺘﻴﺠ"،ﺔ إرﺟﺎع
ﻫﻮ:
)(n-1ﻧ
)(n): 14
10) print
l.release
("The
)() 11
Factorial
=of"،ﻋﺎﻣﻠ ﻲ
ﺘﻴﺠ ﺔn *n،
ﺋﺞ "
ﺘﺎاﻟﻨ
else:اﻟﻨ)8
)12) 13
)9
args = argsاﻟﺨﻴﻂ )اﻟﻬﺪف =
)(5،)) 17
= (9t2
)،))=18
ﺋﺞ ،
t1.start
ﺘﺎ)اﻟﻬﺪف =اﻟﻨ
اﻟﺨﻴﻂ )() 19
t2.start
)(n))()15
ﺋﺞ ،
)16
ﺘﺎاﻟﻨ
ﺘﺎج:
اﻧ
ﻣﻀﺮو ب اﻟﻌﺪد 5ﻫﻮ120 :
ﻣﻀﺮو ب اﻟﻌﺪد 9ﻫﻮ362880 :
ﻣﺮا ت.
ﺘﺪاﺧﻠ ﺔ.
ﺘﻨﻔﻴﺬ اﻟﻮﻇﺎﺋﻒ اﻟﻌﻮدﻳ ﺔ وﻣﻜﺎﻟﻤﺎ ت اﻟﻮﺻﻮل اﻟﻤ
)2ﻏﻴﺮ ﻣﻨﺎﺳ ﺐ ﻟ ﺘﺪاﺧﻠ ﺔ.
ﺘﻨﻔﻴﺬ اﻟﻮﻇﺎﺋﻒ اﻟﻌﻮدﻳ ﺔ وﻣﻜﺎﻟﻤﺎ ت اﻟﻮﺻﻮل اﻟﻤ
)2اﻷﻧ ﺴ ﺐ ﻟ
ﺘﻜﺮار
ﺑﻂ اﻟﻤﺎﻟﻚ واﻟ
ﺑ ﺴﻠ ﺴﻠ ﺔﺗﺮاﺑﺪًا
ﺘﻢ أ
اﻟﻤﺆﻣ ﻦ وﻟﻦﻳﻬ
ﻏﻴﺮأو ﻏﻴﺮ ﱠ
ﻣﺆﻣﻨًﺎ
ﺑﺎﻟﻘﻔﻞ أو
ﻓﻘﻂإذا ﻛﺎن
ﺑﻤﺎ
RLock
ﻋﻨﺼﺮ Lock
ﺘﻢ ﻛﺎﺋﻦ
)3ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔ ،ﺳﻴﻬ
ﺘﻮى اﻟﻌﻮدﻳ ﺔ.
ﺑﻂ اﻟﻤﺎﻟﻚ ،وﻣ ﺴ
ﻣﺆﻣﻦ وﻣﻌﻠﻮﻣﺎ ت ﻣﺆﺷﺮﺗﺮا
ﺘﻮى.
ﻣﺴ
ﺘﺨﺪامﺳﻴﻤﺎﻓﻮر:
ﺑﺎﺳﺘﺰاﻣﻦ
اﻟ
ﺑﻂ واﺣﺪ ﻓﻘﻂ.
ﺘﻨﻔﻴﺬ ﻣﺆﺷﺮﺗﺮا
ﺑُﺴﻤﺢ
ﻓ ﻲ ﺣﺎﻟ ﺔ Lockو RLock ،ﻓ ﻲ ﻛﻞ ﻣﺮةﻳ
ﺑﺸﻜﻞ ﻣﺤﺪودﺘﺮﻛ ﺔ
ﺘﺨﺪام Semaphoreﻟﻠﺤﺪ ﻣﻦ اﻟﻮﺻﻮل إﱃ اﻟﻤﻮارد اﻟﻤﺸ
ﻳﻤﻜﻦ اﺳ
ﺳﻌ ﺔ.
ﺘﻘﺪﻣ ﺔ.
ﻫ ﻲ آﻟﻴ ﺔﺗﺰاﻣﻦ ﻣ Semaphore
138
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
*
ﺘﻴﺮاد = = ("Dhoni"،)) 13 ) t2
ﺘﻴﺮاد اﻟﺨﻴﻮط )2وﻗ ﺖ اﻻﺳ
)1ﻣﻦ اﺳ
10) s.release () 11) 12) t1 = Thread (target = wish، args
)Evening: "، end =") 8) time.sleep (2) 9) print (name
5) s.acquire () 6) for i in range (10): 7) print ("Good
)اﻟﻬﺪف== ،
اﻟﺨﻴﻂ =اﻟﺮﻏ
ﺒﺔ اﻟﺨﻴﻂ3) s
)اﻟﻬﺪف = Semaphore (2) 4) def
"args = ("Yuvraj wish
)،)) 14 t3 =(name):
ﺒﺔ ،
اﻟﺮﻏ
)16) t5()=20
t3.start t4.ﺔ ،
ﺒﺒ ﺔ=،اﻟﺮﻏ
)اﻟﻬﺪف argsاﻟﺨﻴﻂ
)اﻟﻬﺪف =اﻟﺮﻏ =argsاﻟﺨﻴﻂ
"("Kohli ،)) 15) t4
))= ( "Rohit"،
ﺑﺪأ )(
)( )args = ("Pandya" ،)) 17) t1.start () 18ا
t2.start )() 19
21) t5.start
139
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﻳﺤﺪ ﻫﺎﺳﻴﻤﺎﻓﻮر:
ﺘﺠﺎوز ﻋﺪد ﻣﻜﺎﻟﻤﺎ ت
ﺘﺪﻋﺎء ﻃﺮﻳﻘ ﺔ اﻹﻃﻼق )(أي ﻋﺪد ﻣﻦ اﻟﻤﺮا ت إﱃ ﻋﺪاد اﻟﺰﻳﺎدة.ﻳﻤﻜﻦ أنﻳ
ﺑﺎﺳاﻹﺷﺎرة اﻟﻌﺎدﻳ ﺔ ﻫ ﻲ إﺷﺎرة ﻏﻴﺮ ﻣﺤﺪودةﺗ ﺴﻤﺢ ﻟﻨﺎ
ﺘﺤﻮاذ )(أ ً
ﻳﻀﺎ. اﻹﺻﺪار )(ﻋﺪد ﻣﻜﺎﻟﻤﺎ ت اﻻﺳ
*
ﺘﻴﺮاد اﻟﺨﻴﻮط 8) s.release () 9
)1ﻣﻦ اﺳ
)( () 6) s.release () 7) s.release
() 4) s.acquire () 5) s.release
2) s = Semaphore (2) 3) s.acquire
ﺒﺎﻋ ﺔ )"("End
ﻃ
*
ﺘﻴﺮاد اﻟﺨﻴﻮط () 8) s.release () 9
)1ﻣﻦ اﺳ
5) s.release () 6) s.release () 7) s.release
)( (2) 3) s.acquire () 4) s.acquire
ﺒﺎﻋ ﺔ )"("End
2) s = BoundedSemaphoreﻃ
ﺗﻤ ﺔ:
ﺧﺎ
ﺘﻈﺎر اﻟﺨﻴﻮط وﺧﻠﻖ
ﺋﻴ ﺴ ﻲ ﻟﻠﻤﺰاﻣﻨ ﺔ ﻫﻮ زﻳﺎدة وﻗ ﺖ اﻧ
ﺒﻴﺎﻧﺎ ت ،وﻟﻜﻦ اﻟﻌﻴ ﺐ اﻟﺮ
ﺘﻐﻠ ﺐ ﻋﲆ ﻣﺸﺎﻛﻞ ﻋﺪمﺗﻨﺎﺳﻖ اﻟ
ﺋﻴ ﺴﻴ ﺔ ﻟﻠﻤﺰاﻣﻨ ﺔ ﻫ ﻲ أﻧﻪﻳﻤﻜﻨﻨﺎ اﻟ
اﻟﻤﻴﺰة اﻟﺮ
ﺘﺰاﻣﻦ.
ﺘﺨﺪام اﻟ
ﺑﺎﺳﺛﻢ إذا ﻟﻢﻳﻜﻦ ﻫﻨﺎك ﺷﺮط ﻣﺤﺪد ﻓﻼﻳﻮﺻﻰﻣﺸﺎﻛﻞ ﻓ ﻲ اﻷداء .وﻣﻦ
ﺑﻴﻦ اﻟﺨﻴﻂ:ﺘﻮاﺻﻞ
اﻟ
ﺑﺔ
ﺒﺮﻣﺠ ﺔ ،ﺗﻜﻮن اﻟﺨﻴﻮط ﻣﻄﻠﻮ
ﺒﺎ ت اﻟ
ﺘﻄﻠ
ﺑﻌﺾ اﻷﺣﻴﺎن ﻛﺠﺰء ﻣﻦ ﻣﻓﻲ
ﺑﻴﻦ اﻟﻤﻮاﺿﻴﻊ.ﺗﺼﺎل
ﺑﻌﺾ .ﻫﺬا اﻟﻤﻔﻬﻮم ﻟﻴ ﺲﺳﻮى اﺗﻮاﺻﻠﻮا ﻣﻊ
ﺑﺎﻟﻌﻨﺼﺮﺘﻬﻠﻚ ﻹﺧﻄﺎره
ﺑﻂ اﻟﻤ ﺴ
ِﺞ ﻣﻊ ﻣﺆﺷﺮﺗﺮا
ﺘ
اﻟﻤﻨ
ﺑﻂ ُﺘﻮاﺻﻞ ﻣﺆﺷﺮﺗﺮا
ﺘﺎج اﻟﻌﻨﺎﺻﺮ ،ﻳﺠ ﺐ أنﻳ
ﺑﻌﺪ إﻧﺜﺎل:
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺘﻬﻠﻚ ﻫﺬا اﻟﻌﻨﺼﺮ اﻟﺠﺪﻳﺪ.
ﺘﻬﻠﻚ أنﺗ ﺴ
ﺑﻴﺎﻧﺎ ت اﻟﻤ ﺴﺛﻢﻳﻤﻜﻦ ﻟ ﺴﻠ ﺴﻠ ﺔاﻟﺠﺪﻳﺪ ،
ﺘﺎﻟﻴ ﺔ
ﺘﺨﺪام اﻟﻄﺮق اﻟ
ﺑﺎﺳﺑﻴﻦ اﻟﻤﻮاﺿﻴﻊﺗﺼﺎل
ﻓ ﻲ Python ،ﻳﻤﻜﻨﻨﺎﺗﻨﻔﻴﺬ اﻻ
)1ﺣﺪ ث
)2اﻟﺸﺮط
ﺘﻈﺎر
)3ﻗﺎﺋﻤ ﺔ اﻻﻧ
إﻟﺦ
ﺘﺎﻟ ﻲ ...
ﻳﻤﻜﻨﻨﺎ إﻧﺸﺎء ﻛﺎﺋﻦ ﺣﺪ ث ﻋﲆ اﻟﻨﺤﻮ اﻟ
ﻛﻮد ﻣﺰﻳﻒ:
اﻟﺤﺪ ث )( = threading.Event
ﺘﻢﺗﻌﻴﻴﻦ اﻟﺤﺪ ث
ﺘﻰﻳ
ﺘﻈﺮ ﺣ
#consumer threadﻳﺠ ﺐ أنﺗﻨ
)( event.wait
ﺘﺞﻳﻤﻜﻦﺗﻌﻴﻴﻦ أو ﻣ ﺴﺢ اﻟﺤﺪ ث
#اﻟﻤﻨ
)( event.set
)( event.clear
141
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺒ ﻲ -1:
ﺘﺠﺮﻳ
ﺒﺮﻧﺎﻣﺞ اﻟ
اﻟ
*
ﺘﺎج
ﺒﺎﻋ ﺔ )"ﻋﻨﺎﺻﺮ إﻧ
ﺘﺞ )def (): time.sleep (5) 4ﻃ
ﺘﻴﺮاد )3اﻟﻤﻨ
ﺘﻴﺮاد اﻟﺨﻴﻂ )2وﻗ ﺖ اﻻﺳ
)1ﻣﻦ اﺳ
ِﺞ ﻋﻦ ﻃﺮﻳﻖﺗﻌﻴﻴﻦ اﻟﺤﺪ ث"( ("Consumer thread
ﺘ
اﻟﻤﻨ
ﺑﻂ ُﺒﺎﻋ ﺔ )"إﺷﻌﺎر ﻣﺆﺷﺮﺗﺮا
ِﺞ5) (":ﻃ
ﺘ
اﻟﻤﻨ
ﺧﻴﻂ ُ
(): 9) print ("Consumer thread is waiting for update") 10) event.wait () 11) print
)16
t1 =t1.start
)=() 17اﻟﺤﺪ ث
اﻟﺤﺪ ث
t2.start
)12) 13
ﺘﻬﻠﻚ( )(
ﺘﻬﻠﻜ ﺔ"(
ﺴﺴاﻟﻤاﻟﻤ
واﻟﻌﻨﺎﺻﺮ =
اﻟﺨﻴﻂ )اﻟﻬﺪف
ﻟﻺﻋﻼم)15
)6) 7
t2 event.set
ﺘﺞ( =)اﻟﻬﺪف)( =اﻟﻤﻨ
اﻟﺨﻴﻂ 8) def
customer
)() 14
ﺘﺎج:
اﻧ
ﺘﺤﺪﻳ ﺚ
ﺘﻈﺮ اﻟ
ﺘﻬﻠﻚﻳﻨ
ﻣﻮﺿﻮع اﻟﻤ ﺴ
ﺘﺠ ﺔ
ﺒﻨﻮد اﻟﻤﻨ
ﺘﺞ اﻟﺨﻴﻂ اﻟ
اﻟﻤﻨ
ﺘﺞﻳﻌﻄ ﻲ إﺧﻄﺎرا ﻣﻦ ﺧﻼلﺗﺤﺪﻳﺪ اﻟﺤﺪ ث
ﻣﻮﺿﻮع اﻟﻤﻨ
ﺘﻬﻠﻜ ﺔ
ﺘﻬﻠﻚ إﺷﻌﺎ ًرا وﻋﻨﺎﺻﺮ ﻣ ﺴ
ﺗﻠﻘﻰ ﻣﻮﺿﻮع اﻟﻤ ﺴ
ﺒ ﻲ -2:
ﺘﺠﺮﻳ
ﺒﺮﻧﺎﻣﺞ اﻟ
اﻟ
*
ﺘﻴﺮاد True: 14) print ("Drivers waiting for
ﺘﻴﺮاد اﻟﺨﻴﻮط )2وﻗ ﺖ اﻻﺳ
)1ﻣﻦ اﺳ
RED Signal") 10) event.clear () 11) def driver (): 12) num = 0 13) while
Signal") 7) event.set () 8) time.sleep (20) 9) print ("Traffic Police Giving
(): 4) while True: 5) time.sleep (10) 6) print ("Traffic Police Giving GREEN
") 15) event.waitإﺷﺎرة اﻟﻤﺮور )() 16
event.isSet print
"( )"
ﺑﻴﻨﻤﺎ (): ﺧﻀﺮاء)17
ﺘﺤﺮكإﺷﺎرة ﻟﻠﻤﺮﻛ)3
ﺒﺎ ت اﻟ ﻳﻤﻜﻦ def
trafficpolice
ﺧﻀﺮاء ...
142
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
اﻟﺤﺪ ث = t1
)(2) =21
printث
)22اﻟﺤﺪ
اﻹﺷﺎرة"(
ﺘﻈﺎر" (
ﺒﻮر
"ﻋاﻻﻧ
ﺋﻘﻴﻦ
num
ﻋﲆ ،اﻟ ﺴﺎ
ﺴﻴﺎرة، ":
ﺘﻌﻴﻦ ...ﻳاﻟ
ﺣﻤﺮاءرﻗﻢ
18) num
)"إﺷﺎرة=اﻟﻤﺮور
num + )20
)1 19
time.sleep
"( print
)() 25اﻟﺨﻴﻂ )اﻟﻬﺪف =ﺷﺮﻃ ﺔ اﻟﻤﺮور( = 24) t2اﻟﺨﻴﻂ )اﻟﻬﺪف =اﻟ ﺴﺎﺋﻖ( )( t1.start () 26) t2.start
)23
ﺑﻤﺠﺮد أن
ﺘﻰﻳﻌﻄ ﻲ إﺷﺎرة ﺧﻀﺮاء ،و
ﺘﻌﻴﻴﻦ event.ieﺣ
ﺑﺑﻂ ﺷﺮﻃ ﺔ اﻟﻤﺮور
ﺘﻰﻳﻘﻮم ﻣﺆﺷﺮﺗﺮا
ﺘﻈﺮ ﺣ
ﺒﺮﻧﺎﻣﺞ أﻋﻼه ،ﻳﺠ ﺐ أنﻳﻨ
ﺑﺮﻧﺎﻣﺞﺗﺸﻐﻴﻞ اﻟﻓ ﻲ ﺧﻴﻂ
ﺑﻤﺠﺮد ﻣ ﺴﺢ ﺧﻴﻂ ﺷﺮﻃ ﺔ اﻟﻤﺮور ﻟﻠﺤﺪ ث )ﻳﻌﻄ ﻲ إﺷﺎرةﺒﻮر اﻹﺷﺎرة.
ﺒﺎ ت ﻋ
ﺑﻂ ﺷﺮﻃ ﺔ اﻟﻤﺮور اﻟﺤﺪ ث )ﻳﻌﻄ ﻲ إﺷﺎرة ﺧﻀﺮاء( ،ﻳﻤﻜﻦ ﻟﻠﻤﺮﻛ
ﻳﺤﺪد ﻣﺆﺷﺮﺗﺮا
ﺑﻂ اﻟ ﺴﺎﺋﻖ.
ﺘﻈﺮ ﻣﺆﺷﺮﺗﺮا
ﺣﻤﺮاء( ،ﻳﺠ ﺐ أنﻳﻨ
ﺑﻂ آﺧﺮ.
ﺑﻮاﺳﻄ ﺔ ﻣﺆﺷﺮﺗﺮاﺘﻢ إﺧﻄﺎره
ﺘﻰﻳ
ﺘﻈﺎر ﺣ
ﺑﺎﻻﻧﺑﻂ
ﺘﺮا
ﺜﺮ ﻣﻦ ﻣﺆﺷﺮا ت اﻟ
ﺑﻤﺠﺮد ﺣﺪو ث اﻟﺸﺮط.ﻳ ﺴﻤﺢ ﻛﺎﺋﻦ اﻟﺸﺮط ﻟﻮاﺣﺪ أو أﻛﺳﻼﺳﻞ اﻟﺮﺳﺎﺋﻞ
ﺑﻘﻔﻞ (ReentrantLock).ﺋﻤﺎ
ﺒﻂ اﻟﺸﺮط دا ً
ﺗﻳﺮ
ﺑﻠ ﺔ
ﺘﺪﻋ ﻲ اﻟﻄﺮق اﻟﻤﻘﺎ
ﺗﺴﺘﻴﻦ )(و )( release
ﺘ ﺴ ﺐ اﻟﺸﺮط ﻃﺮﻳﻘ
ﻳﻜ
ﺒﻂ.
ﺗﻣﻦ اﻟﻘﻔﻞ اﻟﻤﺮ
ﻃﺮق اﻟﺸﺮط:
ﺘﻬﻼﻛﻬﺎ
ﺘﺎج اﻟﻌﻨﺎﺻﺮ أو اﺳ
ﺒﻞ إﻧ
)(ﻟﻠﺤﺼﻮل ﻋﲆ ﻛﺎﺋﻦ اﻟﺸﺮط ﻗ )1اﻟﺤﺼﻮل ﻋﲆ
ﺘﻬﺎء اﻟﻮﻗ ﺖ
ﺘﻼم اﻹﺧﻄﺎر أو اﻧ
ﺘﻰ اﺳ
ﺘﻈﺎر ﺣ
ﻟﻼﻧ ﺘﻈﺮ )وﻗ ﺖ(
ﺘﻈﺮ | )(اﻧ
)3اﻧ
ﺘﻈﺎر واﺣﺪ
ﺑﻠﻎ )(ﻹﻋﻄﺎء إﺷﻌﺎر ﻟﺨﻴﻂ اﻧ
)4أ
ﺘﻈﺮة
)( 5) notifyAllﻹﻋﻄﺎء إﺷﻌﺎر ﻟﺠﻤﻴﻊ اﻟﻤﻮاﺿﻴﻊ اﻟﻤﻨ
143
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺞ اﻟﻤﻮﺿﻮع
#اﻟﻤﻨ
ﺘﻬﻠﻚ
#ﻣﻮﺿﻮع اﻟﻤ ﺴ
)( condition.acquire
ﺘﻈﺎر )(
ﺣﺎﻟ ﺔ اﻻﻧ
ﺒﻨﺪ
ﺘﻬﻠﻚ اﻟ
ﺗﺴ
)( condition.release
ﺒ ﻲ -1:
ﺘﺠﺮﻳ
ﺒﺮﻧﺎﻣﺞ اﻟ
اﻟ
*
ﺘﻈﺎر
ﺘﻬﻠﻚ ﻓ ﻲ اﻧ
ﺒﺎﻋ ﺔ )"اﻟﻤ ﺴ
ﺘﻬﻼك )(c): 3) c.acquire () 4اﻟﻄ
ﺘﻴﺮاد اﻟﺨﻴﻮط 2) defاﻻﺳ
)1ﻣﻦ اﺳ
ﺘﻬﻠﻚ اﻟﻌﻨﺼﺮ )") 7ج .اﻹﺻﺪار = 17) t1
ﺘﻬﻠﻚ إﺷﻌﺎ ًرا واﺳ
ﺗﻠﻘﻰ اﻟﻤ ﺴ
ﺒﺎﻋ ﺔ )"
ﺘﻈﺮ )() 6اﻟﻄ
ﺘﺤﺪﻳ ﺚ"( 5) c.اﻧ
اﻟ
print
("()Producerاﻟﺨﻴﻂ Im Notification
8) 9) def product ") 13) c. notify
(c): 10) c.acquire () 11)()print
14) c.release )() 15
(" Producer 16) c = Condition
Producer )(
)Items ") 12
ﺘﺎج 19) t1.start () 20) t2.start () ،
ﺘﻬﻼك args = (c ،)) 18) t2 = ،اﻟﺨﻴﻂ )اﻟﻬﺪف =اﻹﻧ
)اﻟﻬﺪف =اﻻﺳ
))args = (c ،
ﺘﺎج |
اﻧ
ﺘﺤﺪﻳ ﺚ
ﺘﻈﺮ اﻟ
ﺘﻬﻠﻚﻳﻨ
اﻟﻤ ﺴ
ﺘﺠﻴﻦ
ﺘﺠ ﺔ ﻟﻠﻤﻨ
ﺘﺠﺎ ت اﻟﻤﻨ
اﻟﻤﻨ
ﺘﺞﻳﻌﻄ ﻲ اﻹﺧﻄﺎر
اﻟﻤﻨ
ﺘﻬﻠﻚ اﻟﻌﻨﺼﺮ
ﺘﻬﻠﻚ إﺷﻌﺎ ًرا واﺳ
ﺗﻠﻘﻰ اﻟﻤ ﺴ
ﺒ ﻲ -2:
ﺘﺠﺮﻳ
ﺒﺮﻧﺎﻣﺞ اﻟ
اﻟ
*
ﺘﻴﺮاد ﻋﺸﻮاﺋ ﻲ )4اﻟﻌﻨﺎﺻﺮ ) 9
ﺘﻴﺮاد )3اﺳ
ﺘﻴﺮاد اﻟﺨﻴﻮط )2وﻗ ﺖ اﻻﺳ
)1ﻣﻦ اﺳ
)(c): 6) while True: 7) c.acquire () 8) item = random.randint (1،100
ﺘﺞ ، ":اﻟﻌﻨﺼﺮ( 11) print ("Producer
ﺘﺞ اﻟﻤﻨ
ﺒﺎﻋ ﺔ )"اﻟﻤﻨ
= [] 5) def productﻃ
ﺒﻠﻎ اﻹﺧﻄﺎر"( time.sleep ( 5) 15) 16) def
)10) items.append (itemاﻟﺬيﻳ
ﺑﻴﻨﻤﺎ ﺻﺤﻴﺢ:
ﺘﻬﻼك )(c): 17
)12) c.notify () 13) c.release () 14اﻻﺳ
("Consumer waiting for update") 20) c.wait () 21) print ("Consumer
(target = consume،
c.release ))args = (c،
() 23) time.sleep )(5)27
)24)t225
ﺘﻬﻠﻚ= c18) c.acquireاﺳ
= Condition )() 26) t1() =19 print
Thread
ﺘﺎج t1.start () 29) t2.start () ،
item "، items.popاﻟﺨﻴﻂ )اﻟﻬﺪف =اﻹﻧ
))args = (c،
)()) 28
)22
ﺘﺎج |
اﻧ
ﺘﺤﺪﻳ ﺚ
ﺘﻈﺮ اﻟ
ﺘﻬﻠﻚﻳﻨ
اﻟﻤ ﺴ
ﺘﺞ49 :
ﺘﺞ اﻟﻤﻨ
اﻟﻤﻨ
ﺘﺞﻳﻌﻄ ﻲ اﻹﺧﻄﺎر اﻟﻤﻨ
ﺒﻨﺪ 49
ﺘﻬﻠﻚ اﻟﺘﻬﻠﻚ اﻟﻤ ﺴاﺳ
.....
145
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﻈﺎر:
ﺘﺨﺪام ﻗﺎﺋﻤ ﺔ اﻻﻧ
ﺑﺎﺳ
Inter Tread Communication
ﺑﻴﻦ اﻟﻤﻮاﺿﻴﻊ وﺗﺼﺎل
ﺴﻨ ﺔ ﻟﻼ
ﺜﺮ آﻟﻴ ﺔ ﻣﺤّ
ﺘﻈﺎر ﻫﻮ أﻛ
ﻣﻔﻬﻮم ﻗﻮاﺋﻢ اﻻﻧ
ﺑﻴﻦ اﻟﻤﻮاﺿﻴﻊ.ﺒﻴﺎﻧﺎ ت
ﺒﺎدل اﻟ
ﺘﻟ
ﺛﻢ ﻛﻠﻤﺎ ﻛﻨﺎ ﻛﺬﻟﻚﺑﻪ ﻗﻔﻞ ،وﻣﻦﺘﻈﺎر داﺧﻠ ًﻴﺎ ﻋﲆ ﺷﺮط و ﻫﺬا اﻟﺸﺮط
ﺘﻮي ﻗﺎﺋﻤ ﺔ اﻻﻧ
ﺗﺤ
ﺑﺸﺄن اﻟﻤﺰاﻣﻨ ﺔ.ﺘﻈﺎر ،ﻻ داﻋ ﻲ ﻟﻠﻘﻠﻖ
ﺘﺨﺪام ﻗﺎﺋﻤ ﺔ اﻻﻧ
ﺑﺎﺳ
ﺘﻈﺎر
ﺘﻴﺮاد وﺣﺪة ﻗﺎﺋﻤ ﺔ اﻻﻧ
ﺘﻈﺎر اﺳ ﺘﻈﺎر أوﻻ ً ،ﻓﻴﺠ ﺐ ﻋﻠﻴﻨﺎ اﺳ
ﺘﻴﺮاد ﻗﺎﺋﻤ ﺔ اﻧ ﺘﺨﺪام ﻗﻮاﺋﻢ اﻻﻧ
إذا أردﻧﺎ اﺳ
ﺘﻈﺎر ﻛﻤﺎﻳﻠ ﻲq = queue.Queue () :
ﻳﻤﻜﻨﻨﺎ إﻧﺸﺎء ﻛﺎﺋﻦ ﻗﺎﺋﻤ ﺔ اﻻﻧ
ﺘﻈﺎر:
ﻃﺮق ﻣﻬﻤ ﺔ ﻓ ﻲ ﻗﺎﺋﻤ ﺔ اﻻﻧ
ﺘﻈﺎر.
) 1ﺿﻊ ():ﺿﻊ ﻋﻨﺼ ﺮًا ﻓ ﻲ ﻗﺎﺋﻤ ﺔ اﻻﻧ
ﺗﻪ.
ﺘﻈﺎر وإﻋﺎد
2) get ():إزاﻟ ﺔ ﻋﻨﺼﺮ ﻣﻦ ﻗﺎﺋﻤ ﺔ اﻻﻧ
ﺒﻞ إدﺧﺎل
ﺘﻮي ﻫﺬه اﻟﻄﺮﻳﻘ ﺔ ﻋﲆ ﻣﻨﻄﻖ ﻟﻠﺤﺼﻮل ﻋﲆ اﻟﻘﻔﻞ ﻗ
ﺘﻈﺎر .داﺧﻠ ًﻴﺎ ،ﺗﺤ
ﺒﻴﺎﻧﺎ ت ﻓ ﻲ ﻗﺎﺋﻤ ﺔ اﻻﻧ
ﺘﺨﺪم Producer Threadﻃﺮﻳﻘ ﺔ )( putﻹدراج اﻟ
ﻳﺴ
ﺘﻢﺗﺤﺮﻳﺮهﺗﻠﻘﺎﺋ ًﻴﺎ.
ﺒﻴﺎﻧﺎ تﺳﻴ
ﺑﻌﺪ إدﺧﺎل ﻗﻔﻞ اﻟﺘﻈﺎر.
ﺒﻴﺎﻧﺎ ت ﻓ ﻲ ﻗﺎﺋﻤ ﺔ اﻻﻧ
اﻟ
ِﺞ ﻓ ﻲ
ﺘ
اﻟﻤﻨ
ﺑﻂ ُﺘﻢ إدﺧﺎل ﻣﺆﺷﺮﺗﺮا
ﺘﻠﺌ ﺔ ،ﻓ ﺴﻴ
ﺘﻈﺎر ﻣﻤ
ﺘﻠﺌ ﺔ أم ﻻ ،وإذا ﻛﺎﻧ ﺖ ﻗﺎﺋﻤ ﺔ اﻻﻧ
ﺘﻈﺎر ﻣﻤ ﺘﺤﻘﻖ أﺳﻠﻮ ب )( putأ ً
ﻳﻀﺎ ﻣﻤﺎ إذا ﻛﺎﻧ ﺖ ﻗﺎﺋﻤ ﺔ اﻻﻧ ﻳ
ﺘﺪﻋﺎء ﻃﺮﻳﻘ ﺔ )( waitداﺧﻠ ًﻴﺎ.
ﺘﻈﺎر ﻋﻦ ﻃﺮﻳﻖ اﺳ
ﺣﺎﻟ ﺔ اﻻﻧ
*
ﺘﻴﺮاد ﻋﺸﻮاﺋ ﻲ )4ﻗﺎﺋﻤ ﺔ
ﺘﻴﺮاد )3اﺳ
ﺘﻴﺮاد ﺧﻴﻮط اﻟﻤﻌﺎﻟﺠ ﺔ )2وﻗ ﺖ اﻻﺳ
)1ﻣﻦ اﺳ
ﺑﻴﻨﻤﺎ (1،100) 8) print
ﺘﻴﺮاد )5) def product (q): 6
ﺘﻈﺎر اﻻﺳ
اﻧ
ﺒﻨﺪ( 9) q.put
ﺘﺞ ، ":اﻟ
ﺘﺞ اﻟﻤﻨ
")True: 7) item = random.randintاﻟﻤﻨ
)ﻋﻨﺼﺮ(
146
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺑﻴﻨﻤﺎ
(q): أﻗﻞاﺳ)13
ﺘﻬﻠﻚ ﺘﻬﻼك
ﺘﻬﻠﻚ )11اﺳ
)"اﻟﻤ ﺴ time.sleep
ﺒﺎﻋ ﺔ )(5) 12
ﺘﺤﺪﻳ ﺚ"( )15ﻃ ﺘﺞ"(
ﺘﻈﺮ اﻟ ﺴ اﻟﻤﻨ
ﺘﻬﻠﻚﻳﻨ ﺑﺈﻋﻄﺎء
)"إﺧﻄﺎر )"اﻟﻤ
ﺒﺎﻋ ﺔ
)14ﻃﺒﺎﻋ ﺔ)10ﻃ
ﺻﺤﻴﺢ:
ﺘﺎج ، اﻟﺨﻴﻂ )() 19
)اﻟﻬﺪف =اﻹﻧ t1 = Thread
"، q.get (target = consume،
()) 16) time.sleep (5)args ))= (q،
)17) 18 )q =20 اﻟﻌﻨﺼﺮt2 = :
queue.Queue
)( args = (q ،)) 21) t1.start () 22) t2.start
ﺘﺎج |
اﻧ
ﺘﺤﺪﻳ ﺚ
ﺘﻈﺮ اﻟ
ﺘﻬﻠﻚﻳﻨ
اﻟﻤ ﺴ
ﺘﺞ58 :
ﺘﺞ اﻟﻤﻨ
اﻟﻤﻨ
ﺘﺞﻳﻌﻄ ﻲ اﻹﺧﻄﺎر
اﻟﻤﻨ
ﺘﻬﻠﻚ ﻓ ﻲ اﻟﺼﻨﻒ58 :
ﺘﻬﻠﻚ اﻟﻤ ﺴ
اﻟﻤ ﺴ
ﺘﻈﺎر:
أﻧﻮاع ﻗﻮاﺋﻢ اﻻﻧ
ﺘﻈﺎر.
ﻳﺪﻋﻢ Python 3أﻧﻮاع ﻣﻦ ﻗﻮاﺋﻢ اﻻﻧ
ﺘﻈﺎر FIFO:
)1ﻗﺎﺋﻤ ﺔ اﻧ
ﺘﻈﺎر.
= qﻗﺎﺋﻤ ﺔ اﻻﻧ
ﺘﺨﺮج اﻟﻌﻨﺎﺻﺮ (FIFO-First In First Out).
ﺗﻴ ﺐﺳ
ﺘﺮﺑﻨﻔ ﺲ اﻟ
ﺘﻈﺎر ،و
ﺗﻴ ﺐ ﻧﻀﻊ اﻟﻌﻨﺎﺻﺮ ﻓ ﻲ ﻗﺎﺋﻤ ﺔ اﻻﻧ
ﺘﺮاﺿ ﻲ .ﻓ ﻲ أيﺗﺮ
ﻫﺬا ﻫﻮ اﻟ ﺴﻠﻮك اﻻﻓ
اﻟﺨﺮج10 5 20 15 :
147
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﻈﺎر LIFO:
)2ﻗﺎﺋﻤ ﺔ اﻧ
ﺗﻴ ﺐ ﻋﻜ ﺴ ﻲ ﻟﻺدراج )آﺧﺮ ﻣﺎﻳﺮد أوﻻ ًﻳﺨﺮج(
ﺘﺮﺑﺘﻢ اﻹزاﻟ ﺔ
ﺘﺳ
اﻟﺨﺮج15 20 5 10 :
اﻟﺨﺮج5 10 15 20 :
yﻫﻮ ﻋﻨﺼﺮﻧﺎ
148
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺨﺪام اﻷﻗﻔﺎل:
ﺒﺮﻣﺠ ﺔ اﻟﺠﻴﺪة ﻣﻊ اﺳ
ﻣﻤﺎرﺳﺎ ت اﻟ
ﺣﺎﻟ ﺔ 1:
ﺘﻢ رﻓﻌﻪ وﺳﻮاء
ﺜﻨﺎء أم ﻟﻢﻳ
ﺘﺋﻤﺎﺳﻮاءﺗﻢ رﻓﻊ اﻻﺳ
ﺘﻢﺗﺤﺮﻳﺮه دا ً
ﺘﻠ ﺔ اﻟﻨﻬﺎﺋﻴ ﺔ .اﻟﻤﻴﺰة ﻫ ﻲ أن اﻟﻘﻔﻞﺳﻴ
ﺑ ﺔ ﻛﻮدﺗﺤﺮﻳﺮ اﻷﻗﻔﺎل داﺧﻞ اﻟﻜ
ﺘﺎ
ﺑﻜﺑﺸﺪةﻳﻮﺻﻰ
ﺘﻌﺎﻣﻞ ﻣﻌﻪ أم ﻻ.
ﺗﻢ اﻟ
ﺑﺔ
إﺟﺮاء اﻟﻌﻤﻠﻴﺎ ت اﻵﻣﻨ ﺔ اﻟﻤﻄﻠﻮ
أﺧﻴﺮاً:
)( l.release
ﺒ ﻲ:
ﺑﺮﻧﺎﻣﺞﺗﺠﺮﻳ
*
ﺘﻴﺮاد )(name): 5) l.acquire () 6
ﺘﻴﺮاد اﻟﺨﻴﻮط )2وﻗ ﺖ اﻻﺳ
)1ﻣﻦ اﺳ
3) l = Lock () 4) def wishﺣﺎول7) :ﻟـ iﻓ ﻲ اﻟﻨﻄﺎق "( (10): 8) print
ﺒﺎﻋ ﺔ )اﻻﺳﻢ( )11
ﻣ ﺴﺎء اﻟﺨﻴﺮ "، :اﻟﻨﻬﺎﻳ ﺔ )=") 9وﻗ ﺖ اﻟﻨﻮم )(2) 10ﻃ
ﺒ ﺔ ،أرﻏ ﺲ = t2
أﺧﻴ ﺮًا12) :اﻹﺻﺪار = () 13) 14) t1اﻟﺨﻴﻂ )اﻟﻬﺪف =اﻟﺮﻏ
"= ("Yuvraj
))( ) 18) ، )16) t3()=19
t2.start ﺒﺔ ،)اﻟﻬﺪف =اﻟﺮﻏ
t3.start اﻟﺨﻴﻂ
)اﻟﻬﺪف= =اﻟﺮﻏ
ﺒ ﺔ () ، ))( "Dhoni"، )15
argsاﻟﺨﻴﻂ
args = ("Kohli" ،)) 17) t1.start
اﻟﺤﺎﻟ ﺔ 2:
ﺘﺤﻜﻢ
ﺑﻤﺠﺮد وﺻﻮل ﻋﻨﺼﺮ اﻟﺘﻢﺗﺤﺮﻳﺮهﺗﻠﻘﺎﺋ ًﻴﺎ
ﺋﻴ ﺴﻴ ﺔ ﻟـ with statementﻫ ﻲ أن اﻟﻘﻔﻞﺳﻴ
ﺒﻴﺎن .اﻟﻤﻴﺰة اﻟﺮ
ﺘﺨﺪام اﻟ
ﺑﺎﺳﺑﺎﻟﺤﺼﻮل ﻋﲆ اﻟﻘﻔﻞﺑﺸﺪة•ﻳﻮﺻﻰ
ﺑﺸﻜﻞ ﺻﺮﻳﺢ.ﺑﺎﻹﻓﺮاجﺒﻴﻦ
ﺘﻠ ﺔ وﻟ ﺴﻨﺎ ﻣﻄﺎﻟ
إﱃ ﻧﻬﺎﻳ ﺔ اﻟﻜ
149
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺜﺎل ﻋﻦ ﻣﻠﻒ:
ﻣ
ﺜﻞ f:
ﻣﻊ )"open ("demo.txt"، "wﻣ
ﺒﺎ ("...
")f.writeﻣﺮﺣ ً
ﺜﺎل ﻋﲆ اﻟﻘﻔﻞ:
ﻣ
ﻗﻔﻞ =ﺧﻴﻮط.
ﻣﻊ ﻗﻔﻞ:
ﺑﺔ
إﺟﺮاء اﻟﻌﻤﻠﻴﺎ ت اﻵﻣﻨ ﺔ اﻟﻤﻄﻠﻮ
ﺘﻢﺗﺤﺮﻳﺮ اﻟﻘﻔﻞﺗﻠﻘﺎﺋ ًﻴﺎ
ﺳﻴ
ﺒ ﻲ:
ﺑﺮﻧﺎﻣﺞﺗﺠﺮﻳ
*
ﺘﻴﺮاد )3اﻟﻘﻔﻞ =اﻟﻘﻔﻞ )4
ﺘﻴﺮاد اﻟﺨﻴﻮط )2وﻗ ﺖ اﻻﺳ
)1ﻣﻦ اﺳ
ﺘﻌﺮﻳﻒ )اﻻﺳﻢ(5) :ﻣﻊ اﻟﻘﻔﻞ6) :ﻟـ iﻓ ﻲ اﻟﻨﻄﺎق )7
ﺒ ﺔ اﻟ
)(رﻏ
ﺒﺎﻋ ﺔ ("Good Evening:" ،اﻟﻨﻬﺎﻳ ﺔ = 12) t3
(10):ﻃ
))11) t2 = Thread (target = wish، args = ( "Yuvraj"،
))10) t1 = Thread (target = wish، args = ("Dhoni"،
)اﻟﻬﺪف = )= ()'')14اﻟﺨﻴﻂ
13) t1.start 8) time.sleep (2) t3.start
)t2.start () 15 )9) print ()(name
ﺒﺔ ،
اﻟﺮﻏ
))args = ("Kohli"،
ﺘﺎﻟﻴ ﺔ:
ﺒﺎرة ﻓ ﻲ multithreadingﻟﻠﺤﺎﻻ ت اﻟ
ﺘﺨﺪاﻣﻬﺎ ﻣﻊ اﻟﻌ
ﻣﻼﺣﻈ ﺔ:ﻳﻤﻜﻨﻨﺎ اﺳ
)1ﻗﻔﻞ
2) RLock
)3ﺳﻴﻤﺎﻓﻮر
)4اﻟﺸﺮط
ﺜﻮن
ﺑﺎﻳ
ﺒﻴﺎﻧﺎ ت
ﻗﺎﻋﺪة اﻟ
ﺑﺮﻣﺠ ﺔ
151
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺨﺰﻳﻦ
ﻣﻨﺎﻃﻖ اﻟ
ﺗﻴﺮ وﻣﻌﻠﻮﻣﺎ ت اﻟﻤﻜﺎﻟﻤﺎ ت وﻣﺎ إﱃ ذﻟﻚ.
ﺜﻞ ﻣﻌﻠﻮﻣﺎ ت اﻟﻌﻤﻼء وﻣﻌﻠﻮﻣﺎ ت اﻟﻔﻮا
ﺗﻨﺎ ﻣ
ﺑﻴﺎﻧﺎﺒﻨﺎﺗﺨﺰﻳﻦ
ﺗﻨﺎ ،ﻓﻘﺪ ﻃﻠ
ﺒﻴﻘﺎ
ﻛﺠﺰء ﻣﻦﺗﻄ
ﺘﺨﺰﻳﻦ.
ﺒﻨﺎ ﻣﻨﺎﻃﻖﺗﺨﺰﻳﻦ .ﻫﻨﺎك ﻧﻮﻋﺎن ﻣﻦ ﻣﻨﺎﻃﻖ اﻟ
ﺒﻴﺎﻧﺎ ت ،ﻃﻠ
ﺘﺨﺰﻳﻦ ﻫﺬه اﻟ
ﻟ
ﺘﺔ
ﺘﺨﺰﻳﻦ اﻟﻤﺆﻗ
)1ﻣﻨﺎﻃﻖ اﻟ
ﺘﺨﺰﻳﻦ اﻟﺪاﺋﻤ ﺔ
)2ﻣﻨﺎﻃﻖ اﻟ
ﺘ ﺔ:
ﺘﺨﺰﻳﻦ اﻟﻤﺆﻗ
)1ﻣﻨﺎﻃﻖ اﻟ
ﺘًﺎ.
ﺒﻴﺎﻧﺎ ت ﻣﺆﻗ
ﺘﻢﺗﺨﺰﻳﻦ اﻟ
• ﻫﺬه ﻫ ﻲ ﻣﻨﺎﻃﻖ اﻟﺬاﻛﺮة ﺣﻴ ﺚﺳﻴ
ﺜﻞ Listو Tupleو Dictionary.
ﺜﺎل :ﻛﺎﺋﻨﺎ ت Pythonﻣ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺒﻴﺎﻧﺎ ت.
ﺘﻔﻘﺪ اﻟ
ﺘﻢﺗﺪﻣﻴﺮ ﻫﺬه اﻟﻜﺎﺋﻨﺎ تﺗﻠﻘﺎﺋ ًﻴﺎ وﺳ
ﺗﻨﻔﻴﺬه ،ﺳﻴ
ﺑﺮﻧﺎﻣﺞ Pythonﺑﻤﺠﺮد أنﻳﻜﻤﻞ
•
ﺑﺸﻜﻞ داﺋﻢ.ﺒﻴﺎﻧﺎ ت
ﺘ ﺔ .ﻫﻨﺎﻳﻤﻜﻨﻨﺎﺗﺨﺰﻳﻦ اﻟ
ﺑﺜﺎ
ﺘﺨﺰﻳﻦ اﻟ
ﺑﺎﺳﻢ ﻣﻨﺎﻃﻖ اﻟ ُﻌﺮف أ ً
ﻳﻀﺎ ﺗ
ﺘﺨﺰﻳﻦ اﻟﺪاﺋﻤ ﺔ• :
)2ﻣﻨﺎﻃﻖ اﻟ
ﻣﺤﺪدا ت:
)1ﻻﻳﻤﻜﻨﻨﺎﺗﺨﺰﻳﻦ ﻛﻤﻴ ﺔ ﺿﺨﻤ ﺔ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت.
ﺒﺢ اﻟﻌﻤﻠﻴﺎ ت ﻣﻌﻘﺪة ﻟﻠﻐﺎﻳ ﺔ.
ﺘﺼﺘﺎﻟ ﻲﺳ
ﺑﺎﻟ
ﺘﻌﻼم و
)2ﻻﻳﻮﺟﺪ دﻋﻢ ﻟﻠﻐ ﺔ اﻻﺳ
ﺒﻴﺎﻧﺎ ت.
)3ﻻﻳﻮﺟﺪ أﻣﺎن ﻟﻠ
ﺒﻴﺎﻧﺎ ت.
ﺛﻢ ﻗﺪﺗﻜﻮن ﻫﻨﺎك ﻓﺮﺻ ﺔ ﻟﻤﺸﺎﻛﻞ ﻋﺪمﺗﻨﺎﺳﻖ اﻟﺒﻴﺎﻧﺎ ت .وﻣﻦ
)4ﻻﺗﻮﺟﺪ آﻟﻴ ﺔ ﻟﻤﻨﻊﺗﻜﺮار اﻟ
ﺒﻴﺎﻧﺎ ت.
ﺘﻐﻠ ﺐ ﻋﲆ ﻣﺸﺎﻛﻞ أﻧﻈﻤ ﺔ اﻟﻤﻠﻔﺎ ت اﻟﻤﺬﻛﻮرة أﻋﻼه ،ﻳﺠ ﺐ أن ﻧﺬ ﻫ ﺐ إﱃ ﻗﻮاﻋﺪ اﻟ
ﻟﻠ
ﺑﻴﺎﻧﺎ ت:ﻗﻮاﻋﺪ
ﺒﻴﺎﻧﺎ ت.
)1ﻳﻤﻜﻨﻨﺎﺗﺨﺰﻳﻦ ﻛﻤﻴ ﺔ ﻫﺎﺋﻠ ﺔ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت ﻓ ﻲ ﻗﻮاﻋﺪ اﻟ
ﺑﺎﻟﻐ ﺔ.ﺑ ﺴﻬﻮﻟ ﺔﺒﻴﺎﻧﺎ ت
ﺘﺎﻟ ﻲﻳﻤﻜﻨﻨﺎ إﺟﺮاء ﻋﻤﻠﻴﺎ ت ﻗﺎﻋﺪة اﻟ
ﺑﺎﻟ
ﺑﻴﺎﻧﺎ ت وﺘﺎح ﻟﻜﻞ ﻗﺎﻋﺪة
ﺘﻌﻼم ﻣ
)2دﻋﻢ ﻟﻐ ﺔ اﻻﺳ
ﺒﻴﺎﻧﺎ ت.
ﺘﻢﺗﺄﻣﻴﻦ اﻟ
ﺛﻢﻳﺑﻴﻦ .وﻣﻦ
ﺒﺎرﻳﻴﻦ ﻣﻄﻠﻮ
ﺘﺨﺪم و pwdاﻹﺟ
ﺒﻴﺎﻧﺎ ت ،ﻳﺠ ﺐ أنﻳﻜﻮن اﺳﻢ اﻟﻤ ﺴ
ﺒﻴﺎﻧﺎ ت اﻟﻤﻮﺟﻮدة ﻓ ﻲ ﻗﺎﻋﺪة اﻟ
)3ﻟﻠﻮﺻﻮل إﱃ اﻟ
ﺒﻴﺎﻧﺎ تﺗﻘﻨﻴﺎ ت
ﺒﻊ ﻣ ﺴﺆول ﻗﺎﻋﺪة اﻟ
ﺘﺒﻴﺎﻧﺎ ت ،ﻳ
ﺛﻨﺎءﺗﻄﻮﻳﺮ ﻣﺨﻄﻄﺎ ت ﺟﺪول ﻗﺎﻋﺪة اﻟ
ﺒﻴﺎﻧﺎ ت اﻟﺪاﺧﻠﻴ ﺔ ﻓ ﻲ ﺷﻜﻞ ﺟﺪاول .أ
ﺑﻴﺎﻧﺎ ت ﻗﺎﻋﺪة اﻟﺘﻢﺗﺨﺰﻳﻦ
)4ﺳﻴ
ﺛﻢ ﻻﺗﻮﺟﺪﺒﻴﺎﻧﺎ ت .وﻣﻦ
ﺘ ﻲﺗﻤﻨﻊﺗﻜﺮار اﻟ
ﺘﺎح اﻷﺳﺎﺳ ﻲ وﻣﺎ إﱃ ذﻟﻚ واﻟ
ﺗﻴﺢ اﻟﻔﺮﻳﺪة وﻗﻴﻮد اﻟﻤﻔ
ﺜﻞ ﻗﻴﻮد اﻟﻤﻔﺎ
ﺘﻠﻔ ﺔ ﻣ
ﺘﻠﻔ ﺔ وﻳﻤﻜﻨﻪﺗﻨﻔﻴﺬ ﻗﻴﻮد ﻣﺨ
ﺗ ﺴﻮﻳ ﺔ ﻣﺨ
ﺒﻴﺎﻧﺎ ت.
ﻓﺮﺻ ﺔ ﻟﻤﺸﺎﻛﻞ ﻋﺪمﺗﻨﺎﺳﻖ اﻟ
152
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺒﻴﺎﻧﺎ ت:
ﺣﺪود ﻗﻮاﻋﺪ اﻟ
ﺒﻴﺎﻧﺎ ت.
ﺑﺎﻳ ﺖ ﻣﻦ اﻟ
ﺜﻞﺗﻴﺮا
ﺒﻴﺎﻧﺎ ت ﻋﲆ ﻛﻤﻴ ﺔ ﺿﺨﻤ ﺔ ﺟﺪًا ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت ﻣ
ﺘﻮي ﻗﺎﻋﺪة اﻟ
)1ﻻﻳﻤﻜﻦ أنﺗﺤ
ﺒﻪ
ﺒﻴﺎﻧﺎ ت ﺷ
ﺒﻴﺎﻧﺎ ت اﻟﻌﻼﺋﻘﻴ ﺔ( وﻻﻳﻤﻜﻨﻬﺎﺗﻘﺪﻳﻢ اﻟﺪﻋﻢ ﻟﻠ
ﺒﻴﺎﻧﺎ ت اﻟﺠﺪوﻟﻴ ﺔ أو اﻟ
ﺒﻴﺎﻧﺎ ت اﻟﻤﻬﻴﻜﻠ ﺔ )اﻟ
ﺒﻴﺎﻧﺎ ت اﻟﺪﻋﻢ ﻓﻘﻂ ﻟﻠ
)2ﻳﻤﻜﻦ أنﺗﻮﻓﺮ ﻗﺎﻋﺪة اﻟ
ﺜﻞ ﻣﻠﻔﺎ ت اﻟﻔﻴﺪﻳﻮ وﻣﻠﻔﺎ ت اﻟﺼﻮ ت واﻟﺼﻮر وﻣﺎ إﱃ ذﻟﻚ(
ﺒﻴﺎﻧﺎ ت ﻏﻴﺮ اﻟﻤﻨﻈﻤ ﺔ )ﻣ
ﺜﻞ ﻣﻠﻔﺎ ت )XMLواﻟ
اﻟﻤﻨﻈﻤ ﺔ )ﻣ
ﺜﻮن:
ﺑﺎﻳﺑﻴﺎﻧﺎ تﺑﺮﻣﺠ ﺔ ﻗﺎﻋﺪة
ﺑـﺗﺼﺎل
ﺘﻌﻴﻦ ﻋﻠﻴﻨﺎ اﻻ
ﺒﺮﻣﺠ ﺔ ،ﻳ
ﺒﺎ ت اﻟ
ﺘﻄﻠ
ﺑﻌﺾ اﻷﺣﻴﺎن ﻛﺠﺰء ﻣﻦ ﻣ•ﻓ ﻲ
ﺘﻴﺎر
ﺒﻴﺎﻧﺎ ت واﺧ
ﺒﻴﺎﻧﺎ ت وﺣﺬف اﻟ
ﺗﺤﺪﻳ ﺚ اﻟ
ﺒﻴﺎﻧﺎ ت و
ﺜﻞ إﻧﺸﺎء اﻟﺠﺪاول وإدﺧﺎل اﻟ
ﺒﻴﺎﻧﺎ ت وﻋﻠﻴﻨﺎ إﺟﺮاء اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻌﻤﻠﻴﺎ ت ﻣ
ﻗﺎﻋﺪة اﻟ
ﺒﻴﺎﻧﺎ ت وﻣﺎ إﱃ ذﻟﻚ.
اﻟ
ﺘﺨﺪام Pythonﻹرﺳﺎﻟﻬﺎ
ﺒﻴﺎﻧﺎ ت وﻳﻤﻜﻨﻨﺎ اﺳ
ﺘﺤﺪ ث إﱃ ﻗﺎﻋﺪة اﻟ
ﺘﺨﺪام ﻟﻐ ﺔ SQLﻟﻠ
•ﻳﻤﻜﻨﻨﺎ اﺳ
ﺒﻴﺎﻧﺎ ت.
أواﻣﺮ SQLﻟﻘﺎﻋﺪة اﻟ
ﺜﻮن:
ﺑﺎﻳﺑﻴﺎﻧﺎ تﺒﺮﻣﺠ ﺔ ﻗﺎﻋﺪة
اﻟﺨﻄﻮا ت اﻟﻘﻴﺎﺳﻴ ﺔ ﻟ
ﺑﻴﺎﻧﺎ ت ﻣﺤﺪدةﺘﻴﺮاد وﺣﺪة ﻗﺎﻋﺪة
)1اﺳ
ﺘﻴﺮاد cx_Oracle
ﺜﺎل :اﺳ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺒﻴﺎﻧﺎ ت.
ﺑﺮﻧﺎﻣﺞ Pythonوﻗﺎﻋﺪة اﻟﺑﻴﻦﺗﺼﺎل
)2إﻧﺸﺎء ا
ﺘﺨﺪام وﻇﻴﻔ ﺔ )( connectﻟﻠﻮﺣﺪة اﻟﻨﻤﻄﻴ ﺔ.
ﺑﺎﺳﺗﺼﺎل ﻫﺬا
ﻳﻤﻜﻨﻨﺎ إﻧﺸﺎء ﻛﺎﺋﻦ اﻻ
ﺒﻴﺎﻧﺎ ت(
)con = cx_Oracle.connectﻣﻌﻠﻮﻣﺎ ت ﻗﺎﻋﺪة اﻟ
ﺘﺎﻟﻴ ﺔ
ﺘﺨﺪام اﻟﻄﺮق اﻟ
ﺘﺨﺪام ﻛﺎﺋﻦ اﻟﻤﺆﺷﺮ .ﻟﻬﺬاﻳﻤﻜﻨﻨﺎ اﺳ
ﺑﺎﺳ
ﺘﻌﻼﻣﺎ ت SQL
ﺗﻨﻔﻴﺬ اﺳ
)4
ﺘﻌﻼم SQLﻣﻔﺮد
ﺘﻨﻔﻴﺬ اﺳ
)(sqlqueryﻟ ﺗﻨﻔﻴﺬ
ﺑﻨﺼﻒﺘﻌﻼﻣﺎ ت SQLﻣﻔﺼﻮﻟ ﺔ
ﺘﻨﻔﻴﺬﺳﻠ ﺴﻠ ﺔ ﻣﻦ اﺳ
) executescript (sqlqueriesﻟ
اﻟﻘﻮﻟﻮن "؛"
ﺘﻌﻼم ذي ﻣﻌﻠﻤﺎ ت.
ﺘﻨﻔﻴﺬ اﺳ
)(ﻟ ﺗﻨﻔﻴﺬي
153
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺗﺤﺪﻳ ﺚ |ﺣﺬف(
ﺘﻌﻼﻣﺎ ت )DMLإدراج |
ﺗﻨﺎ ﻓ ﻲ ﺣﺎﻟ ﺔ اﺳ
ﺒﺎ
ﺘﻄﻠ
ﺑﻨﺎ ًء ﻋﲆ ﻣﺘﻐﻴﻴﺮا ت
ﺘﺮاﺟﻊ ﻋﻦ اﻟ
ﺘﺰام أو اﻟ
)5اﻻﻟ
ﺘﺔ
ﺘﻐﻴﻴﺮا ت اﻟﻤﺆﻗ
ﺘﺮاﺟﻊ ﻋﻦ ﺟﻤﻴﻊ اﻟ
)(ﻳ ﺒﻴﺎﻧﺎ ت
ﺘﺮاﺟﻊ ﻋﻦ ﻗﺎﻋﺪة اﻟ
ﺘﻐﻴﻴﺮا ت ﻋﲆ اﻟ
)(ﻳﺤﻔﻆ اﻟ ﺘﺰام
اﻻﻟ
ﺘﻌﻼﻣﺎ ت
ﺘﻴﺠ ﺔ ﻣﻦ ﻛﺎﺋﻦ اﻟﻤﺆﺷﺮ ﻓ ﻲ ﺣﺎﻟ ﺔﺗﺤﺪﻳﺪ اﻻﺳ
ﺑﺈﺣﻀﺎر اﻟﻨ)6ﻗﻢ
)( fetchallﻟﺠﻠ ﺐ ﻛﻞ اﻟﺼﻔﻮف وإرﺟﺎع ﻗﺎﺋﻤ ﺔ )( fetchoneﻟﺠﻠ ﺐ ﺻﻒ واﺣﺪ ﻓﻘﻂ
)fecthmany (nﻟﺠﻠ ﺐ أول nﻣﻦ اﻟﺼﻔﻮف اﻟﺼﻔﻮف
ﺜﺎل )( = cursor.fetchall
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺒﻴﺎﻧﺎ تprint (row) :
2: dataﻟﻠﺼﻒ ﻓ ﻲ اﻟ
)7أﻏﻠﻖ اﻟﻤﻮارد
ﺘﺨﺪام ﻃﺮق اﻹﻏﻼق )( (). cursor.close () con.close
ﺑﺎﺳﺘﺤﻬﺎ
ﺗﻴ ﺐ اﻟﻌﻜ ﺴ ﻲ ﻟﻔ
ﺘﺮﺑﺎﻟﺑﺈﻏﻼق اﻟﻤﻮاردﺑﺸﺪةﺗﻨﺎ ،ﻳﻮﺻﻰ
ﺘﻬﺎء ﻣﻦ ﻋﻤﻠﻴﺎ
ﺑﻌﺪ اﻻﻧ
ﺜﻮن.
ﺑﺎﻳﺑﻴﺎﻧﺎ تﺒﺮﻣﺠ ﺔ ﻗﺎﻋﺪة
ﺘﺨﺪاﻣﻬﺎ ﻟ
ﺘ ﻲﻳﻤﻜﻦ اﺳ
ﺑﺠﻤﻴﻊ اﻟﻄﺮق اﻟﻤﻬﻤ ﺔ اﻟﻣﻼﺣﻈ ﺔ :ﻓﻴﻤﺎﻳﻠ ﻲ ﻗﺎﺋﻤ ﺔ
)( ﺘﺰام
)(اﻻﻟ ﺗﻨﻔﻴﺬي
)(
)(
ﺒﻴﺎﻧﺎ ت.
ﺒ ﺔ ﻟﺠﻤﻴﻊ ﻗﻮاﻋﺪ اﻟ
ﺑﺎﻟﻨ ﺴﺑﻴﺎﻧﺎ ت وﻧﻔ ﺲ اﻟﺸ ﻲءﺑﻴﺎﻧﺎ ت إﱃ ﻗﺎﻋﺪةﺘﻢﺗﻐﻴﻴﺮ ﻫﺬه اﻷﺳﺎﻟﻴ ﺐ ﻣﻦ ﻗﺎﻋﺪة
ﻟﻦﻳ
154
،DURGASOFT،ﺣﻴﺪر أ
ﺑﺎد - 500038 ، ﺑﻴ ﺖ ﺘﺮ#
ﻳﻔﺎﻧﺎم ،أﻣﻴﺮ 202، ﺑﻖ 2 ،
ﻫﺪى ﻣﺎﻳ اﻟﻄﺎ
Machine Translated by Google
ﺑﻴﺎﻧ ﻲرﺳﻢ
ﺒﻴ ﺖ cx_Oracle:
ﺜﺗ
ﺘﺎﻟ ﻲ
ﺘﻨﻔﻴﺬ اﻷﻣﺮ اﻟ
ﺑﻣﻦ ﻣﻮﺟﻪ اﻷواﻣﺮ اﻟﻌﺎدي )وﻟﻜﻦ ﻟﻴ ﺲ ﻣﻦ وﺣﺪةﺗﺤﻜﻢ Python) ،ﻗﻢ
ﺟﻤﻊ cx_Oracle
ﺗﺤﻤﻴﻞ )cx_Oracle-6.0.2-cp36-cp36m-win32.whl (100kB
ﺛﺎﻧﻴ ﺔﺑﺎﻳ ﺖ /ﺑﺎﻳ ﺖ 256ﻛﻴﻠﻮ100٪ | ----------- | 102ﻛﻴﻠﻮ
ﺒﻴ ﺖ:
ﺜﺘﺒﺎر اﻟ
ﺘﻛﻴﻔﻴ ﺔ اﺧ
ﺘﺎﻟ ﻲ:
ﺘﻨﻔﻴﺬ اﻷﻣﺮ اﻟ
ﺑﻣﻦ وﺣﺪةﺗﺤﻜﻢ Python ،ﻗﻢ
>>>ﻣ ﺴﺎﻋﺪة )"وﺣﺪا ت"(
ﺜﻨﺎء
ﺘﺑﺎﺳ ﺘﺸﻐﻴﻞ
ﻧﻈﺎم اﻟ ﺗﺮاﻛﻴﻤﺎﻟﻮك
ﺑﺔ
ﺘﺎ
اﻟﻜ
155
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
uuid
.....
ﺘﻪ
ﺒﺎﻋ ﺔ ﻧ ﺴﺨ
وﻃOracle Database ﺘﻮاﺻﻞ ﻣﻊ
ﺑﺮﻧﺎﻣﺞ ﻟﻠ
1) ﺒﻴﻖ
ﺘﻄاﻟ
| ﺘﺎج
اﻧ
D: \ python_classes> py db1.py
11.2.0.2.0
e: 8) ﻛـcx_Oracle.DatabaseError ﺜﻨﺎء
ﺘﺑﺎﺳ
") 7) ﺑﻨﺠﺎحﺗﻢ إﻧﺸﺎء اﻟﺠﺪول
(" ﺒﺎﻋ ﺔ
ﻃumber (10،2)، eaddr varchar2 (10)) ") 6)
() :إذا ﻛﺎن13) cursor.close () 14) :إذا ﻛﺎن اﻟﻤﺆﺷﺮ12) :أﺧﻴ ًﺮا11) ( ﻫـSQL" ، ) " ﻫﻨﺎك ﻣﺸﻜﻠ ﺔ ﻓ ﻲ9) con.rollback () 10) print :إذا ﻛﺎن
15) con.close
156
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﻴﺮاد )cx_Oracle 2ﺟﺮ بcursor.execute ("drop table staff") 6) print (" :
)1اﺳ
)cx_Oracle.connect ('scott / tiger @ localhost') 4) cursor = con.cursor () 5
ﺜﻞ
ﺜﻨﺎء cx_Oracle.DatabaseErrorﻣ
ﺘﺑﺎﺳ
ﺑﻨﺠﺎح )") 7ﺗﻢ إﺳﻘﺎط اﻟﺠﺪول
= 3) con
)e: 8إذا ﻛﺎن 9) con.rollback () 10) print (" :ﻫﻨﺎك ﻣﺸﻜﻠ ﺔ ﻓ ﻲ sql "،ﻫـ( )11أﺧﻴ ﺮًا:
ﺑﺈﻏﻼق )()12إذا ﻛﺎن اﻟﻤﺆﺷﺮ13) cursor.close () 14) :إذا ﻛﺎن15) :ﻗﻢ
ﺘﻴﺮاد )cx_Oracle 2ﺟﺮ ب('scott / tiger @ localhost') 4) cursor = con.cursor () 5) cursor.execute :
)1اﺳ
")3) con = cx_Oracle.connectإدراج ﻓ ﻲ ﻗﻴﻢ اﻟﻤﻮﻇﻔﻴﻦ "(100 ،دورﺟﺎ "( 1000، 'Hyd') ") 6) con.commit () 7) print
ﺜﻨﺎء cx_Oracle.DatabaseErrorﻛـ )e: 9إذا ﻛﺎن:
ﺘﺑﺎﺳ
ﺑﻨﺠﺎح )") 8ﺗﻢ إدراج اﻟ ﺴﺠﻞ
"،
")10) con.rollbackﻫﻨﺎك ﻣﺸﻜﻠ ﺔ ﻓ ﻲ sql" ،ﻫـ( )12أﺧﻴ ﺮًا13) :إذا ﻛﺎن اﻟﻤﺆﺷﺮ14) cursor.close () 15) :إذا
16) con.close
() 11) print
ﻛﺎن() :
157
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﻌﺪدة ﻓ ﻲ ﻣﻠﻒ
ﺑﺮﻧﺎﻣﺠًﺎ ﻹدراج ﺻﻔﻮف ﻣﺘﺐ
اﻛ4) ﺒﻴﻖ
ﺘﻄاﻟ
() ﺘﻨﻔﻴﺬﻳ ﺔ
ﺘﺨﺪام اﻟﻄﺮﻳﻘ ﺔ اﻟ
ﺑﺎﺳﺟﺪول اﻟﻤﻮﻇﻔﻴﻦ
ﺘﻌﺪدة ﻓ ﻲ اﻟﻤﻮﻇﻔﻴﻦ
ﺑﺮﻧﺎﻣﺞ ﻹدراج ﺻﻔﻮف ﻣﺘﺐ
اﻛ5) ﺒﻴﻖ
ﺘﻄاﻟ
ﺗﻴﺢ؟
ﻃﺎوﻟ ﺔ ﻣﻊ ﻣﺪﺧﻼ ت دﻳﻨﺎﻣﻴﻜﻴ ﺔ ﻣﻦ ﻟﻮﺣ ﺔ اﻟﻤﻔﺎ
tiger @ localhost') 4) cursor = con.cursor () 5) while True: 6) eno = int :ﺣﺎولcx_Oracle 2) ﺘﻴﺮاد
اﺳ1)
float : ))"أدﺧﻞ اﺳﻢ اﻟﻤﻮﻇﻒ7) ename = input (" : )"أدﺧﻞ رﻗﻢ اﻟﻤﻮﻇﻒ3) con = cx_Oracle.connect ('scott /
)""إدراج ﻓ ﻲ10) sql = : ))"أدﺧﻞ ﻋﻨﻮان اﻟﻤﻮﻇﻒ9) eaddr = input (" :ﺗ ﺐ اﻟﻤﻮﻇﻒ
)")اﻹدﺧﺎل "(أدﺧﻞ را8) esal =
ﺗﻢ إدراج
")(٪ d، '٪ s'،٪ f، '٪ s')" 11) cursor.execute (sql٪ (eno، ename، esal، eaddr)) 12) print ﻗﻴﻢ اﻟﻤﻮﻇﻔﻴﻦ
() 16) :"إذا ﻛﺎن اﻟﺨﻴﺎر =="ﻻ13) 14) (":[)" ﻫﻞﺗﺮﻳﺪ إدراجﺳﺠﻞ آﺧﺮ ]ﻧﻌﻢ |ﻻoption = input ( "ﺑﻨﺠﺎحﺘ ﺴﺠﻴﻞ
اﻟ
ﻓﺎﺻﻞ15) con.commit
ﺑﻪﺗ ﺐ اﻟﻤﻮﻇﻔﻴﻦ
ﺘﺤﺪﻳ ﺚ روا
ﺑﺮﻧﺎﻣﺞ ﻟﺘﺐ
ﺒﻴﻖ )6اﻛ
ﺘﻄاﻟ
زﻳﺎدة ﻟﻤﺪى ﻣﻌﻴﻦ ﻣﻊ إدﺧﺎل دﻳﻨﺎﻣﻴﻜ ﻲ
ﺗ ﺐ أﻗﻞ ﻣﻦ 5000
ﺑﻤﻘﺪار 500راﺗ ﺐ ﺟﻤﻴﻊ اﻟﻤﻮﻇﻔﻴﻦ
ﺜﺎل :زﻳﺎدة روا
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺘﻴﺮاد )cx_Oracle 2ﺟﺮ ب4) cursor = con.cursor () 5) increment = float (input :
)1اﺳ
ﺗ ﺐfloat (input ((":
)'")3) con = cx_Oracle.connect ('scott / tiger @ localhostأدﺧﻞ زﻳﺎدة اﻟﺮا
ﺗﺤﺪﻳ ﺚﺗﻌﻴﻴﻦ اﻟﻤﻮﻇﻔﻴﻦ esal = esal +٪ fﺣﻴ ﺚ
ﺗ ﺐ"7) sql = ((":
= ")6 ) salrangeأدﺧﻞ ﻧﻄﺎق اﻟﺮا
ﺜﻬﺎ
")esal <٪ f" 8) cursor.execute (sql٪ (increment، salrange)) 9) printاﻟ ﺴﺠﻼ تﺗﻢﺗﺤﺪﻳ
ﺜﻞ )e: 12إذا ﻛﺎن print :
ﺜﻨﺎء cx_Oracle.DatabaseErrorﻣ
ﺘﺑﺎﺳ
ﺑﻨﺠﺎح"( )10) con.commit () 11
) ")13) con.rollback () 14ﻫﻨﺎك ﻣﺸﻜﻠ ﺔ ﻓ ﻲ sql :" ،ﻫـ( )15أﺧﻴ ﺮًا16) :إذا ﻛﺎن اﻟﻤﺆﺷﺮ 17) :
ﺒﻬﻢ ﻋﻦ 5000
ﺗﺜﺎل :ﺣﺬف ﺟﻤﻴﻊ اﻟﻤﻮﻇﻔﻴﻦ اﻟﺬﻳﻦﺗﺰﻳﺪ روا
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺘﻴﺮاد )cx_Oracle 2ﺣﺎولtiger @ localhost') 4) cursor = con.cursor () 5) cutoffsalary = float (input ("Enter CutOff :
)1اﺳ
ﺗ ﺐ((":
3) con = cx_Oracle.connect ('scott /اﻟﺮا
159
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺨﺪام ﻃﺮﻳﻘ ﺔ
ﺑﺎﺳﺘﺤﺪﻳﺪ ﺟﻤﻴﻊ ﻣﻌﻠﻮﻣﺎ ت اﻟﻤﻮﻇﻔﻴﻦ
ﺑﺮﻧﺎﻣﺞ ﻟﺘﺐ
اﻛ8) ﺒﻴﻖ
ﺘﻄاﻟ
fetchone ()؟
()ﺘﺨﺪام ﻃﺮﻳﻘ ﺔ ؟
ﺑﺎﺳﺘﺤﺪﻳﺪ ﺟﻤﻴﻊ ﻣﻌﻠﻮﻣﺎ ت اﻟﻤﻮﻇﻔﻴﻦ
ﺑﺮﻧﺎﻣﺞ ﻟﺘﺐ
اﻛ9) ﺒﻴﻖ
ﺘﻄاﻟ
fetchall
3) con = cx_Oracle.connect ('scott / tiger @ localhost') 4) cursor = con.cursor () :ﺟﺮ بcx_Oracle 2) ﺘﻴﺮاد
اﺳ1)
160
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺒﺎﻋ ﺔ= data
cursor.fetchall
اﻟﺼﻒ )[0]) 9ﻃ اﻟﻤﻮﻇﻒ() ،7)":
اﻟﻤﻮﻇﻔﻴﻦ"( ﺒﻊﻣﻦ
"(رﻗﻢ اﻃ *
)"ﺣﺪد
ﺒﻴﺎﻧﺎ) 5ت8) :
cursor.execute
)6ﻟﻠﺼﻒ ﻓ ﻲ اﻟ
)[2]) 11
() 14
ﺻﻒ"،ﺔ )
ﺒﺎﻋ
اﻟﻤﻮﻇﻒ:
ﺐﺔ )() 13ﻃ
ﺒﺎﻋ
ﺗ
ﻃ
"(را
ﺒﺎﻋ ﺔ)][3
)][1ﻃ)12
اﻟﺼﻒﺻﻒ 10)"،
اﻟﻤﻮﻇﻒ:
ﺳﻢ"، :
ﻋﻨﻮان
)"اﻟﻤﻮﻇﻒ اﻻ
ﺒﺎﻋ ﺔ "(
ﻃ
ﻛﺎن)(
printإذا)17
ﻛﺎن:ا19) :
sqlأﺧﻴ ﺮً
)e::"15إذا
ﺜﻞ )، e
cx_Oracle.DatabaseErrorﻣ)18
")16) con.rollbackﻫﻨﺎك ﻣﺸﻜﻠ ﺔ ﻓ ﻲ
ﺜﻨﺎء
ﺘﺑﺎﺳ
ﺑﺈﻏﻼق )(اﻟﻤﺆﺷﺮ20) cursor.close () 21) :إذا ﻛﺎنﻳﺨﺪع22) :ﻗﻢ
ﺘﺨﺪام )( fetchmany
ﺑﺎﺳﺘﺤﺪﻳﺪ ﻣﻌﻠﻮﻣﺎ ت اﻟﻤﻮﻇﻔﻴﻦ
ﺑﺮﻧﺎﻣﺞ ﻟﺘﺐ
ﺒﻴﻖ )10اﻛ
ﺘﻄاﻟ
ﺘﻢﺗﻮﻓﻴﺮ اﻟﻄﺮﻳﻘ ﺔ واﻟﻌﺪد اﻟﻤﻄﻠﻮ ب ﻣﻦ اﻟﺼﻔﻮف ﻛﻤﺪﺧﻞ دﻳﻨﺎﻣﻴﻜ ﻲ؟
ﺳﻴ
ﺒﺎي"(
"(200 ،ﺻﻨ ﻲ" "2500.0 ، ،ﻣﻮﻣ
)"(300، "Chinny"، 3500.0، "Hyd
ﺒﺎي"(
"(200 ،ﺻﻨ ﻲ" "2500.0 ، ،ﻣﻮﻣ
)"(300، "Chinny"، 3500.0، "Hyd
)'(400، 'Bunny'، 4500.0، 'Hyd
ﺘﺨﺪم
ﺘﺮاﺿ ﻲ3306 :اﻟﻤ ﺴ
SUN Micro Systems / Oracleاﻟﻤﻨﻔﺬ اﻻﻓ
ﺘﺮاﺿ ﻲ :اﻟﺠﺬر
اﻻﻓ
ﺒﺎر
ﺘاﻻﺧ
ﺘﺨﺪام ﻓ ﻲ MySQL:
اﻷواﻣﺮ ﺷﺎﺋﻌ ﺔ اﻻﺳ
ﺒﻴﺎﻧﺎ ت ؛
ﺘﺎﺣ ﺔ >mysqlإﻇﻬﺎر ﻗﻮاﻋﺪ اﻟ
ﺒﻴﺎﻧﺎ ت اﻟﻤ
)1ﻟﻤﻌﺮﻓ ﺔ ﻗﻮاﻋﺪ اﻟ
162
،DURGASOFT،ﺣﻴﺪر أ
ﺑﺎد - 500038 ، ﺑﻴ ﺖ ﺘﺮ#
ﻳﻔﺎﻧﺎم ،أﻣﻴﺮ 202، ﺑﻖ 2 ،
ﻫﺪى ﻣﺎﻳ اﻟﻄﺎ
Machine Translated by Google
ﺘﺨﺪم ؛ durgadb
ﺑﻴﺎﻧﺎ ت ﻣﻨﻄﻘﻴ ﺔ ﺧﺎﺻ ﺔ >mysqlاﺳﺘﺨﺪام ﻗﺎﻋﺪة
)4ﻻﺳ
OR mysql> connect؛ durgadb
)5ﻹﻧﺸﺎء اﻟﺠﺪول
إﻧﺸﺎء ﻣﻮﻇﻔ ﻲ اﻟﺠﺪول ؛ ))(eno int (5) basic key، ename varchar (10)، esal double (10،2)، eaddr varchar (10
ﺒﻴﺎﻧﺎ ت
)6ﻹدﺧﺎل اﻟ
ﺗﻀﺎف إﱃ ﻗﻴﻢ اﻟﻤﻮﻇﻔﻴﻦ "(100 ،دورﺟﺎ" "1000 ، ،ﻫﻴﺪرو"( ؛
ﺒﺎي"( ؛
إدراج ﻓ ﻲ ﻗﻴﻢ اﻟﻤﻮﻇﻔﻴﻦ "(200 ،راﻓ ﻲ" "2000 ، ،ﻣﻮﻣ
https://dev.mysql.com/downloads/connector/python/2.1.html
ﺒﻴ ﺖ:
ﺜﺘﺘﺤﻘﻖ ﻣﻦ اﻟ
ﻛﻴﻔﻴ ﺔ اﻟ
ﺘﺨﺪام اﻟﻤ ﺴﺎﻋﺪة )"اﻟﻮﺣﺪا ت اﻟﻨﻤﻄﻴ ﺔ"(
ﻣﻦ وﺣﺪةﺗﺤﻜﻢ Python ،ﻋﻠﻴﻨﺎ اﺳ
ﻓ ﻲ ﻗﺎﺋﻤ ﺔ اﻟﻮﺣﺪا ت ،ﻳﺠ ﺐ أنﺗﻜﻮن MySQLاﻹﻟﺰاﻣﻴ ﺔ ﻣﻮﺟﻮدة.
ﺑﺸﻜﻞ ﺻﺮﻳﺢ
ﺘﻌﻴﻦ ﻋﻠﻴﻨﺎﺗﻌﻴﻴﻦ PATHو PYTHONPATH
ﻣﻼﺣﻈ ﺔ :ﻓ ﻲ ﺣﺎﻟ ﺔ Python3.4 ،ﻳ
ﺒﻴﺎﻧﺎ ت واﻟﻌﺮض
ﺑﺮﻧﺎﻣﺠًﺎ ﻹﻧﺸﺎء ﺟﺪول وإدراج اﻟﺘﺐ
س( اﻛ
ﺑﻴﺎﻧﺎ ت MySQLﺘﺨﺪام ﻗﺎﻋﺪة
ﺑﺎﺳﺒﻴﺎﻧﺎ ت
اﻟ
ﺘﻴﺮاد )mysql.connector 2ﺣﺎول= mysql.connector.connect (host = 'localhost'، database = 'durgadb'، user = 'root'، p :
)1اﺳ
3) con
")assword = 'root') 4) cursor = con.cursor () 5) cursor.executeإﻧﺸﺎء ﻣﻮﻇﻔ ﻲ اﻟﺠﺪول (5) basic key، ename varchar) (1
(eno int
163
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
("Table Created ...") 7) 8) sql = "insert into staff (eno، ename، esal، eaddr) VALUES (٪ s،٪ s،٪ s،٪ s)" 9)
= [(100، 'Sachin'، 1000، 'Mumbai')، 10) ﺳﺠﻼ ت6) print
164
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
إذا18) cursor.close () 19) :إذا ﻛﺎن اﻟﻤﺆﺷﺮ17) :أﺧﻴ ﺮًاMySql :"، e) 16) )" ﻫﻨﺎك ﻣﺸﻜﻠ ﺔ ﻓ ﻲ13) if con: 14) con.rollback () 15) print
27)
= cx_Oracle.connect
con.commit () 28) ('scott
print ("/ Records
tiger @ localhost')
Copy from24)
MySQL
cursor
Database
= con.cursor
to Oracle
() 25)Database
sql = :ﺣﺎول
اﻟﻤﻮﻇﻔﻴﻦ
20 ) con.close
)( ﻓ ﻲ ﻗﻴﻢ
"أدﺧﻞ
21) 23)
22) con
:ﻛﺎن
") ﺑﻨﺠﺎح
(: eno، : ename،: esal،: eaddr) " 26) cursor.executemany (sql، list)
https://dev.mysql.com/downloads/connector/python/2.1.html
(eno int (5) basic key، ename varchar (10)، esal double (10،2) إﻧﺸﺎء ﻣﻮﻇﻔ ﻲ اﻟﺠﺪول1)
" ﻫﻴﺪرو"( ؛1000 ، ، "("دورﺟﺎ100 ، )أدﺧﻞ ﻓ ﻲ ﻗﻴﻢ اﻟﻤﻮﻇﻔﻴﻦ، eaddr varchar (10)) ؛2)
ﺗﻀﺎف إﱃ ﻗﻴﻢ اﻟﻤﻮﻇﻔﻴﻦ
4) ﺒﺎي"( ؛
"ﻣﻮﻣ2000 ، ، "("راﻓ ﻲ200 ، أدﺧﻞ ﻓ ﻲ ﻗﻴﻢ اﻟﻤﻮﻇﻔﻴﻦ3)
(300 ، "Shiva" ، 3000 ، "Hyd") ؛
165
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﻋﺎدي
ﺒﻴﺮا ت
ﺘﻌاﻟ
&
ﺘﺮﻧ ﺖ
ﺒﻜ ﺔ اﻹﻧ
ﺗﺠﺮﻳﻒ ﻋﲆ ﺷ
166
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺗﻒ اﻟﻤﺤﻤﻮﻟ ﺔ
ﺜﻴﻞ ﺟﻤﻴﻊ أرﻗﺎم اﻟﻬﻮا
ﺘﻤﺒﻴﺮ ﻧﻤﻄ ﻲ ﻟ
ﺑ ﺔﺗﻌ
ﺘﺎ
ﺜﺎل 1:ﻳﻤﻜﻨﻨﺎ ﻛ
ﻣ
ﺒﺮﻳﺪ.
ﺜﻴﻞ ﺟﻤﻴﻊ ﻣﻌﺮﻓﺎ ت اﻟ
ﺘﻤﺒﻴﺮ ﻋﺎدي ﻟ
ﺑ ﺔﺗﻌ
ﺘﺎ
ﺜﺎل 2:ﻳﻤﻜﻨﻨﺎ ﻛ
ﻣ
ﺒﻴﺮا ت اﻟﻌﺎدﻳ ﺔ ﻫ ﻲ
ﺘﻌﺋﻴ ﺴﻴ ﺔ ﻟﻠ
ﺒﻴﻖ اﻟﻤﻬﻤ ﺔ اﻟﺮ
ﺘﻄﻣﺠﺎﻻ ت اﻟ
ﺘﺤﻘﻖ ﻣﻦ اﻟﺼﺤ ﺔ
ﺘﺤﻘﻖ /ﻣﻨﻄﻖ اﻟ
ﺘﻄﻮﻳﺮ أﻃﺮ اﻟ
)1ﻟ
ﺑﻘ ﺔ اﻷﻧﻤﺎط (ctrl-fﻓ ﻲ windows ، grepﻓ ﻲ UNIX ،إﻟﺦ(
ﺒﻴﻘﺎ ت ﻣﻄﺎ
ﺘﻄﻮﻳﺮﺗﻄ
)2ﻟ
ﺘﺮﺟﻤﻴﻦ اﻟﻔﻮرﻳﻴﻦ وﻣﺎ إﱃ ذﻟﻚ
ﺘﺮﺟﻤﻴﻦ واﻟﻤ
ﺜﻞ اﻟﻤ
ﺘﺮﺟﻤﻴﻦ ﻣ
ﺘﻄﻮﻳﺮ اﻟﻤ
)3ﻟ
ﺗﻄﻮﻳﺮ اﻟﺪواﺋﺮ اﻟﺮﻗﻤﻴ ﺔ
)4
ﺜﻞ TCP / IPو UDPوﻣﺎ إﱃ ذﻟﻚ.
ﺗﺼﺎل ﻣ
ﺗﻮﻛﻮﻻ ت اﻻ
ﺑﺮوﺘﻄﻮﻳﺮ
)5ﻟ
ﺗﺠﻤﻴﻊ )(
)1
ﺘﺮﺟﻤ ﺔ ﻧﻤﻂ إﱃ RegexObject.
ﺘﻮي وﺣﺪة اﻹرﺟﺎع ﻋﲆ داﻟ ﺔ )( compileﻟ
ﺗﺤ
ﻧﻤﻂ )"= re.compile ("ab
ﺘﺸﻒ ():
)2ﻣﻜ
ﺒﺎراة
ﺑﻘ ﺔ ﻟﻜﻞ ﻣ
ﺘﺞ ﻋﻨﻪ ﻛﺎﺋﻦ ﻣﻄﺎ
إرﺟﺎع ﻛﺎﺋﻦﺗﻜﺮاريﻳﻨ
)"matcher = pattern.finditer ("abaababa
ﺘﺎﻟﻴ ﺔ.
ﺘﺪﻋﺎء اﻟﻄﺮق اﻟ
ﻓ ﻲ ﻛﺎﺋﻦ Match ،ﻳﻤﻜﻨﻨﺎ اﺳ
ﺒﺎراة
ﺑﺪاﻳ ﺔ اﻟﻤ)( 1) startإرﺟﺎع ﻓﻬﺮس
ﺒﺎراة
)( 2) endإرﺟﺎع ﻧﻬﺎﻳ ﺔ + 1ﻓﻬﺮس اﻟﻤ
ﺑﻘ ﺔ
ﺘﻄﺎ
)( 3) groupإرﺟﺎع اﻟ ﺴﻠ ﺴﻠ ﺔ اﻟﻤ
ﺘﺎج:
اﻧ
0 ... 2 ...أ ب
...7أ ...ب5
167
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺑﻘ ﺔ ﻓ ﻲ
ﺘﻴﺮاد )re 2) count = 0 3) matcher = re.finditer ("ab"، "abaababa") 4ﻟﻠﻤﻄﺎ
)1اﺳ
ﺑﻖ print (match.start ()، ".. . "، match.end ()،" ... "، match.group ()) 7) print (" :
اﻟﻤﻄﺎ
ﺘﻜﺮارا ت"، count) :
)5) count + = 1 6ﻋﺪد اﻟ
ﺘﺎج:
اﻧ
0 ... 2 ...أ ب
ﻓﺌﺎ ت اﻷﺣﺮف:
ﺒﺤ ﺚ ﻓ ﻲ ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻟﺸﺨﺼﻴﺎ ت
ﺘﺨﺪام ﻓﺌﺎ ت اﻟﺸﺨﺼﻴﺎ ت ﻟﻠ
ﻳﻤﻜﻨﻨﺎ اﺳ
]1) [abcإﻣﺎ أ أو ب أو ج
ﺜﻨﺎء aو bو c
ﺘﺑﺎﺳ
]2) [^ abc
ﺑﺠﺪي ﺻﻐﻴﺮ
]3) [azأي رﻣﺰ أ
ﺒﻴﺮ
ﺑﺠﺪي ﻛ
أي رﻣﺰ أ )]4ﻣﻦ اﻷﻟﻒ إﱃ اﻟﻴﺎء[
ﺑﺠﺪي
]5) [a-zA-Zأي رﻣﺰ أ
]6) [0-9أي رﻗﻢ ﻣﻦ 0إﱃ 9
ﺑﺠﺪي رﻗﻤ ﻲ
]7) [a-zA-Z0-9أي ﺣﺮف أ
ﺑﺠﺪﻳ ﺔ اﻟﺮﻗﻤﻴ ﺔ )اﻷﺣﺮف اﻟﺨﺎﺻ ﺔ(
ﺜﻨﺎء اﻷﺣﺮف اﻷ
ﺘﺑﺎﺳ
]8) [^ a-zA-Z0-9
168
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺒ ًﻘﺎ:
ﻓﺌﺎ ت اﻷﺣﺮف اﻟﻤﺤﺪدة ﻣ ﺴ
1) \ sﺣﺮف اﻟﻤ ﺴﺎﻓ ﺔ
ﺜﻨﺎء ﺣﺮف اﻟﻤ ﺴﺎﻓ ﺔ
ﺘﺑﺎﺳ2) \ Sأي ﺣﺮف
أي رﻗﻢ ﻣﻦ 0إﱃ 9 \ )3د
4) \ Dأي ﺣﺮف ﻣﺎ ﻋﺪا اﻟﺮﻗﻢ
5) \ wأي ﺣﺮف ﻛﻠﻤ ﺔ ][a-zA-Z0-9
6) \ Wأي ﺣﺮف ﻣﺎ ﻋﺪا ﺣﺮف اﻟﻜﻠﻤ ﺔ )أﺣﺮف ﺧﺎﺻ ﺔ(
ﺑﻤﺎ ﻓ ﻲ ذﻟﻚ اﻷﺣﺮف اﻟﺨﺎﺻ ﺔ7).أي ﺷﺨﺼﻴ ﺔ
ﺑﻘ ﺔ
ﺘﻴﺮاد )re 2) matcher = re.finditer ("x"، "a7b k @ 9z") 3ﻟﻠﻤﻄﺎ
)1اﺳ
ﺑﻖ . hctam 4) print (match.start ()، "......"، :ﻣﺠﻤﻮﻋ ﺔ)((
ﻓ ﻲ اﻟﻤﻄﺎ
3 ...... 0 ......أ 1 ...... 7 0 ......أ 3
0 ......أ
...... 0 ......أ
1
...... 7 6 ...... 9 2 ......ب 1
...... 7 @ 5 ...... 1 ...... 7
2 ......ب 3 ...... ......2ب 2 ......ب
4 ...... ك 4
ك ...... 4
ك ...... 3 ......
@ 5 ...... @ 5 ...... 6 ...... 9 4
ك ......
6 ...... 9 ...... 7
ض ...... 7
ض @ 5 ......
7 ...... ض 6 ...... 9
7 ...... ض
ﺗﻴﺎ ت:
اﻟﻘﻨﺎ
ﺘﻬﺎ.
ﺑﻘﺘﻜﺮارا ت اﻟﻤﺮاد ﻣﻄﺎ
ﺘﺤﺪﻳﺪ ﻋﺪد اﻟ
ﺘﺨﺪام اﻟﻤﺤﺪدا ت اﻟﻜﻤﻴ ﺔ ﻟ
ﻳﻤﻜﻨﻨﺎ اﺳ
ﺒﻂ "أ"
ﺑﺎﻟﻀواﺣﺪ )1أ
)2أ +ﻋﲆ اﻷﻗﻞ واﺣﺪ "أ"
ﺑﻤﺎ ﻓ ﻲ ذﻟﻚ اﻟﺮﻗﻢ ﺻﻔﺮ
*أي رﻗﻢ ﻣﻦ a )3أ
)4أ؟ واﺣﺪ ﻋﲆ اﻷﻗﻞ "أ" أي إﻣﺎ رﻗﻢ ﺻﻔﺮي أو رﻗﻢ واﺣﺪ
ﺒﻂ م ﻋﺪد ﻣﻦ أ
)5أ }م{ ﺑﺎﻟﻀ
}6) a {m، nاﻟﺤﺪ اﻷدﻧﻰ ﻟﻌﺪد mﻣﻦ a'sواﻟﺤﺪ اﻷﻗﺼﻰ ﻟﻌﺪد nﻟـ a's.
0 ......أ
س =أ: س =أ +: س =أ *: س =أ=أ {3}:
{2،4}: س
...... 1
0 ......أ 0 ......أ 0 ......أ 5 ......
2 aaaأأ
......
2 ......أ
2 ......أ 2 ......أأ 1 ...... 5 ...... aaa
3 ......أ
3 ......أ 5 ...... aaa 2 ......أأ
...... 4
5 ......أ ...... 4
5 ......أ
6 ......أ 5 ...... aaa
6 ......أ
7 ......أ 8 ......
7 ......أ
9 ......
8 ......
9 ......
ﺜﺎﻧﻴ ﺔ دورﺟﺎﺳﻮﻓ ﺖ ،رﻗﻢ 202 ، 2اﻟ
169
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﻣﻠﺤﻮﻇ ﺔ:
ﺑﻖ ():
ﺗﻄﺎ
)1
ﺘﻬﺪﻓ ﺔ.
ﺑﺪاﻳ ﺔ اﻟ ﺴﻠ ﺴﻠ ﺔ اﻟﻤ ﺴﺘﺤﻘﻖ ﻣﻦ اﻟﻨﻤﻂ اﻟﻤﺤﺪد ﻓ ﻲ
ﺑﻘ ﺔ ﻟﻠ
ﺘﺨﺪام داﻟ ﺔ اﻟﻤﻄﺎ
•ﻳﻤﻜﻨﻨﺎ اﺳ
ﺘﺎﺣ ﺔ ،ﻓ ﺴﻨﺤﺼﻞ ﻋﲆ ﻛﺎﺋﻦ Match ،وإﻻ ﻓﻠﻦ ﻧﺤﺼﻞ ﻋﲆ None.
ﺑﻘ ﺔ ﻣ
•إذا ﻛﺎﻧ ﺖ اﻟﻤﻄﺎ
ﺘﺎج:
اﻧ
د\ python_classes> py test.py :
ﺘﺤﻘﻖ ﻣﻨﻪabc :
أدﺧﻞ اﻟﻨﻤﻂ اﻟﻤﺮاد اﻟ
ﺑﺪاﻳ ﺔ اﻟ ﺴﻠ ﺴﻠ ﺔﺘﺎح ﻓ ﻲ
ﺑﻖ ﻣ
ﺘﻄﺎ
اﻟ
ﺒﺪاﻳ ﺔ0 :وﻣﺆﺷﺮ اﻟﻨﻬﺎﻳ ﺔ3 :
ﻣﺆﺷﺮ اﻟ
170
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺤﻘﻖ") :
")1) import re 2) s = inputأدﺧﻞ اﻟﻨﻤﻂ ﻟﻠ
ﺘﺎج:
اﻧ
د\ python_classes> py test.py :
ﺘﺤﻘﻖ :أ ب
أدﺧﻞ ﻧﻤﻂ ﻟﻠ
ﺑﻘ ﺔ
ﺘﻄﺎ
اﻟ ﺴﻠ ﺴﻠ ﺔ اﻟﻜﺎﻣﻠ ﺔ ﻏﻴﺮ ﻣ
ﺒﺤ ﺚ ():
)3اﻟ
ﺘﻬﺪﻓ ﺔ.
ﺒﺤ ﺚ ﻋﻦ اﻟﻨﻤﻂ اﻟﻤﺤﺪد ﻓ ﻲ اﻟ ﺴﻠ ﺴﻠ ﺔ اﻟﻤ ﺴ
ﺘﺨﺪام وﻇﻴﻔ ﺔ )( searchﻟﻠ
•ﻳﻤﻜﻨﻨﺎ اﺳ
ﺜﻞ أوﻻ ً
ﺑﺈرﺟﺎع ﻛﺎﺋﻦ Matchاﻟﺬيﻳﻤﺣﺎ ،ﻓﺈﻧﻪﻳﻘﻮم
ﺘﺎ ً
ﺑﻖ ﻣ
ﺘﻄﺎ
•إذا ﻛﺎن اﻟ
ﺒﺎراة.
ﺣﺪو ث اﻟﻤ
ﺑﻼﺘﺎﺣ ﺔ ،ﻓﺈﻧﻬﺎﺗﺮﺟﻊ
ﺒﺎراة ﻣ
•إذا ﻟﻢﺗﻜﻦ اﻟﻤ
ﺘﺤﻘﻖ4) :
ﻧﻤﻄﺎ ﻟﻠ
ً ﺘﻴﺮاد ")re 2) s = inputأدﺧﻞ
)1اﺳ
ﺑﻼ5) :
)"") 3) m = re.search (s، "abaaabaإذا ﻛﺎن = !m
ﺘﺎﺣ ﺔ"( )6
ﺑﻘ ﺔ ﻣ
ﺒﺎﻋ ﺔ )"اﻟﻤﻄﺎ
ﻃ
ﺘﺎج:
اﻧ
د\ python_classes> py test.py :
ﺘﺤﻘﻖ ﻣﻨﻪaaa :
أدﺧﻞ اﻟﻨﻤﻂ اﻟﻤﺮاد اﻟ
ﺘﺎﺣ ﺔ
ﺒﺎراة ﻣ
اﻟﻤ
ﺒﺪاﻳ ﺔ2 :وﻣﺆﺷﺮ اﻟﻨﻬﺎﻳ ﺔ5 :
ﺑﻘ ﺔ ﻣﻊ ﻣﺆﺷﺮ اﻟ
أول ﻇﻬﻮر ﻟﻠﻤﻄﺎ
ﺘﻜﺮارا ت.
ﺘﻮي ﻋﲆ ﺟﻤﻴﻊ اﻟ
ﺑﺈرﺟﺎع ﻛﺎﺋﻦ ﻗﺎﺋﻤ ﺔﻳﺤﺗﻘﻮم ﻫﺬه اﻟﻮﻇﻴﻔ ﺔ
•
ﺘﺸﻒ ():
)5ﻣﻜ
ﺒﺎراة.
ﺑﻖ ﻟﻜﻞ ﻣ
ﺘﺞ ﻋﻨﻪ ﻛﺎﺋﻦﺗﻄﺎ
إرﺟﺎع اﻟﻤﻜﺮر اﻟﺬيﻳﻨ
ك 6 ... 7 ...
8 ... 9 ...ض
)6ﻓﺮﻋ ﻲ ():
ﺒﺪال.
ﺘﺒﺪال أو اﻻﺳ
ﺘﺗﻌﻨ ﻲ اﻻﺳ
•
ﺒﺪال اﻟﻤﻘﺪم.
ﺘﺑﻖ ﻣﻊ اﻻﺳ
ﺘﻄﺎ
ﺒﺪال ﻛﻞ ﻧﻤﻂ ﻣ
ﺘﺘﻢ اﺳ
ﺘﻬﺪﻓ ﺔ ،ﺳﻴ
•ﻓ ﻲ اﻟ ﺴﻠ ﺴﻠ ﺔ اﻟﻤ ﺴ
ﺒﺎﻋ ﺔ )ﻧ ﺴﺦ(
ﺘﻴﺮاد )re 2) s = re.sub ("[az]"، "#"، "a7b9c5k8z") 3ﻃ
)1اﺳ
اﻹﺧﺮاج# 7 # 9 # 5 # 8 # :
ﺑﺮﻣﺰ #ﺑﺠﺪي
ﺒﺪال ﻛﻞ رﻣﺰ أ
ﺘﺘﻢ اﺳ
ﻳ
ﺒﺪاﻻ ت.
ﺘﺜﺎﻧ ﻲ ﻫﻮ ﻋﺪد اﻻﺳ
ﺘﻴﺠ ﺔ واﻟﻌﻨﺼﺮ اﻟ
ﺒﺎرة ﻋﻦﺳﻠ ﺴﻠ ﺔ ﻧ
ﺑﺈرﺟﺎع ﻣﺠﻤﻮﻋ ﺔ ﺣﻴ ﺚﻳﻜﻮن اﻟﻌﻨﺼﺮ اﻷول ﻋﺗﻘﻮم ﻫﺬه اﻟﻮﻇﻴﻔ ﺔ
ﺒﺪاﻻ ت(
ﺘ(resultstring،ﻋﺪد اﻻﺳ
172
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج:
اﻧ
د\ python_classes> py test.py :
)('# 7 # 9 # 5 # 8 #'، 5
ﺘﻴﺠ ﺔ# 7 # 9 # 5 # 8 # :
ﺳﻠ ﺴﻠ ﺔ اﻟﻨ
ﺒﺪاﻻ ت5 :
ﺘﻋﺪد اﻻﺳ
ﺘﺎج:
اﻧ
د\ python_classes> py test.py :
]'['sunny'، 'bunny'، 'chinny'، 'vinny'، 'pinny
ﻣﺸﻤ ﺲ
اﻻرﻧ ﺐ
ذﻗﻦ
ﻓﻴﻨ ﻲ
ﻣﺌﺰر أﻃﻔﺎل
ﺘﺎج:
اﻧ
د\ python_classes> py test.py :
www
دورﺟﺎﺳﻮﻓ ﺖ
ﻛﻮم
173
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
^ )9اﻟﺮﻣﺰ:
ﺘﺨﺪاﻣﻬﺎ
ﺘﻮﻓﺮة ﻟﺪﻳﻨﺎ •ﻳﻤﻜﻨﻨﺎ اﺳ
ﺑﺎﻟﻘﻴﻤ ﺔ اﻟﻤﺒﺪأ
ﺘﺤﻘﻖ ﻣﻤﺎ إذا ﻛﺎﻧ ﺖ اﻟ ﺴﻠ ﺴﻠ ﺔ اﻟﻬﺪف اﻟﻤﺤﺪدةﺗ
^ﻟﻠ
ﻧﻤﻂ أم ﻻ.
ﺘﻌﻮد
ﺘﻌﻴﺪ ﻛﺎﺋﻦ Match ،وإﻻﺳ
ﺑـ Learn ،ﻓ ﺴﺘﻬﺪﻓ ﺔ
ﺑﺪأ ت اﻟ ﺴﻠ ﺴﻠ ﺔ اﻟﻤ ﺴ•إذا
ﻻ أﺣﺪ.
test.py
ﺑـ Learnﺒﺪأ
ﺘﻬﺪﻓ ﺔﺗ
اﻹﺧﺮاج :اﻟ ﺴﻠ ﺴﻠ ﺔ اﻟﻤ ﺴ
)10رﻣﺰ $:
ﺑـﺘﻬ ﻲ
ﺘﺤﻘﻖ ﻣﻤﺎ إذا ﻛﺎﻧ ﺖ اﻟ ﺴﻠ ﺴﻠ ﺔ اﻟﻬﺪف اﻟﻤﺤﺪدةﺗﻨ
ﺘﺨﺪام اﻟﺮﻣﺰ $ﻟﻠ
•ﻳﻤﻜﻨﻨﺎ اﺳ
ﻗﺪﻣ ﺖ ﻧﻤﻂ أم ﻻ.
test.py
ﺑـ "ﺳﻬﻞ"ﺘﻬ ﻲ
ﺘﻬﺪﻓ ﺔﺗﻨ
اﻹﺧﺮاج :اﻟ ﺴﻠ ﺴﻠ ﺔ اﻟﻤ ﺴ
test.py
ﺗﻌﻠﻢ Pythonﺳﻬﻞ ﺟﺪًا" )3) res = re.search ("easy $"، s، re.IGNORECASE) 4إذا
= "1) import re 2) s
ﺒﺎﻋ ﺔ "(
ﺘﻬﺪﻓ ﺔ ﻣﻊ Easyﻋﻦ ﻃﺮﻳﻖﺗﺠﺎ ﻫﻞ اﻟﺤﺎﻟ ﺔ )") 6وإﻻ7) :ﻃ
ﺘﻬ ﻲ اﻟ ﺴﻠ ﺴﻠ ﺔ اﻟﻤ ﺴ
ﺗﻨﺒﺎﻋ ﺔ )"
ﺑﻼ5) :ﻃ
اﻟﺪﻗ ﺔ! =
ﺘﺠﺎ ﻫﻞ اﻟﺤﺎﻟ ﺔ
ﺑﺑـ Easyﺘﻬﺪﻓ ﺔ
ﺘﻬ ﻲ اﻟ ﺴﻠ ﺴﻠ ﺔ اﻟﻤ ﺴ
اﻹﺧﺮاج:ﺗﻨ
ﺜﻴﻞ ﻛﻞ Yava
ﺘﻤﺒﻴ ﺮًا ﻋﺎدﻳًﺎ ﻟ
ﺘ ﺐﺗﻌ
ﺒﻴﻖ )1اﻛ
ﺘﻄاﻟ
ﻣﻌﺮﻓﺎ ت اﻟﻠﻐ ﺔ
ﻗﻮاﻋﺪ:
ﺑﻬﺎ ﻫ ﻲ az ،و AZ ،و ، -0و #)1اﻷﺣﺮف اﻟﻤ ﺴﻤﻮح
1) import re 2) s = inputإذا ﻛﺎن = ! mﻻ ﺷ ﻲء(s، "is valid Yava Identifier") :
ﺘﺎج |
اﻧ
د\ python_classes> py test.py :
أدﺧﻞ اﻟﻤﻌﺮفa6kk9z ## :
ّ ف Yava
k7b9ﻏﻴﺮ ﺻﺎﻟﺢ ﻣﻌ ﺮ
175
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺜﻴﻞ ﻛﻞ 10أرﻗﺎم
ﺘﻤﺒﻴ ًﺮا ﻋﺎدﻳًﺎ ﻟ
ﺘ ﺐﺗﻌ
ﺒﻴﻖ )3اﻛ
ﺘﻄاﻟ
ﺗﻒ اﻟﻤﺤﻤﻮﻟ ﺔ
أرﻗﺎم اﻟﻬﻮا
ﻗﻮاﻋﺪ:
ﺒﻂ
ﺑﺎﻟﻀﺘﻮي ﻛﻞ رﻗﻢ ﻋﲆ 10أرﻗﺎم
)1ﻳﺠ ﺐ أنﻳﺤ
ﺷﺎرع
][7-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9
أو
}[7-9] \ d {9
ﺘﺎج |
اﻧ
د\ python_classes> py test.py :
أدﺧﻞ اﻟﺮﻗﻢ9898989898 :
ﺘﻢ ﺧﻠﻂ
ﺗﻒ اﻟﻤﺤﻤﻮﻟ ﺔ اﻟﻤﻮﺟﻮدة ﻓ ﻲ input.txtﺣﻴ ﺚﻳ
ﺘﺨﺮاج ﺟﻤﻴﻊ أرﻗﺎم اﻟﻬﻮا
ﺑﺮﻧﺎﻣﺞ Pythonﻻﺳﺘﺐ
ﺒﻴﻖ )5اﻛ
ﺘﻄاﻟ
ﺒﻴﺎﻧﺎ ت اﻟﻨﺺ اﻟﻌﺎدي
ﺑاﻷرﻗﺎم
176
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
all Mobile Numbers into output.txt") 9) f1.close () 10) f2.close () ﻟﻠ ﺴﻄﺮ ﻓ ﻲ4)
ﻓ ﻲn ﺳﻄﺮ( ﻟـlist = re.findall ("[7-9] \ d {9}"f1:
، 5) 6) 7) 8) print ("Extracted
:اﻟﻘﺎﺋﻤ ﺔ
ﺒﻴﺮا ت اﻟﻌﺎدﻳ ﺔ
ﺘﻌﺘﺨﺪام اﻟ
ﺑﺎﺳﺗﺠﺮﻳﻒ اﻟﻮﻳ ﺐ
ﺒﺮﻳﺪ وأرﻗﺎم
ﺜﻞ ﻣﻌﺮﻓﺎ ت اﻟ
ﺑ ﺔ ﻟﺪﻳﻨﺎ ﻣ
ﺑﻘ ﺔ اﻷﻧﻤﺎط اﻟﻤﻄﻠﻮ
ﻓ ﻲﺗﺠﺮﻳﻒ اﻟﻮﻳ ﺐ ﻟﻤﻄﺎ.ﺗ ﺴﻤﻰ ﻋﻤﻠﻴ ﺔ ﺟﻤﻊ اﻟﻤﻌﻠﻮﻣﺎ ت ﻣﻦ ﺻﻔﺤﺎ ت اﻟﻮﻳ ﺐﺗﺠﺮﻳﻒ اﻟﻮﻳ ﺐ
.ﺒﻴﺮا ت اﻟﻌﺎدﻳ ﺔ
ﺘﻌﺘﺨﺪام اﻟ
ﻳﻤﻜﻨﻨﺎ اﺳ، اﻟﺠﻮال
title = re.findall ("<title>. * </title>"، str (text)، re.I) 9) 10) print (title [0])
s) 7) u = urllib.request.urlopen ("http: //" + s + ".com") 8) text = u.read ()
rediff" .split () 4) print (sites) 5) for s in sites: 6) print ("Searching ..."،
1) import re، urllib 2) import urllib.request 3) sites = "google
ﺒﻴﺮا ت اﻟﻌﺎدﻳ ﺔ
ﺘﻌواﻟWeb Scraping ﺘﺨﺪام
ﺑﺎﺳ
redbus.in ﺗﻒ
ﺑﺮﻧﺎﻣﺞ ﻟﻠﺤﺼﻮل ﻋﲆ ﺟﻤﻴﻊ أرﻗﺎم ﻫﻮا
ﺘﺎج:
اﻧ
د\ python_classes> py test.py :
ﺒﺮﻳﺪdurgatoc@gmail.com :
أدﺧﻞ ﻣﻌﺮف اﻟ
ﺑﺮﻳﺪ ﺻﺎﻟﺢﻣﻌﺮف
ﺘﺤﻘﻖ ﻣﻤﺎ إذا ﻛﺎن رﻗﻢﺗ ﺴﺠﻴﻞ اﻟ ﺴﻴﺎرة اﻟﻤﻘﺪم ﺻﺎﻟﺤًﺎ أم ﻻ؟
ﺑﺮﻧﺎﻣﺞ Pythonﻟﻠﺘﺐ
اﻛ
ﺘﺎج:
اﻧ
د\ python_classes> py test.py :
ﺒ ﺔTS07EA7777 :
أدﺧﻞ رﻗﻢﺗ ﺴﺠﻴﻞ اﻟﻤﺮﻛ
ﺒ ﺔﺳﺎري اﻟﻤﻔﻌﻮل
رﻗﻢﺗ ﺴﺠﻴﻞ اﻟﻤﺮﻛ
178
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺜﻠ ﺔ اﻷﺧﺮى.
ﺑﻌﺾ اﻷﻣ
ﺟﺪول ﻣﻠﺨﺺ و
اﻟﺪﻳﻜﻮر
اﻟﻤﻬﺎم
ﺋﻴ ﺴ ﻲ ﻣﻦ وﻇﺎﺋﻒ اﻟﺪﻳﻜﻮر ﻫﻮ أﻧﻪﻳﻤﻜﻨﻨﺎﺗﻮﺳﻴﻊ وﻇﺎﺋﻒ اﻟﻮﻇﺎﺋﻒ اﻟﺤﺎﻟﻴ ﺔ دونﺗﻌﺪﻳﻞ ﻫﺬه اﻟﻮﻇﻴﻔ ﺔ.
اﻟﻬﺪف اﻟﺮ
ﺒﺎح اﻟﺨﻴﺮ
ﺒﺎ دورﺟﺎ ﺻ
ﻣﺮﺣ
ﺒﺎح اﻟﺨﻴﺮ
ﺒﺎ راﻓ ﻲ ﺻ
ﻣﺮﺣ
ﺒﺎح اﻟﺨﻴﺮ
ﺒﺎ ﺻﻨ ﻲ ﺻ
ﻣﺮﺣ
ﺴﺎ.
ﺘﻠﻔ ﺔ إذا ﻛﺎن اﻻﺳﻢ ﻣﺸﻤ ً
ﺘﻘﺪﻳﻢ رﺳﺎﻟ ﺔ ﻣﺨ
ﻟﻜﻨﻨﺎ ﻧﺮﻳﺪﺗﻌﺪﻳﻞ ﻫﺬه اﻟﻮﻇﻴﻔ ﺔ ﻟ
ﺘﺨﺪام اﻟﺰﺧﺮﻓ ﺔ.
ﺑﺎﺳ
ﺑﺬﻟﻚ دون ﻟﻤ ﺲ وﻇﻴﻔ ﺔ )( Wishﻳﻤﻜﻨﻨﺎ اﻟﻘﻴﺎم
ﺘﺎج |
اﻧ
ﺒﺎح اﻟﺨﻴﺮ
ﺒﺎ دورﺟﺎ ﺻ
ﻣﺮﺣ
ﺒﺎح اﻟﺨﻴﺮ
ﺒﺎ راﻓ ﻲ ﺻ
ﻣﺮﺣ
181
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺑﺪون ﻣﺰﺧﺮف:
ﺘﺪﻋﺎء ﻧﻔ ﺲ اﻟﻮﻇﻴﻔ ﺔ ﻣﻊ Decoratorو
ﻛﻴﻔﻴ ﺔ اﺳ
ﺘﺨﺪمroced
ﻳﺠ ﺐ أﻻ ﻧ ﺴ
)== "Sunny": 4) print ("Hello Sunny Bad Morning") 5) else: 6) func (name) 7
1) def decor (func): 2) def inner (name): 3) if nameإرﺟﺎع ("Durga") #decorator
name،
)"ﺻﻨ ﻲ"( ﺒﺔ "Good
)15رﻏ )"Morning
)11ﻟﻦﻳﻜﻮنﺗﻢ اﻟ
ﺘﻨﻔﻴﺬ 12) decorfunction
interior 8) 9) def wish=(name):
)decor (wish 13) ("Hello"،
10) print 14) wish
ﺘﺎج |
اﻧ
ﺒﺎح اﻟﺨﻴﺮ
ﺒﺎ دورﺟﺎ ﺻ
ﻣﺮﺣ
ﺒﺎح اﻟﺨﻴﺮ
ﺒﺎ ﺻﻨ ﻲ ﺻ
ﻣﺮﺣ
ﺒﺎح اﻟﺨﻴﺮ
ﺒﺎ دورﺟﺎ ﺻ
ﻣﺮﺣ
ﺒﺎح
ﺒﺎ ﺻﻨ ﻲﺳ ﻲء اﻟﺼ
ﻣﺮﺣ
آﺧﺮ:
ﺑﺈرﺟﺎع a / bdefﻗﻢ
ﺒﺎﻋ ﺔ
ﺒﺎﻋ ﺔ )ﻗ ﺴﻤ ﺔ )(20،2)) 15ﻃ
)14ﻃ
)ﻗ ﺴﻤ ﺔ ))(20،0
ﺗ ﺴﻠ ﺴﻞ اﻟﺪﻳﻜﻮر
ﻳﻤﻜﻨﻨﺎﺗﺤﺪﻳﺪ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﺪﻳﻜﻮرا ت ﻟﻨﻔ ﺲ اﻟﻮﻇﻴﻔ ﺔ وﺳﻮفﻳﺸﻜﻞ ﻛﻞ ﻫﺆﻻء اﻟﻤﺼﻤﻤﻴﻦﺳﻠ ﺴﻠ ﺔ اﻟﺪﻳﻜﻮر.
ﺜﺎل:
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
@ decor1
@دﻳﻜﻮر
defاﻷﺳﻄﻮاﻧﺎ ت ():
184
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺑﺎء
ﻣﻮﻟﺪ ﻛﻬﺮ
اﻟﻤﻬﺎم
ﺑﺎء
ﻣﻮﻟﺪ ﻛﻬﺮ
ﺗ ﺴﻠ ﺴﻞ اﻟﻘﻴﻢ
وﻇﻴﻔ ﺔ
أَ ْ
ﺛ َﻤ ﺮ
ﺘﺎج |
اﻧ
>ﻓﺌ ﺔ "اﻟﻤﻮﻟﺪ"<
أ
ب
ﺘﺎﻟ ﻲ ))(g
ﺒﺎﻋ ﺔ >)<moduleاﻟ
اﻟ ﺴﻄﺮ 12 ،ﻓ ﻲ ﻃ
ﺗﻮﻗﻒ
ﺘﺎج |
اﻧ
ﺘﻨﺎزﻟ ﻲ
ﺑﺪء اﻟﻌﺪ اﻟ
5
186
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
4
3
2
1
ﺘﺎج |
اﻧ
1
2
3
4
5
ﺘﺎﻟ ﻲ:
ﻳﻤﻜﻨﻨﺎﺗﺤﻮﻳﻞ اﻟﻤﻮﻟﺪ إﱃ ﻗﺎﺋﻤ ﺔ ﻋﲆ اﻟﻨﺤﻮ اﻟ
اﻟﻘﻴﻢ )= firstn (10
= l1ﻗﺎﺋﻤ ﺔ )ﻗﻴﻢ(
ﺒﺎﻋ ﺔ ](l1) # [1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9 ، 10
ﻃ
ﺗﺸ ﻲ ...
ﺒﻮﻧﺎ
ﺘﻮﻟﻴﺪ أرﻗﺎم ﻓﻴ
ﺜﺎل 4:ﻟ
ﻣ
ﺑﻘﻴﻦ
ﺘﺎﻟ ﻲ ﻫﻮ ﻣﺠﻤﻮع اﻟﻌﺪدﻳﻦ اﻟ ﺴﺎ
اﻟ
ﺘﺎج |
اﻧ
0
1
2
1
3
8
5
13
21
34
55
89
188
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺴﻔﺮ)23
ﺗ)24
)25
) 26ت({ 27) "" random.choice
)اﻟﻤﻮﺿﻮﻋﺎ ﺒﺮى't1 = time.clock ():
'اﻟﻜ
ﻋﻦ ﺷﺨﺺ
ﺘﺨﺪام اﻟﺬاﻛﺮة:
ﺑﺎﺳﺑﻞ اﻟﻤﺠﻤﻮﻋﺎ ت اﻟﻌﺎدﻳ ﺔ
اﻟﻤﻮﻟﺪا ت ﻣﻘﺎ
ﺘﺨﺰﻳﻦ ﻓ ﻲ اﻟﺬاﻛﺮة.
ﺑ ﺔ ﻟﻠ
ﺳﻨﺤﺼﻞ ﻋﲆ MemoryErrorﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔﻷن ﻛﻞ ﻫﺬه اﻟﻘﻴﻢ ﻣﻄﻠﻮ
ﺑﺎء:
ﻣﻮﻟﺪا ت ﻛﻬﺮ
g = (x * x for xﻓ ﻲ اﻟﻨﻄﺎق ))(10000000000000000
ﺘﺎﻟ ﻲ )ز((
ﺒﺎﻋ ﺔ )اﻟ
ﻃ
اﻹﺧﺮاج0 :
ﺒﺪاﻳ ﺔ
ﺘﻢﺗﺨﺰﻳﻦ اﻟﻘﻴﻢ ﻓ ﻲ اﻟ
ﻟﻦ ﻧﺤﺼﻞ ﻋﲆ أي ﺧﻄﺄ ﻓ ﻲ MemoryErrorﻷﻧﻪ ﻟﻦﻳ
ﺗﺄﻛﻴﺪا ت
ﺒﻴﻦ
ﺑﻌﺪ إﺻﻼح اﻟﺨﻄﺄ ،ﻟ ﺴﻨﺎ ﻣﻄﺎﻟﺒﺎرة )( printﻫ ﻲ
ﺒﺎرة ﻋﲆ ﻋ
ﺘﺄﻛﻴﺪ اﻟﻌ
ﺋﻴ ﺴﻴ ﺔ ﻟ
ﺘﺄﻛﻴﺪ .اﻟﻤﻴﺰة اﻟﺮ
ﺑﻴﺎن اﻟﺘﻐﻠ ﺐ ﻋﲆ ﻫﺬه اﻟﻤﺸﻜﻠ ﺔﻳﺠ ﺐ أن ﻧﺬ ﻫ ﺐ إﱃ
ﻟﻠ
ﺘﺄﻛﻴﺪ
ﺗﻨﺎ ،ﻳﻤﻜﻨﻨﺎﺗﻤﻜﻴﻦ أوﺗﻌﻄﻴﻞ اﻟ
ﺒﺎ
ﺘﻄﻠ
ﺑﻨﺎ ًء ﻋﲆ ﻣﺘﺄﻛﻴﺪ.
ﺒﺎرا ت اﻟ
ﺑﺤﺬف ﻋ
ﺻﻴﺎﻏﺎ ت.
ﺒﺎر وﻟﻜﻦ
ﺘﺑﻴﺌﺎ ت اﻻﺧﺘﻄﻮﻳﺮ أو ﻓ ﻲ
ﺘﺄﻛﻴﺪا ت ﻫﻮ إﺟﺮاءﺗﺼﺤﻴﺢ اﻷﺧﻄﺎء .ﻋﺎدةﻳﻤﻜﻨﻨﺎ إﺟﺮاءﺗﺼﺤﻴﺢ اﻷﺧﻄﺎء إﻣﺎ ﻓ ﻲ اﻟ
ﺋﻴ ﺴ ﻲ ﻣﻦ اﻟ
ﺛﻢ ﻓﺈن اﻟﻐﺮض اﻟﺮوﻣﻦ
ﺘﺎج.
ﺒﻴﺌ ﺔ اﻹﻧ
ﺒﺎر وﻟﻜﻦ ﻟﻴ ﺲ ﻟ
ﺘﺘﻄﻮﻳﺮ واﻻﺧ
ﺑﻴﺌﺎ ت اﻟﺒﻖ ﻓﻘﻂ ﻋﲆ
ﺘﺄﻛﻴﺪا تﻳﻨﻄ
ﺛﻢ ﻓﺈن ﻣﻔﻬﻮم اﻟﺘﺎج .وﻣﻦ
ﺑﻴﺌ ﺔ اﻹﻧﻟﻴ ﺲ ﻓ ﻲ
ﺘﺄﻛﻴﺪ:
أﻧﻮاع ﺟﻤﻞ اﻟ
ﺘﺄﻛﻴﺪ
ﺒﺎرا ت اﻟ
ﻫﻨﺎك ﻧﻮﻋﺎن ﻣﻦ ﻋ
ﺑ ﺴﻴﻄ ﺔ)1ﻧ ﺴﺨ ﺔ
)2اﻟﻨ ﺴﺨ ﺔ اﻟﻤﻌﺰزة
ﺑ ﺴﻴﻄ ﺔ:)1ﻧ ﺴﺨ ﺔ
ﺒﻴﺮ اﻟﺸﺮﻃ ﻲ
ﺘﻌﺗﺄﻛﻴﺪ اﻟ
)2اﻹﺻﺪار اﻟﻤﻌﺰز:
ﺒﺮﻧﺎﻣﺞ ﻛﺬﻟﻚ
ﺒﻴﺮ اﻟﺸﺮﻃ ﻲ وإذا ﻛﺎن ﺻﺤﻴﺤًﺎ ﻓ ﺴﻴﻜﻮن اﻟ
ﺘﻌﺘﻢﺗﻘﻴﻴﻢ اﻟ
•ﺳﻴ
واﺻﻠ ﺖ.
اﻟﻤﺸﻜﻠ ﺔ.
ﺑﻊ
ﺗﺄﻛﻴﺪ " squareIt (2) == 4 ،ﻳﺠ ﺐ أنﻳﻜﻮن ﻣﺮ
)1) def squareIt (x): 2إرﺟﺎع )x ** x 3
16
ﺑﻊ)ﻣﺮ
ﺒﺎﻋ ﺎﺔ "،
))(3ﻃﻣﺮ
ﺑﻌً ﺗﺄﻛﻴﺪًا
ﺑﻊ8)3 9
)ﻣﺮ"
ﺒﺎﻋ ﺔ)5
اﻟﺮﻗﻢ
))(2ﻃ
ﻳﻜﻮن
ﺑﻊأن)7
ﺐ
ﻳﺠ)ﻣﺮ
ﺒﺎﻋ ﺔ
ﺑﻊﻣﺮ
4ﻃ squareIt
)16 " 6) (3
ﺑﻊ==ﻣﺮ
ﻳﻜﻮن
أن 9 ،
ﺗﺄﻛﻴﺪ "
ﻳﺠ ﺐ
)2(4
=="4
)4
)4) )) 9
191
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج |
اﻧ
4
9
16
ﺘﺄﻛﻴﺪا ت:
ﺑﻞ اﻟ
ﺜﻨﺎءا ت ﻣﻘﺎ
ﺘﺘﻌﺎﻣﻞ ﻣﻊ اﻻﺳ
اﻟ
ﺘﻄﻮﻳﺮ.
ﺒﺮﻣﺞ ﻟﺤﻞ أﺧﻄﺎء وﻗ ﺖ اﻟ
ﺒﻴﻪ اﻟﻤ
ﺘﻨﺘﺄﻛﻴﺪا ت ﻟ
ﺘﺨﺪام ﻣﻔﻬﻮم اﻟ
ﻳﻤﻜﻦ اﺳ
ﺘﺸﻐﻴﻞ.
ﺜﻨﺎءا ت ﻟﻤﻌﺎﻟﺠ ﺔ أﺧﻄﺎء وﻗ ﺖ اﻟ
ﺘﺘﺨﺪام ﻣﻌﺎﻟﺠ ﺔ اﻻﺳ
ﻳﻤﻜﻦ اﺳ
192
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺜﻮن
ﺑﺎﻳ
ﺗ ﺴﺠﻴﻞ
193
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘ ﺴﺠﻴﻞ.
ﺜﻨﺎءا ت ﻓ ﻲ ﻣﻠﻒ .ﻫﺬه اﻟﻌﻤﻠﻴ ﺔﺗ ﺴﻤﻰ اﻟ
ﺘﺒﻴﻖ اﻟﻜﺎﻣﻞ وﻣﻌﻠﻮﻣﺎ ت اﻻﺳ
ﺘﻄﺘﺨﺰﻳﻦﺗﺪﻓﻖ اﻟ
ﺑﺑﺸﺪةﻳﻮﺻﻰ
ﺘ ﺴﺠﻴﻞ ﻫ ﻲ:
ﺋﻴ ﺴﻴ ﺔ ﻟﻠ
اﻟﻤﺰاﻳﺎ اﻟﺮ
ﺘﺼﺤﻴﺢ
ﺛﻨﺎء إﺟﺮاء اﻟ
ﺘﺨﺪام ﻣﻠﻔﺎ ت اﻟ ﺴﺠﻞ أ
)1ﻳﻤﻜﻨﻨﺎ اﺳ
ﺒﺎ ت ﻓ ﻲ اﻟﻴﻮم وﻣﺎ إﱃ ذﻟﻚ
ﺜﻞ ﻋﺪد اﻟﻄﻠ
)2ﻳﻤﻜﻨﻨﺎﺗﻘﺪﻳﻢ إﺣﺼﺎءا ت ﻣ
ً
ﺴﺠﻴﻼ داﺧﻠ ًﻴﺎ ﻟﻠﻮﺣﺪة. ﺗ
ﺘ ﺴﺠﻴﻞ ،ﺗﻮﻓﺮ Python
ﺘﻨﻔﻴﺬ اﻟ
ﻟ
ﺘ ﺴﺠﻴﻞ:
ﺘﻮﻳﺎ ت اﻟ
ﻣﺴ
ﺘﺎﻟﻴ ﺔ ﻓ ﻲ Python
ﺘ ﺔ اﻟ ﺘ ﺴﺠﻴﻞ وﻓ ًﻘﺎ ﻟﻠﻤ ﺴ
ﺘﻮﻳﺎ ت اﻟ ﺴ ﺑﻴﺎﻧﺎ ت اﻟﺘﻢﺗﻘ ﺴﻴﻢ
ﺘﻤﺎدًا ﻋﲆ ﻧﻮع اﻟﻤﻌﻠﻮﻣﺎ ت ،ﻳ
اﻋ
)1اﻟﺤﺮﺟ ﺔ 50
ﺒﻴﺮ
ﺘﻤﺎم ﻛ
ﺘﺎج إﱃ ا ﻫ
ﺜﻞ ﻣﺸﻜﻠ ﺔ ﺧﻄﻴﺮة ﻟﻠﻐﺎﻳ ﺔﺗﺤ
ﻳﻤ
)2ﺧﻄﺄ 40
ﺜﻞ ﺧﻄﺄ ﺟ ﺴﻴﻢ
ﻳﻤ
ﺗﺤﺬﻳﺮ 30
)3
ﺒﺮﻣﺞ.
ﺑﻌﺾ اﻟﺤﺬر .إﻧﻪ ﻓ ﻲ ﺣﺎﻟ ﺔﺗﺄ ﻫ ﺐ ﻟﻠﻤﺜﻞ رﺳﺎﻟ ﺔﺗﺤﺬﻳﺮ ،ﻳﻠﺰم
ﻳﻤ
ﺗﺼﺤﻴﺢ 10
)5
ﺘﺼﺤﻴﺢ
ﺜﻞ رﺳﺎﻟ ﺔ ﻣﻊ ﻣﻌﻠﻮﻣﺎ ت اﻟ
ﻳﻤ
)6ﻣﺬﻛﺮة 0
ﺘﻢﺗﻌﻴﻴﻨﻪ
ﺘﻮى ﻟﻢﻳ
ﺜﻞ أن ﻫﺬا اﻟﻤ ﺴ
ﻳﻤ
ﺘﻮى اﻷﻋﲆ.
ﺘﻢ ﻋﺮضﺗﺤﺬﻳﺮ ﻓﻘﻂ ورﺳﺎﺋﻞ اﻟﻤ ﺴ
ﺑﺮﻧﺎﻣﺞ Python ،ﺳﻴﺛﻨﺎءﺗﻨﻔﻴﺬ
ﺘﺮاﺿ ﻲ أ
ﺑﺸﻜﻞ اﻓ
ﺘ ﺴﺠﻴﻞ:
ﻛﻴﻔﻴ ﺔﺗﻨﻔﻴﺬ اﻟ
ﺘﻮى اﻟﺮﺳﺎﺋﻞ اﻟﻤﻄﻠﻮ بﺗﺨﺰﻳﻨﻬﺎ. ﺒﻨﺎ أوﻻ ً إﻧﺸﺎء ﻣﻠﻒ ﻟ
ﺘﺨﺰﻳﻦ اﻟﺮﺳﺎﺋﻞ وﻋﻠﻴﻨﺎﺗﺤﺪﻳﺪ ﻣ ﺴ ﺘ ﺴﺠﻴﻞ ،ﻃﻠ
ﻹﺟﺮاء اﻟ
ﺘ ﺴﺠﻴﻞ.
ﺘﺨﺪام داﻟ ﺔ )( basicConfigﻟﻮﺣﺪة اﻟ
ﺑﺎﺳﺑﺬﻟﻚﻳﻤﻜﻨﻨﺎ اﻟﻘﻴﺎم
ﺘﻮى )= logging.WARNING
)logging.basicConfigاﺳﻢ اﻟﻤﻠﻒ = 'log.txt' ،اﻟﻤ ﺴ
ﺘﺎﻟﻴ ﺔ
ﺘﺨﺪام اﻟﻄﺮق اﻟ
ﺑﺎﺳﺑ ﺔ اﻟﺮﺳﺎﺋﻞ إﱃ ﻫﺬا اﻟﻤﻠﻒ
ﺘﺎ
ﺑﻌﺪ إﻧﺸﺎء ﻣﻠﻒ اﻟ ﺴﺠﻞ ،ﻳﻤﻜﻨﻨﺎ ﻛ
ﺘﻮى؟
ﺑ ﺔ رﺳﺎﺋﻞﺗﺤﺬﻳﺮ ورﺳﺎﺋﻞ أﻋﲆ ﻣ ﺴ
ﺘﺎ
ﺑﺮﻧﺎﻣﺞ Pythonﻹﻧﺸﺎء ﻣﻠﻒﺳﺠﻞ وﻛﺘﺐ
س( اﻛ
log.txt:
ﺘﺤﺬﻳﺮ
ﺗﺤﺬﻳﺮ :اﻟﺠﺬر :ﻣﻌﻠﻮﻣﺎ ت اﻟ
ﺧﻄﺄ :اﻟﺠﺬر :ﻣﻌﻠﻮﻣﺎ ت اﻟﺨﻄﺄ
ﺑﺔ
ﺘﺎ
ﺘﻢ ﻛ
ﺘﻮى ﻛـ DEBUG ،ﻓ ﺴﻴ
ﺘﻮى اﻷﻋﲆ ﻓ ﻲ ﻣﻠﻒ اﻟ ﺴﺠﻞ .إذا ﺣﺪدﻧﺎ اﻟﻤ ﺴ
ﺑ ﺔ رﺳﺎﺋﻞ اﻟﻤ ﺴ
ﺘﺎ
ﺘﻢ ﻛ
ﺘﺒﺮﻧﺎﻣﺞ أﻋﻼه ﻓﻘﻂﺗﺤﺬﻳﺮ وﺳ
ﻣﻼﺣﻈ ﺔ :ﻓ ﻲ اﻟ
ﺟﻤﻴﻊ اﻟﺮﺳﺎﺋﻞ ﻓ ﻲ ﻣﻠﻒ اﻟ ﺴﺠﻞ.
test.py
ﺘﻮى )3
ﺘ ﺴﺠﻴﻞ )2) logging.basicConfigاﺳﻢ اﻟﻤﻠﻒ = 'log.txt' ،اﻟﻤ ﺴ
ﺘﻴﺮاد اﻟ
)1اﺳ
ﺘﺼﺤﻴﺢ'(
ﺒﺎﻋ ﺔ '( ('Logging Demo') 4) logging.debugﻣﻌﻠﻮﻣﺎ ت اﻟ
)= logging.DEBUGﻃ
ﺘﺤﺬﻳﺮ )") 7ﺧﻄﺄ ﻓ ﻲ
" )5) logging.infoﻣﻌﻠﻮﻣﺎ ت اﻟﻤﻌﻠﻮﻣﺎ ت"( ")6) logging. warningﻣﻌﻠﻮﻣﺎ ت اﻟ
ﺘ ﺴﺠﻴﻞ "(ﻣﻌﻠﻮﻣﺎ ت اﻟﺨﻄﺄ"( ")8) logging.criticalﻣﻌﻠﻮﻣﺎ ت ﻣﻬﻤ ﺔ )"
اﻟ
log.txt
ﺘﺼﺤﻴﺢ
ﺗﺼﺤﻴﺢ :اﻟﺠﺬر :ﻣﻌﻠﻮﻣﺎ ت اﻟ
INFO: root: info Information
ﺘﺤﺬﻳﺮ
ﺗﺤﺬﻳﺮ :اﻟﺠﺬر :ﻣﻌﻠﻮﻣﺎ ت اﻟ
ﺧﻄﺄ :اﻟﺠﺬر :ﻣﻌﻠﻮﻣﺎ ت اﻟﺨﻄﺄ
195
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺑ ﺔ:
ﺘﺎ
ﻛﻴﻔﻴ ﺔﺗﻜﻮﻳﻦ ﻣﻠﻒ اﻟ ﺴﺠﻞ ﻓ ﻲ وﺿﻊ اﻟﻜ
ﺒﻴﺎﻧﺎ ت ،
ﺑ ﺔ ﻓﻮق اﻟﺑﺪﻻ ً ﻣﻦ إﻟﺤﺎﻗﻬﺎ إذا أردﻧﺎ اﻟﻜ
ﺘﺎ ﺘﺮاﺿ ﻲ.
ﺑﻤﻠﻒ اﻟ ﺴﺠﻞ .إﻟﺤﺎق ﻫﻮ اﻟﻮﺿﻊ اﻻﻓﺘﺮاﺿﻴ ﺔ
ﺒﻴﺎﻧﺎ ت اﻻﻓ
ﺘﻢ إﻟﺤﺎق اﻟ
ﺒﺮﻧﺎﻣﺞ أﻋﻼه ،ﺳﻴ
ﻓ ﻲ اﻟ
ﺘﺨﺪام ﺧﺎﺻﻴ ﺔ filemode.
ﻓﻌﻠﻴﻨﺎ اﺳ
ﻣﻠﺤﻮﻇ ﺔ:
test.py
196
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﺎج |
اﻧ
ﺗﺤﺬﻳﺮ :ﻣﻌﻠﻮﻣﺎ تﺗﺤﺬﻳﺮ
2018-06-15 11: 50: 08،325:
2018-06-15 11: 50: 08،372:ﺧﻄﺄ :ﻣﻌﻠﻮﻣﺎ ت اﻟﺨﻄﺄ
2018-06-15 11: 50: 08،372:ﺣ ﺴﺎﺳ ﺔ :ﻣﻌﻠﻮﻣﺎ ت ﺣﺮﺟ ﺔ
's:٪ (message) s'، datefmt = '٪ d /٪ m /٪ Y٪ I:٪ M:٪ S٪ p') datefmt = '٪ d /٪ m /٪ Y٪ I:٪ M:٪ S٪ p
)logging.basicConfig (format = '٪ (asctime) s:٪ (levelnameاﻟﺤﺎﻟ ﺔ ﻣﻬﻤ ﺔ
ﺘﺎج |
اﻧ
15/06/2018 12:04:31م:ﺗﺤﺬﻳﺮ :ﻣﻌﻠﻮﻣﺎ تﺗﺤﺬﻳﺮﻳ ﺔ
15/06/2018 12:04:31م :ﺧﻄﺄ :ﻣﻌﻠﻮﻣﺎ ت ﺧﻄﺄ
15/06/2018 12:04:31ﻣ ﺴﺎءً :ﺣ ﺴﺎﺳ ﺔ :ﻣﻌﻠﻮﻣﺎ ت ﺣﺮﺟ ﺔ
ﻣﻠﺤﻮﻇ ﺔ:
ﺗﻌﻨ ﻲ ﻣﻘﻴﺎس زﻣﻨ ﻲ 12ﺳﺎﻋ ﺔ
٪I
ﺗﻌﻨ ﻲ ﻣﻘﻴﺎس زﻣﻨ ﻲ 24ﺳﺎﻋ ﺔ
٪H
ﺜﺎلs:٪ (levelname) s:٪ (message) s'، datefmt = '٪ d /٪ m /٪ Y٪ H:٪ M:٪ S') :
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
)logging.basicConfig (format = '٪ (asctime
ﺘﺎج:
اﻧ
ﺗﺤﺬﻳﺮ :ﻣﻌﻠﻮﻣﺎ تﺗﺤﺬﻳﺮ
15/06/2018 12: 06: 28:
15/06/2018 12: 06: 28:ﺧﻄﺄ :ﻣﻌﻠﻮﻣﺎ ت ﺧﻄﺄ
15/06/2018 12: 06: 28:ﺣ ﺴﺎﺳ ﺔ :ﻣﻌﻠﻮﻣﺎ ت ﺣﺮﺟ ﺔ
logging.html#logrecord-attributes https://docs.python.org/3/library/time.html#time.strftime
https://docs.python.org/3/library/
197
،DURGASOFT،ﺣﻴﺪر أ
ﺑﺎد - 500038 ، ﺑﻴ ﺖ ﺘﺮ#
ﻳﻔﺎﻧﺎم ،أﻣﻴﺮ 202، ﺑﻖ 2 ،
ﻫﺪى ﻣﺎﻳ اﻟﻄﺎ
Machine Translated by Google
ﺘﻨ ﺴﻴﻖ
ﺘﻮى = logging.INFO ،اﻟ
ﺘ ﺴﺠﻴﻞ )2) logging.basicConfigاﺳﻢ اﻟﻤﻠﻒ = 'mylog.txt' ،اﻟﻤ ﺴ
ﺘﻴﺮاد اﻟ
)1اﺳ
= '٪ (asctime) s:
) s:٪ (message) s '، datefmt ='٪ d /٪ m /٪ Y٪ I:٪ M:٪ S٪ p ') 3) logging.info (' A new Request Came ') 4
)٪ (levelnameﺟﺮ بNumber:')) 6) y = int (input ('Enter Second Number:')) print ('The Result:'، x / y) 7) 8 ) 9) :
ﺑﺼﻔﺮ'( )(msg) 12) 13ﺜﻨﺎء ')ZeroDivisionError as msg: 10) printﻻﻳﻤﻜﻦ اﻟﻘ ﺴﻤ ﺔ
ﺘﺑﺎﺳ
5) x = int (input ('Enter First
')msg: 14) printاﻟﺮﺟﺎءﺗﻮﻓﻴﺮ ﻗﻴﻢ intﻓﻘﻂ'( "( 16) 17) logging.info ValueErrorﻛـ
اﻟﻄﻠ ﺐ"( ﺜﻨﺎءاﻛ
ﺘﻤﺎل ﻣﻌﺎﻟﺠ ﺔ ﺘ)15
ﺳ ﺑﺎ
11) logging.exception
logging.exception )(msg
198
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
mylog.txt
15/06/2018 12:30:51 PM: INFO:وﺻﻞ ﻃﻠ ﺐ ﺟﺪﻳﺪ
ﺘﻤﻠ ﺖ ﻣﻌﺎﻟﺠ ﺔ اﻟﻄﻠ ﺐ
15/06/2018 12:30:53ﻣ ﺴﺎءًINFO: :اﻛ
15/06/2018 12:30:55ﻣ ﺴﺎءًINFO: :وﺻﻞ ﻃﻠ ﺐ ﺟﺪﻳﺪ
ﺘﻤﻠ ﺖ ﻣﻌﺎﻟﺠ ﺔ اﻟﻄﻠ ﺐ
15/06/2018 12:31:00ﻣ ﺴﺎءًINFO: :اﻛ
15/06/2018 12:31:02م :ﻣﻌﻠﻮﻣﺎ ت :ﺟﺎء ﻃﻠ ﺐ ﺟﺪﻳﺪ
15/06/2018 12:31:05م :ﺧﻄﺄ :اﻟﻘ ﺴﻤ ﺔ ﻋﲆ ﺻﻔﺮ
)Tracebackأﺣﺪ ث ﻣﻜﺎﻟﻤ ﺔ أﺧﻴﺮة(:
ﻣﻠﻒ "test.py" ،اﻟ ﺴﻄﺮ 7 ،ﻓ ﻲ ><module
ﺘﻴﺠ ﺔ ، ":س /ص(
ﺒﺎﻋ ﺔ )"اﻟﻨ
ﻃ
ZeroDivisionError:اﻟﻘ ﺴﻤ ﺔ ﻋﲆ ﺻﻔﺮ
ﺘﻤﻠ ﺖ ﻣﻌﺎﻟﺠ ﺔ اﻟﻄﻠ ﺐ
15/06/2018 12:31:05ﻣ ﺴﺎءًINFO: :اﻛ
15/06/2018 12:31:06ﻣ ﺴﺎءًINFO: :ﺟﺎء ﻃﻠ ﺐ ﺟﺪﻳﺪ
ﺑﺎﻷﺳﺎس '10: 'ten
15/06/2018 12:31:10ﻣ ﺴﺎءً :ﺧﻄﺄ :ﺣﺮﻓ ﻲ ﻏﻴﺮ ﺻﺎﻟﺢ ﻟـ )( int
)Tracebackأﺣﺪ ث ﻣﻜﺎﻟﻤ ﺔ أﺧﻴﺮة(:
ﻣﻠﻒ "test.py" ،اﻟ ﺴﻄﺮ 5 ،ﻓ ﻲ ><module
')x = int (inputأدﺧﻞ اﻟﺮﻗﻢ اﻷول((':
ValueError:ﺣﺮﻓﻴ ﺔ ﻏﻴﺮ ﺻﺎﻟﺤ ﺔ ﻟـ )( intذا ت اﻷﺳﺎس '10: 'ten
ﺘﻤﻠ ﺖ ﻣﻌﺎﻟﺠ ﺔ اﻟﻄﻠ ﺐ
15/06/2018 12:31:10ﻣ ﺴﺎءًINFO: :اﻛ
ﺒ ﻲ:
ﺒﻴﻖﺗﺠﺮﻳ
ﺗﻄ
student.py:
test.py:
student.log:
INFO:اﻟﺠﺬر :رﺳﺎﻟ ﺔ ﻣﻌﻠﻮﻣﺎ ت ﻣﻦ وﺣﺪة اﻟﻄﺎﻟ ﺐ
199
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
ﺘﻘﺪم:
ﺘ ﺴﺠﻴﻞ اﻟﻤ
ﺧﻄﻮا ت اﻟ
ﺘﻮى اﻟ ﺴﺠﻞ.
ﺗﻌﻴﻴﻦ ﻣ ﺴ
)1إﻧﺸﺎء ﻛﺎﺋﻦ اﻟﻤ ﺴﺠﻞ و
)('demologger') logger.setLevel (logging.INFO
logger = logging.getLogger
ﺘﻮى اﻟ ﺴﺠﻞ.
ﺗﻌﻴﻴﻦ ﻣ ﺴ
)2إﻧﺸﺎء ﻛﺎﺋﻦ ﻣﻌﺎﻟﺞ و
ﺘﺤﻜﻢ.
ﺒﺎﻋ ﺔ رﺳﺎﺋﻞ اﻟ ﺴﺠﻞ ﻋﲆ وﺣﺪة اﻟ
ﺘﻢ ﻃ
ﺘﺘﺨﺪﻣﻨﺎ StreamHandler ،ﻓ ﺴ
ﻣﻼﺣﻈ ﺔ :إذا اﺳ
ﺘ ﺴﺠﻴﻞ .اﻟﻤﻨ ﺴﻖ )' -٪ (name) s -٪ (levelname) s:٪ (message) s' ، datefmt = '٪ d /٪ m /٪ Y٪ I:٪ M:٪ S٪ p
)4إﻧﺸﺎء ﻛﺎﺋﻦ ﻣﻨ ﺴﻖ .اﻟﻤﻨ ﺴﻖ =اﻟ
('٪ (asctime) s
ﺘﺤﻜﻢ(
)6إﺿﺎﻓ ﺔ ﻣﻌﺎﻟﺞ إﱃ اﻟﻤ ﺴﺠﻞ ) logger.addHandlerوﺣﺪة اﻟ
ﺘﺼﺤﻴﺢ'(
ﺘﺎﻟﻴ ﺔ ')logger.debugرﺳﺎﻟ ﺔ اﻟ
ﺘﺨﺪام ﻛﺎﺋﻦ اﻟﻤ ﺴﺠﻞ واﻷﺳﺎﻟﻴ ﺐ اﻟ
ﺑﺎﺳﺑ ﺔ اﻟﺮﺳﺎﺋﻞ
ﺘﺎ
)7ﻛ
')logger.infoرﺳﺎﻟ ﺔ اﻟﻤﻌﻠﻮﻣﺎ ت'(
200
،DURGASOFT،ﺣﻴﺪر أ
ﺑﺎد - 500038 ، ﺑﻴ ﺖ ﺘﺮ#
ﻳﻔﺎﻧﺎم ،أﻣﻴﺮ 202، ﺑﻖ 2 ،
ﻫﺪى ﻣﺎﻳ اﻟﻄﺎ
Machine Translated by Google
ﺗﻨﺎ.
ﺒﺎ
ﺘﻄﻠ
ﺑﻨﺎ ًء ﻋﲆ ﻣﺑﻨﺎﺘﻮى اﻟﺨﺎص
ﺘﻮى WARNING.وﻟﻜﻦﻳﻤﻜﻨﻨﺎﺗﺤﺪﻳﺪ اﻟﻤ ﺴ
ﺘﻢﺗﻌﻴﻴﻨﻪ ﻋﲆ ﻣ ﺴ
ﻣﻼﺣﻈ ﺔBydefault logger :ﺳﻴ
ﺘﻮى
ﺘﻮى اﻟﻤ ﺴﺠﻞ ،ﻓﻴﻤﻜﻨﻨﺎﺗﻌﻴﻴﻦ ﻣ ﺴ
ﺘﺤﻜﻢ وﻣﻌﺎﻟﺠﺎ ت اﻟﻤﻠﻔﺎ ت .إذا ﻟﻢ ﻧﻜﻦ راﺿﻴﻦ ﻋﻦ ﻣ ﺴ
ﺘﺮاﺿ ًﻴﺎ ﻟﻮﺣﺪة اﻟ
ﺘﻮىﺳﺠﻞ اﻟﻤ ﺴﺠﻞ اﻓ
ﺘﻮﻓﺮ ﻣ ﺴ
ﻳ
ﺘﻮﻳﺎ ت اﻟﻤﻠﻒ.
ﺘﺤﻜﻢ وﻣ ﺴ
ﺘﻮى وﺣﺪة اﻟ
ﺑﺸﻜﻞ ﺻﺮﻳﺢ ﻋﲆ ﻣ ﺴاﻟ ﺴﺠﻞ
ﺘﺤﻜﻢ )( = logging.StreamHandler
وﺣﺪة اﻟ
ﺗ ﺴﺠﻴﻞﺗﺤﺬﻳﺮ(
)consoleHandler.setLevel
ﺒﺎر INFO
ﺘﺘﻢ اﻋ
DEBUGﺻﺎﻟﺢ وﺳﻴ ﺘﺤﻜﻢ ﻓ ﻲ INFO
وﺣﺪة اﻟ ﺜﺎل :اﻟﻤ ﺴﺠﻞ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺘﺤﻜﻢ.
ﺒﺎر INFOﻓﻘﻂ ﻟﻮﺣﺪة اﻟ
ﺘﺘﻢ اﻋ
INFOﻏﻴﺮ ﺻﺎﻟﺢ وﺳﻴ ﺘﺤﻜﻢ DEBUG
وﺣﺪة اﻟ اﻟﻤ ﺴﺠﻞ
ﺘﺤﻜﻢ:
ﺒ ﻲ ﻟﻤﻌﺎﻟﺞ وﺣﺪة اﻟ
ﺑﺮﻧﺎﻣﺞﺗﺠﺮﻳ
ﺘﻴﺮاد )2ﻓﺌ ﺔ )= '٪ m /٪ d /٪ Y٪ I:٪ M:٪ S٪ p') 13) 14) 15
ﺗ ﺴﺠﻴﻞ اﻻﺳ
)1
5) 6) 7) 8) 9) 10) 11) ٪ (levelname) s:٪ (message) s '، 12) datefmt
LoggerDemoConsole: 3) 4) def testLog (self):
ﺘﺤﻜﻢ(
)consoleHandler.setFormatterاﻟﻤﻨ ﺴﻖ( اﻟﻤ ﺴﺠﻞ ) reldnaHdda.وﺣﺪة اﻟ
201
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
() ﺘﻮﺿﻴﺤ ﻲ
اﻟﻌﺮض اﻟ16) ("ﺘﺼﺤﻴﺢ
17) 18) 19) 20)
ﺳﺎﻟ ﺔ اﻟ 21) 22)
رlogger.debug ("
LoggerDemoConsole () 23)
Error (' ('ت demo.testLog
اﻟﻤﻌﻠﻮﻣﺎ رﺳﺎﻟ ﺔlogger.info ('
= logger.
logger.warn ('warn message')
('رﺳﺎﻟ ﺔ ﺣﺮﺟ ﺔlogger.critical (' ('رﺳﺎﻟ ﺔ ﺧﻄﺄ
D: \ durgaclasses> py loggingdemo3.py
رﺳﺎﻟ ﺔ ﻣﻌﻠﻮﻣﺎ ت- demologger - INFO: ﻣ ﺴﺎ ًء06/18/2018 12:14:15
رﺳﺎﻟ ﺔﺗﺤﺬﻳﺮ:ﺗﺤﺬﻳﺮ
- demologger - ﻣ ﺴﺎ ًء06/18/2018 12:14:15
رﺳﺎﻟ ﺔ ﺧﻄﺄ:ﺧﻄﺄ- demologger - ﻣ ﺴﺎ ًء06/18/2018 12:14:15
رﺳﺎﻟ ﺔ ﺣﺮﺟ ﺔ:ﺣﺮج- demologger - ﻣ ﺴﺎ ًء06/18/2018 12:14:15
:ﺗﺞ
ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔﻳﻜﻮن اﻟﻨﺎ
D: \ durgaclasses> py loggingdemo3.py
رﺳﺎﻟ ﺔ ﻣﻌﻠﻮﻣﺎ ت- LoggerDemoConsole - INFO: ﻣ ﺴﺎ ًء06/18/2018 12:21:00
رﺳﺎﻟ ﺔﺗﺤﺬﻳﺮ:ﺗﺤﺬﻳﺮ
- LoggerDemoConsole - ﻣ ﺴﺎ ًء06/18/2018 12:21:00
رﺳﺎﻟ ﺔ ﺧﻄﺄ:ﺧﻄﺄ- LoggerDemoConsole - ﻣ ﺴﺎ ًء06/18/2018 12:21:00
رﺳﺎﻟ ﺔ ﺣﺮﺟ ﺔ:ﺣﺮﺟ ﺔLoggerDemoConsole - ﺘﺤﻜﻢ
وﺣﺪة اﻟ- ﻣ ﺴﺎ ًء06/18/2018 12:21:00
ﺘﻮﺿﻴﺤ ﻲ )(
اﻟﻌﺮض)'اﻟ ﺗﺼﺤﻴﺢ )17) 18
logger.info )21ﺔ)19) 20 )22
)'رﺳﺎﻟ )23
logger.debug
= LoggerDemoConsole () 24) demo.testLog
') logger.warnرﺳﺎﻟ ﺔﺗﺤﺬﻳﺮ'( )'رﺳﺎﻟ ﺔ ﻣﻌﻠﻮﻣﺎ ت '(
'( logger.errornرﺳﺎﻟ ﺔ ﺧﻄﺄ'( '( logger.critical
رﺳﺎﻟ ﺔ ﺣﺮﺟ ﺔ'(
abc.log:
07/05/2018 08:58:04 AM - demologger - INFO: info message
ﺗﺤﺬﻳﺮ :رﺳﺎﻟ ﺔﺗﺤﺬﻳﺮ
07/05/2018 08:58:04 AM - demologger -
07/05/2018 08:58:04 AM - demologger -ﺧﻄﺄ :رﺳﺎﻟ ﺔ ﺧﻄﺄ
07/05/2018 08:58:04 AM - demologger -ﺣﺮﺟ ﺔ :رﺳﺎﻟ ﺔ ﺣﺮﺟ ﺔ
ﺘﻜﻮﻳﻦ:
اﻟﻤ ﺴﺠﻞ ﻣﻊ ﻣﻠﻒ اﻟ
ﺘﻜﻮﻳﻦ
ﺑ ﺔ داﺧﻞ ﻣﻠﻒ اﻟ
ﺘﻬﻴﺌ ﺔ ﺟﻤﻴﻊ اﻷﺷﻴﺎء اﻟﻤﻄﻠﻮ
ﺑﺑﺮﻣﺠ ﺔ ﺟﻴﺪة.ﺳﻨﻘﻮمﺜﻮن .إﻧﻬﺎ ﻟﻴ ﺴ ﺖ ﻣﻤﺎرﺳ ﺔ
ﺑﺎﻳﺘﺮﻣﻴﺰه ﻓ ﻲ ﻧﺺ
ﺑﺒﺮﻧﺎﻣﺞ أﻋﻼه ،ﻛﻞ ﺷ ﻲء ﻗﻤﻨﺎ
ﻓ ﻲ اﻟ
ﺑﺮﻧﺎﻣﺠﻨﺎ.ﺒﺎﺷﺮة ﻓ ﻲ
ﺘﺨﺪام ﻫﺬا اﻟﻤﻠﻒ ﻣ
وﻳﻤﻜﻨﻨﺎ اﺳ
)'logging.config.fileConfig ('logging.conf
)__logger = logging.getLogger (LoggerDemoConf .__ name
logging.conf
ﺑﻴﻦ[
]اﻟﺤﻄﺎ
ﺗﻴﺢ =اﻟﺠﺬر LoggerDemoConf ،
ﻣﻔﺎ
]ﻣﻌﺎﻟﺠﺎ ت[
ﺗﻴﺢ = fileHandler
ﻣﻔﺎ
]اﻟﻤﻨ ﺴﻘﻮن[
ﺑ ﺴﻴﻂﺗﻨ ﺴﻴﻖ
ﺗﻴﺢ =
ﻣﻔﺎ
][logger_root
ﺗﺼﺤﻴﺢ
ﺘﻮى =
اﻟﻤ ﺴ
ﻣﻌﺎﻟﺠﺎ ت = fileHandler
][logger_LoggerDemoConf
ﺗﺼﺤﻴﺢ
ﺘﻮى =
اﻟﻤ ﺴ
ﻣﻌﺎﻟﺠﺎ ت = fileHandler
Qualname = demoLogger
203
ﺑﺎد - 500038 ،
ﺑﻴ ﺖ ،ﺣﻴﺪر أ
ﺘﺮﻳﻔﺎﻧﺎم ،أﻣﻴﺮ
ﺑﻖ ،ﻫﺪى ﻣﺎﻳ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
[handler_fileHandler]
= FileHandler ﻓﺌ ﺔ
ﺗﺼﺤﻴﺢ
= ﺘﻮى
اﻟﻤ ﺴ
ﺑ ﺴﻴﻂﺗﻨ ﺴﻴﻖ
= اﻟﻤﻨ ﺴﻖ
args = ('test.log'، 'w')
[ﺒ ﺴﻴﻂ
]ﻣﻨ ﺴﻖ_اﻟ
=٪ (asctime) s -٪ (name) s -٪ (levelname) s -٪ (message) s ﺘﻨ ﺴﻴﻖ
اﻟ
datefmt =٪ m /٪ d /٪ Y٪ I:٪ M:٪ S٪ p
test.py
test.log
ﺘﺼﺤﻴﺢ
رﺳﺎﻟ ﺔ اﻟ06/18/2018 12:40:05 PM - LoggerDemoConf - DEBUG -
رﺳﺎﻟ ﺔ ﻣﻌﻠﻮﻣﺎ ت- LoggerDemoConf - INFO - ﻣ ﺴﺎ ًء06/18/2018 12:40:05
رﺳﺎﻟ ﺔﺗﺤﺬﻳﺮ- ﺗﺤﺬﻳﺮ
06/18/2018 12:40:05 PM - LoggerDemoConf -
رﺳﺎﻟ ﺔ ﺧﻄﺄ- ﺧﻄﺄ- LoggerDemoConf - م06/18/2018 12:40:05
ﺣﺮﺟ ﺔ- رﺳﺎﻟ ﺔ ﺣﺮﺟ ﺔ06/18/2018 12:40:05 PM - LoggerDemoConf -
[handler_fileHandler]
= FileHandler ﻓﺌ ﺔ
= INFO ﺘﻮى
اﻟﻤ ﺴ
ﺑ ﺴﻴﻂﺗﻨ ﺴﻴﻖ
= اﻟﻤﻨ ﺴﻖ
args = ('test.log'، 'w')
204
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
[handler_fileHandler]
= FileHandler ﻓﺌ ﺔ
= INFO ﺘﻮى
اﻟﻤ ﺴ
ﺑ ﺴﻴﻂﺗﻨ ﺴﻴﻖ
= اﻟﻤﻨ ﺴﻖ
args = ('test.log'، 'a')
customlogger.py
4) :(ﺘﻮى
)اﻟﻤ ﺴ3) def getCustomLogger ﺘﻴﺮاد
ﻓﺤﺺ اﻻﺳ2) ﺘﻴﺮاد
ﺗ ﺴﺠﻴﻞ اﻻﺳ
1)
logger.setLevel اﻟﻄﺮﻳﻘ ﺔ ﻣﻦ ﺣﻴ ﺚﺗ ﺴﻤﻰ ﻫﺬه اﻟﻄﺮﻳﻘ ﺔ/ اﺣﺼﻞ ﻋﲆ اﺳﻢ اﻟﻔﺌ ﺔ#
= inspect.stack () [1] [3] 6) logger = logging.getLogger (loggername) 7)
('abc.log'، mode = 'a') 10) fileHandler.setLevel (ﺘﻮى
)اﻟﻤ ﺴ5) loggername
s -٪ (name) s - اﻟﻤﻨ ﺴﻖ11) 12) (ﺘﻮى
)اﻟﻤ ﺴ8) 9) fileHandler = logging.FileHandler
= logging.Formatter ('٪ (asctime)
test.py
message') 7) ﺘﻴﺮاد
اﺳCustomlogger ﻣﻦ2) ﺘ ﺴﺠﻴﻞ
ﺘﻴﺮاد اﻟ
اﺳ1)
(logging.DEBUG) 6) logger.debug ('m1: debug
LoggingDemo: 4) def m1 (self): 5) logger = getCustomLogger
getCustomLogger (logging. .اﻟﻤ ﺴﺠﻞgetCustomLogger 3) class
('m1 :itical message')
9) logger.error ('m1: error11) def m2 (self):
message') 12) logger =
10) logger.critical
('m1: info message') 8) logger.warn ('m1: warn message')
(ﺗﺤﺬﻳﺮ
info
logger.warn
debug ('m2:14)
message') warn message')
logger.info 16)info
('m2: logger.error
message')('m2:
15)
17)logger.debug
20) logger.critical(' ('m3:
m2:debug
ﺳﺎﻟ ﺔ ﺧﻄﺄر13) logger.debug
message ') 21) '( ﺔ ﺣﺮﺟ ﺔm2:
)'رﺳﺎﻟ
(self):
28) 19)
l.m1logger = getCustomLogger
() 29) l.m2 (logging.ERROR)
() 30) l.m3 () .ﺴﺠﻞ )'اﻟﻤ18) def m3
l = LoggingDemo
message') () 27) print
24) logger.critical ("Custom
('m3 Logger Demo")
:itical message') 25) 26)
('m3: warn
infomessage')
('m3: info 23) logger.error
message') ('m3: error
22) logger.warn
abc.log:
ﺘﺼﺤﻴﺢ
رﺳﺎﻟ ﺔ اﻟ- m1 - DEBUG: m1: ﻣ ﺴﺎ ًء06/19/2018 12:17:19
رﺳﺎﻟ ﺔ ﻣﻌﻠﻮﻣﺎ ت- m1 - INFO: m1: ﻣ ﺴﺎ ًء06/19/2018 12:17:19
رﺳﺎﻟ ﺔﺗﺤﺬﻳﺮm1: :ﺗﺤﺬﻳﺮ
- m1 - ﻣ ﺴﺎ ًء06/19/2018 12:17:19
رﺳﺎﻟ ﺔ ﺧﻄﺄm1: :ﺧﻄﺄ- m1 - ﻣ ﺴﺎ ًء06/19/2018 12:17:19
رﺳﺎﻟ ﺔ ﺣﺮﺟ ﺔm1: :ﺣﺮج- m1 - ﻣ ﺴﺎ ًء06/19/2018 12:17:19
رﺳﺎﻟ ﺔﺗﺤﺬﻳﺮm2: :ﺗﺤﺬﻳﺮ
- ﺑﻊ
ﺘﺮ ﻣﺮ
ﻣ- ﻣ ﺴﺎ ًء06/19/2018 12:17:19
رﺳﺎﻟ ﺔ ﺧﻄﺄm2: :ﺧﻄﺄ- m2 - ﻣ ﺴﺎ ًء2018/06/19 12:17:19
رﺳﺎﻟ ﺔ ﺣﺮﺟ ﺔ:ﺑﻊ
ﺘﺮ ﻣﺮ
ﻣ:ﺣﺮج- ﺑﻊ
ﺘﺮ ﻣﺮ
ﻣ- ﻣ ﺴﺎ ًء06/19/2018 12:17:19
رﺳﺎﻟ ﺔ ﺧﻄﺄm3: :ﺧﻄﺄ- m3 - ﻣ ﺴﺎ ًء06/19/2018 12:17:19
رﺳﺎﻟ ﺔ ﺣﺮﺟ ﺔm3: :ﺣﺮج- m3 - ﻣ ﺴﺎ ًء06/19/2018 12:17:19
:ﺘﺼﻞ
ﺑﻨﺎ ًء ﻋﲆ اﻟﻤﻛﻴﻔﻴ ﺔ إﻧﺸﺎء ﻣﻠﻒﺳﺠﻞ ﻣﻨﻔﺼﻞ
6) logger.setLevel :(ﺘﻮى
)اﻟﻤ ﺴ3) def getCustomLogger ﺘﻴﺮاد
ﻓﺤﺺ اﻻﺳ2) ﺘ ﺴﺠﻴﻞ
ﺘﻴﺮاد اﻟ
اﺳ1)
4) loggername = inspect.stack () [1] [3] 5) logger = logging.getLogger (loggername)
('{}. log'.format (loggername) ، mode =' a ') 9) fileHandler.setLevel (ﺘﻮى
)اﻟﻤ ﺴ
10) (ﺘﻮى
)اﻟﻤ ﺴ7 ) 8) fileHandler = logging.FileHandler
206
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
test.py:
ﺑﻖ
ﻛﺎﻟ ﺴﺎ#
message') 7) ﺘﻴﺮاد
اﺳCustomlogger ﻣﻦ2) ﺘ ﺴﺠﻴﻞ
ﺘﻴﺮاد اﻟ
اﺳ1)
(logging.DEBUG) 6) logger.debug ('m1: debug
LoggingDemo: 4) def m1 (self): 5) logger = getCustomLogger
') 17) logger.critical (' m2: .اﻟﻤ ﺴﺠﻞgetCustomLogger 3) class
('m2 : warn
message') 14) message ') 16)
logger.info logger.error
('m2: (' m2:15)
info message') error message
logger.warn
(logging.WARNING)
message') 13)logger
11) def m2 (self): 12) logger.debug ('m2: debug
= getCustomLogger
logger.error
('m1: info ('m1: error 8)
message') message') 10) logger.critical
logger.warn ('m1 :itical
('m1: warn message') 9)
('m3: error message') ) ('m3:
22) logger.warn 24) logger.critical
warn message')('m3:
23)ﺣﺮﺟ ﺔ رﺳﺎﻟ ﺔinfo
logger.error
('m3: debug message') 21)
= getCustomLogger logger.info ('m3:
(logging.ERROR) 20 )info message')
logger.debug
LoggingDemo
() 30) (')( ﻣﻨﻔﺼﻞ
ﺳﺠﻞ27) ﻣﻠﻒ
('ﺣﺮﺟ ﺔ ﺳﺎﻟ ﺔ
ﺘﺨﺪام ﺳﺑﺎر
') ﺴﺠﻴﻞ
18) def m3 (self):
)'ﻋﺮضﺗ ﻃ19)
ﺒﺎﻋ ﺔ 25)logger
26) l =
m3 () .ﺘﺮ
ﻟ28) l.m1 () 29) l.m2
m1.log
ﺘﺼﺤﻴﺢ
رﺳﺎﻟ ﺔ اﻟm1: :ﺗﺼﺤﻴﺢ
- m1 - ﻣ ﺴﺎ ًء06/19/2018 12:26:04
رﺳﺎﻟ ﺔ ﻣﻌﻠﻮﻣﺎ ت- m1 - INFO: m1: ﻣ ﺴﺎ ًء06/19/2018 12:26:04
رﺳﺎﻟ ﺔﺗﺤﺬﻳﺮm1: :ﺗﺤﺬﻳﺮ
- m1 - م06/19/2018 12:26:04
207
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
m2.log
رﺳﺎﻟ ﺔﺗﺤﺬﻳﺮ2: م:ﺗﺤﺬﻳﺮ
- م- م2018/06/19 12:26:04
رﺳﺎﻟ ﺔ ﺧﻄﺄm2: :ﺧﻄﺄ- m2 - ﻣ ﺴﺎ ًء2018/06/19 12:26:04
رﺳﺎﻟ ﺔ ﺣﺮﺟ ﺔm2: :ﺣﺮج- m2 - ﻣ ﺴﺎ ًء06/19/2018 12:26:04
m3.log
رﺳﺎﻟ ﺔ ﺧﻄﺄm3: :ﺧﻄﺄ- m3 - ﻣ ﺴﺎ ًء06/19/2018 12:26:04
رﺳﺎﻟ ﺔ ﺣﺮﺟ ﺔ3: م:ﺣﺮج3 - م- م06/19/2018 12:26:04
customlogger.py:
:(ﺘﻮى
)اﻟﻤ ﺴ3) def getCustomLogger ﺘﻴﺮاد
ﻓﺤﺺ اﻻﺳ2) ﺘ ﺴﺠﻴﻞ
ﺘﻴﺮاد اﻟ
اﺳ1)
() [1] [3] 5) 6) logger = logging.getLogger (loggername) 7) logger.setLevel
mode = 'a') 9) fileHandler.setLevel ( ﺘﻮى
)ﻣ ﺴ4) loggername = inspect.stack
(name) s - اﻟﻤﻨ ﺴﻖ10) (ﺘﻮى
)اﻟﻤ ﺴ8) fileHandler = logging.FileHandler ('test.log'،
= logging.Formatter ('٪ (asctime) s -٪
test.py
208
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com
Machine Translated by Google
student.py:
(logging.CRITICAL) :ﺘﺎﻟ ﻲ
ﺘ ﺴﺠﻴﻞ ﻋﲆ اﻟﻨﺤﻮ اﻟ
ﺋ ﻲ ﻣﻦ اﻟ
ﺘﻮى ﺟﺰ
ﻳﻤﻜﻨﻨﺎﺗﻌﻄﻴﻞ ﻣ ﺴ:ﻣﻼﺣﻈ ﺔ
logging.disable
209
- 500038 ، ﺑﺎد
ﺣﻴﺪر أ، ﺑﻴ ﺖ
أﻣﻴﺮ، ﺘﺮﻳﻔﺎﻧﺎم
ﻫﺪى ﻣﺎﻳ، ﺑﻖ
اﻟﻄﺎ
040-64 51 27 86 ، 80 96 96 96 96 ، 92 46 21 21 43 | www.durgasoft.com