Professional Documents
Culture Documents
Arabic 1
Arabic 1
ﺛﻮنﺑﻲ
ﺜﻔ ﺔ
ﺣﻠﻘ ﺔ دراﺳﻴ ﺔ ﻣﻜ
و ﻋﲆ اﻟﻤﺸﺮوع
ﻳﺪيﻋﲆ
ﻗﺎﺋﻢ
اﻷ
ﺒﺮﻣﺠ ﺔ
ﻣﻘﺪﻣ ﺔ ﻓ ﻲ اﻟ
ﺗﻴ ﺲ
إﻳﺮﻳﻚ ﻣﺎ
Machine Translated by Google
ﺜﻮن ﻛﺮا ش
ﺑﺎﻳدورة
Machine Translated by Google
Machine Translated by Google
ﺜﻮن
فﻳ
ﺜﻔ ﺔ
ﺣﻠﻘ ﺔ دراﺳﻴ ﺔ ﻣﻜ
و ﻋﻤﻠ ﻲ
P roject ﺐ- B ﺗﺪرﻳ
ased
ﺒﺮﻣﺠ ﺔ
ﻣﻘﺪﻣ ﺔ ﻓ ﻲ اﻟ
ﺗﻴ ﺲ
ﺑﻮاﺳﻄ ﺔ ارﻳﻚ ﻣﺎ
ﺘ ﺴﺠﻴﻞ أو ﻋﻦ
ﺘﺼﻮﻳﺮ أو اﻟ
ﺑﻤﺎ ﻓ ﻲ ذﻟﻚ اﻟﺘﺮوﻧﻴ ﺔ أو ﻣﻴﻜﺎﻧﻴﻜﻴ ﺔ ،
ﺑﺄي وﺳﻴﻠ ﺔ ،إﻟﻜﺑﺄي ﺷﻜﻞ أوﺘﺎج أي ﺟﺰء ﻣﻦ ﻫﺬا اﻟﻌﻤﻞ أو ﻧﻘﻠﻪ
ﻛﻞ اﻟﺤﻘﻮق ﻣﺤﻔﻮﻇ ﺔ .ﻻﻳﺠﻮز إﻋﺎدة إﻧ
ﺒﻖ ﻣﻦ ﻣﺎﻟﻚ ﺣﻘﻮق اﻟﻨﺸﺮ واﻟﻨﺎﺷﺮ.
ﺑ ﻲ ﻣﺴ
ﺘﺎ
ﺘﺮﺟﺎﻋﻬﺎ ،دون اﻟﺤﺼﻮل ﻋﲆ إذن ﻛ
ﺘﺨﺰﻳﻦ اﻟﻤﻌﻠﻮﻣﺎ ت أو اﺳ
ﻃﺮﻳﻖ أي ﻧﻈﺎم ﻟ
ﺒﺎﻋ ﺔ
أول ﻃ
ﺑﻮﻟﻮكاﻟﻨﺎﺷﺮ :وﻟﻴﺎم
ﺒﺎﺷﺮة:
ﺑـ No Starch Press، Inc.ﻣﺗﺼﺎل
ﺑﺎﻟﺠﻤﻠ ﺔ ،ﻳﺮﺟﻰ اﻻﺒﻴﻌﺎ ت
ﺘﺮﺟﻤ ﺔ أو اﻟﻤ
ﺘﻮزﻳﻊ أو اﻟ
ﻟﻠﺤﺼﻮل ﻋﲆ ﻣﻌﻠﻮﻣﺎ ت ﺣﻮل اﻟ
ﺗﻴ ﺲ.
ﺑﻘﻠﻢ إرﻳﻚ ﻣﺎﺒﺮﻣﺠ ﺔ /
ﺜﻮن :ﻣﻘﺪﻣ ﺔ ﻋﻤﻠﻴ ﺔ ﻗﺎﺋﻤ ﺔ ﻋﲆ اﻟﻤﺸﺮوع ﻟﻠ
ﺑﺎﻳﺜﻔ ﺔ ﻓ ﻲ
دورة ﻣﻜ
ﺻﻔﺤﺎ تﺳﻢ
ﻳﺸﻤﻞ اﻟﻔﻬﺮس.
ﺛ ﺔ ﻣﺸﺎرﻳﻊ -ﻛﻴﻔﻴ ﺔ
ﺛﻼﺘﻀﻤﻦ
ﺗﺒﺮﻣﺠ ﺔ اﻟﻌﺎﻣ ﺔ وأﺳﺎﺳﻴﺎ ت Pythonوﺣﻞ اﻟﻤﺸﻜﻼ ت .و
ﺒﺮﻣﺠ ﺔ ﻓ ﻲ Python ،ﻣﻊﺗﻤﺎرﻳﻦ.ﺗﻐﻄ ﻲ ﻣﻔﺎ ﻫﻴﻢ اﻟ
اﻟﻤﻠﺨﺺ" :ﻣﻘﺪﻣ ﺔ ﻗﺎﺋﻤ ﺔ ﻋﲆ اﻟﻤﺸﺮوع ﻟﻠ
ﺒﻴﻖ وﻳ ﺐﺗﻔﺎﻋﻠ ﻲ "-ﻳﻮﻓﺮه اﻟﻨﺎﺷﺮ.
ﺑﻨﺎءﺗﻄ
ﺒﻴﺎﻧﻴ ﺔ واﻟﻤﺨﻄﻄﺎ ت ،و
ﺒﻴﺎﻧﺎ ت ﻟﻌﻤﻞ اﻟﺮﺳﻮم اﻟ
ﺘﺨﺪامﺗﻘﻨﻴﺎ تﺗﺼﻮر اﻟ
ﺑ ﺴﻴﻄ ﺔ ،واﺳﺒ ﺔ ﻓﻴﺪﻳﻮ
إﻧﺸﺎء ﻟﻌ
ﺗﺮ( I.اﻟﻌﻨﻮان.
ﺒﻴﻮ
ﺑﺮﻧﺎﻣﺞ اﻟﻜﻤ)1. Pythonﻟﻐ ﺔ
QA76.73.P98M38 2015
005.13'3 -دس 23
2015018135
ﻋﻦ اﻟﻤﺆﻟﻒ
ﺘﺪرﻳ ﺲ دورةﺗﻤﻬﻴﺪﻳ ﺔ ﻓ ﻲ
ﺑﺛﺎﻧﻮﻳ ﺔﻳﻌﻴ ﺶ ﻓ ﻲ أﻻﺳﻜﺎ ،ﺣﻴ ﺚﻳﻘﻮمﺗﻴ ﺲ ﻫﻮ ﻣﺪرس ﻋﻠﻮم ورﻳﺎﺿﻴﺎ ت ﻓ ﻲ ﻣﺪرﺳ ﺔ
إرﻳﻚ ﻣﺎ
ﺘﻲ
ﺒﺮﻣﺠﻴ ﺔ اﻟ
ﺑ ﺔ اﻷدوا ت اﻟ
ﺘﺎ
ﺒﺮاﻣﺞ ﻣﻨﺬ أن ﻛﺎن ﻋﻤﺮه ﺧﻤ ﺲﺳﻨﻮا ت.ﻳﺮﻛﺰ إرﻳﻚ ﺣﺎﻟ ًﻴﺎ ﻋﲆ ﻛ
ﺘ ﺐ اﻟ
ﺜﻮن .ﻛﺎنﻳﻜ
ﺑﺎﻳﻟﻐ ﺔ
ﺘﻊ ﻓ ﻲ أوﻗﺎ ت ﻓﺮاﻏﻪ
ﺘﻤﺘﻌﻠﻴﻢ.ﻳ ﺴ
ﺘﻮﺣ ﺔ اﻟﻤﺼﺪر إﱃ ﻣﺠﺎل اﻟ
ﺒﺮاﻣﺞ ﻣﻔ
ﺗﺠﻠ ﺐ ﻓﻮاﺋﺪ اﻟ
ﺘﻌﻠﻴﻢ و
ﺗﻌﺎﻟﺞ أوﺟﻪ اﻟﻘﺼﻮر ﻓ ﻲ اﻟ
ﺗﻪ.
ﺒﺎل وﻗﻀﺎء اﻟﻮﻗ ﺖ ﻣﻊ أﺳﺮ
ﺘ ﺴﻠﻖ اﻟﺠ
ﺑ
ﺘ ﻲ ﺣﻮل
ﺑ ﺔ ﻋﲆ أﺳﺌﻠ
ﺋﻤﺎ ﻟﻺﺟﺎ
ﺑ ﻲ ،اﻟﺬي ﻛﺎنﻳﺨﺼﺺ اﻟﻮﻗ ﺖ دا ً
ﻷ
ﺘﻪ ﻋﻠ ﻲ
ﺘﻮ ﻓ ﻲ ﻃﺮح أﺳﺌﻠ
ﺑﺪأ ﻟﻠﺑﺪ ،اﻟﺬي
ﺒﺮﻣﺠ ﺔ ،وإﱃ اﻷ
اﻟ
Machine Translated by Google
Machine Translated by Google
ﺘﻮﻳﺎ ت ﻗﺼﻴﺮة
ﻣﺤ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ﺷﻜﺮ و
ﺗﻘﺪﻳﺮ. . ﺑﻊ واﻟﻌﺸﺮون
. .اﻟ ﺴﺎ
ﻣﻘﺪﻣ.ﺔ . ..
. .. .. .. . .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. . ﺘﺎﺳﻊ واﻟﻌﺸﺮون
اﻟ
1
اﻟﺠﺰء اﻷول :اﻷﺳﺎﺳﻴﺎ ت. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟﻌﻤﻞ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
اﻟﺸﺮوع .ﻓ .ﻲ . . .
اﻟﻔﺼﻞ. . . .1:. .
..3
ﺋﻢ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟﻘﻮا .
ﻳﻢ . . .
ﺗﻘﺪ .
اﻟﻔﺼﻞ. .3:. .
. 37
ﺋﻒ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
وﻇﺎ. .
اﻟﻔﺼﻞ . .8:.
. 133
اﻟﻔﺼﻮل. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .
اﻟﻔﺼﻞ . . . . .9:.
. 161
ﺑﻚ. . . . . . . . . . . . . . . . . . . . . ..
اﻟﺨﺎﺻ.ﺔ. .
ﺒﺮﻣﺠﻴ .ﺔ . .
ﺘﻌﻠﻴﻤﺎ .ت. .اﻟ . .
ﺒﺎر اﻟ. . .
ﺘ. .
.11:اﺧ
اﻟﻔﺼﻞ .
. 215
ﺒﻲ
اﻟﻤﺸﺮوع 1:ﻏﺰو أﺟﻨ
ﺘ .. .
ﺴﺠﻴﻞ. . .14:اﻟ.
اﻟﻔﺼﻞ . .
.. .. .. . .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. . 291
Machine Translated by Google
ﺒﻴﺎﻧﺎ ت
ﺗﺼﻮر اﻟ
اﻟﻤﺸﺮوع 2:
ﺒﻴﻘﺎ ت اﻟﻮﻳ ﺐ
ﺗﻄاﻟﻤﺸﺮوع 3:
. . . . . . . . . . . . . . . . . . . . .Django.
ﻣﻊ . . . . .
ﺒﺪء . .
.18:اﻟ. .
اﻟﻔﺼﻞ . .
. 397
ﺘﺨﺪﻣﻴﻦ. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟﻤ .ﺴ . . . .
ﺑﺎ .ت. .
ﻋﺸﺮ. .:ﺣ .
ﺴﺎ ﺳﻊ . .
اﻟﻔﺼﻞ اﻟﺘﺎ. .
. 427
وﻧﺸﺮه. . . . . . . . . . . . . . .. .
ﺒﻴﻖ . . . .
ﺘﻄ . .
ﺗﺼﻤﻴﻢ .اﻟ. .
. . . .20:
اﻟﻔﺼﻞ . .
. 455
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ﺧﺎ
ﺗﻤ ﺔ. . 483
ﺜﻮن.
ﺑﺎﻳﺒﻴ. .ﺖ
ﺗ.
ﺜ اﻟﻤﻠﺤﻖ .أ.:
. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. .. .. . 485
ﻣﺤﺮري .
اﻟﻨﺼﻮص. . اﻟﻤﻠﺤﻖ. .ب. . . . .:
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
ج. . . . . :
اﻟﺤﺼﻮل ﻋﲆ اﻟﻤ ﺴﺎﻋﺪة. اﻟﻤﻠﺤﻖ. .
. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. .. .. . 499
ﺘﻮﻳﺎ ت ﻣﻮﺟﺰة
xﻣﺤ
Machine Translated by Google
ﺗﻘﺪﻳﺮ
ﺷﻜﺮ و ﺑﻊ واﻟﻌﺸﺮون
اﻟ ﺴﺎ
اﻟﻜ .
ﺘﺎ ب؟ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx
ﻟﻤﻦ . .ﻫﺬا. .
ﺘﻌﻠﻢ؟ . ﺘﻮﻗﻊ أنﺗ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxﻣﺎذاﺗ
ﺜﻮن؟ . . . . . .. .
ﺑﺎﻳ . . .
ﻟﻤﺎذا. .
.. .. .. .. . .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. ﺛﻴﻦ
ﺜﻼاﻟﺤﺎدي واﻟ
1
ﺑﺪء
ا 3
ﺑﻚ 3 .................................ﺒﺮﻣﺠ ﺔ اﻟﺨﺎﺻ ﺔ ﺑﻴﺌ ﺔ اﻟإﻋﺪاد
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. ﺜﻮن . . .4.
ﺑﺎﻳ . .
ﺜﻮن.2 .و.
ﺑﺎﻳ .
ﺜﻮن. . . . . . . . . . . . . . . . .4 .
ﺑﺎﻳ. . .
ﻛﻮد .
ﺘﻄﻔﺎ .ت .ﻣﻦ. . .
ﻣﻘ. . .
ﺗﺸﻐﻴﻞ .
..
ﺑﺎﻟﻌﺎﻟﻢ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 .
ﺒﺎ . . . .
ﻣﺮﺣ .
ﺔ. . . . . . . . . . . . . . . . . . . .
ﺘﻠﻔ. .
ﻣﺨ.
ﺗﺸﻐﻴﻞ. .
أﻧﻈﻤ ﺔ. . . .
ﻋﲆ. . .
ﺜﻮن .
5ﻳ. .
ﺑﺎ
ﻟﻴﻨﻜ . .ﺲ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .
ﻋﲆ . .
ﺜﻮن . .
ﺑﺎﻳ. .
5
. . . . . . . . . . . . . . . . . . . . . . . . .Windows.
ﻋﲆ. . . . . .
. OS
. . .X .Python
ﻋﲆ. . . . .
. .Python
..8
.. .. .. .. . .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. . 10
وإﺻﻼﺣﻬﺎ. . . . . . . . . . . . . . . . . . . .. .
ﺖ. . . . .
ﺒﻴ. .
ﺜﺘ.
ﻣﺸﻜﻼ. .ت .اﻟ
ﺘﻜﺸﺎف. . .
. . 15
اﺳ
ﻃﺮﻓﻴ. .ﺔ. . . . . . . . . . . . . . . . .
ﻣﺤﻄ ﺔ . .
ﻣﻦ . . .
ﺜﻮن . .
ﺑﺎﻳ . .
ﺑﺮاﻣﺞ. .
ﺗﺸﻐﻴﻞ . .
. 16
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OS . . X.
Linuxو. . 16. .
.. ﻋﲆ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Windows.
ﻋﲆ ﻧﻈﺎم. . . . . . .. 16. .
ﺘﻤﺮﻳﻦ 1-1: python.org. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
اﻟ
ﺒﻌﻴ ﺔ17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺘﻤﺮﻳﻦ 1-2: Hello Worldاﻷﺧﻄﺎء اﻟﻤﻄ اﻟ
ﺘﻤﺮﻳﻦ 1-3:ﻣﻬﺎرا ت ﻻ ﻧﻬﺎﺋﻴ ﺔ17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
ﻣﻠﺨﺺ . . .. .. .
2
ﺒ ﺴﻴﻄ ﺔ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺘﻐﻴﺮا ت وأﻧﻮاع اﻟ
اﻟﻤ 19
. . . hello_world.py.
ﺗﺸﻐﻴﻞ. . . . . . . . . . . .
ﻋﻨﺪ . . .
ﻳﺤﺪ ث. .ﺣ ًﻘﺎ. . .
. 19
ﻣﺎ
ﺘﻐﻴﺮا .ت. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 20
اﻟﻤ
ﺘﻐﻴﺮا. .ت. . . . . . . . . . . . . . . . . . . . . . .. ﺘﺨﺪام. .اﻟﻤ . .
ﺳ .. ﺗ21
ﺴﻤﻴ ﺔ .وا. .
ت. . .
ﺘﻐﻴﺮا . .
اﻟﻤ . .
ﺘﺨﺪام . .
ﺳ. . .
ﻋﻨﺪ .ا .
ﺳﻤﺎء . .
ﻷ .. 21ﺐ . . .
أﺧﻄﺎء .ا . ﺗﺠﻨ
ﺑ ﺴﻴﻄ ﺔ23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ﺘﻤﺮﻳﻦ 2-1:رﺳﺎﻟ ﺔ
اﻟ
ﺒ ﺴﻴﻄ ﺔ23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺘﻤﺮﻳﻦ 2-2:اﻟﺮﺳﺎﺋﻞ اﻟاﻟ
ﺳﻞ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ﺳﻼ .
23
ﺐ. . . . . . . . . . ..
ﺳﺎﻟﻴ .
ﻷ. . .ﻣﻊ ا.
ﺳﻠ.ﺴﻠ .ﺔ. .
اﻟﺤﺎﻟ.ﺔ ﻓ. .ﻲ . 24
ﺗﻐﻴﻴﺮ . .
. . . . . . . . . . . . . . . . . 25ﺳﻞ. . . ..
ﺴﻼ. .ﺴﻞ اﻟ. .
ﺴﻠ . .
دﻣﺞ أوﺗ . .
ﺳ.
ﺘﺨﺪام ﻋﻼﻣﺎ ت اﻟﺠﺪوﻟ ﺔ أو اﻷﺳﻄﺮ اﻟﺠﺪﻳﺪة26 . . .ﺑﺎ .
ﺳﻞ.
ﺴﻼ. . إﱃ اﻟ. .ﺑﻴﻀﺎء . .
ﺴﺎﻓ ﺔ. . . .
إﺿﺎﻓ ﺔ ﻣ . .
ﺒﻴﻀﺎء. . . . . . . . . . . . . . . . . . . . . . . . . .26. .. . ..
ﺴﺎﻓﺎ .ت .اﻟ. . .
ﺗﺠﺮﻳﺪ اﻟﻤ. . .
ﺳﻞ. . . . . . . . . . . . . 28. .. . ..
ﺴﻼ . .
ﺑﺎﻟ . .
اﻟﻨﺤﻮﻳ .ﺔ .
ﻷﺧﻄﺎء. . .
ﺗﺠﻨ ﺐ ا . . .
ﺜﻮن . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.. .29. ﻳ. .ﺑﺎ.ﺒﺎﻋ ﺔ ﻓ. .ﻲ
اﻟﻄ
ﺘﻤﺮﻳﻦ 2-3:رﺳﺎﻟ ﺔ ﺷﺨﺼﻴ ﺔ29 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . اﻟ
ﺘﻤﺮﻳﻦ 2-4:ﺣﺎﻻ ت اﻷﺳﻤﺎء29 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
ﺒﺎس ﻣﺸﻬﻮر29 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺘﺘﻤﺮﻳﻦ 2-5:اﻗ
اﻟ
Machine Translated by Google
3
ﺗﻘﺪﻳﻢ اﻟﻘﻮاﺋﻢ 37
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ﻣﺎ ﻫ ﻲ اﻟﻘﺎﺋﻤ ﺔ؟ . . 37
ﺋﻤ .ﺔ. . . . . . . . . . . . . . . . . . . . 38. .. . ..
اﻟﻌﻨﺎﺻﺮ ﻓ .ﻲ .ﻗﺎ.
إﱃ . . . .
اﻟﻮﺻﻮل . .
ﺒﺪأ ﻣﺮاﻛﺰ اﻟﻤﺆﺷﺮ ﻣﻦ 0 ،وﻟﻴ ﺲ 1 ................................. 39
ﺗ
. . . . . . . . . . . . . 39 ﺋﻤ ﺔ. . . .. ..
اﻟﻘﺎ .
ﻣﻦ . .
ﻳﺔ . . اﻟﻔﺮد.
اﻟﻘﻴﻢ. . .
ﺘﺨﺪام . .
اﺳ
ﺘﻤﺮﻳﻦ 3-1:اﻷﺳﻤﺎء40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . اﻟ
ﺗ ﻲ40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺗﺤﻴﺎ
ﺘﻤﺮﻳﻦ 3-2:
اﻟ
ﺑﻚ40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ﺘﻤﺮﻳﻦ 3-3:اﻟﻘﺎﺋﻤ ﺔ اﻟﺨﺎﺻ ﺔاﻟ
. . . . . . . . . . . . . . . . 40
اﻟﻌﻨﺎﺻﺮ. .. .. .
وإزاﻟ .ﺔ . . . .وإﺿﺎﻓ ﺔ . .
.. ﺗﻐﻴﻴﺮ
. . . . . . . . . . . . . . . . . . . . . . 40
ﺋﻤ ﺔ. . . .. ..
اﻟﻌﻨﺎﺻﺮ .ﻓ ﻲ. .ﻗﺎ .
ﺗﻌﺪﻳﻞ . . .
ﺋﻤ .ﺔ. . . . . . . . . . . . . . . . . . . . . . . . . . 41. .. .
إﱃ .ﻗﺎ.
ﻋﻨﺎﺻﺮ . .
إﺿﺎﻓ ﺔ . . .
اﻟﻘﺎﺋﻤ.ﺔ. . . . . . . . . . . . . . . . . . . . . .42....
ﻣﻦ . .اﻟﻌﻨﺎﺻﺮ . .
إزاﻟ ﺔ . . .
ﺘﻤﺮﻳﻦ 3-4:ﻗﺎﺋﻤ ﺔ اﻟﻀﻴﻮف46 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
4
اﻟﻌﻤﻞ ﻣﻊ اﻟﻘﻮاﺋﻢ 53
ﺜﺎﻧ ﻲ ﻋﺸﺮ
اﻟ
ﺘﻔﺼﻴﻞ
ﺑﺎﻟﺘﻮﻳﺎ ت
اﻟﻤﺤ
Machine Translated by Google
ﺔ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺒﺎدﺋ .
ﺴﺎﻓ ﺔ .اﻟ . .
اﻟﻤ . . أﺧﻄﺎء . .
ﺗﺠﻨ .ﺐ . .
57
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
ﺒﺎدﺋ .ﺔ. .. .. .
ﺴﺎﻓ .ﺔ اﻟ . .
اﻟﻤ . .
ﻧ ﺴﻴﺎن .
. . . . . . . . . . . . . 58
ﺔ. . . .
إﺿﺎﻓﻴ. .
ﺳﻄﻮر . .
ﺑﺎدﺋ .ﺔ. . . .
ﺴﺎﻓ .ﺔ .
ﻧ ﺴﻴﺎن ﻣ . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .59 داع. .. .
دون . .
ﺒﺎدﺋ .ﺔ. . . اﻟﻤ ﺴﺎﻓ ﺔ .اﻟ .
. . . . . . . . . .59
اﻟﺤﻠﻘ .ﺔ. .. .. .
ﺑﻌﺪ. . .
ﺿﺮور.ﻳ ﺔ. .
ﻏﻴﺮ . .
ﺑﺎدﺋ .ﺔ . .
ﻣ ﺴﺎﻓ ﺔ .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 اﻟﻘﻮﻟﻮن. . . .
ﻧ ﺴﻴﺎن . . . .
ﺘﺰا60 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺑﻴﺘﻤﺮﻳﻦ 4-1:
اﻟ
ﺘﻤﺮﻳﻦ 4-2:اﻟﺤﻴﻮاﻧﺎ ت60 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 ﻋﺪد.ﻳ ﺔ. .. ..
ﺋﻢ. .
ﻋﻤﻞ ﻗﻮا .
اﻟﻨﻄﺎق. . . . . . . . . . . . . . . . . . . . . . . . ().. .. 61. .
وﻇﻴﻔ ﺔ . . .
ﺘﺨﺪام. . . . ﺑﺎﺳ
ﻷرﻗﺎم. . . . . . .62. .. . .
ﺑﺎ. . . .ﺋﻤ .ﺔ
ﻟﻌﻤﻞ. .ﻗﺎ .
اﻟﻨﻄﺎق . .().
ﺘﺨﺪام . . . .اﺳ
ﻷرﻗﺎم. . . . . . . . . . .63. .. .
ﺑﺎ. . .ﺋﻤ ﺔ .
ﺴﻴﻄ .ﺔ .ﻣﻊ .ﻗﺎ. .
ﺑ ..إﺣﺼﺎﺋﻴﺎ .ت.
اﻟﻔﻬﻢ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63. .. .
ﻗﺎﺋﻤ ﺔ . .
5
ﺒﻴﺎﻧﺎ ت
إذا اﻟ 75
ﺴﻴﻂ. . . . . . . . . . . . . . . . . .. .
ﺑ. . . ﺜﺎل.
. . . . . . . . . . . . . . . . . . . . . . .ﻣ. . 76
ﺔ. . . . . . . . . . . . . . . . .
اﻟﺸﺮﻃﻴ .
ﺒﺎرا .ت. . . .
ﺘ. .اﻻﺧ
.. .. . .. .. .. .. .. .. . .. .. .. . 76
ﺴﺎواة. . . . . .
اﻟﻤ. . . .
ﻣﻦ . ﺘﺤﻘﻖ . .
. . . . . . . . . . . . . . . . . . . . . . .اﻟ . . . . 76
ﺘﺤﻘﻖ ﻣﻦ اﻟﻤ ﺴﺎواة. . . . . . . . . . . . . . . . . . . . . . . .ﺗﺠﺎ ﻫﻞ اﻟﺤﺎﻟ ﺔ ﻋﻨﺪ اﻟ . 77
ﺴﺎواة. . .
ﻋﺪم .اﻟﻤ. . . .
ﻣﻦ . .
ﺘﺤﻘﻖ . .
. . . . . . . . . . . . . . . . . . . . . . .اﻟ . . . . 78
ﻳ .ﺔ. . . . .. .
ﻋﺪد.
ﻣﻘﺎرﻧﺎ .ت . .
. .. .. . .. .. .. .. .. .. . .. .. .. . 78
ﺘﻔﺼﻴﻞ
ﺑﺎﻟﺘﻮﻳﺎ ت
اﻟﻤﺤ ﺜﺎﻟ ﺚ ﻋﺸﺮ
اﻟ
Machine Translated by Google
.ﻣﻠﺨﺺ . .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. .. . 94
6
ﻗﻮاﻣﻴ ﺲ 95
.. .. . .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .96
ﺴﻴﻂ. .. .
ﺑ. . .ﻗﺎﻣﻮس
. .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. ﺲ. .96. . .
اﻟﻘﻮاﻣﻴ . .
اﻟﻌﻤﻞ ﻣﻊ. . . .
.. .. .. .. .. . .. .. .. اﻟﻘﺎﻣﻮس. . . ..
97 اﻟﻘﻴﻢ .ﻓ .ﻲ . . . .
إﱃ . .
اﻟﻮﺻﻮل . .
.. . .. .. .. .. .. . .. .. .. .97
ﻳﺪة. . ..
ﺟﺪ .
ﺘﺎح . .
ﻣﻔ .
ﻗﻴﻤ ﺔ . .
أزواج . .
إﺿﺎﻓ ﺔ . .
ﺘﺮاع108 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺘﻤﺮﻳﻦ 6-6:اﻻﻗ اﻟ
.. . .. .. .. ﺘﻌﺸﻴ .ﺶ. ..
. . .اﻟ. . . .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 109
ﻗﺎﺋﻤ ﺔ اﻟﻘﻮاﻣﻴ ﺲ. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 109
ﻗﺎﺋﻤ ﺔ ﻓ ﻲ ﻗﺎﻣﻮس. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. .. 111
ﺘﻔﺼﻴﻞ
ﺑﺎﻟﺘﻮﻳﺎ ت
xivاﻟﻤﺤ
Machine Translated by Google
.. . .. .. .. .. .. . .. .. .. .. . . 113
ﻗﺎﻣﻮس. . ... . ..
ﻗﺎﻣﻮس ﻓ ﻲ . . .
.ﻣﻠﺨﺺ . .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 115
7
ﺛﻨﺎء اﻟﺤﻠﻘﺎ ت
ﺘﺨﺪم وأ
إدﺧﺎل اﻟﻤ ﺴ 117
.. .. .. . .. .. .. .. .. . .. .. . ().
اﻹدﺧﺎل . ..
وﻇﻴﻔ .ﺔ . . .
ﺗﻌﻤﻞ. . .
. . 118ﻛﻴﻒ. . .
.. .. .. . .. .. .. .. .. . .. .. واﺿﺤ.ﺔ. . . . . ..
ﻣﻮﺟﻬﺎ ت. . .
ﺑ ﺔ. . . . . . 118ﻛ
ﺘﺎ
.. .. .. .. . اﻟﻌﺪدﻳ .ﺔ..
اﻟﻤﺪﺧﻼ .ت. . .
ﺒﻮل. . . .ﻟﻘ .
. int
)( .
ﺘﺨﺪام . .
. . 119اﺳ . .
.. .. .. . .. .. .. .. .. . . . . . . . . . . . Modulo.ﻣﺸﻐﻞ . . . . . .
.. . . 120
.. . .. .. .. .. . . . . . . . .2.7. ﺜﻮن . .
ﺑﺎﻳ. .
اﻟﻤﺪﺧﻼ .ت .ﻓ .ﻲ .
ﺒﻮل. . . .
.ﻗ . 121
ﺘﺌﺠﺎرﺳﻴﺎرة. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ﺘﻤﺮﻳﻦ 7-1:اﺳ اﻟ 121
ﺑﻴﻨﻤﺎ اﻟﺤﻠﻘﺎ ت. . .إدﺧﺎل .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. .. 122
.. .. . .. .. .. .. .. . .. .. .. .. .. .. .
ﺔ.. .
اﻟﺤﻠﻘ .
ﺗﺸﻐﻴﻞ . .
.. 122
ﺛﻨﺎء
أ
.. .. .. . .. .122
اﻹﻧﻬﺎء. . .. .
ﺖ. . .وﻗ .
ﺘﻴﺎر. .
ﺑﺎﺧ .
ﺘﺨﺪم . .
ﻟﻠﻤ .ﺴ . .
اﻟ ﺴﻤﺎح .
.. . .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .124
اﻟﻌﻠﻢ. . .. ..
ﺘﺨﺪام . . .
. اﺳ
.. .. . .. .. .. .. .. . .. .. . . 125
ﺔ. . . .. .
ﺣﻠﻘ .
ﻣﻦ . .
ﻟﻠﺨﺮوج .
ﺘﺨﺪام ﻛ ﺴﺮ . . . .
اﺳ
.. .. . .. .. .. .. .. . .. .. . . 126
ﺣﻠﻘ.ﺔ. . . .. .. .
ﺘﻤﺮار. .ﻓ ﻲ . .
ﺘﺨﺪام اﻻﺳ . .
ﺑﺎﺳ
.. .. .. . .. .. .. .. .. . .. .. .. . . 126
اﻟﻼﻧﻬﺎﺋﻴ .ﺔ. . .. .. .
ﺗﺠﻨ ﺐ اﻟﺤﻠﻘﺎ .ت . . .
.ﻣﻠﺨﺺ . .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 131
8
اﻟﻤﻬﺎم 133
.. .. . .. .. .. .. .. . .. .. .. .. .. . .. .. .. . . . . . . . 134 ﺔ. . . .. .
ﺗﺤﺪﻳﺪ اﻟﻮﻇﻴﻔ .
.. .. .. .. .. . .. .. . . 134
اﻟﻮﻇﻴﻔ ﺔ. . .. .. .
إﱃ. . . .ﺗﻤﺮﻳﺮ اﻟﻤﻌﻠﻮﻣﺎ. .ت .
.. .. . .. .. .. .. .. . .. .. . . . . . . . 135 واﻟﻤﻌﻠﻤﺎ .ت. . .....
. اﻟﺤﺠﺞ
ﺘﻤﺮﻳﻦ 8-1:اﻟﺮﺳﺎﻟ ﺔ135 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
ﺘﺎ ب اﻟﻤﻔﻀﻞ135 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ﺘﻤﺮﻳﻦ 8-2:اﻟﻜ
اﻟ
.. .. . .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. . . . 135
ﺑﺮة. . . .. .. .
اﻟﺤﺠﺞ اﻟﻌﺎ
.. .. .. .. . .. .. .. .. .. . .. .. .. .. .. . .136
اﻟﻤﻮﺿﻌﻴ.ﺔ. .. .. .
. اﻟﺤﺠﺞ
.. .. .. .. . .. .. .. .. .. . .. .. .. . 137
ﺔ. . .. . .
ﺋﻴ .ﺴﻴ. .اﻟﻜﻠﻤﺎ .ت . .
اﻟﺮ . وﺳﻴﻄﺎ ت
. .. .. .. .. .. . .. .. .. .. .. . .. .. .. . . . . . . .138 ﺘﺮاﺿﻴ ﺔ . .. . . .ﻗﻴﻢ اﻓ
ﺘﻔﺎﺻﻴﻞ xv
ﺘﻮﻳﺎ ت ﻓ ﻲ اﻟ
اﻟﻤﺤ
Machine Translated by Google
ﺒﻴﺮة141 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺘﻤﺮﻳﻦ 8-4:اﻟﻘﻤﺼﺎن اﻟﻜ اﻟ
ﺘﻤﺮﻳﻦ 8-5:اﻟﻤﺪن141 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
اﻟﻘﻴﻢ. . . .
.. إرﺟﺎع
. . . . . . . . . . . . . . . . . . . . . . . . . . . 142
ﺔ. . .. .
ﺴﻴﻄ .
ﺑ .. إرﺟﺎع ﻗﻴﻤ.ﺔ.
. . . . . . . . . . . . . . . . . . . . . . 142
ﺔ. . . . .
ﺘﻴﺎرﻳ. .
اﻟﺤﺠ ﺔ .اﺧ. .
. ﺟﻌﻞ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
اﻟﻘﺎﻣﻮس. . . ..
. .. إﻋﺎدة
. . . . . . . . . . . . . 145
ﺖ. . . .. .. .
اﻟﻮﻗ . .
ﺣﻠﻘ ﺔ . .
ﻣﻊ . .
ﺘﺨﺪام وﻇﻴﻔ .ﺔ. .
اﺳ
ﺗﻤﺮﻳﻦ 8-6:أﺳﻤﺎء اﻟﻤﺪن146 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺒﻮم146 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺘﻤﺮﻳﻦ 8-7:اﻷﻟ
اﻟ
ﺘﺨﺪم146 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺒﻮﻣﺎ ت اﻟﻤ ﺴ
ﺘﻤﺮﻳﻦ 8-8:أﻟ
اﻟ
9
ﺒﻘﺎ ت
اﻟﻄ 161
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
اﻟﻔﺼﻞ. . .. .. .
ﺘﺨﺪام . . ... إﻧﺸﺎء واﺳ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162 إﻧﺸﺎء ﻓﺌ ﺔ اﻟﻜﻼ . .ب. .. .. .
. . . . . . . . . . . . . . . . . 164 ﺳ .ﻲ. . .. .. .درا .
ﻓﺼﻞ .ﻣﻦ . . .
ﺜﻴﻞ .
ﻋﻤﻞ ﻣ
ﺘﻤﺮﻳﻦ 9-1:ﻣﻄﻌﻢ166 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
ﺛ ﺔ ﻣﻄﺎﻋﻢ166 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺛﻼﺗﻤﺮﻳﻦ 9-2:
ﺘﺨﺪﻣﻮن166 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺘﻤﺮﻳﻦ 9-3:اﻟﻤ ﺴ
اﻟ
. . . . . . . . . . . . . . . . . . . . . . 167
ﺜﻴﻼ. .ت. . .. .. .
واﻟﻤ .
اﻟﻔﺌﺎ .ت . .
. اﻟﻌﻤﻞ ﻣﻊ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167 ﻓﺌ ﺔ اﻟ ﺴﻴﺎرة. . .. . .
. . . . . . . . . . . . . 168
ﺴﻤ.ﺔ. . .. .. .
ﺘﺮاﺿﻴ.ﺔ ﻟ. .
ﺗﻌﻴﻴﻦ ﻗﻴﻤ ﺔ اﻓ. . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 168 ت. . .. . .
ﺴﻤﺎ . .
ﺗﻌﺪﻳﻞ ﻗﻴﻢ اﻟ . .
ﺘﻤﺮﻳﻦ 9-4:اﻟﻌﺪد اﻟﻤﻘﺪم171 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
ﺘﻔﺼﻴﻞ
ﺑﺎﻟ
ﺘﻮﻳﺎ ت xvi
ﻣﺤ
Machine Translated by Google
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
ﻣﻴﺮا ث . . . . .
. . . . . . . . . . . . .172
ﺑﻌ .ﺔ. . . .. .
ﺗﺎ.
.__initﻟﻔﺌ.ﺔ .
ﻃﺮﻳﻘ ﺔ )( __ . . .
. . . . . . . . . . . . . . . . . . . . . . . . 2.7.. . .. .. . .173ﺜﻮن . .
ﺑﺎﻳ . .ﺛﺔ ﻓ ﻲ
اﻟﻮرا
اﻟﻄﻔﻞ. . .. .. .
174 ﻟﻔﺌ ﺔ . . . .
واﻟﻄﺮق . .
ﺗﺤﺪﻳﺪ اﻟ ﺴﻤﺎ .ت. . . .
. . . . . . . . . . . 175ﻷﺻﻞ. . . .. . .
ﻣﻦ .ﻓﺌ.ﺔ .ا . . .
ﻃﺮقﺗﺠﺎوز .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
ﺴﻤﺎ .ت. . .. . .. .
ﺜﻴﻼ ت ﻛ . .
اﻟﻤ
. . . . . . . . . . . . . . . . 177 اﻟﺤﻘﻴﻘ .ﻲ. . .. .. . ..
اﻟﻌﺎﻟﻢ . . .
ﻧﻤﺬﺟ ﺔ ﻛﺎﺋﻨﺎ .ت . . .
ﺘﻤﺮﻳﻦ 9-6:ﺣﺎﻣﻞ اﻵﻳ ﺲ ﻛﺮﻳﻢ178 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . اﻟ
ﺘﻤﺮﻳﻦ 9-7:اﻹدارة178 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
ﺜﻮن186 . . . . . . . . . . . . . . . . . . . . . . . . .
ﺑﺎﻳﺒﻮع ﻓ ﻲ
ﺘﻤﺮﻳﻦ 9-15:وﺣﺪة اﻷﺳ اﻟ
ﺘﺼﻤﻴﻢ. . . ..
ﻓﺌﺎ ت .اﻟ. . . .
.. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 186
ﻣﻠﺨﺺ. . . . . . . . . .. .
. .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 187
10
ﺜﻨﺎءا ت
ﺘاﻟﻤﻠﻔﺎ ت واﻻﺳ 189
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
ﻣﻠﻒ. .. .. .
اﻟﻘﺮاءة ﻣﻦ . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
ﻛﺎﻣﻞ. . . . .. .. .
ﻗﺮاءة ﻣﻠﻒ . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
اﻟﻤﻠﻔﺎ .ت. . .. . .. ..
. ﻣ ﺴﺎرا ت
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193 ﺴﻄﺮ. . . .. ..
ﺑ ..ﻗﺮاءةﺳﻄﺮا
. . . . . . . . . . . . . . . . . 194
ﻣﻠﻒ. . .. .. .
ﻣﻦ . . .ﺳﻄﻮر . .
ﻋﻤﻞ ﻗﺎﺋﻤ ﺔ . .
. . . . . . . . . . . . . . . . .194
اﻟﻤﻠﻒ. . .. . .. ..
ﻳﺎ .ت . . .
ﺘﻮ .
ﻣﺤ.
ﺘﻌﺎﻣﻞ ﻣﻊ . اﻟ
. . . . . . . . . . . . . . . . . .195
رﻗﻢ. . . .. .. .
ﻣﻠﻴﻮن . .
ﺒﻴﺮة. . . :
اﻟﻤﻠﻔﺎ ت اﻟﻜ . .
؟. . . . . . . . . . . . . . . Pi
. . . .. .. 196
ﻣﻮﺟﻮد .ﻓ .ﻲ . .
ﻣﻴﻼدك . . .
.. ﻫﻞ ﻋﻴﺪ
ﺗﻌﻠﻢ ﻟﻐ ﺔ Python. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
ﺘﻤﺮﻳﻦ 10-1:
اﻟ
ﺘﻌﻠﻢ ج197 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ﺘﻤﺮﻳﻦ 10-2:اﻟاﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197 ﻣﻠﻒ. . . .. .. .
ﺑﺔ ﻓ ﻲ . .
ﺘﺎاﻟﻜ
. . . . . . . . . . . . . . . . . . . . . . . . 197
ﻓﺎرغ. . .... .. .
ﻣﻠﻒ . .
ﺑﺔ ﻓ ﻲ . . ﺘﺎ
اﻟﻜ
. . . . . . . . . . . . . . . . . . . . . . . . . . . .198
ﺘﻌﺪدة. . . .. . .
ﺑ ﺔ أﺳﻄﺮ ﻣ . . . . ﺘﺎﻛ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 إﻟﺤﺎق ﻣﻠﻒ. . . .. .. .
ﺘﻤﺮﻳﻦ 10-3:ﺿﻴﻒ199 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
ﺘﺮ اﻟﺰوار199 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺘﻤﺮﻳﻦ 10-4:دﻓ
اﻟ
ﺘﻄﻼع199 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺑﺮﻣﺠ ﺔ اﻻﺳ
ﺘﻤﺮﻳﻦ 10-5: اﻟ
ﺜﻨﺎءا ت.
ﺘ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .اﺳ . . 200
ﺘﻔﺼﻴﻞ
ﺑﺎﻟﺘﻮﻳﺎ ت
اﻟﻤﺤ ﺑﻊ ﻋﺸﺮ
اﻟ ﺴﺎ
Machine Translated by Google
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202
ﺑﻠﻮك. . . . .آﺧﺮ
. . . . . FileNotFoundError.
. . . . . . . . . . . . . .. 203
ﺜﻨﺎء. . .
ﺘ .ﻣﻌﺎﻟﺠ ﺔ اﺳ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
ﺗﺤﻠﻴﻞ اﻟﻨﺺ. . .. . .. ..
. . . . . . . . . . . . . . . . . . . . 205
ﺘﻌﺪدة. . .. .. . .
ﻣﻠﻔﺎ .ت .ﻣ. . . .
اﻟﻌﻤﻞ ﻣﻊ .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .206 ﺖ. . .. .. . .
ﺑﺼﻤ . .اﻟﻔﺸﻞ
. . . . . . . . . . . 207
ﻋﻨﻬﺎ. . .. . ..
ﺑﻼغ . . .
ﻳﺠ .ﺐ. .اﻹ . . ﺘ .ﻲ . . ﻷﺧﻄﺎء .اﻟ
.. ﺗﺤﺪﻳﺪ ا
.. .. ... .. .. .. .. . . . . . . . . . . . 207 اﻹﺿﺎﻓ .ﺔ. . .. . ..
. . .10-6:
. ﺘﻤﺮﻳﻦاﻟ
ﺒ ﺔ اﻟﺠﻤﻊ208 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺗﻤﺮﻳﻦ 10-7:ﺣﺎﺳ
ﺘﻤﺮﻳﻦ 10-8:اﻟﻘﻄﻂ واﻟﻜﻼ ب208 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
ﺘ ﺔ208 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺘﻤﺮﻳﻦ 10-9:اﻟﻘﻄﻂ واﻟﻜﻼ ب اﻟﺼﺎﻣ اﻟ
ﺘﻤﺮﻳﻦ 10-10:اﻟﻜﻠﻤﺎ ت اﻟﺸﺎﺋﻌ ﺔ208 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ﺗﺨﺰﻳﻦ اﻟ
ﺒﻴﺎﻧﺎ ت. . . . 208
. . . . . . . . . . json.load
. . . . . ().
json.dumpو . .
ﺘﺨﺪام. . . . . . . (). .
. . 209اﺳ . .
ﺘﺨﺪم. . .
اﻟﻤ .ﺴ . . .
ﻳﻨﺸﺌﻬﺎ. .
ﺘ. .ﻲ . . .
ﺒﻴﺎﻧﺎ .ت .اﻟ
وﻗﺮاءة .اﻟ . .
ﺣﻔﻆ . . .. . . 210
ﺒﺮﻣﺠﻴ.ﺔ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ﺘﻌﻠﻴﻤﺎ .ت اﻟ .
إﻋﺎدةﺑﻨﺎء .اﻟ. .
.. 212
ﺘﻤﺮﻳﻦ 10-11:اﻟﺮﻗﻢ اﻟﻤﻔﻀﻞ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ 214
ﺗﺬﻛﺮ اﻟﺮﻗﻢ اﻟﻤﻔﻀﻞ. . . . . . . . . . . . . . . . . . . . . .
ﺘﻤﺮﻳﻦ 10-12:
اﻟ 214
ﺘﺨﺪم. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺗﺤﻘﻖ ﻣﻦ اﻟﻤ ﺴ
ﺘﻤﺮﻳﻦ 10-13:اﻟ 214
ﻣﻠﺨﺺ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. 214
11
ﺑﻚﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺒﺎر اﻟ
ﺘاﺧ 215
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
ﺔ. . .. . .. .
ﺒﺎر وﻇﻴﻔ .
ﺘاﺧ
. . . . . . . . . . . . . . . 217
ﺒﺎر. . . . .. .. .
ﺘ ..
اﻻﺧ.
وﺣﺎﻻ .ت . .
اﻟﻮﺣﺪة. . . .
ﺒﺎرا ت . . .
ﺘاﺧ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
ﺒﺎر ﻧﺎﺟﺢ. . . .. .. .
ﺘاﺧ
.............................................218
. . . . . . . . . . . . . . . . . . . . .219ﻓﺎﺷﻞ. . .. . .. .
ﺒﺎر . . . . ﺘ.ﺑ ﺔ ﻻﺧ. ﺘﺠﺎ اﻻﺳ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221 ﻳﺪة. . .
ﺒﺎرا. .ت .ﺟﺪ. . .ﺘ . اﺧ.
إﺿﺎﻓ ﺔ .
ﺒﻠﺪ222 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺘﻤﺮﻳﻦ 11-1:اﻟﻤﺪﻳﻨ ﺔ ،اﻟ
اﻟ
ﺘﻤﺮﻳﻦ 11-2:اﻟ ﺴﻜﺎن222 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 اﻟﻔﺼﻞ. . .. .
ﺒﺎر . . .
ﺘاﺧ
. . . . . . . . . . . . . . . . . . 222
ﺘﺄﻛﻴﺪ. . . ..
ﻃﺮق اﻟ. . .
ﻣﻦ . . .
ﺘﻨﻮﻋ .ﺔ . .
ﻣﺠﻤﻮﻋ ﺔ .ﻣ. .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223 ﺒﺎر. . . . . .
ﺘ ﻓﺌ ﺔ ﻟﻼﺧ
. . . . . . . . . . . .AnonymousSurvey.
. . . . . . . . . . . .. . 225
ﺒﺎر ﻓﺌ ﺔ . . ﺘاﺧ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setUp
. . . .().
ﻃﺮﻳﻘ ﺔ . .. .. . 227
ﺘﻤﺮﻳﻦ 11-3:اﻟﻤﻮﻇﻒ228 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ﻣﻠﺨﺺ . . . 228
ﺜﺎﻧ ﻲ :اﻟﻤﺸﺎرﻳﻊ
اﻟﺠﺰء اﻟ 231
ﺒﻲ
اﻟﻤﺸﺮوع 1:ﻏﺰو أﺟﻨ
12
ﺳﻔﻴﻨ ﺔﺗﻄﻠﻖ اﻟﺮﺻﺎص 235
ﺘﺨﻄﻴﻂ ﻟﻤﺸﺮوﻋﻚ 236 .............................................. اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pygame. ﺒﻴ ﺖ . . . . . .. .. 236
ﺜ ﺗ
. . . . . . . . . . . . . . 237
ﺑﻨﻘﻄ ﺔ. . .. . .. ..
. . . Python
ﺒﻴ ﺖ ﺣﺰم . . . .
ﺜﺗ
. . . . . . . . . . . . . . . . . . . . .Linux.
. . . .. .. 238 . Pygameﻋﲆ. . .
. .. ﺒﻴ ﺖ
ﺜﺗ
ﺜﺎﻣﻦ ﻋﺸﺮ
اﻟ ﺘﻔﺼﻴﻞ
ﺑﺎﻟﺘﻮﻳﺎ ت
اﻟﻤﺤ
Machine Translated by Google
ﻋﲆWindows. . .
. Pygame
ﺒﻴ .ﺖ . . . . . .
ﺜ.
ﺗ.OS
ﻋﲆ . .X.
. . Pygame
ﺖ . .. ..
ﺒﻴ . .
ﺜ.
. .. .. . .. ..
ﺗ . . 239
. .. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 240
ﺒ .ﺔ. . . . . . . . . . . . . . . . . . . . . . .ﻣﺸﺮوع . .
اﻟﻠﻌ ﺑﺪء . . . .
.. .. .. . .. .. . . 240
ﺘﺨﺪم. . ﺑ ﺔ ﻹدﺧﺎﻻ ت اﻟﻤ ﺴﺘﺠﺎ . . . . . . . . . . .إﻧﺸﺎء ﻧﺎﻓﺬة Pygameواﻻﺳ 241
اﻟﺨﻠﻔﻴ .ﺔ. . . . . . . . . . . . . .
ﻟﻮن. . .ﺒﻂ . .
ﺿ .
.. .. .. . .. .. .. 242
اﻹﻋﺪادا .ت. . . . . . . . . . . . . . ..
إﻧﺸﺎء .ﻓﺌ .ﺔ . . . .
. .. .. .. . .. .. . . 243
ﺴﻔﻴﻨ .ﺔ. . . . . . . . . . . . . . . . . . . . . . .
ﺻﻮرة .اﻟ. . .
إﺿﺎﻓ ﺔ. . .
. .. .. .. . .. .. .. 244
.. .. .. . .. .. .. .. .. . .. .. .. .. . . 245 ﺴﻔﻴﻨ .ﺔ. . .. . ..
إﻧﺸﺎء ﻓﺌ ﺔ اﻟ . .
. . . . . . . . . . . . . . . . . .246
اﻟﺸﺎﺷ.ﺔ. . . .. .. .
ﻋﲆ. . . . رﺳﻢ اﻟ ﺴﻔﻴﻨ ﺔ. .
. . . . . . . . . . game_functions.
. . . . . . . . . . . .. .. 247
وﺣﺪة. . .
ﻳﻮن. . :
ﺑﻨﺎء د . . إﻋﺎدة
. . . . . . . . . . . . . . . . . . . . . check_events
. . . . . . . . (). داﻟ ﺔ . .. . . 247
. . . . . . . . . . . . . . . . . . . .update_screen
وﻇﻴﻔ ﺔ . . . . . . . . .()..... 248
ﺘﻤﺮﻳﻦ 12-1:اﻟ ﺴﻤﺎء اﻟﺰرﻗﺎء249 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
ﺒ ﺔ249 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ﺘﻤﺮﻳﻦ 12-2:ﺷﺨﺼﻴ ﺔ اﻟﻠﻌ اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249ﻗﻴﺎدة اﻟ ﺴﻔﻴﻨ .ﺔ. .. .. . ..
. . . . . . . . . . . . . . . . . . . . . . . . .249
ﻟﻀﻐﻄ ﺔ. .زر. . .. .. .
ﺑﺔ . . ﺘﺠﺎ اﻻﺳ
. . . . . . . . . . . . . . . . . . 250
ﺘﻤﺮة. . . .. . .
اﻟﻤ.ﺴ . . .
ﺑﺎﻟﺤﺮﻛ .ﺔ .
. اﻟ ﺴﻤﺎح
. . . . . . . . . . . . . . . . . . . . 252
واﻟﻴﻤﻴﻦ. . .... .
ﺴﺎر . . . . . ﻣﻦ .اﻟﻴ. .
ﺘﺤﺮك ﻛﻞ . ﺗ
. . . . . . . . . . . . . . . . . . . . . . . . . 253
ﺴﻔﻴﻨ.ﺔ. . .. .. .
ﺒﻂﺳﺮﻋ ﺔ اﻟ. . . ﺿ
. . . . . . . . . . . . . . . . . . . . . . . . 255
ﺴﻔﻴﻨ.ﺔ. . .... .. .
ﺗﺤﺪﻳﺪ ﻣﺪى اﻟ. . .
. . . . . . . . . . . . . . . . . . .check_events
. . . . . . . .().. .. . 255
ﻳﻮن. . .
ﺑﻴﻊ د . إﻋﺎدة
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256
ﺧﻼﺻ ﺔﺳﺮﻳﻌ .ﺔ. .. .. . ..
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .alien_invasion.py.
. .. . .. .. . . 256
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .settings.py.
.. .. . . 256
. . . . . . . . . . . . . . . . . . . . . . . . . . . game_functions.py.
. .. .. . .. .. . . . 256
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ship.py. .. . . 257
ﺗﻤﺮﻳﻦ 12-3:ﺻﺎروخ257 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺗﻴﺢ257 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ﺘﻤﺮﻳﻦ 12-4:اﻟﻤﻔﺎ اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257 اﻟﺮﺻﺎص. . . .. .. .
.. اﻃﻼق
. . . . . . . . . . . . . . . . . . . .257
اﻟﻨﻘﻄ .ﻲ. . . .. .. .
ﺘﻌﺪاد . . .
إﺿﺎﻓ ﺔ إﻋﺪادا . .ت اﻟ. . .
. . . . . . . . . . . . . . . . . . . . . . . . .258 اﻟﺮﺻﺎﺻ. .ﺔ. . .. .. . .
إﻧﺸﺎء ﻓﺌ ﺔ . .
. . . . . . . . . . . . . . . . . . 259
ﻣﺠﻤﻮﻋ. .ﺔ. . . .. . .
اﻟﻨﻘﻄﻴ ﺔ .ﻓ .ﻲ . . .
ﺗﺨﺰﻳﻦ اﻟﺮﻣﻮز . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .260 اﻟﺮﺻﺎص. . . .. .. .
.. اﻃﻼق
. . . . . . . . . . . . . . . . . . . . . . .261
ﻳﻤ ﺔ. . .. . .. ..
اﻟﻘﺪ . .
اﻟﻨﻘﻄﻴ .ﺔ . .
ﺣﺬف اﻟﺮﻣﻮز. . . .
. . . . . . . . . . . . . . . . . . . . . . 262 اﻟﺮﺻﺎص. . .. .. .
اﻟﺤﺪ ﻣﻦ ﻋﺪد . . . . .
إﻧﺸﺎء وﻇﻴﻔ ﺔ update_bullets () ............................ 263
. . . . . . . . . . . . . . . . .fire_bullet
. . . . . . ().. . .. .264
إﻧﺸﺎء وﻇﻴﻔ ﺔ . .
ﺒ ﻲ264 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺘﻤﺮﻳﻦ 12-5:ﻣﻄﻠﻖ اﻟﻨﺎر اﻟﺠﺎﻧ اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ﻣﻠﺨﺺ . . . 264
13
ﻛﺎﺋﻨﺎ ت ﻓﻀﺎﺋﻴ ﺔ! 265
ﻣﺸﺮوﻋﻚ. . . . .. .
ﻣﺮاﺟﻌ .ﺔ . . . . .
. .. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 266
ﺋ .ﻲ. . . . . .
ﻓﻀﺎ.
ﺋﻦ . .
ﻛﺎ .
أول .
ﺧﻠﻖ. . .
.. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 266
ﺒ ﺔ. .ﻓﺌ .ﺔ . .
اﻟﻐﺮﻳ ﺧﻠﻖ. .
.. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 267
ﺒ ﻲ. ﺜﻴﻞ ﻟﻸﺟﻨ .. .. .. .. .. . .. .. .. .. .. .. . .. ..
إﻧﺸﺎء ﻣ . . 268
. . . . . . . . . . . . . . . . . . . . . . . . . .ﺟﻌﻞ اﻟﻜﺎﺋﻦ اﻟﻔﻀﺎﺋ ﻲﻳﻈﻬﺮ ﻋﲆ اﻟﺸﺎﺷ ﺔ. . . 268
ﺋﻴﻴﻦ. . . . ..
اﻟﻔﻀﺎ . .
ﺳﻄﻮل . . .
ﺑﻨﺎء أ. . . .
.. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 269
. . . . . . . . . . . . . . . . . . . .ﺗﺤﺪﻳﺪ ﻋﺪد اﻷﺟﺎﻧ ﺐ اﻟﻤﻼﺋﻤﻴﻦ ﻓ ﻲ ﺻﻒ واﺣﺪ. . . . 269
اﻟﻔﻀﺎ. .
ﺋﻴﻴﻦ. ﻣﻦ. . .
ﺻﻔﻮف . .
ﻳﻦ . . . .
ﺗﻜﻮ . .
.. .. . .. .. .. .. .. .. . .. .. . . 270
ﺳﻄﻮل. . . . . . . . . . . .
إﻧﺸﺎء .اﻷ . . . .
. .. .. . .. .. .. .. .. .. . .. .. . . 271
ﺘﺎﺳﻊ ﻋﺸﺮ
ﺘﻔﺼﻴﻞ اﻟ
ﺑﺎﻟﺘﻮﻳﺎ ت
اﻟﻤﺤ
Machine Translated by Google
. . . . . . . . . . . . . . . . . . . . .create_fleet
. . . . . . . ().. . .. .. 273
إﻋﺎدة اﻟﻬﻴﻜﻠ ﺔ . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273اﻟﺼﻔﻮف. .. .. .
.. ﻣﻀﻴﻔﺎ
ﺘﻤﺮﻳﻦ 13-1:اﻟﻨﺠﻮم276 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
ﺘﻤﺮﻳﻦ 13-2:ﻧﺠﻮم أﻓﻀﻞ276 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ﺟﻌﻞ اﻷﺳﻄﻮلﻳ
ﺘﺤﺮك. . . 276
. . . . . . . . . . . . . . . . . . . . . . . . . . .276 ﻟﻠﻴﻤﻴﻦ. . .. . .
ﺐ. . . . ﺗﺤﺮﻳﻚ اﻷﺟﺎﻧ .
. . . . . . . . . . . . . 277
ﺳﻄﻮل. . . .. .. .
ﺗﺠﺎه .اﻷ. . . .
إﻧﺸﺎء اﻹﻋﺪادا . .ت ﻻ . .
ﻗﺪ . .
وﺻﻞ إﱃ اﻟﺤﺎﻓ ﺔ278 . . . ﺋ ﻲ. .
ﻓﻀﺎ.
ﺋﻦ . . ﻛﺎن. .ﻛﺎ .
إذا .
ﺘﺤﻘﻖ ﻟﻤﻌﺮﻓ .ﺔ .ﻣﺎ . .اﻟ
. . . . . . . 278
ﺗﺠﺎه. . .. .. . ..
اﻻ. . ﺗﻐﻴﻴﺮ .
ﺳﻄﻮل و. . .
.. إﺳﻘﺎط اﻷ
ﺘﻤﺮﻳﻦ 13-3:ﻗﻄﺮا ت اﻟﻤﻄﺮ279 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
ﺘ ﺔ279 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺑﺛﺎﺘﻤﺮﻳﻦ 13-4:أﻣﻄﺎر اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 ﻷﺟﺎﻧ. .ﺐ. . . .. . .. ..ﻋﲆ .ا. .
اﻃﻼق اﻟﻨﺎر . .
. . . . . . . . . . . . . . . . . . . . . . 280
اﻟﺮﺻﺎص. . . .. .. .
اﺻﻄﺪاﻣﺎ .ت. . . . .
. ﻛﺸﻒ
. . . . . . . . . . . . . . . . . . 281
ﺒﺎر. . .. .. .
ﺘ. .ﺒﺮ . .
ﻟﻼﺧ ﺻﻨﻊ رﺻﺎﺻﺎ .ت .أﻛ .
. . . . . . . . . . . . . . . . . . . . . . . . . . . 282
ﺳﻄﻮل. . .. .. . .
إﻋﺎدة إﻋﻤﺎر اﻷ . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
اﻟﺮﺻﺎص. . .. . .
.. ﺗ ﺴﺮﻳﻊ
. . . . . . . . . . . . . . . . update_bullets . . . . . . . . (). . . ... . .283
ﻳﻮن . .
ﺑﻨﺎء د .إﻋﺎدة
ﺘﻘﻂ284 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ﺘﻤﺮﻳﻦ 13-5:اﻟاﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 ﺒ ﺔ. . .. . .
إﻧﻬﺎء اﻟﻠﻌ
. . . . . . . . . . . . . . . . 284
ﺋﻴ .ﺔ. . ..... .
اﻟﻔﻀﺎ .
ﺴﻔﻦ . . .
اﺻﻄﺪام .اﻟ . .
. ﻛﺸﻒ
. . . . . . . . 285
اﻟﻔﻀﺎﺋﻴ .ﺔ. .... . ..
ﺴﻔﻦ. . . .
اﺻﻄﺪام اﻟ . .
ﻟﺤﻮاد .ث. . . . .
. ﺑﺔ ﺘﺠﺎاﻻﺳ
. . . . . 288
اﻟﺸﺎﺷ ﺔ. . .. ...
ﺳﻔﻞ . . .
ﺗﺼﻞ. .إﱃ .أ . .
ﺘ .ﻲ. .
ﺋﻴ .ﺔ اﻟ
اﻟﻜﺎﺋﻨﺎ ت اﻟﻔﻀﺎ .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
ﺒ ﺔ! . . . . .. ..
ﺘﻬ ﺖ اﻟﻠﻌ
اﻧ
. . . . . . . .289 ﺒ .ﺔ. . .. . .
أﺟﺰاء .ﻣﻦ. .اﻟﻠﻌ.
ﺗﺸﻐﻴﻞ . . .
ﺐ . .. ﺘﻰﻳﺠ. .ﺗﺤﺪﻳﺪ ﻣ
ﺒ ﺔ290 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺘﻬ ﺖ اﻟﻠﻌ
ﺘﻤﺮﻳﻦ 13-6:اﻧ اﻟ
14
ﺘﻬﺪﻳﻒ
اﻟ 291
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .إﺿﺎﻓ ﺔ زر اﻟ
ﺘﺸﻐﻴﻞ. . . 292
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 إﻧﺸﺎء ﻓﺌ ﺔ زر. . .. .. .
. . . . . . . . . . . . . . . . . . . . 294
اﻟﺸﺎﺷ .ﺔ. . .. .. .
رﺳﻢ اﻟﺰر ﻋﲆ . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 ﺒ ﺔ. . . . .
ﺑﺪء اﻟﻠﻌ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
ﺒ ﺔ. . . . .....
اﻟﻠﻌ.
ﺒﻂ . إﻋﺎدة ﺿ
. . . . . . . . . . . . . . . . . . . . . . . . 297
ﺘﺸﻐﻴﻞ. . .. . . ..
ﺗﻌﻄﻴﻞ زر اﻟ . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 298
اﻟﻤﺎوس. . .. .. . .
إﺧﻔﺎء ﻣﺆﺷﺮ . . . .
ﺘﻔﺼﻴﻞ
ﺑﺎﻟ
ﺘﻮﻳﺎ ت xx
ﻣﺤ
Machine Translated by Google
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .310
ﺘﻮى. . . .. .. .
ﻋﺮض اﻟﻤ ﺴ . .
. . . . . . . . . . . . . . . . . . . . . . 313
ﺴﻔﻦ. . . . .. .
ﻋﺮض ﻋﺪد اﻟ . . .
ﺒﻴﺎﻧﺎ ت
ﺗﺼﻮر اﻟ
اﻟﻤﺸﺮوع 2:
15
ﺒﻴﺎﻧﺎ ت
ﺗﻮﻟﻴﺪ اﻟ 321
ﺐ .. .. .
matplotlib. ﺗﺮﻛﻴ . .
.. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 322
ﺲ. . . ..
ﻟﻴﻨﻜ. .
ﻋﲆ . ... .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 322
ﻧﻈﺎمWindows. .
ﻋﲆ. . .
. .OS
ﻋﲆ . X. .
.. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 322
.. . .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 323
ﺒﺎرmatplotlib. .
ﺘ .
.. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. ..
اﺧ . . 323
ﺖ Pygal.. .
ﺒﻴ . .
ﺜ.
. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. ..
ﺗ . . 340
ﺘﻔﺎﺻﻴﻞ xxi
ﺘﻮﻳﺎ ت ﻓ ﻲ اﻟ
اﻟﻤﺤ
Machine Translated by Google
16
ﺒﻴﺎﻧﺎ ت
ﺗﻨﺰﻳﻞ اﻟ 349
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ﺗﻨ ﺴﻴﻖ ﻣﻠﻒ CSV. . . 350
. . . . . . . . . . . . . . . . . . . . . .CSV.
. . . .. .350
ﻣﻠﻒ. .
ﺗﺤﻠﻴﻞ رؤوس. . .
. . . . . . . . . . . . . . .351
وﻣﻮاﻗﻌﻬﺎ. . . .. .
اﻟﺮؤوس. . . . .
. ﺒﺎﻋ ﺔ
ﻃ
. . . . . . . . . . . . . . . . . . . . 352 ﺗﻬﺎ. . . .. . .
وﻗﺮاء . .
ﺒﻴﺎﻧﺎ .ت . . .
ﺘﺨﺮاج اﻟ . اﺳ
. . . . . . . . . . 353
اﻟﺤﺮارة. . .. . ..
درﺟ .ﺔ . . .
ﻣﺨﻄﻂ . .
ﺒﻴﺎﻧﺎ ت .ﻓ .ﻲ . . . .رﺳﻢ اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 واﻟﻮﻗ. .ﺖ. . .. .. .
ﺘﺎرﻳﺦ . .وﺣﺪة اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .355 ﻳﺦ. . . .. .
ﺘﻮار .
ﺘﺂﻣﺮ اﻟ
اﻟ
. . . . . . . . . . . . . . . . . . . . . . 356
أﻃﻮل. . .. .. . ..
رﺳﻢ إﻃﺎر زﻣﻨ .ﻲ. . .
. . . . . . . . . . . . . . . . . . . . . 357ﺛﺎﻧﻴ .ﺔ. . .. . ..
ﺑﻴﺎﻧﺎ . .ت .
رﺳﻢﺳﻠ ﺴﻠ ﺔ . .
. . . . . . . . . . . . . . . . . . 358
ﺒﻴﺎﻧ .ﻲ. . .. .. .
ﺳﻢ. .اﻟ .
اﻟﺮ .
ﺗﻈﻠﻴﻞ ﻣﻨﻄﻘ ﺔ. .ﻓ ﻲ. .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .359
اﻟﺨﻄﺄ. . . .. . .. .
ﺘﺤﻘﻖ ﻣﻦ . .
اﻟ
ﺗﻤﺮﻳﻦ 16-1:ﺳﺎن ﻓﺮاﻧ ﺴﻴ ﺴﻜﻮ362 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
ﺒﻴﻘﺎ ت
ﺘﻄﺑﺮﻣﺠ ﺔ اﻟاﻟﻌﻤﻞ ﻣﻊ واﺟﻬﺎ ت 377
. . . GitHub.
.Webو . . . . ..
. . . API
. . Git
ﺘﺨﺪام . .
ﺳ.. .
ﺑﺎ.
. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 378
. .. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 378
ﺘﻔﺼﻴﻞ
ﺑﺎﻟ
ﺘﻮﻳﺎ ت xxii
ﻣﺤ
Machine Translated by Google
ﺒﻴﻘﺎ ت اﻟﻮﻳ ﺐ
ﺗﻄاﻟﻤﺸﺮوع 3:
18
اﻟﺸﺮوع ﻓ ﻲ اﻟﻌﻤﻞ ﻣﻊ Django 397
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .اﻧﺸﺎء ﻣﺸﺮوع. . . 398
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .398
ت. . .. .. . .
اﻟﻤﻮاﺻﻔﺎ . .
.. ﺑﺔ
ﺘﺎ
ﻛ
. . . . . . . . . . . . . . . . . . . . 398
ﺘﺮاﺿﻴ.ﺔ. . .. .. .. .
ﺑﻴﺌ ﺔ اﻓ . . . ﺧﻠﻖ
. . . . . . . . . . . . . . . . . . . . . . . . . . . .Virtualenv.
ﺒﻴ ﺖ . . . . . . .. .. .. 399
ﺜﺗ
. . . . . . . . . . . . . . . . . 399
ﺘﺮاﺿﻴ .ﺔ. . .. .. .
اﻻﻓ . . .
ﺒﻴﺌ ﺔ. . .ﺗﻔﻌﻴﻞ اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Django.
ﺒﻴ ﺖ . . . . . .. .. 400ﺜﺗ
. . . . . . . . . . . . . . . . . . . . . . .Django.
ﻣﺸﺮوع .ﻓ .ﻲ. . . . .. إﻧﺸﺎء. .
400
. . . . . . . . . . . . . . . . . . . . . . . . .401
ﺒﻴﺎﻧﺎ .ت. . .. .. .. .
إﻧﺸﺎء ﻗﺎﻋﺪة.اﻟ. . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
اﻟﻤﺸﺮوع. . . .. . .. .
ﻣﺸﺎ ﻫﺪة . . . .
ﺘﻤﺮﻳﻦ 18-1:اﻟﻤﺸﺮوﻋﺎ ت اﻟﺠﺪﻳﺪة402 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 ﺒﻴﻖ. . .. .. . ..
ﺘﻄ . .
ﺑﺪءﺗﺸﻐﻴﻞ .اﻟ .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .403
اﻟﻨﻤﺎذج. . .. .. .
.. ﺗﺤﺪﻳﺪ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .404
اﻟﻨﻤﺎذج. . .. .. .
.. ﺗﻔﻌﻴﻞ
. . . . . . . . . . . . . . . . . . . . . . . . . . Django.
. . . . . .. .. 406
ﻣﻮﻗﻊ إدارة . .
. . . . . . . . . . . . . . . . . . . . . . .408 اﻟﺪﺧﻮل. . .. . .. ..
ﻧﻤﻮذج . . . .
. ﺗﺤﺪﻳﺪ
. . . . . . . . . . . . . . . . . . . . . . . 409 اﻹدﺧﺎل. . . . .. .
ﻧﻤﻮذج. . . . .
. ﺗﺮﺣﻴﻞ
. . . . . . . . . . . 409
اﻹدارة. . .. .. .
ﻣﻮﻗﻊ. . . .اﻟﺪﺧﻮل .ﻓ .ﻲ . . .
.. ﺗ ﺴﺠﻴﻞ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 ﺷﻞ ﺟﺎﻧﻐﻮ. . .. .. .
ﺗﻤﺮﻳﻦ 18-2:إدﺧﺎﻻ ت ﻗﺼﻴﺮة412 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . .Django
. . . . . .412
ﺒﻴﻘﺎ. .ت. . .
ﺗﻄ. .
ﺑﺮﻣﺠ.ﺔ. .
واﺟﻬ.ﺔ. . .
. . .18-3:
ﺘﻤﺮﻳﻦ . . .
اﻟ
ﺘﺰا412 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺑﻴﺗﻤﺮﻳﻦ 18-4:
. . . 412
ﺘﻌﻠﻢ. . . .
ﺴﺠﻞ .اﻟ. . .
ﺴﻴ .ﺔ ﻟ. . .
ﺋﻴ. .
اﻟﺼﻔﺤ .ﺔ .اﻟﺮ.
اﻟﺼﻔﺤﺎ .ت. . . .:
ﺗﻜﻮﻳﻦ . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .URL. . . . .. . 413
ﻋﻨﻮان . . .
. ﺗﻌﻴﻴﻦ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
ﻧﻈﺮ. . .. ..
وﺟﻬ.ﺔ . .
ﺑﺔ .
ﺘﺎ
ﻛ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 ﺑ ﺔ ﻗﺎﻟ ﺐ. . .. .. .. .
ﺘﺎ
ﻛ
ﺒﺎ ت416 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺘﻤﺮﻳﻦ 18-5:ﻣﺨﻄﻂ اﻟﻮﺟ اﻟ
ﺘﺰا416 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺑﻴﺋﻴ ﺴﻴ ﺔ ﻟﻤﻄﻌﻢ
ﺘﻤﺮﻳﻦ 18-6:اﻟﺼﻔﺤ ﺔ اﻟﺮ اﻟ
ﺑﻨﺎء . . .
ﺻﻔﺤﺎ ت إﺿﺎﻓﻴ ﺔ. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 416
ﺛ ﺔ اﻟﻨﻤﻮذج. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. ..
ورا . . 416
ﺻﻔﺤ.ﺔ .اﻟﻤﻮاﺿﻴﻊ.
. .. .. .. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 418
ﺻﻔﺤﺎ ت اﻟﻤﻮﺿﻮع اﻟﻔﺮدﻳ ﺔ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
ﺘﻔﺼﻴﻞ
ﺑﺎﻟﺘﻮﻳﺎ ت
اﻟﻤﺤ ﺜﺎﻟ ﺚ واﻟﻌﺸﺮون
اﻟ
Machine Translated by Google
19
ﺘﺨﺪﻣﻴﻦ
ﺑﺎ ت اﻟﻤ ﺴ
ﺣ ﺴﺎ 427
. . . . . . . . . . . . . . . . 428
ﺒﻴﺎﻧﺎ .ت. . . .. . .. ..
ﺑﺈدﺧﺎل اﻟ. . .
ﺘﺨﺪﻣﻴﻦ. . . . .
ﺴ . . ..
ﻟﻠﻤ. . اﻟ ﺴﻤﺎح
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .428
ﻳﺪة. . .. . ..
ﻣﻮاﺿﻴﻊ .ﺟﺪ. .
. إﺿﺎﻓ ﺔ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .432
ﻳﺪة. . .. . ..
ﺟﺪ .
إﺿﺎﻓ ﺔ إدﺧﺎﻻ .ت. .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .435
ﺗﺤﺮﻳﺮ اﻹدﺧﺎﻻ . .ت. .. .. .
ﺒﻨﺎء454 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺘﻤﺮﻳﻦ 19-3:إﻋﺎدة اﻟ
اﻟ
ﺘﻤﺮﻳﻦ 19-4:ﺣﻤﺎﻳ ﺔ اﻟﻤﺪﺧﻞ اﻟﺠﺪﻳﺪ454 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
ﺘﻤﺮﻳﻦ 19-5:ﻣﺪوﻧ ﺔ ﻣﺤﻤﻴ ﺔ454 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ﻣﻠﺨﺺ . . . 454
20
ﺒﻴﻖ وﻧﺸﺮه
ﺘﻄﺗﺼﻤﻴﻢ اﻟ 455
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .456 ﺘﺼﻤﻴﻢ. . ... .
ﺳﺠﻞﺗﻌﻠﻢ اﻟ . . . .
. . . . . . . . . . . . . . . . . . django-
. . . . bootstrap3.
ﺒﻴﻖ . . . . . . . . .. .. 456ﺘﻄ
اﻟ
. . . . . .457
ﺘﻌﻠﻢ. .. .. . ..
ﺳﺠﻞ .اﻟ . .
ﺳﻠﻮ .ب. . .
ﻷ.. . Bootstrap
.. .. ﺘﺨﺪاماﺳ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . base.html.
ﺗﻌﺪﻳﻞ . . . . . . .. . 458
. .Jumbotron.
. . . . . . .. . 461
ﺘﺨﺪام. . .
ﺑﺎﺳ. . .
ﺴﻴ ﺔ. .
ﺋﻴ .
اﻟﺮ .
اﻟﺼﻔﺤ .ﺔ .
. ﺗﺼﻤﻴﻢ
. . . . . . . . . . . . . . . . . . .461
اﻟﺪﺧﻮل. . . . .. .. .
ﺴﺠﻴﻞ . . . .
ﺗ. . . . ﺻﻔﺤ ﺔ .
.. ﺗﺼﻤﻴﻢ
. . . . . . . . . . . . . . . . . . . . . . new_topic.
. . . . . . .. . .463
ﺗﺼﻤﻴﻢ ﺻﻔﺤ .ﺔ . .
. . . . . . . . . . . . . . . . . . . . . . . . . .463 اﻟﻤﻮاﺿﻴﻊ. . . .. .
ﺗﺼﻤﻴﻢ ﺻﻔﺤ .ﺔ . . . . .
. . . . . . . . . . 464
اﻟﻤﻮﺿﻮع. . .. . ..
ﺻﻔﺤ ﺔ. . . . .
اﻹدﺧﺎﻻ .ت.ﻓ .ﻲ . . .
. ﺗﺼﻤﻴﻢ
ﺘﻤﺮﻳﻦ 20-1:أﺷﻜﺎل أﺧﺮى466 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اﻟ
ﺘﻔﺼﻴﻞ
ﺑﺎﻟ
ﺘﻮﻳﺎ ت xxiv
ﻣﺤ
Machine Translated by Google
ﺒﺎﺷﺮة482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺘﻤﺮﻳﻦ 20-3:ﻣﺪوﻧ ﺔ ﻣ
اﻟ
ﺘﻤﺮﻳﻦ 20-4:اﻟﻤﺰﻳﺪ ﻣﻦ 404. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482اﻟ
ﺘﻌﻠﻢ اﻟﻤﻮﺳﻊ482 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ﺘﻤﺮﻳﻦ 20-5:ﺳﺠﻞ اﻟ اﻟ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ﻣﻠﺨﺺ . . . 482
ﺗﻤ ﺔ
ﺧﺎ 483
أ
ﺜﻮن
ﺑﺎﻳﺒﻴ ﺖ
ﺜﺗ 485
ﺲ. . . .. .
ﻟﻴﻨﻜ . .
ﻋﲆ . . .ﺜﻮن . .
ﻳ ..
ﺑﺎ.
. .. . .. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 485
ﺘ ﺔ. .
ﺒﺜﺒﺤ ﺚ ﻋﻦ اﻟﻨ ﺴﺨ ﺔ اﻟﻤ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .اﻟ . . 486
ﺘ ﺔ. .
ﺒﺜﺒﺤ .ﺚ. .ﻋﻦ اﻟﻨ ﺴﺨ ﺔ اﻟﻤ . . . . . . . . . . . . . . . . . . . . . . . . . . .اﻟ . . . 486
ﺜﻮن.ﺑﺎﻳﺘﺮﺟﻢ
ﻋﲆ ﻣﺜﻮر . .
اﻟﻌ .
.. .. .. .. .. . .. .. .. .. .. .. . .. .. . . 488
ب
ﻣﺤﺮري اﻟﻨﺼﻮص 491
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ﺟﻨ ﻲ . . . 492
ﺒﻴ .ﺖ. . . .
Geanyﻋﲆ ﻟﻴﻨﻜ ﺲ. . ﺜ.
. .. .. .. .. . .. .. .. .. .. .. . .. ..
ﺗ . . 492
ﺘﻔﺼﻴﻞ
ﺘﻮﻳﺎ ت ﻓ ﻲ اﻟﺨﺎﻣ ﺲ واﻟﻌﺸﺮون ﻣﻦ اﻟ
اﻟﻤﺤ
Machine Translated by Google
ج
اﻟﺤﺼﻮل ﻋﲆ ﻣ ﺴﺎﻋﺪة 499
د
ﺘﺤﻜﻢ ﻓ ﻲ اﻹﺻﺪار
ﺘﺨﺪام Gitﻟﻠ
اﺳ 505
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Git. ﺒﻴ ﺖ . . ..... 506
ﺜﺗ
. . . . . . . . . . . . . . . . . . . . . . . . . .Linux.
. . . .. . .. 506
ﻋﲆ . .
ﺒﻴ ﺖ . . Gitﺜﺗ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . OS
. . X. . .. 506
ﻋﲆ . .
ﺒﻴ ﺖ . . Git ﺜﺗ
. . . . . . . . . . . . . . . . . . . . . . . .506
ﻳﻨﺪوز. . . .. .
اﻟﻮ. . .ﻋﲆ .
ﺒﻴ ﺖ . . Git ﺜﺗ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Git. ﺗﻜﻮﻳﻦ . . .. .. . 506
ِس
ِﻬﺮ
ﻓ 515
ﺘﻔﺼﻴﻞ
ﺑﺎﻟ
ﺘﻮﻳﺎ ت xxvi
ﻣﺤ
Machine Translated by Google
ﺘﺮف dgments
اﻋ
ﺑﺔ
ﺘﺎ
ﺑﻮﻟﻮك ﻟﻜﺑﻴﻞ ﺘﺎ ب ﻣﻤﻜﻨﺎ ً ﻟﻮﻻ ﻃﺎﻗﻢ اﻟﻌﻤﻞ اﻟﺮاﺋﻊ واﻟﻤﺤ
ﺘﺮف ﻟﻠﻐﺎﻳ ﺔ ﻓ ﻲ No Starch Press.دﻋﺎﻧ ﻲ ﻟﻢﻳﻜﻦ ﻫﺬا اﻟﻜ
ﺑﺸﺪة ﻫﺬا اﻟﻌﺮض اﻷﺻﻠ ﻲ.ﺘﺎ بﺗﻤﻬﻴﺪي ،وأﻧﺎ أﻗﺪر
ﻛ
ﺘ ﻲ ،إﻳﺮﻳﻦ ،
ﺗﻪ .أود أن أﺷﻜﺮ زوﺟ
ﺒﻜﺮة وﻟﻌﺪم ﺧﻮﻓﻪ ﻣﻦ ﻛ ﺴﺮ ﻣﻌﺪا
ﺒﺮﻣﺠ ﺔ ﻓ ﻲﺳﻦ ﻣ
ﺘﻘﺪﻳﻤﻪ ﻟ ﻲ اﻟ
أود أن أﺷﻜﺮ واﻟﺪي ﻟ
ﺑﻨ ﻲ ،إﻳﻔﺮ ،اﻟﺬيﻳﻠﻬﻤﻨ ﻲ ﻓﻀﻮﻟﻪ ﻛﻞﻳﻮم.
ﺘﺎ ب ،وأود أن أﺷﻜﺮ ا
ﺗﺸﺠﻴﻌ ﻲ ﻣﻦ ﺧﻼلﺗﺄﻟﻴﻒ ﻫﺬا اﻟﻜ
ﻟﺪﻋﻤﻬﺎ و
Machine Translated by Google
Machine Translated by Google
ﻣﻘﺪﻣ ﺔ
ﺒﺔ
ﺘ ﻲ و ﻫ ﻲﺗﻠﻌ ﺐ ﻟﻌ
ﺋﻤﺎ ﻣﺪى رﺿﺎي ﻋﻦ ﻣﺸﺎ ﻫﺪة ﻋﺎﺋﻠ
ﺗﺬﻛﺮ دا ً
ﺳﺄ
ﺘﻬﺎ وﻋﻤﻠ ﺖ ﻛﻤﺎ ﻛﻨ ﺖ أﻧﻮﻳﻬﺎ.
ﺘ ﻲ ﺻﻨﻌ
اﻟ
ﺑﻨﺎء ﺷ ﻲء ﻟﻐﺮض ،ﺷ ﻲءﻳﺤﻞ ﻣﺸﻜﻠ ﺔ.ﺛﻴﺮ داﺋﻢ .ﻫﻨﺎك رﺿﺎ ﺣﻘﻴﻘ ﻲ ﻓ ﻲ
ﺒﻜﺮةﺗﺄ
ﺑ ﺔ اﻟﻤ
ﺘﺠﺮ
ﺘﻠﻚ اﻟ
ﻛﺎن ﻟ
ﺘﺎ ب؟
ﻟﻤﻦ ﻫﺬا اﻟﻜ
ﺜﻞ
ﺑﺮاﻣﺞﺗﻌﻤﻞ -ﻣﺘﻤﻜﻦ ﻣﻦ إﻧﺸﺎء
ﺘﻰﺗ
ﺘﺎ ب ﻫﻮ إﻃﻼﻋﻚ ﻋﲆﺳﺮﻋ ﺔ Pythonﻓ ﻲ أﺳﺮع وﻗ ﺖ ﻣﻤﻜﻦ ﺣ
اﻟﻬﺪف ﻣﻦ ﻫﺬا اﻟﻜ
ﺗﻚ.ﺗﻢﺗﺼﻤﻴﻢ
ﺒﻘﻴ ﺔ ﺣﻴﺎ
ﺒﺮﻣﺠ ﺔﺳﻴﺨﺪﻣﻚ ﺟﻴﺪًا ﻟ
ﺛﻨﺎءﺗﻄﻮﻳﺮ أﺳﺎس ﻓ ﻲ اﻟ
ﺒﻴﻘﺎ ت اﻟﻮﻳ ﺐ -أ
ﺗﻄﺒﻴﺎﻧﺎ ت و
ﺗﺼﻮرا ت اﻟ
اﻷﻟﻌﺎ ب و
ﺒﺮﻣﺠﻮا ﻣﻄﻠ ًﻘﺎ ﻋﲆ
ﺒﻞ أو ﻟﻢﻳ
ﺒﺮﻣﺠ ﺔ ﻓ ﻲ Pythonﻣﻦ ﻗ
ﺒﻖ ﻟﻬﻢ اﻟ
Python Crash Courseﻟﻸﺷﺨﺎص ﻣﻦ أي ﻋﻤﺮ ﻟﻢﻳ ﺴ
ﺗﺮﻏ ﺐ
ﺘﻤﺎم ،و
ﺜﻴﺮة ﻟﻼ ﻫ
ﺘﺮﻛﻴﺰ ﻋﲆ ﻣﺸﺎرﻳﻊ ﻣ
ﺘﻤﻜﻦ ﻣﻦ اﻟ
ﺘﻰﺗ
ﺑ ﺴﺮﻋ ﺔ ﺣﺒﺮﻣﺠ ﺔ
اﻹﻃﻼق .إذا ﻛﻨ ﺖﺗﺮﻏ ﺐ ﻓ ﻲﺗﻌﻠﻢ أﺳﺎﺳﻴﺎ ت اﻟ
ﺘﺎ ب ﻣﻨﺎﺳ ﺐ ﻟﻚ.ﺗﻌﺪ Crash Course
ﺒﺎر ﻓﻬﻤﻚ ﻟﻠﻤﻔﺎ ﻫﻴﻢ اﻟﺠﺪﻳﺪة ﻣﻦ ﺧﻼل ﺣﻞ اﻟﻤﺸﻜﻼ ت ذا ت اﻟﻤﻐﺰى ،ﻓﻬﺬا اﻟﻜ
ﺘﻓ ﻲ اﺧ
ﺘﻌﺮﻳﻒ ﻗﺎﺋﻢ ﻋﲆ اﻟﻤﺸﺮوع
ﺑﺑﻬﻢ
ﺒﻮن ﻓ ﻲﺗﺰوﻳﺪ ﻃﻼ
ﺜﺎﻧﻮﻳ ﺔ اﻟﺬﻳﻦﻳﺮﻏ ﺜﺎﻟﻴ ﺔ أ ً
ﻳﻀﺎ ﻟﻤﻌﻠﻤ ﻲ اﻟﻤﺪارس اﻹﻋﺪادﻳ ﺔ واﻟ Pythonﻣ
ﺒﺮﻣﺠ ﺔ.
ﻟﻠ
ﺘﻌﻠﻢ؟
ﺘﻮﻗﻊ أنﺗ
ﻣﺎذاﺗ
ﺒﻨﻰ
ﺘﺗﺑﻜﻔﺎءة وﺘﻌﻠﻢ
ﺘﺑﺸﻜﻞ ﺧﺎص.ﺳﺜﻮن ﺟﻴﺪًا
ﺑﺎﻳﺒﺮﻣﺞ
ﺑﺸﻜﻞ ﻋﺎم وﻣﺒﺮﻣﺠًﺎ ﺟﻴﺪًا
ﺘﺎ ب ﻫﻮ أنﺗﺠﻌﻠﻚ ﻣ
اﻟﻐﺮض ﻣﻦ ﻫﺬا اﻟﻜ
ﺒﺮ Crash Course ،
ﺑﻌﺪ أنﺗﺸﻖ ﻃﺮﻳﻘﻚ ﻋﺘﻴﻨًﺎ ﻓ ﻲ ﻣﻔﺎ ﻫﻴﻢ ﻗﻮاﻋﺪ اﻟﻠﻐ ﺔ اﻟﻌﺎﻣ ﺔ.
ﺳﺎ ﻣ
ﻋﺎدا ت ﺟﻴﺪةﻷﻧﻨ ﻲ أﻗﺪم ﻟﻚ أﺳﺎ ً
ﺘﺎﻟﻴ ﺔ أﺳﻬﻞ ﻓ ﻲ اﻟﻔﻬﻢ.
ﺒﺮﻣﺠ ﺔ اﻟ
ﺘﻜﻮن ﻟﻐ ﺔ اﻟ
ﺗﻘﺪﻣﺎ ،وﺳ
ً ﺜﺮ Pythonﻳﺠ ﺐ أنﺗﻜﻮن ﺟﺎ ﻫ ًﺰا ﻟﻼﻧ
ﺘﻘﺎل إﱃﺗﻘﻨﻴﺎ ت Pythonاﻷﻛ
ﺜﻮن .ﻫﺬه
ﺑﺎﻳﺑﺮاﻣﺞﺑﺔ
ﺘﺎ
ﺘﻬﺎ ﻟﻜ
ﺘﺎج إﱃ ﻣﻌﺮﻓ
ﺘ ﻲﺗﺤ
ﺒﺮﻣﺠ ﺔ اﻷﺳﺎﺳﻴ ﺔ اﻟ
ﺘﺎ ب ﻣﻔﺎ ﻫﻴﻢ اﻟ
ﺘﻌﻠﻢ ﻓ ﻲ اﻟﺠﺰء اﻷول ﻣﻦ ﻫﺬا اﻟﻜ
ﺘﺳ
ﺘﻲ
ﺘﻠﻔ ﺔ واﻟﻄﺮق اﻟ
ﺒﻴﺎﻧﺎ ت اﻟﻤﺨ
ﺘﻌﺮف ﻋﲆ أﻧﻮاع اﻟ
ﺘﺒﺎ.ﺳ
ﺑﺮﻣﺠ ﺔﺗﻘﺮﻳ ًﺒﺪء ﻓ ﻲ أي ﻟﻐ ﺔ
ﺘﻌﻠﻤﻬﺎ ﻋﻨﺪ اﻟ
ﺘﺘ ﻲﺳ
اﻟﻤﻔﺎ ﻫﻴﻢ ﻫ ﻲ ﻧﻔ ﺴﻬﺎ اﻟ
ﺒﻴﺎﻧﺎ ت واﻟﻌﻤﻞ
ﺘﻌﻠﻢ ﻛﻴﻔﻴ ﺔ إﻧﺸﺎء ﻣﺠﻤﻮﻋﺎ ت ﻣﻦ اﻟ
ﺘﺑﺮاﻣﺠﻚ.ﺳﺒﻴﺎﻧﺎ ت ﻓ ﻲ ﻗﻮاﺋﻢ وﻗﻮاﻣﻴ ﺲ داﺧﻞ
ﻳﻤﻜﻨﻚ ﻣﻦ ﺧﻼﻟﻬﺎﺗﺨﺰﻳﻦ اﻟ
ﺑﻄﺮق ﻓﻌﺎﻟ ﺔ.ﻣﻦ ﺧﻼلﺗﻠﻚ اﻟﻤﺠﻤﻮﻋﺎ ت
ﺒﺮﻣﺠﻴ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻤﻜﻦ ﻣﻦﺗﺸﻐﻴﻞ أﻗ ﺴﺎم ﻣﻌﻴﻨ ﺔ ﻣﻦ اﻟ
ﺘﻰﺗ
ﺒﺎر ﺷﺮوط ﻣﻌﻴﻨ ﺔ ﺣ
ﺘﺘﺨﺪام ﺣﻠﻘﺎ ت whileو ifﻻﺧ
ﺘﻌﻠﻢ اﺳ
ﺘﺳ
ﺘﺔ
ﺗﻤﺒﻴﺮ ﻓ ﻲ أ
ﺑﺸﻜﻞ ﻛﺗﺸﻐﻴﻞ أﻗ ﺴﺎم أﺧﺮى ﻋﻨﺪﻣﺎ ﻻﺗﻜﻮن ﻛﺬﻟﻚ -و ﻫ ﻲﺗﻘﻨﻴ ﺔﺗ ﺴﺎﻋﺪ
ﻋﻨﺪﻣﺎﺗﻜﻮن ﻫﺬه اﻟﺸﺮوط ﺻﺤﻴﺤ ﺔ و
اﻟﻌﻤﻠﻴﺎ ت.
ﺘﺨﺪم
ﺘﺸﻐﻴﻞ ﻃﺎﻟﻤﺎ ﻛﺎن اﻟﻤ ﺴ
ﺑﺮاﻣﺠﻚ ﻗﻴﺪ اﻟﺑﻘﺎء
ﺑﺮاﻣﺠﻚ ﻧﺸﻄ ﺔ وﻹﺘﺨﺪﻣﻴﻦ ﻟﺠﻌﻞ
ﺒﻮل اﻟﻤﺪﺧﻼ ت ﻣﻦ اﻟﻤ ﺴ
ﺘﻌﻠﻢ ﻗ
ﺘﺳ
ﻧﺸﻄﺎ.
ً
ﺘﻞ ﻣﻦ
ﺑﺔ ﻛ
ﺘﺎ
ﺘﺨﺪام ،ﻟﺬﻟﻚ ﻋﻠﻴﻚ ﻓﻘﻂ ﻛ
ﺑﻠ ﺔ ﻹﻋﺎدة اﻻﺳ
ﺑﺮﻧﺎﻣﺠﻚ ﻗﺎﺑ ﺔ وﻇﺎﺋﻒ ﻟﺠﻌﻞ أﺟﺰاء ﻣﻦ
ﺘﺎ
ﺘﻜﺸﻒ ﻛﻴﻔﻴ ﺔ ﻛ
ﺳﻮفﺗ ﺴ
ﺘ ﻲﺗﺆدي أدا ًء ﻣﻌﻴﻨًﺎ
ﺒﺮﻣﺠﻴ ﺔ اﻟ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
اﻟ
xxxﻣﻘﺪﻣ ﺔ
Machine Translated by Google
ﺜﺮﺗﻌﻘﻴﺪًا.
ﺒﺮ وأﻛ
ﺑﻤﺸﺎرﻳﻊ أﻛﺘﺠﻬﺰك ﺟﻤﻴﻊ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟﻮاردة ﻓ ﻲ اﻟﺠﺰء اﻷول ﻟﻠﻘﻴﺎم
ﺳ
ﺒﻴﺎﻧﺎ ت
ﺘﺮﻧ ﺖ وﻣﺠﻤﻮﻋﺎ ت اﻟ
ﺒﺮ اﻹﻧ
ﺘ ﻲﺗﻢﺗﻨﺰﻳﻠﻬﺎ ﻣﻦ اﻟﻤﺼﺎدر ﻋ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺒﺮﻣﺠﻴ ﺔ وﻣﺠﻤﻮﻋﺎ ت اﻟ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑﺈﻧﺸﺎﺋﻬﺎ ﻣﻦ ﺧﻼل اﻟ
ﺘﻢﺗﻨﺰﻳﻠﻬﺎﺗﻠﻘﺎﺋ ًﻴﺎ.
ﺘ ﻲﻳ
اﻟ
ﺋﻴ ﺔ
ﺜﻴﻼ ت ﻣﺮ
ﺗﻘﺪمﺗﻤ
ﺒﻴﺮة و
ﺒﻴﺎﻧﺎ ت اﻟﻜ
ﺘ ﻲﺗﻔﺤﺺ ﻣﺠﻤﻮﻋﺎ ت اﻟ
ﺒﺮاﻣﺞ اﻟ
ﺑ ﺔ اﻟ
ﺘﺎ
ﺘﻤﻜﻦ ﻣﻦ ﻛ
ﺘﺘﻬﺎء ﻣﻦ ﻫﺬا اﻟﻤﺸﺮوع ،ﺳ
ﺑﻌﺪ اﻻﻧ
ﺘﻠﻚ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟﻤﺨﺰﻧ ﺔ.
ﻟ
ﺜﻮن؟
ﺑﺎﻳﻟﻤﺎذا
ﺒﺮﻣﺠ ﺔ .ﻟﻜﻨﻨ ﻲ ﻣﺎ
ﺑﻤﺎ ﻟﻐ ﺔ أﺣﺪ ث ﻓ ﻲ ﻋﺎﻟﻢ اﻟ
ﺘﻠﻔ ﺔ -ر
ﺘﻘﺎل إﱃ ﻟﻐ ﺔ ﻣﺨ
ﺘﺨﺪام Pythonأو اﻻﻧ
ﺘﻤﺮار ﻓ ﻲ اﺳ
ﻛﻞ ﻋﺎم أﻓﻜﺮ ﻓ ﻲ اﻻﺳ
ﺑﺮاﻣﺠﻚ ﻓ ﻲ ﻋﺪدﺳﻄﻮر أﻗﻞﺘﻌﻤﻞ
ﺑﺸﻜﻞ ﻻﻳﺼﺪق:ﺳﺒﺎ ب ﻋﺪﻳﺪة .ﻟﻐ ﺔ Pythonﻫ ﻲ ﻟﻐ ﺔ ﻓﻌﺎﻟ ﺔ
ﺜﻮنﻷﺳ
ﺑﺎﻳزﻟ ﺖ أرﻛﺰ ﻋﲆ
ﺑ ﺔ ﻛﻮد
ﺘﺎ ﺜﻮن أ ً
ﻳﻀﺎ ﻋﲆ ﻛ ﺑﺎﻳﺑﻨﺎء ﺟﻤﻠ ﺔﺒﻪ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻠﻐﺎ ت اﻷﺧﺮى.ﺳﻴ ﺴﺎﻋﺪك
ﺘﻄﻠ
ﺜﺮ ﻣﻤﺎﺗ
ﺒﺮﻣﺠﻴ ﺔ أﻛ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﻣﻦ اﻟ
ﺑﺎﻟﻠﻐﺎ ت اﻷﺧﺮى.ﺒﻨﺎء ﻋﻠﻴﻬﺎ ﻣﻘﺎرﻧ ﺔ
ﺘﻮﺳﻴﻊ واﻟ
ﺘﺼﺤﻴﺢ ،واﻟ
ﺗﻚﺳﻬﻠ ﺔ اﻟﻘﺮاءة ،وﺳﻬﻠ ﺔ اﻟ
ﺘﻜﻮن ﺷﻔﺮ
"ﻧﻈﻴﻒ".ﺳ
ﺗﻄﻮﻳﺮ
ﺒﻴﻘﺎ ت اﻟﻮﻳ ﺐ ،وﺣﻞ ﻣﺸﺎﻛﻞ اﻟﻌﻤﻞ ،و
ﺑﻨﺎءﺗﻄ
ﺘﺨﺪم اﻟﻨﺎس Pythonﻷﻏﺮاض ﻋﺪﻳﺪة :ﻟﺼﻨﻊ اﻷﻟﻌﺎ ب ،و
ﻳﺴ
ﺒﺤ ﺚ
ﺜﺎﻓ ﺔ ﻓ ﻲ اﻟﻤﺠﺎﻻ ت اﻟﻌﻠﻤﻴ ﺔ ﻟﻠ
ﺑﻜ ﺜﻮن أ ً
ﻳﻀﺎ ﺑﺎﻳ ُﺴ
ﺘﺨﺪم ﺘﻤﺎم.ﺗ
ﺜﻴﺮة ﻟﻼ ﻫ
اﻷدوا ت اﻟﺪاﺧﻠﻴ ﺔ ﻓ ﻲ ﺟﻤﻴﻊ أﻧﻮاع اﻟﺸﺮﻛﺎ ت اﻟﻤ
ﺒﻴﻘ ﻲ.
ﺘﻄاﻷﻛﺎدﻳﻤ ﻲ واﻟﻌﻤﻞ اﻟ
ﺛﻮن
ﺜﻼﻣﻘﺪﻣ ﺔ اﻟﺤﺎدي واﻟ
Machine Translated by Google
ﺘﻀﻤﻦ ﻣﺠﻤﻮﻋ ﺔ
ﺘﻤﻊ Python ،واﻟﺬيﻳ
ﺘﺨﺪام Pythonﻫﻮ ﻣﺠ
ﺘﻤﺮ ﻓ ﻲ اﺳ
ﺘ ﻲﺗﺠﻌﻠﻨ ﻲ أﺳ
ﺒﺎ ب اﻟ
أﺣﺪ أ ﻫﻢ اﻷﺳ
ﺘﺎج
ﺒﺮﻣﺠ ﺔ ﻟﻴ ﺴ ﺖ ﻣ ﺴﻌﻰ ﻣﻨﻔﺮدًا.ﻳﺤ
ﺒﺮاﻣﺞﻷن اﻟ
ﺒﺮﻣﺠ ﺔ اﻟ
ﺘﻤﻊ ﺿﺮوري ﻟ
ﺑﺸﻜﻞ ﻻﻳﺼﺪق ﻣﻦ اﻟﻨﺎس .اﻟﻤﺠﺒﺔ
ﺘﻨﻮﻋ ﺔ وﻣﺮﺣ
ﻣ
ﺛﻠ ﺔ.ﻳﻌﺪ وﺟﻮد
ﺑﺎﻟﻔﻌﻞ ﻣﺸﻜﻼ ت ﻣﻤﺎﺒﺮة ،إﱃ ﻃﻠ ﺐ اﻟﻨﺼﻴﺤ ﺔ ﻣﻦ اﻵﺧﺮﻳﻦ اﻟﺬﻳﻦ ﺣﻠﻮا
ﺜﺮ ﺧ
ﺒﺮﻣﺠﻴﻦ اﻷﻛ
ﺘﻰ اﻟﻤ
ﻣﻌﻈﻤﻨﺎ ،ﺣ
ﺗﻤﺎﻣﺎ
ً ﺘﻤﻊ Pythonﻳﺪﻋﻢ
ﺗﻚ ﻓ ﻲ ﺣﻞ اﻟﻤﺸﻜﻼ ت ،ﻛﻤﺎ أن ﻣﺠ
ﺑﺎﻟﻎ اﻷ ﻫﻤﻴ ﺔ ﻟﻤ ﺴﺎﻋﺪﺑﻂ وداﻋﻢ ﺟﻴﺪًا أﻣ ﺮًا
ﺘﺮا
ﺘﻤﻊ ﻣ
ﻣﺠ
ﺑﺮﻣﺠ ﺔ أوﱃ.ﺘﻌﻠﻤﻮن Pythonﻛﻠﻐ ﺔ
ﺜﻠﻚ اﻟﺬﻳﻦﻳ
اﻷﺷﺨﺎص ﻣ
ﺒﺪأ!
ﺜﻮن ﻫ ﻲ ﻟﻐ ﺔ راﺋﻌ ﺔﻳﺠ ﺐﺗﻌﻠﻤﻬﺎ ،ﻓﻠﻨ
ﺑﺎﻳ
xxxiiﻣﻘﺪﻣ ﺔ
Machine Translated by Google
اﻟﺠﺰء اﻷول
أﺳﺎﺳﻴﺎ ت
ﺑﺔ
ﺘﺎ
ﺘﺎﺟﻬﺎ ﻟﻜ
ﺘﺤﺘ ﻲﺳ
ﺘﺎ ب اﻟﻤﻔﺎ ﻫﻴﻢ اﻷﺳﺎﺳﻴ ﺔ اﻟ
ﻳﻌﻠﻤﻚ اﻟﺠﺰء اﻷول ﻣﻦ ﻫﺬا اﻟﻜ
ﺒﺮﻣﺠ ﺔ ،ﻟﺬا
ﺜﻮن .اﻟﻌﺪﻳﺪ ﻣﻦ ﻫﺬه اﻟﻤﻔﺎ ﻫﻴﻢ ﺷﺎﺋﻌ ﺔ ﻓ ﻲ ﺟﻤﻴﻊ ﻟﻐﺎ ت اﻟ
ﺑﺎﻳﺑﺮاﻣﺞ
ﺒﺮﻣﺞ.
ﺗﻚ ﻛﻤ
ﺘﻜﻮن ﻣﻔﻴﺪة ﻃﻮال ﺣﻴﺎ
ﺳ
ﺑﺮﻧﺎﻣﺞﺗﺸﻐﻴﻞ أول
ﺑﻚ وﺗﺮ اﻟﺨﺎص
ﺒﻴﻮ
ﺒﻴ ﺖ Pythonﻋﲆ ﺟﻬﺎز اﻟﻜﻤ
ﺜﺘﺑﺘﻘﻮم
ﻓ ﻲ اﻟﻔﺼﻞ 1 ،ﺳ
ﺒﻊ رﺳﺎﻟ ﺔ !Hello worldﻋﲆ اﻟﺸﺎﺷ ﺔ.
ﺒﺮﻧﺎﻣﺞ اﻟﺬيﻳﻄ
اﻟ
ﺘﻐﻴﺮا ت واﻟﻌﻤﻞ
ﺗﺨﺰﻳﻦ اﻟﻤﻌﻠﻮﻣﺎ ت ﻓ ﻲ اﻟﻤ
ﺘﻌﻠﻢ ﻓ ﻲ اﻟﻔﺼﻞ 2
ﺘﺳ
ﻣﻊ اﻟﻨﺺ واﻟﻘﻴﻢ اﻟﻌﺪدﻳ ﺔ.
ﺜﻞ
ﺘﻠﻔ ﺔ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت .ﻣ
ﺑﻴﻦ أﺟﺰاء ﻣﺨﺗﺼﺎﻻ ت
ﺘﻴﺢ ﻟﻚ إﺟﺮاء ا
ﺘ ﻲﺗ
ﺜﻮن ،واﻟ
ﺑﺎﻳﺘﺨﺪام ﻗﻮاﻣﻴ ﺲ
ﻳﻮﺿﺢ ﻟﻚ اﻟﻔﺼﻞ 6ﻛﻴﻔﻴ ﺔ اﺳ
ﺘﺎج إﱃﺗﺨﺰﻳﻨﻬﺎ.
ﺘ ﻲﺗﺤ
ﺒﺮ ﻗﺪر ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟ
ﺘﻮي أﺳﻤﺎء اﻟﻤﺼﺎدر اﻟﺮﻗﻤﻴ ﺔ ﻋﲆ أﻛ
اﻟﻘﻮاﺋﻢ ،ﻳﻤﻜﻦ أنﺗﺤ
ﺘﻌﺮف أ ً
ﻳﻀﺎ ﻋﲆ ﺣﻠﻘﺎ ت while ، ﺘﺑﺮاﻣﺠﻚﺗﻔﺎﻋﻠﻴ ﺔ.ﺳﺘﺨﺪﻣﻴﻦ ﻟﺠﻌﻞ
ﺒﻮل اﻟﻤﺪﺧﻼ ت ﻣﻦ اﻟﻤ ﺴ
ﺑﻊ ﻛﻴﻔﻴ ﺔ ﻗ
ﺘﻌﻠﻢ ﻓ ﻲ اﻟﻔﺼﻞ اﻟ ﺴﺎ
ﺘﺳ
ﺘﻜﺮر ﻃﺎﻟﻤﺎ ﻇﻠ ﺖ ﺷﺮوط ﻣﻌﻴﻨ ﺔ ﺻﺤﻴﺤ ﺔ.
ﺑﺸﻜﻞ ﻣﺒﺮﻣﺠﻴ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻞ ﻣﻦ اﻟ
ﺘﺸﻐﻴﻞ ﻛ
ﺑﺘ ﻲﺗﻘﻮم
اﻟ
ﺒﺮﻣﺠﻴ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻞ ﻣﻦ اﻟ
ﺘ ﺐ وﻇﺎﺋﻒﺗ ﺴﻤﻰ ﻛ
ﺘﻜﺜﺎﻣﻦﺳ
ﻓ ﻲ اﻟﻔﺼﻞ اﻟ
ﺘﺠ ﺖ إﻟﻴﻬﺎ.
ﺘﻰ اﺣ
ﺘ ﻲﺗﺆدي ﻣﻬﻤ ﺔ ﻣﺤﺪدة وﻳﻤﻜﻦﺗﺸﻐﻴﻠﻬﺎ ﻣ
اﻟ
Machine Translated by Google
ﺘﻮﻗﻊ.
ﺑﺸﻜﻞ ﻏﻴﺮ ﻣﺑﺮاﻣﺠﻚﺘﻌﻄﻞ
ﺘﻰ ﻻﺗ
ﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻠﻔﺎ ت وﻣﻌﺎﻟﺠ ﺔ اﻷﺧﻄﺎء ﺣ
ﻳﻮﺿﺢ ﻟﻚ اﻟﻔﺼﻞ 10ﻛﻴﻔﻴ ﺔ اﻟ
ﺜﻨﺎءا ت
ﺘﺘﻌﺮف ﻋﲆ اﺳ
ﺘﺒﺮﻧﺎﻣﺞ ﻣﺮة أﺧﺮى.ﺳ
ﺒﻴﺎﻧﺎ ت ﻋﻨﺪﺗﺸﻐﻴﻞ اﻟ
ﺘﻌﻴﺪ ﻗﺮاءة اﻟ
ﺒﺮﻧﺎﻣﺞ ،وﺳ
ﺒﻞ إﻏﻼق اﻟ
ﺒﻴﺎﻧﺎ ت ﻗ
ﺘﺨﺰن اﻟ
ﺳ
ﺑﺄﻣﺎن.ﺘﻌﺎﻣﻞ ﻣﻊ ﻫﺬه اﻷﺧﻄﺎء
ﺑﺮاﻣﺠﻚﺗﺗﺠﻌﻞ
ﺘﻮﻗﻊ اﻷﺧﻄﺎء ،و
ﺑﺘ ﻲﺗ ﺴﻤﺢ ﻟﻚ
Python ،واﻟ
ﺘ ﻲﺗﺮﻳﺪ ﻫﺎ.
ﺑﺎﻟﻄﺮﻳﻘ ﺔ اﻟﺑﺮاﻣﺠﻚﺗﻌﻤﻞﺘﺤﻘﻖ ﻣﻦ أن
ﺑﻚ ﻟﻠﺒﺎرا ت ﻟﻠﻜﻮد اﻟﺨﺎص
ﺘﺑ ﺔ اﺧ
ﺘﺎ
ﺘﻌﻠﻢ ﻓ ﻲ اﻟﻔﺼﻞ 11ﻛ
ﺘﺳ
ﺑﺸﺄن إدﺧﺎل أﺧﻄﺎء ﺟﺪﻳﺪة.ﺑﺮاﻣﺠﻚ دون اﻟﻘﻠﻖﺘﻤﻜﻦ ﻣﻦﺗﻮﺳﻴﻊ
ﺘﺘﻴﺠ ﺔ ﻟﺬﻟﻚ ،ﺳ
ﻧ
ﺘﻮﺳﻂ.
ﺘﺪئ إﱃ ﻣ
ﺒﺒﺮﻣﺞ ﻣ
ﺘﻘﺎل ﻣﻦ ﻣ
ﺘ ﺴﺎﻋﺪك ﻋﲆ اﻻﻧ
ﺘ ﻲﺳ
ﺑﻚ أﺣﺪ اﻟﻤﻬﺎرا ت اﻷوﱃ اﻟﺒﺎر اﻟﻜﻮد اﻟﺨﺎص
ﺘﻳﻌﺪ اﺧ
2اﻟﺠﺰء اﻷول
Machine Translated by Google
1
ﺑﺪء
ا
ﺑﻚﺒﺮﻣﺠ ﺔ اﻟﺨﺎﺻ ﺔ
ﺑﻴﺌ ﺔ اﻟإﻋﺪاد
ﺒﺎرا ت .ﻫﻨﺎ ،ﺳﻨﻠﻘ ﻲ ﻧﻈﺮة
ﺘﺑﻌﺾ اﻻﻋﺘﺎج إﱃ ﻣﺮاﻋﺎة
ﺘﺤﺘﻠﻔ ﺔ ،ﻟﺬﻟﻚﺳ ﺘﻠﻒ Pythonﻗﻠﻴ ﻼ ً ﻓ ﻲ أﻧﻈﻤ ﺔ اﻟ
ﺘﺸﻐﻴﻞ اﻟﻤﺨ ﺗﺨ
ﺘﺨﺪام ﺣﺎﻟ ًﻴﺎ وﻧﺤﺪد اﻟﺨﻄﻮا ت اﻟﻼزﻣ ﺔ ﻹﻋﺪاد Pythonﻋﲆ ﻧﻈﺎﻣﻚ.
ﺋﻴ ﺴﻴﻴﻦ ﻣﻦ Pythonﻗﻴﺪ اﻻﺳ
ﻋﲆ اﻹﺻﺪارﻳﻦ اﻟﺮ
Machine Translated by Google
ﺜﻮن 3
ﺑﺎﻳ
ﺜﻮن 2و
ﺑﺎﻳ
ﺗﻘﻨﻴﺎ ت
ﺑﺮﻣﺠ ﺔ ﻣﻊ ﻇﻬﻮر أﻓﻜﺎر وﺘﻄﻮر ﻛﻞ ﻟﻐ ﺔ
ﺘﻮﻓﺮ إﺻﺪاران ﻣﻦ Python: Python 2و Python 3اﻷﺣﺪ ث.ﺗ
اﻟﻴﻮم ،ﻳ
ﺘﻐﻴﻴﺮا تﺗﺪرﻳﺠﻴ ﺔ وﻻﻳﻤﻜﻦ
ﺜﺮﺗﻨﻮﻋً ﺎ وﻗﻮة.ﺗﻜﻮن ﻣﻌﻈﻢ اﻟ
ﺘﻤﺮار ﻋﲆ ﺟﻌﻞ اﻟﻠﻐ ﺔ أﻛ
ﺑﺎﺳ
ﺟﺪﻳﺪة ،وﻗﺪ ﻋﻤﻞ ﻣﻄﻮرو Python
ﺑﺸﻜﻞ ﺻﺤﻴﺢ ﻋﲆ اﻷﻧﻈﻤ ﺔ
ﺑ ﺔ ﻟـ Python 2
ﺘﻮﺒﺮﻣﺠﻴ ﺔ اﻟﻤﻜ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑﻌﺾ اﻟﺤﺎﻻ ت ﻗﺪ ﻻﺗﻌﻤﻞ اﻟﺘﻬﺎ ،وﻟﻜﻦ ﻓ ﻲ
ﻣﻼﺣﻈ
ﺑﻴﻦ Python 2و Python 3 ،ﺒﻴﺮ
ﺘﻼف اﻟﻜ
ﺘﺎ ب ،ﺳﺄﺷﻴﺮ إﱃ ﻣﺠﺎﻻ ت اﻻﺧ
ﺒﻴ ﺖ Python 3ﻋﻠﻴﻬﺎ .ﺧﻼل ﻫﺬا اﻟﻜ
ﺜﺘ ﻲﺗﻢﺗ
اﻟ
ﺘﻌﻠﻴﻤﺎ ت.
ﺒﺎع اﻟ
ﺗﺘﻤﻜﻦ ﻣﻦ ا
ﺘﺘﺨﺪﻣﻪ ،ﺳ
ﻟﺬﻟﻚ أﻳًﺎ ﻛﺎن اﻹﺻﺪار اﻟﺬيﺗ ﺴ
ﺜﻮن
ﺑﺎﻳﺘﻄﻔﺎ ت ﻣﻦ ﻛﻮد
ﺗﺸﻐﻴﻞ ﻣﻘ
ﺑ ﺔ أﺟﺰاء ﻣﻦ Pythonدون اﻟﺤﺎﺟ ﺔ إﱃ ﺣﻔﻆ
ﺘﺠﺮ
ﺑﺘﺮﺟﻢﻳﻌﻤﻞ ﻓ ﻲ ﻧﺎﻓﺬة ﻃﺮﻓﻴ ﺔ ،ﻣﻤﺎﻳ ﺴﻤﺢ ﻟﻚ
ﺗ ﻲ Pythonﻣﻊ ﻣ
ﺗﺄ
ﺑﺮﻧﺎﻣﺞ ﻛﺎﻣﻞ.ﺗﺸﻐﻴﻞ
و
ﺘﺎﻟ ﻲ:
ﺒﺪو ﻛﺎﻟ
ﺘﻄﻔﺎ تﺗ
ﺘﺮى ﻣﻘ
ﺘﺎ ب ،ﺳ
ﻓ ﻲ ﻫﺬا اﻟﻜ
ﺘﺮﺟﻢ!"(
u >>> print ("Hello Pythonﻣ
ﺜﻮن!ﺑﺎﻳﺘﺮﺟﻢﺒﺎ ﻣ
ﻣﺮﺣ
ﺑﺮاﻣﺞﺒﺎرة ﻋﻦ
ﺘﺎ ب ﻋ
ﺜﻠ ﺔ اﻟﻤﻮﺟﻮدة ﻓ ﻲ اﻟﻜ
ﺑﺎﻟﻀﻐﻂ ﻋﲆ Enter.ﻣﻌﻈﻢ اﻷﻣﺛﻢﺗﻨﻔﺬهﺒﻪ
ﺘﺘﻜ
اﻟﻨﺺ اﻟﻐﺎﻣﻖ ﻫﻮ ﻣﺎﺳ
ﺘﻌﻠﻴﻤﺎ ت
ﺑﻬﺎ ﻣﻌﻈﻢ اﻟﺘﺐ
ﺘﻜﺘ ﻲﺳ
ﺑﻚ ،ﻷن ﻫﺬه ﻫ ﻲ اﻟﻄﺮﻳﻘ ﺔ اﻟﺘﺸﻐﻴﻠﻬﺎ ﻣﻦ اﻟﻤﺤﺮر اﻟﺨﺎص
ﺑﺗﻬﺎﺗﻘﻮم
ﺑﺬاﺻﻐﻴﺮة ﻗﺎﺋﻤ ﺔ
ﺘﻢ
ﺘ ﻲﻳ
ﺘﻄﻔﺎ ت اﻟ
ﺘﻢ ﻋﺮض اﻟﻤﻔﺎ ﻫﻴﻢ اﻷﺳﺎﺳﻴ ﺔ ﻓ ﻲﺳﻠ ﺴﻠ ﺔ ﻣﻦ اﻟﻤﻘ
ﺑﻌﺾ اﻷﺣﻴﺎنﻳﺑﻚ .ﻟﻜﻦ ﻓ ﻲﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
اﻟ
ﺜﺮ ﻛﻔﺎءة .ﻓ ﻲ أي وﻗ ﺖﺗﺮى أﻗﻮاس
ﺑﺸﻜﻞ أﻛﺘﻮﺿﻴﺢ اﻟﻤﻔﺎ ﻫﻴﻢ اﻟﻤﻌﺰوﻟ ﺔ
ﺗﺸﻐﻴﻠﻬﺎ ﻣﻦ ﺧﻼل ﺟﻠ ﺴ ﺔ Pythonاﻟﻄﺮﻓﻴ ﺔ ﻟ
ﺘﺮﺟﻢ اﻟﻔﻮري ﻟﻨﻈﺎﻣﻚ ﻓ ﻲ
ﺘﺮﻣﻴﺰ ﻓ ﻲ اﻟﻤ
ﺛ ﺔ ﻓ ﻲ رﻣﺰﻳ ﺴﺮد u ،ﻓﺄﻧ ﺖﺗﻨﻈﺮ إﱃ إﺧﺮاج ﺟﻠ ﺴ ﺔ ﻃﺮﻓﻴ ﺔ.ﺳﻨﺤﺎول اﻟ
ﺜﻼاﻟﺰاوﻳ ﺔ اﻟ
ﻏﻀﻮن ﻟﺤﻈ ﺔ.
ﺑﺎﻟﻌﺎﻟﻢ!ﺒﺎ
ﻣﺮﺣ
4اﻟﻔﺼﻞ 1
Machine Translated by Google
ﺘﻠﻔ ﺔ
ﺜﻮن ﻋﲆ أﻧﻈﻤ ﺔﺗﺸﻐﻴﻞ ﻣﺨ
ﺑﺎﻳ
ﺋﻴ ﺴﻴ ﺔ.ﻳﺠ ﺐﺗﺸﻐﻴﻞ
ﺘﺸﻐﻴﻞ اﻟﺮ
ﺒﺮ اﻷﻧﻈﻤ ﺔ اﻷﺳﺎﺳﻴ ﺔ ،ﻣﻤﺎﻳﻌﻨ ﻲ أﻧﻬﺎﺗﻌﻤﻞ ﻋﲆ ﺟﻤﻴﻊ أﻧﻈﻤ ﺔ اﻟ
ﺑﺮﻣﺠ ﺔ ﻋ Pythonﻫ ﻲ ﻟﻐ ﺔ
ﺒ ﺖ ﻋﻠﻴﻪ Python.وﻣﻊ ذﻟﻚ ،ﻓﺈن ﻃﺮق إﻋﺪاد Pythonﻋﲆ أﻧﻈﻤ ﺔ
ﺜﺗﺮ ﺣﺪﻳ ﺚ ﻣ
ﺒﻴﻮ
ﺒﻪ ﻋﲆ أي ﻛﻤ
ﺘﺗﻜ
ﺑﺮﻧﺎﻣﺞ Pythonأي
ﺘﻠﻒ ﻗﻠﻴ ﻼً.
ﺘﻠﻔ ﺔﺗﺨ
ﺗﺸﻐﻴﻞ ﻣﺨ
ﺜﻮن ﻋﲆ ﻟﻴﻨﻜ ﺲ
ﺑﺎﻳ
ﺘﻮﻗﻊ اﻷﺷﺨﺎص
ﺗﺮ Linux.ﻳ
ﺒﻴﻮ
ﺑﺎﻟﻔﻌﻞ ﻋﲆ ﻣﻌﻈﻢ أﺟﻬﺰة ﻛﻤ
ﺒﻴ ﺖ Python
ﺜﺒﺮﻣﺠ ﺔ ،ﻟﺬﻟﻚﺗﻢﺗ
ﺗﻢﺗﺼﻤﻴﻢ أﻧﻈﻤ ﺔ Linuxﻟﻠ
ﺑﺬﻟﻚ .ﻟﻬﺬاﺑﻚ ﻓ ﻲ ﻣﺮﺣﻠ ﺔ ﻣﺎ وﻳﺸﺠﻌﻮﻧﻚ ﻋﲆ اﻟﻘﻴﺎمﺒﺮﻣﺠ ﺔ اﻟﺨﺎﺻ ﺔ
ﺑﺎﻟﺒﻮن Linuxوﻳﺤﺎﻓﻈﻮن ﻋﻠﻴﻪ أنﺗﻘﻮم
ﺘاﻟﺬﻳﻦﻳﻜ
ﺒﺪء
ﺘ ﻲﻳﺠ ﺐ ﻋﻠﻴﻚﺗﻐﻴﻴﺮ ﻫﺎ ﻟ
ﺘﻬﺎ وﻗﻠﻴﻞ ﺟﺪًا ﻣﻦ اﻹﻋﺪادا ت اﻟ
ﺒﻴﺜ
ﺘ ﻲﻳﺠ ﺐ ﻋﻠﻴﻚﺗ
ﺒ ﺐ ،ﻫﻨﺎك اﻟﻘﻠﻴﻞ ﺟﺪًا ﻣﻦ اﻹﻋﺪادا ت اﻟ
اﻟ ﺴ
ﺒﺮﻣﺠ ﺔ.
اﻟ
ﺑﺤﺮف pﺻﻐﻴﺮ.
ﺘ ﺔ أم ﻻ ،أدﺧﻞ python
ﺒﺜUbuntu ،ﻳﻤﻜﻨﻚ اﻟﻀﻐﻂ ﻋﲆ ctrl-alt-T).ﻟﻤﻌﺮﻓ ﺔ ﻣﺎ إذا ﻛﺎﻧ ﺖ Pythonﻣ
ﺜﻞ
ﺒﺪء ﻓ ﻲ إدﺧﺎل أواﻣﺮ Python ،ﻣ
ﺒ ﺖ وﻣﻮﺟﻪ >>>ﺣﻴ ﺚﻳﻤﻜﻨﻚ اﻟ
ﺜﺑﺈﺻﺪار Pythonاﻟﻤﺒﺮك
ﻳﺠ ﺐ أنﺗﺮى ﻣﺨﺮﺟﺎ تﺗﺨ
ﻫﺬا:
ﺜﻮنﺑﻴ$
ﺘﺮاﺿ ﻲ 22 ،ﻣﺎرس )2014 ، 22:59:38)Python 2.7.6اﻓ
][GCC 4.8.2ﻋﲆ linux2
ﺗﺮﺧﻴﺺ" ﻟﻤﺰﻳﺪ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت.
ﺘﻤﺎﻧﺎ ت" أو "
ﺒﻊ وﻧﺸﺮ" أو "اﺋ
ﺘ ﺐ "ﻣ ﺴﺎﻋﺪة" أو "ﺣﻘﻮق ﻃ
اﻛ
>>>
ﺗﺮ .ﻋﻨﺪﻣﺎ
ﺒﻴﻮ
ﺒ ﺖ ﻋﲆ ﻫﺬا اﻟﻜﻤ
ﺜﺘﺮاﺿ ﻲ ﻣﻦ Pythonاﻟﻤ
ﺒﺮك ﻫﺬا اﻹﺧﺮاج أن Python 2.7.6ﻫﻮ ﺣﺎﻟ ًﻴﺎ اﻹﺻﺪار اﻻﻓ
ﻳﺨ
ﺘﺮك ﻣﻮﺟﻪ Pythonواﻟﻌﻮدة إﱃ ﻣﻮﺟﻪ اﻟﻤﺤﻄ ﺔ اﻟﻄﺮﻓﻴ ﺔ.
ﺗﺮى ﻫﺬا اﻹﺧﺮاج ،اﺿﻐﻂ ﻋﲆ ctrl-Dأو أدﺧﻞ )( exitﻟ
ﺜﻮن 3ﺑﻴ
ﺒﺮ )2015 ، 13:05:18
ﺘﻤﺒ
ﺘﺮاﺿ ﻲ 17 ،ﺳ)Python 3.5.0اﻓ
][GCC 4.8.4ﻋﲆ ﻟﻴﻨﻜ ﺲ
ﺗﺮﺧﻴﺺ" ﻟﻤﺰﻳﺪ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت.
ﺘﻤﺎﻧﺎ ت" أو "
ﺒﻊ وﻧﺸﺮ" أو "اﺋ
ﺘ ﺐ "ﻣ ﺴﺎﻋﺪة" أو "ﺣﻘﻮق ﻃ
اﻛ
>>>
ﺑﺪء
ا 5
Machine Translated by Google
ﺒﺎﺷﺮة ﻣﻦ اﻟﻤﺤﺮر
ﺒﺎ ﻣ
ﺑﺮاﻣﺠﻚﺗﻘﺮﻳ ًﺘﺸﻐﻴﻞ ﺟﻤﻴﻊ
ﺑﺒﻴ ﺖ ،وﺳﻴ ﺴﻤﺢ ﻟﻚ
ﺜﺘﺑ ﺴﻴﻂ :إﻧﻪﺳﻬﻞ اﻟ Geanyﻫﻮ ﻣﺤﺮر ﻧﺼﻮص
ﺘﻰ
ﺑﻚ ﻓ ﻲ ﻧﺎﻓﺬة ﻃﺮﻓﻴ ﺔ ﺣﺗﺸﻐﻴﻞ اﻟﻜﻮد اﻟﺨﺎص
ﺑﻚ ،وﺘﻠﻮﻳﻦ اﻟﻜﻮد اﻟﺨﺎص
ﺑﻨﺎء اﻟﺠﻤﻠ ﺔ ﻟ ﺑﺪﻻ ً ﻣﻦ ﻣﺤﻄ ﺔ ،وﻳ ﺴ
ﺘﺨﺪمﺗﻤﻴﻴﺰ
ﺑﺮاﻣﺞﺗﺤﺮﻳﺮ اﻟﻨﺼﻮص اﻷﺧﺮى ،ﻟﻜﻨ ﻲﺘﺨﺪام اﻟﻤﺤﻄﺎ ت.ﻳﻮﻓﺮ اﻟﻤﻠﺤﻖ ب ﻣﻌﻠﻮﻣﺎ ت ﻋﻦ
ﺘﺎد ﻋﲆ اﺳ
ﺘﻤﻜﻦ ﻣﻦ ذﻟﻚ.ﺗﻌ
ﺗ
ﺘﻠﻒ.
ﺘﺨﺪام ﻣﺤﺮر ﻣﺨ
ﺒ ﺐ وﺟﻴﻪ ﻻﺳ
ﺘﺨﺪام Geanyﻣﺎ ﻟﻢﻳﻜﻦ ﻟﺪﻳﻚﺳ
ﺑﺎﺳأوﺻ ﻲ
ﺑﺤ ﺚ ﻋﻦ Geany
ﺘﺎح )Windowsوا
ﺒﺎ ﻣﺎﻳ ﺴﻤﻰ ﻣﻔ
ﺘﺎح )Superﻏﺎﻟ ً
ﺘﺢ Geany.اﺿﻐﻂ ﻋﲆ ﻣﻔ
ﺑﺮﻧﺎﻣﺠﻚ اﻷول ،اﻓﺒﺪء
ﻟ
ﺛﻢ أﻧﺸ ﺊ ﻣﺠﻠﺪًا ﻓ ﻲ ﻣﻜﺎن ﻣﺎﺘ ﺐ.
ﺘﺼﺎر ﻋﻦ ﻃﺮﻳﻖﺳﺤ ﺐ اﻟﺮﻣﺰ إﱃ ﺷﺮﻳﻂ اﻟﻤﻬﺎم أوﺳﻄﺢ اﻟﻤﻜ
ﺑﻌﻤﻞ اﺧﻋﲆ ﻧﻈﺎﻣﻚ .ﻗﻢ
ﺘﺨﺪام اﻷﺣﺮف اﻟﺼﻐﻴﺮة واﻟﺸﺮﻃﺎ ت اﻟ ﺴﻔﻠﻴ ﺔ
ﺘﻪ )python_work.ﻣﻦ اﻷﻓﻀﻞ اﺳ
ﺘ ﺴﻤﻴ
ﺑﻋﲆ ﻧﻈﺎﻣﻚ ﻟﻤﺸﺎرﻳﻌﻚ وﻗﻢ
ﻟﻠﻤ ﺴﺎﻓﺎ ت ﻓ ﻲ أﺳﻤﺎء اﻟﻤﻠﻔﺎ ت واﻟﻤﺠﻠﺪا تﻷن ﻫﺬه اﺻﻄﻼﺣﺎ تﺗ ﺴﻤﻴ ﺔ )Python.ارﺟﻊ إﱃ Geanyواﺣﻔﻆ ﻣﻠﻒ
ً
ﻓﺎرﻏﺎ )(File4Save Asﻳ ﺴﻤﻰ hello_world.pyﻓ ﻲ _python Python
ﺑﻜﻴﻔﻴ ﺔﺗﺸﻐﻴﻞ
ﺒﺮ Geany
ﺑﺮﻧﺎﻣﺞ Python.ﻛﻤﺎ أﻧﻪﻳﺨﺘﻮي ﻋﲆ
ﺒﺮ Geanyأن ﻣﻠﻔﻚﺳﻴﺤ
ﻣﺠﻠﺪ اﻟﻌﻤﻞ .اﻟﻤﻠﺤﻖ yp.ﻳﺨ
ﺑﻄﺮﻳﻘ ﺔ ﻣﻔﻴﺪة.ﺑﺮاز اﻟﻨﺺ
ﺑﺮﻧﺎﻣﺠﻚ وإ
ﺘﺎﻟ ﻲ:
ﺑﻌﺪ ﺣﻔﻆ ﻣﻠﻔﻚ ،أدﺧﻞ اﻟ ﺴﻄﺮ اﻟ
ﺘﺨﺪام
ﺘﺄﻛﺪ ﻣﻦﺗﻜﻮﻳﻦ Geanyﻻﺳ
ﺘﺎج إﱃ اﻟ
ﺘﺤﺘﻌﺪدة ﻣﻦ Pythonﻋﲆ ﻧﻈﺎﻣﻚ ،ﻓ ﺴ
ﺒﻴ ﺖ إﺻﺪارا ت ﻣ
ﺜإذاﺗﻢﺗ
ﺘﻴﻦ Compile and Executeﻣﻊ
ﺘﻘﻞ إﱃ Build4Set Build Commands.ﻳﺠ ﺐ أنﺗﺮى اﻟﻜﻠﻤ
اﻹﺻﺪار اﻟﺼﺤﻴﺢ .اﻧ
ﺘﺨﺪم
ﺘﺮض Geanyأن اﻷﻣﺮ اﻟﺼﺤﻴﺢ ﻟﻜﻞ ﻣﻨﻬﺎ ﻫﻮ python ،وﻟﻜﻦ إذا ﻛﺎن ﻧﻈﺎﻣﻚﻳ ﺴ
ﺑﺠﺎﻧ ﺐ ﻛﻞ ﻣﻨﻬﻤﺎ.ﻳﻔ
com mand
ﺘﺎج إﱃﺗﻐﻴﻴﺮ ﻫﺬا.
ﺘﺤأﻣﺮ python3 ،ﻓ ﺴ
ﺘﺨﺪم
ﺑﺤﻴ ﺚﻳ ﺴ
ﺘﻐﻴﻴﺮ اﻷﻣﺮﻳﻦ Compile and Execute
ﺑإذا ﻛﺎن اﻷﻣﺮ python3ﻳﻌﻤﻞ ﻓ ﻲ ﺟﻠ ﺴ ﺔ ﻃﺮﻓﻴ ﺔ ،ﻓﻘﻢ
ﺘﺮﺟﻤ ﺔ ﻛﻤﺎﻳﻠ ﻲ:
ﺒﺪو أﻣﺮ اﻟ
Geanyﻟﻐ ﺔ Python 3 inter preter.ﻳﺠ ﺐ أنﻳ
6اﻟﻔﺼﻞ 1
Machine Translated by Google
ﺒﻴﺮة ﻣﻊ ﻣﺎ ﻫﻮ ﻣﻌﺮوض
ﺑﻖ اﻟﻤ ﺴﺎﻓﺎ ت واﻷﺣﺮف اﻟﻜ
ﺗﻤﺎﻣﺎ ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ.ﺗﺄﻛﺪ ﻣﻦﺗﻄﺎ
ً ﺑ ﺔ ﻫﺬا اﻷﻣﺮ
ﺘﺎ
ﺘﺎج إﱃ ﻛ
ﺗﺤ
ﻫﻨﺎ.
ﺘﻨﻔﻴﺬ ﻛﻤﺎﻳﻠ ﻲ:
ﺒﺪو أﻣﺮ اﻟ
ﻳﺠ ﺐ أنﻳ
ﺒﻴﺮة ﻣﻊ ﻣﺎ ﻫﻮ ﻣﻌﺮوض
ﺑﻖ اﻟﻤ ﺴﺎﻓﺎ ت واﻷﺣﺮف اﻟﻜ
ﻣﺮة أﺧﺮى ،ﺗﺄﻛﺪ ﻣﻦﺗﻄﺎ
ﺒﺪو ﻫﺬه اﻷواﻣﺮ ﻓ ﻲ ﻗﺎﺋﻤ ﺔﺗﻜﻮﻳﻦ Geany.
ﻫﻨﺎ.ﻳﻮﺿﺢ اﻟﺸﻜﻞ 1-1ﻛﻴﻒﻳﺠ ﺐ أنﺗ
ﺜﻮن!
ﺑﺎﻳﺑﻌﺎﻟﻢﺒﺎ
ﻣﺮﺣ ً
------------------
ﺑﺮﻣﺰ0) :ﺒﺮﻧﺎﻣﺞ
)ﺧﺮج اﻟ
ﺑﻌ ﺔ
ﺘﺎ
اﺿﻐﻂ ﻋﲆ اﻟﻌﻮدة ﻟﻠﻤ
ﺑﺎﻷﺣﺮفﺒﺎﻋ ﺔ
ﺘﻔﺎدة ﻣﻦ اﻟﻄ
ﺑﺎﻻﺳﺑﺎﻟﺨﻄﺄﺘﻪ .ﻫﻞ ﻗﻤ ﺖ
ﺘﺤﻘﻖ ﻣﻦ ﻛﻞ ﺣﺮف ﻓ ﻲ اﻟ ﺴﻄﺮ اﻟﺬي أدﺧﻠ
إذا ﻛﻨ ﺖ ﻻﺗﺮى ﻫﺬا ،ﻓ
ﺑﻨﺎء ﺟﻤﻠ ﺔ ﻣﺤﺪدًا ﺟﺪًا ،وإذا ﻟﻢﺗﻘﺪمﺒﺮﻣﺠ ﺔ
ﺘﻮﻗﻊ ﻟﻐﺎ ت اﻟ
ﺘ ﻲ اﻟﺤﺼﺺ أو اﻟﻘﻮﺳﻴﻦ أو ﻛﻠﻴﻬﻤﺎ؟ﺗ
ﺒﻴﺮة؟ ﻫﻞ ﻧ ﺴﻴ ﺖ إﺣﺪى ﻋﻼﻣ
اﻟﻜ
ﺒﻴ ﺖ وإﺻﻼﺣﻬﺎ" ﻓ ﻲ
ﺜﺘﺘﻜﺸﺎف ﻣﺸﻜﻼ ت اﻟ
ﺒﺮﻧﺎﻣﺞ ،ﻓﺮاﺟﻊ "اﺳ
ﺘﻤﻜﻦ ﻣﻦﺗﺸﻐﻴﻞ اﻟ
ﺘﺤﺼﻞ ﻋﲆ أﺧﻄﺎء .إذا ﻟﻢﺗ
ذﻟﻚ ،ﻓ ﺴ
اﻟﺼﻔﺤ ﺔ 15.
ﺒﺪء 7
اﻟ
Machine Translated by Google
ﺜﻮن ﻓ ﻲ ﺟﻠ ﺴ ﺔ ﻃﺮﻓﻴ ﺔ
ﺑﺎﻳﺗﺸﻐﻴﻞ
ﺜﻮن!"(
ﺑﺎﻳﺒﺎ
ﺘﺮﺟﻢ ﻣﺮﺣ
ﺒﺎﻋ ﺔ )"ﻣ
>>>ﻃ
ﺜﻮن!
ﺑﺎﻳﺘﺮﺟﻢ
ﺒﺎ ﻣ
ﻣﺮﺣ
>>>
ﺘﺮﺟﻢ Python
ﺒﺎﺷﺮة ﻓ ﻲ ﻧﺎﻓﺬة اﻟﻤﺤﻄ ﺔ اﻟﺤﺎﻟﻴ ﺔ.ﺗﺬﻛﺮ أﻧﻪﻳﻤﻜﻨﻚ إﻏﻼق ﻣ
ﺒﻮﻋ ﺔ ﻣ
ﺘﻚ ﻣﻄ
ﻳﺠ ﺐ أنﺗﺮى رﺳﺎﻟ
ﺑ ﺔ اﻷﻣﺮ exit ().
ﺘﺎ
ﺑﻜﺑﺎﻟﻀﻐﻂ ﻋﲆ ctrl-Dأو
ﺒﻴ ﺖ Python
ﺜﺘﺤﻘﻖ ﻣﻦﺗ
اﻟ
ﺘﻘﺎل إﱃ Applications4Utilities4Terminal.
ﺑﺎﻻﻧﺘﺢ ﻧﺎﻓﺬة ﻃﺮﻓﻴ ﺔ
اﻓ
ﺘﺎح اﻹدﺧﺎل.
ﺛﻢ اﻟﻀﻐﻂ ﻋﲆ ﻣﻔ
ﺘ ﺐ Terminal ،
ﺘﺎح ﻣ ﺴﺎﻓ ﺔ اﻷواﻣﺮ ،واﻛ ﻳﻤﻜﻨﻚ أ ً
ﻳﻀﺎ اﻟﻀﻐﻂ ﻋﲆ ﻣﻔ
ﺑﺈﺻﺪارﺒﺮك
ﺑﺤﺮف pﺻﻐﻴﺮ.ﻳﺠ ﺐ أنﺗﺮى ﻣﺨﺮﺟﺎ تﺗﺨ
ﺘ ﺔ أم ﻻ ،أدﺧﻞ python
ﺒﺜﻟﻤﻌﺮﻓ ﺔ ﻣﺎ إذا ﻛﺎﻧ ﺖ Pythonﻣ
ﺜﻞ ﻫﺬا:
ﺒﺪء ﻓ ﻲ إدﺧﺎل أواﻣﺮ Python ،ﻣ
ﺒ ﺖ ﻋﲆ ﻧﻈﺎﻣﻚ وﻣﻮﺟﻪ >>>ﺣﻴ ﺚﻳﻤﻜﻨﻚ اﻟ
ﺜPythonاﻟﻤ
ﺜﻮن
ﺑﻴ$
ﺘﺮاﺿ ﻲ 9 ،آذار )ﻣﺎرس( )2014 ، 22:15:05
)Python 2.7.5اﻓ
ﺘﻮاﻓﻖ ])Apple LLVM 5.0 (clang-500.0.68ﻋﲆ داروﻳﻦ
[GCC 4.2.1ﻣ
ﺗﺮﺧﻴﺺ" ﻟﻤﺰﻳﺪ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت.
ﺘﻤﺎﻧﺎ ت" أو "
ﺒﻊ وﻧﺸﺮ" أو "اﺋ
ﺘ ﺐ "ﻣ ﺴﺎﻋﺪة" أو "ﺣﻘﻮق ﻃ
اﻛ
>>>
ﺘﺤﻘﻖ ﻣﻦ وﺟﻮد Python 3 ،ﺟﺮ ب اﻷﻣﺮ python3.ﻗﺪﺗﺤﺼﻞ ﻋﲆ رﺳﺎﻟ ﺔ ﺧﻄﺄ ،وﻟﻜﻦ إذا أﻇﻬﺮ اﻹﺧﺮاج أن ﻟﺪﻳﻚ
ﻟﻠ
ﺘﻪ .إذا ﻛﺎن python3ﻳﻌﻤﻞ ﻋﲆ ﻧﻈﺎﻣﻚ ،
ﺒﻴﺜ
ﺘﺨﺪام Python 3دون اﻟﺤﺎﺟ ﺔ إﱃﺗ
ﺘﻤﻜﻦ ﻣﻦ اﺳ
ﺘﺘًﺎ ،ﻓ ﺴ
ﺒﺜPython 3ﻣ
ﺘﺨﺪام python3
ﺘﺎ ب ،ﺗﺄﻛﺪ ﻣﻦ اﺳ
ﻓﻜﻠﻤﺎ رأﻳ ﺖ أﻣﺮ pythonﻓ ﻲ ﻫﺬا اﻟﻜ
8اﻟﻔﺼﻞ 1
Machine Translated by Google
ﺜﻮن ﻓ ﻲ ﺟﻠ ﺴ ﺔ ﻃﺮﻓﻴ ﺔ
ﺑﺎﻳﺗﺸﻐﻴﻞ
ﺜﻮن!"(
ﺑﺎﻳﺒﺎ
ﺘﺮﺟﻢ ﻣﺮﺣ
ﺒﺎﻋ ﺔ )"ﻣ
>>>ﻃ
ﺜﻮن!
ﺑﺎﻳﺘﺮﺟﻢ
ﺒﺎ ﻣ
ﻣﺮﺣ
>>>
ﺘﺮﺟﻢ Python
ﺒﺎﺷﺮة ﻓ ﻲ ﻧﺎﻓﺬة اﻟﻤﺤﻄ ﺔ اﻟﺤﺎﻟﻴ ﺔ.ﺗﺬﻛﺮ أﻧﻪﻳﻤﻜﻨﻚ إﻏﻼق ﻣ
ﺒﻮﻋ ﺔ ﻣ
ﺘﻚ ﻣﻄ
ﻳﺠ ﺐ أنﺗﺮى رﺳﺎﻟ
ﺑ ﺔ اﻷﻣﺮ exit ().
ﺘﺎ
ﺑﻜﺑﺎﻟﻀﻐﻂ ﻋﲆ ctrl-Dأو
ﺒﺎ
ﺑﺮاﻣﺠﻚﺗﻘﺮﻳ ًﺘﺸﻐﻴﻞ ﺟﻤﻴﻊ
ﺑﺘﻪ ﻋﲆ OS X ،وﺳﻴ ﺴﻤﺢ ﻟﻚ
ﺒﻴﺜ
ﺑ ﺴﻴﻂ :ﻣﻦ اﻟ ﺴﻬﻞﺗ Sublime Textﻫﻮ ﻣﺤﺮر ﻧﺼﻮص
ﺗﺸﻐﻴﻞ اﻟﻜﻮد
ﺑﻚ ،وﺘﻠﻮﻳﻦ اﻟﻜﻮد اﻟﺨﺎص
ﺑﻨﺎء اﻟﺠﻤﻠ ﺔ ﻟ ﺑﺪﻻ ً ﻣﻦ اﻟﻤﺤﻄ ﺔ اﻟﻄﺮﻓﻴ ﺔ ،وﻳ ﺴ
ﺘﺨﺪمﺗﻤﻴﻴﺰ ً
ﺒﺎﺷﺮة ﻣﻦ اﻟﻤﺤﺮر
ﻣ
ﺘ ﺴﻬﻴﻞ رؤﻳ ﺔ اﻹﺧﺮاج.ﻳﻮﻓﺮ اﻟﻤﻠﺤﻖ ب ﻣﻌﻠﻮﻣﺎ ت
ﺑﻚ ﻓ ﻲ ﻣﺤﻄ ﺔ ﻃﺮﻓﻴ ﺔ ﺟﻠ ﺴ ﺔ ﻣﺪﻣﺠ ﺔ ﻓ ﻲ ﻧﺎﻓﺬة Sublime Textﻟاﻟﺨﺎص
ﺘﺨﺪام ﻣﺤﺮر
ﺒ ﺐ وﺟﻴﻪ ﻻﺳ
ﺘﺨﺪام Sublime Textﻣﺎ ﻟﻢﻳﻜﻦ ﻟﺪﻳﻚﺳ
ﺑﺎﺳﺑﺮاﻣﺞﺗﺤﺮﻳﺮ اﻟﻨﺼﻮص اﻷﺧﺮى ،ﻟﻜﻨ ﻲ أوﺻ ﻲﻋﻦ
ﺘﻠﻒ.
ﻣﺨ
ﺘﻰﻳﻌﺮف
ﺘﺎج إﱃﺗﻜﻮﻳﻦ Sublime Textﺣ
ﺘﺤﺒﺪء ﺟﻠ ﺴ ﺔ Pythonاﻟﻄﺮﻓﻴ ﺔ ،ﻓ ﺴ
ﺘﺨﺪم أﻣ ﺮًا آﺧﺮ ﻏﻴﺮ pythonﻟ
إذا ﻛﻨ ﺖﺗ ﺴ
ﺘﺮﺟﻢ
ﺘﺎﻟ ﻲ ﻟﻤﻌﺮﻓ ﺔ اﻟﻤ ﺴﺎر اﻟﻜﺎﻣﻞ ﻟﻤ
ﺑﺈﺻﺪار اﻷﻣﺮ اﻟﺜﻮر ﻋﲆ اﻹﺻﺪار اﻟﺼﺤﻴﺢ ﻣﻦ Pythonﻋﲆ ﻧﻈﺎﻣﻚ .ﻗﻢ
ﻣﻜﺎن اﻟﻌ
ﺑﻚ:Pythonاﻟﺨﺎص
ﺘﺢ ﻟﻚ
ﺘﻘﻞ إﱃ Tools4Build System4New Build System ،واﻟﺬيﺳﻴﻔ
ﺘﺢ اﻵن Sublime Text ،واﻧ
اﻓ
ﻣﻠﻒﺗﻜﻮﻳﻦ ﺟﺪﻳﺪ .اﺣﺬف ﻣﺎﺗﺮاه وأدﺧﻞ ﻣﺎﻳﻠ ﻲ:
build {
Python3 .sublime- "cmd": ["/ usr / local / bin / python3"، "-u"، "$ file"]،
}
ﺒﺪء 9
اﻟ
Machine Translated by Google
ﺘﺨﺪام اﻷﺣﺮف
ﺑﺈﻧﺸﺎء ﻣﺠﻠﺪﻳ ﺴﻤﻰ python_workﻓ ﻲ ﻣﻜﺎن ﻣﺎ ﻋﲆ ﻧﻈﺎﻣﻚ ﻟﻤﺸﺎرﻳﻌﻚ) .ﻣﻦ اﻷﻓﻀﻞ اﺳﻗﻢ
اﻟﺼﻐﻴﺮة واﻟﺸﺮﻃﺎ ت اﻟ ﺴﻔﻠﻴ ﺔ ﻟﻠﻤ ﺴﺎﻓﺎ ت ﻓ ﻲ أﺳﻤﺎء اﻟﻤﻠﻔﺎ ت واﻟﻤﺠﻠﺪا ت ،ﻷن ﻫﺬه اﺻﻄﻼﺣﺎ تﺗ ﺴﻤﻴ ﺔ )Python.اﺣﻔﻆ
ً
ﻓﺎرﻏﺎ )(File4Save Asﻳ ﺴﻤﻰ hello_world.pyﻓ ﻲ python_work ﻣﻠﻒ Python
ﺑﺮاز
ﺒﺮﻧﺎﻣﺞ وإ
ﺑﻜﻴﻔﻴ ﺔﺗﺸﻐﻴﻞ اﻟﺒﺮه
ﺑﺮﻧﺎﻣﺞ Pythonوﻳﺨﺘﻮي ﻋﲆ
ﺘﺪاد yp.ﻧﺺ Sublimeأن ﻣﻠﻔﻚﺳﻴﺤ
ﺒﺮ اﻻﻣ
ﻣﺠﻠﺪ.ﻳﺨ
ﺑﻄﺮﻳﻘ ﺔ ﻣﻔﻴﺪة.اﻟﻨﺺ
ﺘﺎﻟ ﻲ:
ﺑﻌﺪ ﺣﻔﻆ ﻣﻠﻔﻚ ،أدﺧﻞ اﻟ ﺴﻄﺮ اﻟ
ﺜﻮن! ﺑﺎﻳﺑﻌﺎﻟﻢﺒﺎ
ﻣﺮﺣ ً
ﺛﺎﻧﻴ ﺔ[
ﺘﻬﻰ ﻓ ﻲ 0.1 ]اﻧ
ﺘﻪ .ﻓﻌﻞ
ﺘﺤﻘﻖ ﻣﻦ ﻛﻞ ﺣﺮف ﻓ ﻲ اﻟ ﺴﻄﺮ اﻟﺬي أدﺧﻠ
إذا ﻛﻨ ﺖ ﻻﺗﺮى ﻫﺬا ،ﻓ
ﺑﻨﺎء ﺟﻤﻠ ﺔﺒﺮﻣﺠ ﺔ
ﺘﻮﻗﻊ ﻟﻐﺎ ت اﻟ
ﺘ ﻲ اﻟﺤﺼﺺ أو اﻟﻘﻮﺳﻴﻦ أو ﻛﻠﻴﻬﻤﺎ؟ﺗ
ﺑﺎﻟﺨﻄﺄ؟ ﻫﻞ ﻧ ﺴﻴ ﺖ إﺣﺪى ﻋﻼﻣﺒﺎﻋ ﺔ
ﺘﻐﻞ اﻟﻄ
ﻛﻨ ﺖﺗ ﺴ
ﺘﻜﺸﺎف ﻣﺸﻜﻼ ت
ﺒﺮﻧﺎﻣﺞ ،ﻓﺮاﺟﻊ "اﺳ
ﺘﻤﻜﻦ ﻣﻦﺗﺸﻐﻴﻞ اﻟ
ﺘﺤﺼﻞ ﻋﲆ أﺧﻄﺎء .إذا ﻟﻢﺗ
ﻣﺤﺪدًا ﺟﺪًا ،وإذا ﻟﻢﺗﻘﺪم ذﻟﻚ ،ﻓ ﺴ
ﺒﻴ ﺖ وإﺻﻼﺣﻬﺎ" ﻓ ﻲ اﻟﺼﻔﺤ ﺔ 15.
ﺜﺘاﻟ
ﺘﺸﻐﻴﻞ Windows
Pythonﻋﲆ ﻧﻈﺎم اﻟ
ﺘﻪ.
ﺒﻴﺜ
ﺗﺛﻢﺗﻨﺰﻳﻞ ﻣﺤﺮر ﻧﺼﻮص وﺘﻪ ،
ﺒﻴﺜ
ﺗﺘﺎج ﻋﲆ اﻷرﺟﺢ إﱃﺗﻨﺰﻳﻠﻪ و
ﺘﺤﺋﻤﺎ ﻣﻊ Python ،ﻟﺬﻟﻚﺳ
ﺗ ﻲ Windowsدا ً
ﻻﻳﺄ
10اﻟﻔﺼﻞ 1
Machine Translated by Google
ﺜﻮن
ﺑﺎﻳﺒﻴ ﺖ
ﺜﺗ
ﺑﺪأ أو ﻋﻦ ﻃﺮﻳﻖ
ﺘﺢ ﻧﺎﻓﺬة أواﻣﺮ ﻋﻦ ﻃﺮﻳﻖ إدﺧﺎل اﻷﻣﺮ ﻓ ﻲ ﻗﺎﺋﻤ ﺔ ا
ﺘ ﺔ ﻋﲆ ﻧﻈﺎﻣﻚ .اﻓ
ﺒﺜأوﻻ ً ،ﺗﺤﻘﻖ ﻣﻤﺎ إذا ﻛﺎﻧ ﺖ Pythonﻣ
ﺘﺢ ﻧﺎﻓﺬة com mandﻫﻨﺎ.
ﺗﺤﺪﻳﺪ ﻓ
ﺘﺐ و
ﺑﺰر اﻟﻤﺎوس اﻷﻳﻤﻦ ﻋﲆﺳﻄﺢ اﻟﻤﻜﺛﻨﺎء اﻟﻨﻘﺮ
ﺘﺎح shiftأ
ﺘﻤﺮار ﻋﲆ ﻣﻔ
ﺑﺎﺳاﻟﻀﻐﻂ
ﺒﻴ ﺖ Pythonﻋﲆ
ﺜﺘﻢﺗ
ﺑﺄﺣﺮف ﺻﻐﻴﺮة .إذاﺗﻠﻘﻴ ﺖ ﻣﻮﺟﻪ Python (>>>) ،ﻓ ﺴﻴ ﻓ ﻲ اﻟﻨﺎﻓﺬة اﻟﻄﺮﻓﻴ ﺔ ،أدﺧﻞ python
ﺑﻪ. ﺒﺮك أن pythonﻟﻴ ﺲ أﻣ ًﺮا ﻣﻌ ً
ﺘﺮﻓﺎ ﺘﺮى ﻋﲆ اﻷرﺟﺢ رﺳﺎﻟ ﺔ ﺧﻄﺄﺗﺨ
ﻧﻈﺎﻣﻚ .وﻣﻊ ذﻟﻚ ،ﺳ
ﺜﻮن
ﺑﻴج\> :
ﺑ ﺖ ])(Intelﻋﲆ win32
ﺒﺮ 2015 ، 22:15:05) [MSC v.1900 32
ﺘﻤﺒ
Python 3.5.0 (v3.5.0: 374f501f4567 ، 13ﺳ
ﺑﺪء
ا 11
Machine Translated by Google
ﺜﻞ ﻫﺬا:
ﺒﺪو ﻣ
ﺟﺎﻳ
وﻣﻊ ذﻟﻚ ،ﻗﺪﺗﺮى إﺧﺮا ً
ﺜﻮن
ﺑﻴج\> :
ﺘﺸﻐﻴﻞ أو ﻣﻠﻒ دﻓﻌ ﻲ.
ﺑﻞ ﻟﻠ
ﺑﺮﻧﺎﻣﺞ ﻗﺎﺘﻌﺮف ﻋﲆ ''pythonﻛﺄﻣﺮ داﺧﻠ ﻲ أو ﺧﺎرﺟ ﻲ أو
ﺘﻢ اﻟ
ﻟﻢﻳ
ً
ﻋﺎدة ﻣﺎ ﺘﻮ.
ﺘﻪ ﻟﻠ
ﺒﻴﺜ
ﺘﺑﺜﻮر ﻋﲆ إﺻﺪار Pythonاﻟﺬي ﻗﻤ ﺖ
ﺑﻜﻴﻔﻴ ﺔ اﻟﻌ
ﺒﺎر Windows
ﺘﺎج إﱃ إﺧ
ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔ ،ﺗﺤ
ﺑﻨﻈﺎﻣﻚ ﻓ ﻲ Cﺘﻢ ﺣﻔﻆ أﻣﺮ pythonاﻟﺨﺎص
ﻳ
ﺘﺢ
ﺑﺎﺳﻢ Python ،واﻓﺒﺪأ
ﺑﺤ ﺚ ﻋﻦ ﻣﺠﻠﺪﻳ
ﺘﺢ ﻣﺤﺮك اﻷﻗﺮاص C.ا
ﺘﻜﺸﻒ Windowsواﻓ
ﺘﺢ ﻣ ﺴ
ﻣﺤﺮك اﻷﻗﺮاص ،ﻟﺬا اﻓ
ﺑﻪ ﻣﻠﻒﻳ ﺴﻤﻰ
ﺜﺎل ،ﻟﺪي ﻣﺠﻠﺪ Python35
ﺒﻴﻞ اﻟﻤ
ﺑﺄﺣﺮف ﺻﻐﻴﺮة( .ﻋﲆﺳ
ﺑﺤ ﺚ ﻋﻦ ﻣﻠﻒ )python
ﻫﺬا اﻟﻤﺠﻠﺪ ،وا
python
ﺘﺎﻟ ﻲ ﻓﺈن اﻟﻤ ﺴﺎر إﱃ أﻣﺮ pythonﻋﲆ ﻧﻈﺎﻣ ﻲ ﻫﻮ \ C: \ Python35
ﺑﺎﻟ
ﺑﺪاﺧﻠﻪ ،و
ﺒﻂ ﻣﻜﺎنﺗﺨﺰﻳﻦ أﻣﺮ
ﺑﺎﻟﻀﺘﻈﻬﺮ ﻟﻚ
ﺒﺤ ﺚ ﻓ ﻲ Windows Explorerﻟ
ﺑﻊ اﻟ
ﺑﺨﻼف ذﻟﻚ ،أدﺧﻞ pythonﻓ ﻲ ﻣﺮﺒﺎن.
ﺜﻌاﻟ
pythonﻋﲆ ﻧﻈﺎﻣﻚ.
ﺘﺢ ﻧﺎﻓﺬة أواﻣﺮ وأدﺧﻞ
ﺒﺮه ﻋﻦ ﻃﺮﻳﻖ إدﺧﺎل ﻫﺬا اﻟﻤ ﺴﺎر ﻓ ﻲ ﻧﺎﻓﺬة ﻃﺮﻓﻴ ﺔ .اﻓ
ﺘﺘﻘﺪ أﻧﻚﺗﻌﺮف اﻟﻤ ﺴﺎر ،اﺧ
ﻋﻨﺪﻣﺎﺗﻌ
ﺘﻮ:
ﺗﻪ ﻟﻠ
اﻟﻤ ﺴﺎر اﻟﻜﺎﻣﻞ اﻟﺬي وﺟﺪ
ﺜﻮن ﻓ ﻲ ﺟﻠ ﺴ ﺔ ﻃﺮﻓﻴ ﺔ
ﺑﺎﻳﺗﺸﻐﻴﻞ
12اﻟﻔﺼﻞ 1
Machine Translated by Google
ﺘﺎﻟ ﻲ:
ﺘ ﺐ اﻟ ﺴﻄﺮ اﻟ
ﺑﻌﺪ ﺣﻔﻆ ﻣﻠﻔﻚ ،اﻛ
ﺘﻘﻞ إﱃ
ﺘﺎﻟ ﻲ واﻧ
ﺗﺨﻄ ﻲ اﻟﻘ ﺴﻢ اﻟ
إذا ﻛﺎن اﻷﻣﺮ pythonﻳﻌﻤﻞ ﻋﲆ ﻧﻈﺎﻣﻚ ،ﻓﻠﻦﺗﻀﻄﺮ إﱃﺗﻜﻮﻳﻦ ؛ ure Geany
ﺜﻞ C: \ Python35 \ python
ﺑﺤﺎﺟ ﺔ إﱃ إدﺧﺎل ﻣ ﺴﺎر ﻣﺑﺮﻧﺎﻣﺞ "Hello Worldﻓ ﻲ اﻟﺼﻔﺤ ﺔ 14.إذا ﻛﻨ ﺖﺗﺸﻐﻴﻞ
"
ﺘﻜﻮﻳﻦ Geanyﻟﻨﻈﺎﻣﻚ.
ﺘﺎﻟ ﻲ ﻟ
ﺒﻊ اﻹرﺷﺎدا ت اﻟﻮاردة ﻓ ﻲ اﻟﻘ ﺴﻢ اﻟ
ﺗﺘﺮﺟﻢ Python ،ا
ﺒﺪء ﻣ
ﻟ
ﺗﻜﻮﻳﻦ Geany
ﺑﻚﺜﻮن اﻟﺨﺎص
ﺑﻴﻓ ﻲ اﻷﻣﺮﻳﻦ Compile and Execute ،أﺿﻒ ﻣﺤﺮك اﻷﻗﺮاص
ﺒﺪو اﻷﻣﺮ Compileﻛﻤﺎﻳﻠ ﻲ:
ﺘﻢﺗﺨﺰﻳﻦ أﻣﺮ python .ﻳﺠ ﺐ أنﻳ
ﺘﺸﻐﻴﻞ واﻟﻤﺠﻠﺪ ﺣﻴ ﺚﻳ
اﻷﻣﺮ ﻗﻴﺪ اﻟ
ﺒﻴﺮة ﻣﻊ ﻣﺎ ﻫﻮ ﻣﻌﺮوض
ﺑﻖ اﻟﻤ ﺴﺎﻓﺎ ت واﻷﺣﺮف اﻟﻜ
ﺑﻌﺾ اﻟﺸ ﻲء ،وﻟﻜﻦﺗﺄﻛﺪ ﻣﻦﺗﻄﺎﺘﻠ ًﻔﺎ
ﻗﺪﻳﻜﻮن ﻣ ﺴﺎرك ﻣﺨ
ﻫﻨﺎ.
ﺘﺎﻟ ﻲ:
ﺘﻨﻔﻴﺬ ﻋﲆ اﻟﻨﺤﻮ اﻟ
ﺒﺪو أﻣﺮ اﻟ
ﻳﺠ ﺐ أنﻳ
ﺒﺪء 13
اﻟ
Machine Translated by Google
ﺘﺸﻐﻴﻞ hello_world.py
ﺑﺑﻨﺠﺎح .ﻗﻢﺑﺮﻧﺎﻣﺠﻚﻳﺠ ﺐ أنﺗﻜﻮن اﻵن ﻗﺎد ًرا ﻋﲆﺗﺸﻐﻴﻞ
ﺘﺮوس( ،
ﺘ ﻲﺗﻌﺮض ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻟ
ﺘﻨﻔﻴﺬ )اﻟ
ﻋﻦ ﻃﺮﻳﻖﺗﺤﺪﻳﺪ Build4Executeﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ ،ﻋﻦ ﻃﺮﻳﻖ اﻟﻨﻘﺮ ﻓﻮق أﻳﻘﻮﻧ ﺔ اﻟ
ﺘﺎﻟ ﻲ:
ﺑﺎﻟﻀﻐﻂ ﻋﲆ F5.ﻳﺠ ﺐ أنﺗﻈﻬﺮ ﻧﺎﻓﺬة ﻃﺮﻓﻴ ﺔ ﻣﻊ اﻹﺧﺮاج اﻟأو
ﺜﻮن!
ﺑﺎﻳﺑﻌﺎﻟﻢﺒﺎ
ﻣﺮﺣ ً
------------------
ﺑﺮﻣﺰ0) :ﺒﺮﻧﺎﻣﺞ
)ﺧﺮج اﻟ
ﺑﻌ ﺔ
ﺘﺎ
اﺿﻐﻂ ﻋﲆ اﻟﻌﻮدة ﻟﻠﻤ
ﺘﻪ .ﻓﻌﻞ
ﺘﺤﻘﻖ ﻣﻦ ﻛﻞ ﺣﺮف ﻓ ﻲ اﻟ ﺴﻄﺮ اﻟﺬي أدﺧﻠ
إذا ﻛﻨ ﺖ ﻻﺗﺮى ﻫﺬا ،ﻓ
ﺑﻨﺎءﺒﺮﻣﺠ ﺔ
ﺘﻮﻗﻊ ﻟﻐﺎ ت اﻟ
ﺘ ﻲ اﻟﺤﺼﺺ أو اﻟﻘﻮﺳﻴﻦ أو ﻛﻠﻴﻬﻤﺎ؟ﺗ
ﺑﺎﻟﺨﻄﺄ؟ ﻫﻞ ﻧ ﺴﻴ ﺖ إﺣﺪى ﻋﻼﻣﺒﺎﻋ ﺔ
ﺘﻐﻞ اﻟﻄ
ﻛﻨ ﺖﺗ ﺴ
ﺘﺎﻟ ﻲ
ﺒﺮﻧﺎﻣﺞ ،ﻓﺮاﺟﻊ اﻟﻘ ﺴﻢ اﻟ
ﺘﻤﻜﻦ ﻣﻦﺗﺸﻐﻴﻞ اﻟ
ﺘﺤﺼﻞ ﻋﲆ أﺧﻄﺎء .إذا ﻟﻢﺗ
ﺟﻤﻠ ﺔ ﻣﺤﺪدًا ﺟﺪًا ،وإذا ﻟﻢﺗﻘﺪم ذﻟﻚ ،ﻓ ﺴ
ﻟﻠﺤﺼﻮل ﻋﲆ اﻟﻤ ﺴﺎﻋﺪة.
14اﻟﻔﺼﻞ اﻷول
Machine Translated by Google
ﺒﻴ ﺖ وإﺻﻼﺣﻬﺎ
ﺜﺘﺘﻜﺸﺎف ﻣﺸﻜﻼ ت اﻟ
اﺳ
ﺑﻌﺾﺘﻤﻜﻦ ﻣﻦﺗﺸﻐﻴﻞ hello_world.py ،ﻓﺈﻟﻴﻚ
ﺑﻚ ﻧﺎﺟﺤًﺎ ،وﻟﻜﻦ إذا ﻟﻢﺗﺒﺮﻣﺠ ﺔ اﻟﺨﺎﺻ ﺔ
ﺑﻴﺌ ﺔ اﻟﻧﺄﻣﻞ أنﻳﻜﻮن إﻋﺪاد
ﺘﻬﺎ:
ﺑﺘ ﻲﻳﻤﻜﻨﻚﺗﺠﺮ
اﻟﻌﻼﺟﺎ ت اﻟ
ﺛ ﺮًا
ﺒﻴﺮ ،ﺗﻌﺮض Pythonأ
ﺒﺮاﻣﺞ ﻋﲆ ﺧﻄﺄ ﻛ
ﺘﻮي أﺣﺪ اﻟ
•ﻋﻨﺪﻣﺎﻳﺤ
ﺘ ﻲﺗﻤﻨﻊ
ﺑﻼغ ﻋﻦ اﻟﻤﺸﻜﻠ ﺔ .ﻗﺪﻳﻌﻄﻴﻚ tracebackﻓﻜﺮة ﻋﻦ اﻟﻤﺸﻜﻠ ﺔ اﻟ
ﺒﺤ ﺚ Pythonﻓ ﻲ اﻟﻤﻠﻒ وﻳﺤﺎول اﻹ
ﺧﻠﻒ.ﻳ
ﺒﺮﻧﺎﻣﺞ ﻣﻦ اﻟﻌﻤﻞ.
اﻟ
ﺗﻚ ﻓ ﻲ اﻹﻋﺪاد.
ﺜﻮن واﻃﻠ ﺐ ﻣﻨﻪ ﻣ ﺴﺎﻋﺪ
ﺑﺎﻳﺑﺤ ﺚ ﻋﻦ ﺷﺨﺺﻳﻌﺮف
•ا
ﺘﺨﺪم Python.
ﺷﺨﺼﺎﻳ ﺴ
ً إذاﺳﺄﻟ ﺖ ﻣﻦ ﺣﻮﻟﻚ ،ﻓﻘﺪﺗﺠﺪ أﻧﻚﺗﻌﺮف
ﺒﺮﻣﺠﻴﻦ
ﺒﺮﻣﺞ ﻓ ﻲ ﻣﺮﺣﻠ ﺔ ﻣﺎ ،وﻳ ﺴﻌﺪ ﻣﻌﻈﻢ اﻟﻤ
ﺒﺮة .ﻟﻘﺪ ﻋﻠﻖ ﻛﻞ ﻣ
ﺒﺮﻣﺠﻴﻦ ذوي اﻟﺨ
ﺑﺸﺄن إزﻋﺎج اﻟﻤﻻﺗﻘﻠﻖ
ﺑﺎﻟﻔﻌﻞ ،ﺘﻪ
ﺑﺑﻪ ،وﻣﺎ اﻟﺬي ﺟﺮﺑﻮﺿﻮح ﻣﺎﺗﺤﺎول اﻟﻘﻴﺎمﺑﺸﻜﻞ ﺻﺤﻴﺢ .ﻃﺎﻟﻤﺎﻳﻤﻜﻨﻚ أنﺗﻮﺿﺢﺗﻚ ﻓ ﻲ إﻋﺪاد ﻧﻈﺎﻣﻚ
ﺑﻤ ﺴﺎﻋﺪ
ﺗﻚ .ﻛﻤﺎ ﻫﻮ ﻣﺬﻛﻮر ﻓ ﻲ اﻟﻤﻘﺪﻣ ﺔ ،ﻓﺈن
ﺘﻤﻜﻦ ﺷﺨﺺ ﻣﺎ ﻣﻦ ﻣ ﺴﺎﻋﺪ
ﺘ ﻲﺗﺤﺼﻞ ﻋﻠﻴﻬﺎ ،ﻓﻬﻨﺎك ﻓﺮﺻ ﺔ ﺟﻴﺪةﻷنﻳ
ﺘﺎﺋﺞ اﻟ
واﻟﻨ
ﺘﺪﺋﻴﻦ.
ﺒﺘﻤﻊ Pythonودود ﻟﻠﻐﺎﻳ ﺔ ﻟﻠﻤ
ﻣﺠ
ﺒﺪء 15
اﻟ
Machine Translated by Google
ﺘﺸﻐﻴﻞ hello_world.py:
ﺘﺎﻟﻴ ﺔ ﻟ
ﺘﺢ ﻧﺎﻓﺬة ﻃﺮﻓﻴ ﺔ ﺟﺪﻳﺪة وأﺻﺪر اﻷواﻣﺮ اﻟ
اﻓ
hello_world.py
!python_work $ python hello_world.py Hello Python world
w ~ / Desktop /
ﺑﺮاﻣﺞ Python.ﺘﺸﻐﻴﻞ
ﺘﺨﺪام اﻷﻣﺮ )pythonأو )python3ﻟ
ﺑ ﺴﺎﻃ ﺔ .ﻣﺎ ﻋﻠﻴﻚﺳﻮى اﺳﺑﻜﻞ
ﺘﺸﻐﻴﻞ hello_world.py:
ﺘﺎﻟﻴ ﺔ ﻟ
ﺘﺢ ﻧﺎﻓﺬة ﻃﺮﻓﻴ ﺔ ﺟﺪﻳﺪة وأﺻﺪر اﻷواﻣﺮ اﻟ
اﻓ
16اﻟﻔﺼﻞ اﻷول
Machine Translated by Google
ﺒ ﺴﻴﻂ
ﺘﺨﺪام اﻷﻣﺮ اﻟ
ﺘﻜﻮﻳﻦ ﻧﻈﺎﻣﻚ ﻻﺳ
ﺑإذا ﻟﻢﺗﻘﻢ
ﺘﺨﺪام اﻹﺻﺪار اﻷﻃﻮل ﻣﻦ ﻫﺬا اﻷﻣﺮ:
ﺘﺎج إﱃ اﺳ
python ،ﻗﺪﺗﺤ
ﺜﺮﺗﻌﻘﻴﺪًا ،
ﺒﺢ ﻋﻤﻠﻚ أﻛ
ﺑﻚ ،وﻟﻜﻦ ﻛﻠﻤﺎ أﺻﺒﺎﺷﺮة ﻣﻦ اﻟﻤﺤﺮر اﻟﺨﺎص
ﺑﺸﻜﻞ ﺟﻴﺪ ﻣﺑﺮاﻣﺠﻚﺘﻌﻤﻞ ﻣﻌﻈﻢ
ﺳ
ﺘﺸﻐﻴﻞ ﻣﻦ ﻣﺤﻄ ﺔ ﻃﺮﻓﻴ ﺔ.
ﺘﺎﺟﻬﺎ ﻟﻠ
ﺘﺤﺘ ﻲﺳ
ﺒﺮاﻣﺞ اﻟ
ﺑ ﺔ اﻟ
ﺘﺎ
ﻳﻤﻜﻨﻚ ﻛ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺘﻲ
ﺘﺤﺪﻳﺎ ت اﻟ
ﺘﻨﺪ اﻟ
ﺘﺴﺜﺎﻧ ﻲ ،ﺳ
ﺑﺪءًا ﻣﻦ اﻟﻔﺼﻞ اﻟﺘﻬﺎ.
ﺒﻴﻌ
ﺑﻄﺘﻜﺸﺎﻓﻴ ﺔ
ﺘﻤﺎرﻳﻦ اﻟﻮاردة ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ اﺳ
اﻟ
ﺘﻪ.
ﺘﺤﻠﻬﺎ ﻋﲆ ﻣﺎﺗﻌﻠﻤ
ﺳ
ﺜﻮر ﻋﲆ اﻟﻤﻮﺿﻮﻋﺎ ت
ﺋﻴ ﺴﻴ ﺔ )(http://python.org/ﻟﻠﻌ
ﺘﻜﺸﻒ ﺻﻔﺤ ﺔ Pythonاﻟﺮ
1-1. python.org:اﺳ
ﺜﺮ إﻓﺎدة ﻟﻚ.
ﺘﻠﻔ ﺔ ﻣﻦ اﻟﻤﻮﻗﻊ أﻛ
ﺘﻜﻮن أﺟﺰاء ﻣﺨ
ﺜﻮن ،ﺳ
ﺒﺎﻳ
ﺑﺒﺢ ﻋﲆ دراﻳ ﺔ
ﺘ ﻲﺗﻬﻤﻚ .ﻋﻨﺪﻣﺎﺗﺼ
اﻟ
ﺒﻌ ﻲ ﻓ ﻲ ﻣﻜﺎن
ﺑﻌﻤﻞ ﺧﻄﺄ ﻣﻄﺘﻮ .ﻗﻢ
ﺗﻪ ﻟﻠ
ﺘﺢ ﻣﻠﻒ hello_world.pyاﻟﺬي أﻧﺸﺄ
1-2. Hello World Typos:اﻓ
ﺒﻌ ﻲﻳﺆدي إﱃ ﺣﺪو ث ﺧﻄﺄ؟ ﻫﻞ
ﺒﺮﻧﺎﻣﺞ ﻣﺮة أﺧﺮى .ﻫﻞﻳﻤﻜﻨﻚ ﻋﻤﻞ ﺧﻄﺄ ﻣﻄ
ﺘﺸﻐﻴﻞ اﻟ
ﺑﻣﺎ ﻓ ﻲ اﻟ ﺴﻄﺮ وﻗﻢ
ﺘﻘﺪ أﻧﻪ ﻟﻢﻳﺼﻨﻊ
ﺘﺞ ﻋﻨﻪ ﺧﻄﺄ؟ ﻟﻤﺎذاﺗﻌ
ﺒﻌ ﻲ ﻻﻳﻨ
ﻳﻤﻜﻨﻚ ﻓﻬﻢ رﺳﺎﻟ ﺔ اﻟﺨﻄﺄ؟ ﻫﻞﻳﻤﻜﻨﻚ ﻋﻤﻞ ﺧﻄﺄ ﻣﻄ
ﺧﻄﺎ؟
ﺒﻨ ﻲ؟
ﺘﺑﺮﻣﺠ ﺔ ﻻ ﻧﻬﺎﺋﻴ ﺔ ،ﻓﻤﺎذاﺳ1-3.اﻟﻤﻬﺎرا ت اﻟﻼﻧﻬﺎﺋﻴ ﺔ :إذا ﻛﺎﻧ ﺖ ﻟﺪﻳﻚ ﻣﻬﺎرا ت
ﺘﺨﺪام ﻓﻮري
ﺒﺎر ،ﻓ ﺴﻴﻜﻮن ﻟﺪﻳﻚ اﺳ
ﺘﺒﺮﻣﺠ ﺔ .إذا ﻛﺎن ﻟﺪﻳﻚ ﻫﺪف ﻧﻬﺎﺋ ﻲ ﻓ ﻲ اﻻﻋ
أﻧ ﺖ ﻋﲆ وﺷﻚﺗﻌﻠﻢ ﻛﻴﻔﻴ ﺔ اﻟ
ﺘﺮ
ﺑﺪﻓﺘﻔﻆ
ﺗﻚ اﻟﺠﺪﻳﺪة ؛ اﻵن ﻫﻮ وﻗ ﺖ راﺋﻊ ﻟﺼﻴﺎﻏ ﺔ وﺻﻒ ﻟﻤﺎﺗﺮﻏ ﺐ ﻓ ﻲ إﻧﺸﺎﺋﻪ .إﻧﻬﺎ ﻋﺎدة ﺟﻴﺪة أنﺗﺤ
ﻟﻤﻬﺎرا
ﺑﺮاﻣﺞﺗﺮﻏ ﺐ ﻓ ﻲﺛﺔ
ﺛﻼﺑﻀﻊ دﻗﺎﺋﻖ اﻵن ﻟﻮﺻﻒﺑﺪء ﻣﺸﺮوع ﺟﺪﻳﺪ .ﺧﺬﺘﻰ أرد ت
"أﻓﻜﺎر"ﻳﻤﻜﻨﻚ اﻟﺮﺟﻮع إﻟﻴﻪ ﻣ
إﻧﺸﺎﺋﻬﺎ.
ﻣﻠﺨﺺ
ﺒﻴ ﺖ Pythonﻋﲆ ﻧﻈﺎﻣﻚ إذا ﻟﻢﺗﻜﻦ ﻣﻮﺟﻮدة
ﺜﺘﺑﺑﺸﻜﻞ ﻋﺎم ،وﻗﻤ ﺖ
ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ،ﺗﻌﻠﻤ ﺖ اﻟﻘﻠﻴﻞ ﻋﻦ Python
ﺘﻄﻔﺎ ت ﻣﻦ ﻛﻮد Python
ﺑ ﺔ ﻛﻮد Python.ﻟﻘﺪﺗﻌﻠﻤ ﺖﺗﺸﻐﻴﻞ ﻣﻘ
ﺘﺎ
ﺘ ﺴﻬﻴﻞ ﻛ
ﺒﻴ ﺖ ﻣﺤﺮر ﻧﺼ ﻲ ﻟ
ﺜﺘﺑ ﺑﺎﻟﻔﻌﻞ .ﻟﻘﺪ ﻗﻤ ﺖ أ ً
ﻳﻀﺎ
ﺘﻜﺸﺎف اﻷﺧﻄﺎء
ﺑﻤﺎﺗﻌﻠﻤ ﺖ اﻟﻘﻠﻴﻞ ﻋﻦ اﺳ
ﺑﺮﻧﺎﻣﺞ ﻓﻌﻠ ﻲ ﻟﻚ hello_world.py. ،رﺘﺸﻐﻴﻞ أول
ﺑﻓ ﻲ ﺟﻠ ﺴ ﺔ ﻃﺮﻓﻴ ﺔ ،وﻗﻤ ﺖ
وإﺻﻼﺣﻬﺎ أ ً
ﻳﻀﺎ.
ﺑﺪء
ا 17
Machine Translated by Google
Machine Translated by Google
2
Var ia bles an d
ﺑﻴﺎﻧﺎ ت Si m ple T y pe s
ﺘﻲ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺘﻠﻔ ﺔ ﻣﻦ اﻟ
ﺘﻌﺮف ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ﻋﲆ اﻷﻧﻮاع اﻟﻤﺨ
ﺘﺳ
ﺘﻌﻠﻢ أ ً
ﻳﻀﺎ ﻛﻴﻒ ﺘﺑﻚ.ﺳﺜﻮن اﻟﺨﺎﺻ ﺔ
ﺑﺎﻳﺑﺮاﻣﺞﺑﻬﺎ ﻓ ﻲﻳﻤﻜﻨﻚ اﻟﻌﻤﻞ
ﺘﻐﻴﺮا ت ﻓ ﻲ
ﺘﺨﺪامﺗﻠﻚ اﻟﻤ
ﺘﻐﻴﺮا ت وﻛﻴﻔﻴ ﺔ اﺳ
ﺗﻚ ﻓ ﻲ ﻣ
ﺑﻴﺎﻧﺎﺘﺨﺰﻳﻦ
ﻟ
ﺑﺮاﻣﺠﻚ.
("Hello Pythonhello_world.py
ﺒﺎﻋ ﺔ )"!world
ﻃ
Machine Translated by Google
ﺜﻮن!
ﺑﺎﻳﺑﻌﺎﻟﻢﺒﺎ
ﻣﺮﺣ ً
ﺛﻢﻳﻘﻮم اﻟﻤﺤﺮر
ﺑﺮﻧﺎﻣﺞ Python.ﺒﺎرة ﻋﻦ
ﺗﺸﻴﺮ اﻟﻨﻬﺎﻳ ﺔ yp.إﱃ أن اﻟﻤﻠﻒ ﻋ
ﻋﻨﺪﺗﺸﻐﻴﻞ اﻟﻤﻠﻒ hello_world.py ،
ﺒﻴﻞ
ﺒﺮﻧﺎﻣﺞ .ﻋﲆﺳ
ﺒﺮﻧﺎﻣﺞ وﻳﺤﺪد ﻣﻌﻨﻰ ﻛﻞ ﻛﻠﻤ ﺔ ﻓ ﻲ اﻟ
ﺘﺮﺟﻢ Python ،اﻟﺬيﻳﻘﺮأ ﻣﻦ ﺧﻼل اﻟ
ﺘﺸﻐﻴﻞ اﻟﻤﻠﻒ ﻣﻦ ﺧﻼل ﻣ
ﺑ
ﺒﻊ ﻋﲆ اﻟﺸﺎﺷ ﺔ ﻛﻞ ﻣﺎﻳﻮﺟﺪ داﺧﻞ اﻷﻗﻮاس.
ﺒﺎﻋ ﺔ ،ﻓﺈﻧﻪﻳﻄ
ﺘﺮﺟﻢ اﻟﻜﻠﻤ ﺔ ﻃ
ﺜﺎل ،ﻋﻨﺪﻣﺎﻳﺮى اﻟﻤ
اﻟﻤ
ﺘﻠﻔ ﺔ .ﻋﲆ
ﺑﻄﺮق ﻣﺨﺑﺮﻧﺎﻣﺠﻚﺘﻠﻔ ﺔ ﻣﻦ
ﺘ ﺴﻠﻴﻂ اﻟﻀﻮء ﻋﲆ أﺟﺰاء ﻣﺨ
ﺑﺑﻚﺑﺮاﻣﺠﻚ ،ﻳﻘﻮم اﻟﻤﺤﺮر اﻟﺨﺎصﺑﺔ
ﺘﺎ
ﺛﻨﺎء ﻛ
أ
ﺑﺎﻟﻠﻮن اﻷزرق .إﻧﻬﺎﺗﺪرك أن "!Python worldﺘﻌﺮف ﻋﲆ أن printﻫﻮ اﺳﻢ وﻇﻴﻔ ﺔ وﻳﻌﺮضﺗﻠﻚ اﻟﻜﻠﻤ ﺔ
ﺜﺎل ،ﻳ
ﺒﻴﻞ اﻟﻤ
ﺳ
ﺑﻨﺎء اﻟﺠﻤﻠ ﺔ و ﻫ ﻲ ﻣﻔﻴﺪة ﺟﺪًاﺗﻘﺎﻟ ﻲ.ﺗ ﺴﻤﻰ ﻫﺬه اﻟﻤﻴﺰةﺗﻤﻴﻴﺰ
ﺒﺮﺑﺎﻟﻠﻮن اﻟﺒﺎرة
"Helloﻟﻴ ﺲ رﻣﺰ Pythonوﻳﻌﺮض ﻫﺬه اﻟﻌ
ﺑﻚ.ﺒﺮاﻣﺞ اﻟﺨﺎﺻ ﺔ
ﺑ ﺔ اﻟ
ﺘﺎ
ﺒﺪأ ﻓ ﻲ ﻛ
ﻋﻨﺪﻣﺎﺗ
ﺘﻐﻴﺮا ت
اﻟﻤ
ﺜﺎﻧ ﻲ:
ﺘﻌﺪﻳﻞ اﻟ ﺴﻄﺮ اﻟ
ﺑﺑﺪاﻳ ﺔ اﻟﻤﻠﻒ ،وﻗﻢﺘﻐﻴﺮ ﻓ ﻲ hello_world.py.أﺿﻒﺳﻄ ﺮًا ﺟﺪﻳﺪًا ﻓ ﻲ
ﺘﺨﺪام ﻣ
ﻟﻨﺠﺮ ب اﺳ
ﺑ ًﻘﺎ:
ﺘﻬﺎﺳﺎ
ﺘ ﻲ رأﻳ
ﺘﻴﺠ ﺔ اﻟ
ﺒﺮﻧﺎﻣﺞ ﻟﻤﻌﺮﻓ ﺔ ﻣﺎﺳﻴﺤﺪ ث.ﻳﺠ ﺐ أنﺗﺮى ﻧﻔ ﺲ اﻟﻨ
ﺘﺸﻐﻴﻞ ﻫﺬا اﻟ
ﺑﻗﻢ
ﺜﻮن!
ﺑﺎﻳﺑﻌﺎﻟﻢﺒﺎ
ﻣﺮﺣ ً
ﺜﻮن.
ﺑﺎﻳﺘﺮﺟﻢ
ﺘﻐﻴﺮ إﱃ ﻣﺰﻳﺪ ﻣﻦ اﻟﻌﻤﻞ ﻟﻤ
ﺗﺆدي إﺿﺎﻓ ﺔ ﻣ
ﺘﻐﻴﺮة .ﻋﻨﺪﻣﺎﻳﺼﻞ إﱃ اﻟ ﺴﻄﺮ
ﺑﻂ اﻟﻨﺺ "!"Hello Python worldﻣﻊ اﻟﺮﺳﺎﻟ ﺔ اﻟﻤ
ﻋﻨﺪﻣﺎﻳﻌﺎﻟﺞ اﻟ ﺴﻄﺮ اﻷول ،ﻓﺈﻧﻪﻳﺮ
ﺑﺎﻟﺮﺳﺎﻟ ﺔ ﻋﲆ اﻟﺸﺎﺷ ﺔ.ﺒﻄ ﺔ
ﺗﺒﻊ اﻟﻘﻴﻤ ﺔ اﻟﻤﺮ
ﺜﺎﻧ ﻲ ،ﻓﺈﻧﻪﻳﻄ
اﻟ
ً
ﻓﺎرﻏﺎ إﱃ ﺛﺎﻧﻴ ﺔ .أﺿﻒﺳﻄ ﺮًاﺒﺎﻋ ﺔ رﺳﺎﻟ ﺔ
ﺒﺮﻧﺎﻣﺞ ﻋﻦ ﻃﺮﻳﻖﺗﻌﺪﻳﻞ hello_world.pyﻟﻄ
ﺘﻮﺳﻊ ﻓ ﻲ ﻫﺬا اﻟ
دﻋﻨﺎ ﻧ
ﺒﺮﻣﺠﻴ ﺔ:
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺛﻢ أﺿﻒﺳﻄﺮﻳﻦ ﺟﺪﻳﺪﻳﻦ ﻣﻦ اﻟ
hello_world.py ،
20اﻟﻔﺼﻞ 2
Machine Translated by Google
ﺜﻮن!
ﺑﺎﻳﺑﻌﺎﻟﻢ ﺒﺎ
ﻣﺮﺣ ً
ﺒﺎ ﻋﺎﻟﻢ !Python Crash Courseﻣﺮﺣ ً
ﺋﻤﺎ.
ﺘﻪ اﻟﺤﺎﻟﻴ ﺔ دا ً
ﺒﻊ Pythonﻗﻴﻤ
ﺘﺘﺘ
ﺑﺮﻧﺎﻣﺠﻚ ﻓ ﻲ أي وﻗ ﺖ ،وﺳﺘﻐﻴﺮ ﻓ ﻲ
ﻳﻤﻜﻨﻚﺗﻐﻴﻴﺮ ﻗﻴﻤ ﺔ اﻟﻤ
ﺘﻐﻴﺮا ت
ﺘﺨﺪام اﻟﻤ
ﺗ ﺴﻤﻴ ﺔ واﺳ
ﺑﻌﺾ ﻫﺬه اﻟﻘﻮاﻋﺪﺒﻌﺾ اﻟﻘﻮاﻋﺪ واﻹرﺷﺎدا ت .ﻛ ﺴﺮ
ﺑﺘﺰام
ﺑﺤﺎﺟ ﺔ إﱃ اﻻﻟﺘﻐﻴﺮا ت ﻓ ﻲ Python ،ﻓﺄﻧ ﺖ
ﺘﺨﺪم اﻟﻤ
ﻋﻨﺪﻣﺎﺗ ﺴ
ﺗﻬﺎ وﻓﻬﻤﻬﺎ.
ﺘ ﻲﻳ ﺴﻬﻞ ﻗﺮاء
ﺒﺮﻣﺠﻴ ﺔ اﻟ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑ ﺔ اﻟ
ﺘﺎ
ﺳﻴﺆدي إﱃ ﺣﺪو ث أﺧﻄﺎء ؛ﺗ ﺴﺎﻋﺪك اﻷﺳﻄﺮ اﻹرﺷﺎدﻳ ﺔ اﻷﺧﺮى ﻓ ﻲ ﻛ
ﺘﺎﻟﻴ ﺔ:
ﺘﻐﻴﺮة اﻟ
ﺗﺄﻛﺪ ﻣﻦ ﻣﺮاﻋﺎة اﻟﻘﻮاﻋﺪ اﻟﻤ
ﺘﻲ
ﺘﺨﺪم اﻟﻜﻠﻤﺎ ت اﻟ
ﺘﻐﻴﺮا ت .أي ،ﻻﺗ ﺴ
ﺘﺨﺪام ﻛﻠﻤﺎ ت Pythonاﻷﺳﺎﺳﻴ ﺔ وأﺳﻤﺎء اﻟﻮﻇﺎﺋﻒ ﻛﺄﺳﻤﺎء ﻣ
ﺗﺠﻨ ﺐ اﺳ
•
ﺒﺎﻋ ﺔ) .راﺟﻊ "ﻛﻠﻤﺎ ت Pythonاﻷﺳﺎﺳﻴ ﺔ واﻟﻮﻇﺎﺋﻒ اﻟﻤﻀﻤﻨ ﺔ"
ﺜﻞ ﻛﻠﻤ ﺔ ﻃ
ﺜﻮن ﻟﻐﺮض ﻧﺤﻮي ﻣﻌﻴﻦ ،ﻣ
ﺑﺎﻳﺑﻬﺎﺘﻔﻈ ﺖ
اﺣ
ﻓ ﻲ اﻟﺼﻔﺤ ﺔ )489.
ﺒﻴﺮ O
ﺘﺨﺪام اﻟﺤﺮف اﻟﺼﻐﻴﺮ lواﻟﺤﺮف اﻟﻜ
ﺗﻮخ اﻟﺤﺬر ﻋﻨﺪ اﺳ
•
ﺑﻴﻦ اﻟﺮﻗﻤﻴﻦ 1و 0.
ﺑﻴﻨﻪ وﻷﻧﻪﻳﻤﻜﻦ اﻟﺨﻠﻂ
ﺜﺮﺗﺸﻮﻳ ًﻘﺎ
ﺒﺢ أﻛ
ﺑﺮاﻣﺠﻚﺗﺼﺘﻐﻴﺮا ت ﺟﻴﺪة ،ﺧﺎﺻ ﺔ وأن
ﺘﻌﻠﻢ ﻛﻴﻔﻴ ﺔ إﻧﺸﺎء أﺳﻤﺎء ﻣ
ﺘﺘﺪرﻳ ﺐ ﻟ
ﺑﻌﺾ اﻟﺘﻐﺮق اﻷﻣﺮ
ﻗﺪﻳ ﺴ
ﺑﺄﺳﻤﺎء ذا تﺘﺤ ﺴﻦ ﻓ ﻲ اﻟﺨﺮوج
ﺘﺒﺪأ ﻓ ﻲ ﻗﺮاءة رﻣﻮز اﻷﺷﺨﺎص اﻵﺧﺮﻳﻦ ،ﺳ
ﺗﺒﺮاﻣﺞ و
ﺘ ﺐ اﻟﻤﺰﻳﺪ ﻣﻦ اﻟ
ﺗﻌﻘﻴﺪًا .ﻋﻨﺪﻣﺎﺗﻜ
و
ﻣﻌﻨﻰ.
ﺘﺨﺪم
ﺑﺄﺣﺮف ﺻﻐﻴﺮة .ﻟﻦﺗﺤﺼﻞ ﻋﲆ أﺧﻄﺎء إذا ﻛﻨ ﺖﺗ ﺴﺘﺨﺪﻣﻬﺎ ﻓ ﻲ ﻫﺬه اﻟﻤﺮﺣﻠ ﺔ
ﺘ ﻲﺗ ﺴ
ﺘﻐﻴﺮا ت Pythonاﻟ
ﻣﻼﺣﻈ ﺔ:ﻳﺠ ﺐ أنﺗﻜﻮن ﻣ
ﺘﺨﺪاﻣﻬﺎ ﻓ ﻲ اﻟﻮﻗ ﺖ اﻟﺤﺎﻟ ﻲ.
ﺒﻴﺮة ،وﻟﻜﻦ ﻣﻦ اﻟﺠﻴﺪﺗﺠﻨ ﺐ اﺳ
اﻷﺣﺮف اﻟﻜ
ﺘﻐﻴﺮا ت
ﺘﺨﺪام اﻟﻤ
ﺗﺠﻨ ﺐ أﺧﻄﺎء اﻷﺳﻤﺎء ﻋﻨﺪ اﺳ
ﺗﻜ ﺐ أﺧﻄﺎء ﻛﻞﻳﻮم.
ﺒﺮﻣﺞﻳﺨﻄ ﺊ ،وﻣﻌﻈﻤﻪﻳﺮ
ﻛﻞ ﻣ
ﺑ ﺔ ﻟﻬﺬه
ﺘﺠﺎ ﺒﻮن ﻓ ﻲ ﺣﺪو ث أﺧﻄﺎء ،إﻻ أﻧﻬﻢﻳﻌﺮﻓﻮن أ ً
ﻳﻀﺎ ﻛﻴﻔﻴ ﺔ اﻻﺳ ﺒﺘﺴ
ﺒﺮﻣﺠﻴﻦ اﻟﺠﻴﺪﻳﻦ ﻗﺪﻳ
ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أن اﻟﻤ
ﺘﻌﺮف ﻋﲆ ﻛﻴﻔﻴ ﺔ إﺻﻼﺣﻪ.
ﺒﻜﺮ وﻧ
ﺒﻪ ﻓ ﻲ وﻗ ﺖ ﻣ
ﺗﻜﺘﻤﻞ أنﺗﺮ
ﺑﻜﻔﺎءة .دﻋﻨﺎ ﻧﻠﻘ ﻲ ﻧﻈﺮة ﻋﲆ ﺧﻄﺄ ﻣﻦ اﻟﻤﺤاﻷﺧﻄﺎء
ﺒ ﺴﻴﻄ ﺔ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺘﻐﻴﺮا ت وأﻧﻮاع اﻟ
اﻟﻤ 21
Machine Translated by Google
ﺗﻨﺎ
ﺘﺮﺟﻢ ﻫﺬا اﻟﺨﻂ ﻟﻤ ﺴﺎﻋﺪ
ﺒﻠﻎ اﻹﺧﺮاج ﻓ ﻲ uﺣﺪو ث ﺧﻄﺄ ﻓ ﻲ اﻟ ﺴﻄﺮ 2ﻣﻦ اﻟﻤﻠﻒ hello_world.py.ﻳﻮﺿﺢ اﻟﻤ
ﻳ
ﺘﻐﻴﺮ
ﺑﺄن اﻟﻤﺗﻔﻴﺪ
ﺑﻨﻮع اﻟﺨﻄﺄ اﻟﺬي وﺟﺪه .ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔ ،وﺟﺪ ت ﺧﻄﺄ ﻓ ﻲ اﻻﺳﻢ وﺒﺮﻧﺎ
ﺑ ﺴﺮﻋ ﺔ وﻳﺨﺘﺸﺎف اﻟﺨﻄﺄ
ﻋﲆ اﻛ
ً
ﻋﺎدة ﻣﺎﻳﻌﻨ ﻲ ﺧﻄﺄ اﻻﺳﻢ ﺘﻐﻴﺮ اﻟﻤﻘﺪم.
ﺗﺤﺪﻳﺪ اﺳﻢ اﻟﻤ
ﺘﻄﻴﻊ Python
ﺘﻢﺗﻌﺮﻳﻔﻪ .ﻻﺗ ﺴ
ﺘﻪ mesage ، ،ﻟﻢﻳ
ﺒﺎﻋ
ﺘﻢ ﻃ
اﻟﺬيﺗ
ﺘﻐﻴﺮ.
ﺒﻨﺎ ﺧﻄﺄ إﻣﻼﺋ ًﻴﺎ ﻋﻨﺪ إدﺧﺎل اﺳﻢ اﻟﻤ
ﺗﻜﺘﺨﺪاﻣﻪ ،أو أﻧﻨﺎ ار
ﺒﻞ اﺳ
ﺘﻐﻴﺮ ﻗ
أﻧﻨﺎ إﻣﺎ ﻧ ﺴﻴﻨﺎﺗﻌﻴﻴﻦ ﻗﻴﻤ ﺔ اﻟﻤ
ﺘﺪﻗﻴﻖ
ﺑﺎﻟ
ﺘﺮﺟﻢ Python
ﺜﺎﻧ ﻲ .ﻻﻳﻘﻮم ﻣ
ﺘﻐﻴﺮ ﻓ ﻲ اﻟ ﺴﻄﺮ اﻟ
ﺜﺎل ﺣﺬﻓﻨﺎ اﻟﺤﺮف sﻓ ﻲ رﺳﺎﻟ ﺔ اﺳﻢ اﻟﻤ
ﺒﻊ ،ﻓ ﻲ ﻫﺬا اﻟﻤ
ﺑﺎﻟﻄ
ﺒﻴﻞ
ﺘﻤﺮار .ﻋﲆﺳ
ﺑﺎﺳﺘﻬﺎ
ﺘﻢﺗﻬﺠﺌ
ﺘﻐﻴﺮا تﻳ
ﺑﻚ ،وﻟﻜﻨﻪﻳﻀﻤﻦ أن أﺳﻤﺎء اﻟﻤﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
اﻹﻣﻼﺋ ﻲ ﻓ ﻲ اﻟ
ﺑﺸﻜﻞ ﻏﻴﺮ ﺻﺤﻴﺢ ﻓ ﻲ ﻣﻜﺎن آﺧﺮ ﻓ ﻲ اﻟﻜﻮد أ ً
ﻳﻀﺎ: ﺘ ﺐ رﺳﺎﻟ ﺔ
ﺜﺎل ،ﺷﺎ ﻫﺪ ﻣﺎﻳﺤﺪ ث ﻋﻨﺪﻣﺎ ﻧﻜ
اﻟﻤ
ﺑﻨﺠﺎح!ﺒﺮﻧﺎﻣﺞ
ﺘﻢﺗﺸﻐﻴﻞ اﻟ
ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔ ،ﻳ
ﺘﻔﻜﻴﺮ ﻓ ﻲ ﻗﻮاﻋﺪ
ﺘﺎج إﱃ اﻟ
ﺘﻴﺠ ﺔ ﻟﺬﻟﻚ ،ﻻﺗﺤ
ﺘﻬﺠﺌ ﺔ اﻟﺠﻴﺪة واﻟ ﺴﻴﺌ ﺔ .ﻧ
ﺘﺠﺎ ﻫﻞ اﻟ
ﺗﺮ ﺻﺎرﻣ ﺔ ،ﻟﻜﻨﻬﺎﺗ
ﺒﻴﻮ
أﺟﻬﺰة اﻟﻜﻤ
ﺒﺮﻣﺠﻴ ﺔ.
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑ ﺔ اﻟ
ﺘﺎ
ﺘﻐﻴﺮة وﻛ
ﺘﻬﺠﺌ ﺔ واﻟﻘﻮاﻋﺪ اﻹﻧﺠﻠﻴﺰﻳ ﺔ ﻋﻨﺪﻣﺎﺗﺤﺎول إﻧﺸﺎء أﺳﻤﺎء ﻣ
اﻟ
22اﻟﻔﺼﻞ 2
Machine Translated by Google
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺒﻌﻬﺎ
ﺛﻢ اﻃﺘﻐﻴﺮ ،
ﺘﺨﺰﻳﻦ رﺳﺎﻟ ﺔ ﻓ ﻲ ﻣ
ﺑﺑ ﺴﻴﻄ ﺔ :ﻗﻢ2-1.رﺳﺎﻟ ﺔ
رﺳﺎﻟ ﺔ.
ﺳﻼﺳﻞ
ﺑﻬﺎ ،ﻓﺈﻧﻬﺎﺗ ﺴﺎﻋﺪ ﻓ ﻲﺗﺼﻨﻴﻒ أﻧﻮاعﺛﻢﺗﻔﻌﻞ ﺷﻴ ًﺌﺎ ﻣﻔﻴﺪًاﺗﺠﻤﻌﻬﺎ ،
ﺒﻴﺎﻧﺎ ت و
ﺒﺮاﻣﺞﺗﺤﺪد ﻧﻮﻋً ﺎ ﻣﻦ اﻟ
ﻧﻈ ﺮًاﻷن ﻣﻌﻈﻢ اﻟ
ﺑ ﺴﻴﻄ ﺔ ﺟﺪًا ﻟﻠﻮ ﻫﻠ ﺔ اﻷوﱃ ،وﻟﻜﻦﻳﻤﻜﻨﻚﺗﺎر
ﺒﻴﺎﻧﺎ ت اﻷول اﻟﺬيﺳﻨﻨﻈﺮ إﻟﻴﻪ ﻫﻮ اﻟ ﺴﻠ ﺴﻠ ﺔ .اﻷو
ﺒﻴﺎﻧﺎ ت .ﻧﻮع اﻟ
ﺘﻠﻔ ﺔ ﻣﻦ اﻟ
ﻣﺨ
ﺘﻠﻔ ﺔ.
ﺑﻌﺪة ﻃﺮق ﻣﺨﺘﺨﺪاﻣﻬﺎ
اﺳ
ﺘ ﻲ اﻟﻤﻔﻀﻠ ﺔ!"
ﺜﻮن ﻫ ﻲ ﻟﻐ
ﺑﺎﻳ
ﺒﺮ ت ﺻﺪﻳﻘ ﻲ " ،
أﺧ
ﺒﺎن".
ﺜﻌﺗﻤ ﺖﺗ ﺴﻤﻴ ﺔ ﻟﻐ ﺔ ''Pythonﻋﲆ اﺳﻢ Monty Python ،وﻟﻴ ﺲ اﻟ
"
ﺘﻨﻮع واﻟﺪاﻋﻢ".
ﺘﻤﻌﻬﺎ اﻟﻤ
ﺜﻮن ﻫ ﻲ ﻣﺠ
ﺑﺎﻳ"إﺣﺪى ﻧﻘﺎط ﻗﻮة
ﺘﺨﺪام اﻟ ﺴﻼﺳﻞ.
ﺘ ﻲﻳﻤﻜﻨﻚ ﻣﻦ ﺧﻼﻟﻬﺎ اﺳ
ﺑﻌﺾ اﻟﻄﺮق اﻟﺘﻜﺸﻒ
دﻋﻨﺎ ﻧ ﺴ
ﺒ ﺴﻴﻄ ﺔ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺘﻐﻴﺮا ت وأﻧﻮاع اﻟ
اﻟﻤ 23
Machine Translated by Google
ﺗﺞ:
ﺘﺸﻐﻴﻠﻪ.ﻳﺠ ﺐ أنﺗﺮى ﻫﺬا اﻟﻨﺎ
ﺑﺛﻢ ﻗﻢ
ﺑﺎﺳﻢ name.py ،اﺣﻔﻆ ﻫﺬا اﻟﻤﻠﻒ
آدا ﻟﻮﻓﻠﻴ ﺲ
ﺑﻌﺪ
ﺘﻐﻴﺮ ﻗﺎدر .ﻳﻈﻬﺮ ﻋﻨﻮان اﻟﻄﺮﻳﻘ ﺔ )(
ﺘﻢﺗﺨﺰﻳﻦ اﻟ ﺴﻠ ﺴﻠ ﺔ اﻟﺼﻐﻴﺮة ""ada lovelaceﻓ ﻲ اﺳﻢ ﻣ
ﺜﺎل ،ﻳ
ﻓ ﻲ ﻫﺬا اﻟﻤ
ﺑﻌﺪ اﻻﺳﻢ
ﺒﺮ اﻟﻨﻘﻄ ﺔ )(.
ﺒﻴﺎﻧﺎ ت.ﺗﺨ
ﺒﺎﻋ ﺔ () .اﻟﻄﺮﻳﻘ ﺔ ﻫ ﻲ إﺟﺮاءﻳﻤﻜﻦ أنﺗﺆدﻳﻪ Pythonﻋﲆ ﺟﺰء ﻣﻦ اﻟ
ﺘﻐﻴﺮ ﻓ ﻲ ﺣﺎﻟ ﺔ اﻟﻄ
اﻟﻤ
ﺒﻌﻬﺎ ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻷﻗﻮاس ،
ﺘﺘﻐﻴﺮ .ﻛﻞ ﻃﺮﻳﻘ ﺔﺗ
ﺗﻌﻤﻞ ﻋﲆ اﺳﻢ اﻟﻤ
ﺜﻮن أنﺗﺠﻌﻞ ﻃﺮﻳﻘ ﺔ اﻟﻌﻨﻮان )(
ﺑﺎﻳ
ﻓ ﻲ )( name.title
ﺑﻌﻤﻠﻬﺎ.ﺘﺎج إﱃ ﻣﻌﻠﻮﻣﺎ ت إﺿﺎﻓﻴ ﺔ ﻟﻠﻘﻴﺎم
ﺒﺎ ﻣﺎﺗﺤ
ﻷن اﻷﺳﺎﻟﻴ ﺐ ﻏﺎﻟ ً
ﺘﺎج وﻇﻴﻔ ﺔ اﻟﻌﻨﻮان )(إﱃ أي ﻣﻌﻠﻮﻣﺎ ت إﺿﺎﻓﻴ ﺔ ،ﻟﺬا ﻓﺈن أﻗﻮاﺳﻬﺎ ﻓﺎرﻏ ﺔ .
ﺘﻢﺗﻮﻓﻴﺮ ﻫﺬه اﻟﻤﻌﻠﻮﻣﺎ ت داﺧﻞ اﻷﻗﻮاس .ﻻﺗﺤ
ﻳ
ﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺤﺎﻟ ﺔ أ ً
ﻳﻀﺎ. ﺘﻮﻓﺮ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻄﺮق اﻟﻤﻔﻴﺪة اﻷﺧﺮى ﻟﻠ
ﺗ
ﺜﻞ ﻫﺬا:
ﺒﻴﺮة أو ﻛﻞ اﻷﺣﺮف اﻟﺼﻐﻴﺮة ﻣ
ﺜﺎل ،ﻳﻤﻜﻨﻚﺗﻐﻴﻴﺮﺳﻠ ﺴﻠ ﺔ إﱃ ﻛﻞ اﻷﺣﺮف اﻟﻜ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
أدا ﻟﻮﻓﻼﻳ ﺲ
آدا ﻟﻮﻓﻠﻴ ﺲ
ﺑﺎﻷﺣﺮفﺛﻮق
ﺜﻴﺮ ﻣﻦ اﻷﺣﻴﺎن ﻟﻦﺗﺮﻏ ﺐ ﻓ ﻲ اﻟﻮ
ﺒﻴﺎﻧﺎ ت .ﻓ ﻲ ﻛ
ﺘﺨﺰﻳﻦ اﻟ
ﺑﺸﻜﻞ ﺧﺎص ﻟاﻟﻄﺮﻳﻘ ﺔ اﻟﻤﻨﺨﻔﻀ ﺔ )(ﻣﻔﻴﺪة
ﺛﻢ ﻋﻨﺪﻣﺎﺗﺮﻳﺪ ﻋﺮضﺒﻞﺗﺨﺰﻳﻨﻬﺎ.
ﺘﺤﻮل اﻟ ﺴﻼﺳﻞ إﱃ أﺣﺮف ﺻﻐﻴﺮة ﻗ
ﺘﺨﺪﻣﻮن ﻟﺪﻳﻚ ،ﻟﺬﻟﻚﺳ
ﺘ ﻲﻳﻮﻓﺮ ﻫﺎ اﻟﻤ ﺴ
ﺒﻴﺮة اﻟ
اﻟﻜ
ﺜﺮ ﻣﻨﻄﻘﻴ ﺔ ﻟﻜﻞﺳﻠ ﺴﻠ ﺔ.
ﺘﺨﺪم اﻟﺤﺎﻟ ﺔ اﻷﻛ
ﺘﺴاﻟﻤﻌﻠﻮﻣﺎ ت ،ﺳ
24اﻟﻔﺼﻞ 2
Machine Translated by Google
"first_name = "ada
"last_name = "lovelace
""
u full_name = first_name + +اﺳﻢ_اﻷﺧﻴﺮ
ﺒﺎﻋ ﺔ )اﻻﺳﻢ_اﻟﻜﺎﻣﻞ(
ﻃ
آدا ﻟﻮﻓﻠﻴ ﺲ
ﺘﺨﺪام اﻟﻤﻌﻠﻮﻣﺎ ت
ﺑﺎﺳﺘ ﺴﻠ ﺴﻞ ﻹﻧﺸﺎء رﺳﺎﺋﻞ ﻛﺎﻣﻠ ﺔ
ﺘﺨﺪام اﻟ
ﺘ ﺴﻠ ﺴﻞ.ﻳﻤﻜﻨﻚ اﺳ
ﺑﺎﻟﺗ ﺴﻤﻰ ﻃﺮﻳﻘ ﺔ دﻣﺞ اﻟ ﺴﻼﺳﻞ ﻫﺬه
ﺜﺎل:
ﺘﻐﻴﺮ .ﻟﻨﻠﻘ ﻲ ﻧﻈﺮة ﻋﲆ ﻣ
ﺘﺨﺰﻳﻨﻬﺎ ﻓ ﻲ ﻣ
ﺑﺘ ﻲ ﻗﻤ ﺖ
اﻟ
"first_name = "ada
"last_name = "lovelace
""
full_nameاﻻﺳﻢ_اﻷول +
=+اﺳﻢ_اﻷﺧﻴﺮ
ﺘﺨﺪم ،و
ﺘﺨﺪام اﻻﺳﻢ اﻟﻜﺎﻣﻞ ﻋﻨﺪ uﻓ ﻲ ﺟﻤﻠ ﺔﺗﺤﻴ ﻲ اﻟﻤ ﺴ
ﺘﻢ اﺳ
ﻫﻨﺎ ،ﻳ
ﺑﺸﻜﻞﺑ ﺴﻴﻄ ﺔ وﻟﻜﻦ ﻣﻨ ﺴﻘ ﺔﺑﺸﻜﻞ ﻣﻨﺎﺳ ﺐ.ﻳﻌﺮض ﻫﺬا اﻟﺮﻣﺰﺗﺤﻴ ﺔﺘﻨ ﺴﻴﻖ اﻻﺳﻢ
ﺘﺨﺪام ﻃﺮﻳﻘ ﺔ اﻟﻌﻨﻮان )(ﻟ
ﺘﻢ اﺳ
ﻳ
ﺟﻴﺪ:
ﺘﻐﻴﺮ:
ﺑﺄﻛﻤﻠﻬﺎ ﻓ ﻲ ﻣﺛﻢﺗﺨﺰﻳﻦ اﻟﺮﺳﺎﻟ ﺔﺘ ﺴﻠ ﺴﻞ ﻹﻧﺸﺎء رﺳﺎﻟ ﺔ
ﺘﺨﺪام اﻟ
ﻳﻤﻜﻨﻚ اﺳ
"first_name = "ada
"last_name = "lovelace
""
+اﺳﻢ_اﻷﺧﻴﺮ = full_nameاﻻﺳﻢ_اﻷول +
+vfull_name.titleﻃ
ﺒﺎﻋ ﺔ )رﺳﺎﻟ ﺔ( ﺒﺎ" "!" () +
"u messageﻣﺮﺣ ً =
ﺘﻮر
ﻳﻌﺮض ﻫﺬا اﻟﺮﻣﺰ اﻟﺮﺳﺎﻟ ﺔ "!"Hello، Ada Lovelaceﻛﺬﻟﻚ ،وﻟﻜﻦﺳ
ﺒﺎﻋ ﺔ اﻟﻨﻬﺎﺋﻴ ﺔ ﻋﻨﺪ v
ﺒﺎرة اﻟﻄ
ﺘﻐﻴﺮ ﻋﻨﺪ uﻳﺠﻌﻞ ﻋ
إدﺧﺎل اﻟﺮﺳﺎﻟ ﺔ ﻓ ﻲ ﻣ
ﺜﺮﺳﻬﻮﻟ ﺔ.
اﻛ
ﺒ ﺴﻴﻄ ﺔ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺘﻐﻴﺮا ت وأﻧﻮاع اﻟ
اﻟﻤ 25
Machine Translated by Google
ﺒﺎﻋ ﺔ )"("Python
>>>ﻃ
ﺒﺎﻋ ﺔ )">>> ("\ tPython
ﻃ
Python u
ﺜﻮن
ﺑﺎﻳ
ﺒ ﺔ اﻷﺣﺮف \ n:
ﺘﺨﺪمﺗﺮﻛﻴ
ﻹﺿﺎﻓ ﺔﺳﻄﺮ ﺟﺪﻳﺪ ﻓ ﻲﺳﻠ ﺴﻠ ﺔ ،اﺳ
ﺒﺖ
ﺟﺎﻓﺎﺳﻜﺮﻳ
ﺘﻘﺎل
ﺑﺎﻻﻧ
ﺒﺮ اﻟ ﺴﻠ ﺴﻠ ﺔ "\ n \ t" Python
ﺒﻮﻳ ﺐ واﻷﺳﻄﺮ اﻟﺠﺪﻳﺪة ﻓ ﻲﺳﻠ ﺴﻠ ﺔ واﺣﺪة.ﺗﺨ
ﺘ ﻳﻤﻜﻨﻚ أ ً
ﻳﻀﺎ دﻣﺞ ﻋﻼﻣﺎ ت اﻟ
ﺒﻮﻳ ﺐ.
ﺑﻌﻼﻣ ﺔﺗﺘﺎﻟ ﻲ
ﺑﺪء اﻟ ﺴﻄﺮ اﻟ
إﱃﺳﻄﺮ ﺟﺪﻳﺪ ،و
ﺑﻌ ﺔ أﺳﻄﺮ ﻣﻦ اﻹﺧﺮاج:
ﺘﺨﺪامﺳﻠ ﺴﻠ ﺔ ﻣﻦﺳﻄﺮ واﺣﺪ ﻹﻧﺸﺎء أر
ﺘﺎﻟ ﻲ ﻛﻴﻒﻳﻤﻜﻨﻚ اﺳ
ﺜﺎل اﻟ
ﻳﻮﺿﺢ اﻟﻤ
ﺒﺖ
ﺟﺎﻓﺎﺳﻜﺮﻳ
ﺑﺬﻟﻚﺘﺎﻟﻴﻴﻦ ﻋﻨﺪﻣﺎﺗﻘﻮم
ﺒﻮﻳ ﺐ ﻣﻔﻴﺪة ﺟﺪًا ﻓ ﻲ اﻟﻔﺼﻠﻴﻦ اﻟ
ﺘﺘﻜﻮن اﻷﺳﻄﺮ اﻟﺠﺪﻳﺪة وﻋﻼﻣﺎ ت اﻟ
ﺳ
ﺒﺮﻣﺠﻴ ﺔ.
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑﻀﻌ ﺔ أﺳﻄﺮ ﻣﻦ اﻟﺘﺎج اﻟﻌﺪﻳﺪ ﻣﻦﺳﻄﻮر اﻹﺧﺮاج ﻣﻦ
ﺒﺪأ ﻓ ﻲ إﻧ
ﺗ
ﺒﻴﻀﺎء
ﺗﺠﺮﻳﺪ اﻟﻤ ﺴﺎﻓﺎ ت اﻟ
ﺑﻬ ﺔ إﱃ ﺣﺪ
ﺘﺸﺎ
ﺒﺪو ''pythonو ''pythonﻣ
ﺒﺮﻣﺠﻴﻦ ،ﺗ
ﺒ ﺔ ﻟﻠﻤ
ﺑﺎﻟﻨ ﺴﺑﺮاﻣﺠﻚ.ﺑﻜ ﺔ ﻓ ﻲ
ﺒﻴﻀﺎء اﻟﺰاﺋﺪة ﻣﺮ
ﻗﺪﺗﻜﻮن اﻟﻤ ﺴﺎﻓﺎ ت اﻟ
ﺒﺮ ﻫﺎ
ﺘﺗﻌ
ﺘﺸﻒ Pythonاﻟﻤ ﺴﺎﺣ ﺔ اﻹﺿﺎﻓﻴ ﺔ ﻓ ﻲ ''pythonو
ﺘﺎن.ﺗﻜ
ﺘﻠﻔ
ﺘﺎن ﻣﺨ
ﺒﺮﻧﺎﻣﺞ ،ﻓﻬﻤﺎﺳﻠ ﺴﻠ
ﺒ ﺔ ﻟﻠ
ﺑﺎﻟﻨ ﺴﺒﻴﺮ .ﻟﻜﻦ
ﻛ
ﺑﺨﻼف ذﻟﻚ.ﺒﺮ ﻫﺎ
ﻣﻬﻤ ﺔ ﻣﺎ ﻟﻢﺗﺨ
ﺘﻴﻦ.
ﺑﻘﺘﻄﺎ
ﺘﺎ ﻣ
ﺘﺤﺪﻳﺪ ﻣﺎ إذا ﻛﺎﻧ
ﺘﻴﻦ ﻟ
ﺘﺮﻏ ﺐ ﻓ ﻲ ﻣﻘﺎرﻧ ﺔﺳﻠ ﺴﻠ
ﺒﺎﺳ
ﺒﻴﻀﺎء ،ﻷﻧﻚ ﻏﺎﻟ ً
ﺘﻔﻜﻴﺮ ﻓ ﻲ اﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﻣﻦ اﻟﻤﻬﻢ اﻟ
ﺘﺨﺪﻣﻴﻦ ﻟﻸﺷﺨﺎص ﻋﻨﺪﺗ ﺴﺠﻴﻞ اﻟﺪﺧﻮل إﱃ
ﺘﺤﻘﻖ ﻣﻦ أﺳﻤﺎء اﻟﻤ ﺴ
ﺜﻠ ﺔ اﻟﻤﻬﻤ ﺔ اﻟ
ﺘﻀﻤﻦ أﺣﺪ اﻷﻣ
ﺜﺎل ،ﻗﺪﻳ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺑ ﺴﻂ أ ً
ﻳﻀﺎ .ﻟﺤ ﺴﻦ اﻟﺤﻆ ،ﺗ ﺴﻬﻞ Pythonإزاﻟ ﺔ ﺑﻜ ﺔ ﻓ ﻲ اﻟﻤﻮاﻗﻒ اﻷ
ﺒﻴﻀﺎء اﻟﺰاﺋﺪة ﻣﺮ
ﻣﻮﻗﻊ وﻳ ﺐ .ﻗﺪﺗﻜﻮن اﻟﻤ ﺴﺎﻓﺎ ت اﻟ
ﺘ ﻲﻳﺪﺧﻠﻬﺎ اﻷﺷﺨﺎص.
ﺒﻴﺎﻧﺎ ت اﻟ
ﺒﻴﻀﺎء اﻟﺪﺧﻴﻠ ﺔ ﻣﻦ اﻟ
اﻟﻤ ﺴﺎﻓﺎ ت اﻟ
ﺘﺄﻛﺪ ﻣﻦ ﻋﺪم
ﺒﻴﻦ اﻷﻳﻤﻦ واﻷﻳ ﺴﺮ ﻣﻦ اﻟ ﺴﻠ ﺴﻠ ﺔ .ﻟﻠ
ﺑﻴﻀﺎء إﺿﺎﻓﻴ ﺔ ﻋﲆ اﻟﺠﺎﻧﺒﺤ ﺚ Pythonﻋﻦ ﻣ ﺴﺎﻓﺎ ت
ﻳﻤﻜﻦ أنﺗ
ﺘﺨﺪم ﻃﺮﻳﻘ ﺔ rstrip () .
ﺑﻴﻀﺎء ﻓ ﻲ اﻟﻄﺮف اﻷﻳﻤﻦ ﻣﻦ اﻟ ﺴﻠ ﺴﻠ ﺔ ،اﺳوﺟﻮد ﻣ ﺴﺎﻓ ﺔ
26اﻟﻔﺼﻞ 2
Machine Translated by Google
ﺒﺎن"
ﺜﻌ"اﻟ
x >>> favourite_language
ﺒﺎن"
ﺜﻌ"اﻟ
ﺑﻴﻀﺎء إﺿﺎﻓﻴ ﺔ ﻓ ﻲ ﻧﻬﺎﻳ ﺔ اﻟ ﺴﻠ ﺴﻠ ﺔ .ﻋﻨﺪﻣﺎﺗﻄﻠ ﺐﺘﻮي اﻟﻘﻴﻤ ﺔ اﻟﻤﺨﺰﻧ ﺔ ﻓ ﻲ favour_languageﻋﻨﺪ uﻋﲆ ﻣ ﺴﺎﻓ ﺔ
ﺗﺤ
ﻣﻦ Pythonﻫﺬه اﻟﻘﻴﻤ ﺔ ﻓ ﻲ ﺟﻠ ﺴ ﺔ ﻃﺮﻓﻴ ﺔ ،ﻳﻤﻜﻨﻚ رؤﻳ ﺔ اﻟﻤ ﺴﺎﻓ ﺔ ﻓ ﻲ ﻧﻬﺎﻳ ﺔ اﻟﻘﻴﻤ ﺔ v.ﻋﻨﺪﻣﺎﻳﻜﻮن )( rstrip
ﺘًﺎ
ﺘﻪ ﻣﺆﻗ
ﺘﻢ إزاﻟ
ﺘﻢ إزاﻟ ﺔ ﻫﺬه اﻟﻤ ﺴﺎﺣ ﺔ اﻹﺿﺎﻓﻴ ﺔ .وﻣﻊ ذﻟﻚ ،ﺗ
ﺗﺘﻐﻴﺮ favour_languageﻋﻨﺪ w ،
ﺗﻌﻤﻞ اﻟﻄﺮﻳﻘ ﺔ ﻋﲆ اﻟﻤ
ﺒﺪو ﻛﻤﺎ ﻫ ﻲ ﻋﻨﺪﻣﺎﺗﻢ إدﺧﺎﻟﻬﺎ ،
ﺒ ﺖ ﻗﻴﻤ ﺔ favour_languageﻣﺮة أﺧﺮى ،ﻳﻤﻜﻨﻚ أنﺗﺮى أن اﻟ ﺴﻠ ﺴﻠ ﺔﺗ
ﻓﻘﻂ .إذا ﻃﻠ
ﺒﻴﻀﺎء اﻟﺰاﺋﺪة x.
ﺑﻤﺎ ﻓ ﻲ ذﻟﻚ اﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﺘﺨﺪم.
ﺑ ﺔ ﻹدﺧﺎل اﻟﻤ ﺴ
ﺘﺠﺎ
ﺒﺮﻧﺎﻣﺞ أو اﺳ
ﺛﻨﺎءﺗﻨﻔﻴﺬ اﻟ
ﺘﻐﻴﺮ أ
ﺑﻬﺎ ﻗﻴﻤ ﺔ اﻟﻤﺘﻐﻴﺮ
ﺘ ﻲﻳﻤﻜﻦ أنﺗ
ﻫﺬه ﻫ ﻲ اﻟﻄﺮﻳﻘ ﺔ اﻟ
ﺒﻴﻀﺎء ﻣﻦ
ﺘﺨﺪام ﻃﺮﻳﻘ ﺔ )( lstripأو إزاﻟ ﺔ اﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﺑﺎﺳﺑﻴﻀﺎء ﻣﻦ اﻟﺠﺎﻧ ﺐ اﻷﻳ ﺴﺮ ﻣﻦ اﻟﺨﻴﻂ ﻳﻤﻜﻨﻚ أ ً
ﻳﻀﺎ إزاﻟ ﺔ ﻣ ﺴﺎﻓ ﺔ
ﺘﺨﺪام اﻟﺸﺮﻳﻂ ():
ﺑﺎﺳﺒﻴﻦ ﻣﺮة واﺣﺪة
ﻛﻼ اﻟﺠﺎﻧ
" "
)( u >>> favourite_language = python v >>> favourite_language.rstrip
ﺒﺎن"
ﺜﻌ"اﻟ
ﺒﺪاﻳ ﺔ
ﺑﻴﻀﺎء ﻓ ﻲ اﻟﺘﻮي ﻋﲆ ﻣ ﺴﺎﻓ ﺔ
ﺑﻘﻴﻤ ﺔﺗﺤﺒﺪأ
ﺜﺎل ،ﻧ
ﻓ ﻲ ﻫﺬا اﻟﻤ
ﺒﻴﻦ ﻋﻨﺪ
ﺛﻢ ﻧﺰﻳﻞ اﻟﻤ ﺴﺎﻓ ﺔ اﻟﺰاﺋﺪة ﻣﻦ اﻟﺠﺎﻧ ﺐ اﻷﻳﻤﻦ ﻋﻨﺪ v ،وﻣﻦ اﻟﺠﺎﻧ ﺐ اﻷﻳ ﺴﺮ ﻋﻨﺪ w ،وﻣﻦ ﻛﻼ اﻟﺠﺎﻧﻧﻴﻨﻎ واﻟﻨﻬﺎﻳ ﺔ ش.
ُﺴ
ﺘﺨﺪم ﺘﻌﺮف ﻋﲆ ﻣﻌﺎﻟﺠ ﺔ اﻟ ﺴﻼﺳﻞ .ﻓ ﻲ اﻟﻌﺎﻟﻢ اﻟﺤﻘﻴﻘ ﻲ ،ﺗ
ﺘﺠﺮﻳﺪ ﻫﺬه ﻓ ﻲ اﻟ
ﺑ ﺔ وﻇﺎﺋﻒ اﻟ
x.ﻳﻤﻜﻦ أنﺗ ﺴﺎﻋﺪكﺗﺠﺮ
ﺒﺮﻧﺎﻣﺞ.
ﺒﻞﺗﺨﺰﻳﻨﻬﺎ ﻓ ﻲ اﻟ
ﺘﺨﺪم ﻗ
ﺘﻨﻈﻴﻒ ﻣﺪﺧﻼ ت اﻟﻤ ﺴ
ﺘﺠﺮﻳﺪ ﻫﺬه ﻓ ﻲ أﻏﻠ ﺐ اﻷﺣﻴﺎن ﻟ
وﻇﺎﺋﻒ اﻟ
ﺒ ﺴﻴﻄ ﺔ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺘﻐﻴﺮا ت وأﻧﻮاع اﻟ
اﻟﻤ 27
Machine Translated by Google
ﺒ ﺐ أﺧﻄﺎء.
ﻳﺴ
ﺑﺎﺳﻢ apostrophe.pyﺒﺮﻧﺎﻣﺞ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ .اﺣﻔﻆ ﻫﺬا اﻟﺒﺎس اﻟﻤﻔﺮدة واﻟﻤﺰدوﺟ ﺔ
ﺘﺘﺨﺪام ﻋﻼﻣﺎ ت اﻻﻗ
إﻟﻴﻚ ﻛﻴﻔﻴ ﺔ اﺳ
ﺘﺸﻐﻴﻠﻪ:
ﺑﺛﻢ ﻗﻢ
ﺘﻨﻮع.
ﺘﻤﻌﻬﺎ اﻟﻤ
ﺜﻮن ﻫ ﻲ ﻣﺠ
ﺑﺎﻳإﺣﺪى ﻧﻘﺎط ﻗﻮة
ﺘﻨﻮع".
ﺘﻤﻌﻬﺎ اﻟﻤ
ﺜﻮن ﻫ ﻲ ﻣﺠ
ﺑﺎﻳ= "messageإﺣﺪى ﻧﻘﺎط ﻗﻮة
ﺒﺎﻋ ﺔ )رﺳﺎﻟ ﺔ(
ﻃ
ﺘﺎﻟ ﻲ:
ﺗﺞ اﻟ
ﺘﺮى اﻟﻨﺎ
ﺳ
28اﻟﻔﺼﻞ 2
Machine Translated by Google
ﺜﻮن 2
ﺑﺎﻳﺒﺎﻋ ﺔ ﻓ ﻲ
اﻟﻄ
ﺜﻮن 2.7
ﺑﻴ>>>
ﺒﻊ "!"Hello Python 2.7 world
>>>اﻃ
ﺑﻌﺎﻟﻢ !Python 2.7ﺒﺎ
ﻣﺮﺣ ً
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺒﻴﺮة
ﺑﺄﺣﺮف ﺻﻐﻴﺮة وﻛﺑﻦ
ﺒﻊ ذﻟﻚ اﻻﺳﻢ ﻟﻜﻞ ا
ﺛﻢ اﻃﺘﻐﻴﺮ ،
ﺘﺨﺰﻳﻦ اﺳﻢ اﻟﺸﺨﺺ ﻓ ﻲ ﻣ
ﺑ2-4.ﺣﺎﻻ ت اﻻﺳﻢ :ﻗﻢ
وﺣﺮف ﻋﻨﻮان.
ﺘﻐﻴﺮﻳ ﺴﻤﻰ
ﺑﻦ اﻟﺸﻬﻴﺮ ﻓ ﻲ ﻣ
ﺘﺨﺰﻳﻦ اﺳﻢ ﻛﻞ ا
ﺑﺘﻤﺮﻳﻦ 2-5 ،وﻟﻜﻦ ﻫﺬه اﻟﻤﺮة ﻗﻢ
ﺒﺎس ﻣﺸﻬﻮر 2:ﻛﺮر اﻟ
ﺘ2-6.اﻗ
ﺘﻚ.
ﺒﻊ رﺳﺎﻟ
ﺘﻐﻴﺮ ﺟﺪﻳﺪﻳ ﺴﻤﻰ message.اﻃ
ﺗﺨﺰﻳﻨﻬﺎ ﻓ ﻲ ﻣ
ﺘﻚ و
ﺘﻜﻮﻳﻦ رﺳﺎﻟ
ﺑﺛﻢ ﻗﻢ
"fittor_person".
ﺑﺪاﻳ ﺔﺒﻴﻀﺎء ﻓ ﻲ
ﺑﻌﺾ أﺣﺮف اﻟﻤ ﺴﺎﻓﺎ ت اﻟﺘﻀﻤﻴﻦ
ﺑﺘﺨﺰﻳﻦ اﺳﻢ اﻟﺸﺨﺺ ،وﻗﻢ
ﺑﺗﺠﺮﻳﺪ اﻷﺳﻤﺎء :ﻗﻢ
2-7.
ﺘﺨﺪام ﻛﻞ ﻣﺠﻤﻮﻋ ﺔ أﺣﺮف "\ t" ،و "\ n" ،ﻣﺮة واﺣﺪة ﻋﲆ اﻷﻗﻞ.
ﺘﻪ.ﺗﺄﻛﺪ ﻣﻦ اﺳ
اﻻﺳﻢ وﻧﻬﺎﻳ
ﺒ ﺴﻴﻄ ﺔ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺘﻐﻴﺮا ت وأﻧﻮاع اﻟ
اﻟﻤ 29
Machine Translated by Google
أﻋﺪاد
ﺗﺨﺰﻳﻦ
ﺘﺼﻮرا ت ،و
ﺒﻴﺎﻧﺎ ت ﻓ ﻲ اﻟ
ﺑﺎﻟﺪرﺟﺎ ت ﻓ ﻲ اﻷﻟﻌﺎ ب ،وإﻋﺎدة إرﺳﺎل اﻟﺘﻔﺎظ
ﺒﺮﻣﺠ ﺔ ﻟﻼﺣ
ﺜﻴ ﺮًا ﻓ ﻲ اﻟ ُﺴ
ﺘﺨﺪم اﻷرﻗﺎم ﻛ ﺗ
ﺘﻤﺎدًا ﻋﲆ ﻛﻴﻔﻴ ﺔ
ﺘﻠﻔ ﺔ ،اﻋ
ﺑﻌﺪة ﻃﺮق ﻣﺨﺜﻮن ﻣﻊ اﻷرﻗﺎم
ﺑﺎﻳﺘﻌﺎﻣﻞ
ﺒﻴﻘﺎ ت اﻟﻮﻳ ﺐ ،وﻣﺎ إﱃ ذﻟﻚ.ﺗ
اﻟﻤﻌﻠﻮﻣﺎ ت ﻓ ﻲﺗﻄ
ﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ. ﺘﺨﺪاﻣﻬﺎ .دﻋﻨﺎ أوﻻ ً ﻧﻠﻘ ﻲ ﻧﻈﺮة ﻋﲆ ﻛﻴﻔﻴ ﺔ إدارة Pythonﻟﻸﻋﺪاد اﻟﺼﺤﻴﺤ ﺔ ،ﻷﻧﻬﺎ أ
ﺑ ﺴﻂ ﻃﺮﻳﻘ ﺔ ﻟﻠ اﺳ
ﻋﺪد ﺻﺤﻴﺢ
ﺜﻮن.
ﺑﺎﻳﻳﻤﻜﻨﻚ إﺿﺎﻓ ﺔ )(+وﻃﺮح )(-وﺿﺮ ب )*(وﻗ ﺴﻤ ﺔ )(/أﻋﺪاد ﺻﺤﻴﺤ ﺔ ﻓ ﻲ
>>> 2 + 3
5 >>> 3 - 2
>>> 2 * 6
1 3
>>> 3/2
1.5
** 3
>>> 2
9 >>> 3
** 3
>>> 10 ** 6
27
1000000
ﺒﻴﺮ واﺣﺪ.ﻳﻤﻜﻨﻚ أ ً
ﻳﻀﺎ ﺘﻌﺪدة ﻓ ﻲﺗﻌ
ﺘﺨﺪام ﻋﻤﻠﻴﺎ ت ﻣ ﺗﻴ ﺐ اﻟﻌﻤﻠﻴﺎ ت أ ً
ﻳﻀﺎ ،ﻟﺬاﻳﻤﻜﻨﻚ اﺳ ﺗﺮﺗﺪﻋﻢ Python
ﺒﻴﻞ
ﺗﻴ ﺐ اﻟﺬيﺗﺤﺪده .ﻋﲆﺳ
ﺘﺮﺑﺎﻟﺒﻴﺮك
ﺘﻤﻜﻦ Pythonﻣﻦﺗﻘﻴﻴﻢﺗﻌ
ﺘﻰﺗ
ﺗﻴ ﺐ اﻟﻌﻤﻠﻴﺎ ت ﺣ
ﺘﻌﺪﻳﻞﺗﺮ
ﺘﺨﺪام اﻷﻗﻮاس ﻟ
اﺳ
ﺜﺎل:
اﻟﻤ
>>> 2 + 3 * 4
14
>>> (2 + 3) * 4
20
ﺘﺸﺎف اﻟﻌﻤﻠﻴﺎ ت
ﺒ ﺴﺎﻃ ﺔ ﻋﲆ اﻛ
ﺑﺒﻴﺮا ت ؛ إﻧﻪﻳ ﺴﺎﻋﺪك
ﺘﻌﺜﻮن ﻟﻠ
ﺑﺎﻳﺜﻠ ﺔ ﻋﲆ ﻛﻴﻔﻴ ﺔﺗﻘﻴﻴﻢ
ﺒﺎﻋﺪ ﻓ ﻲ ﻫﺬه اﻷﻣ
ﺘﺛﺮ اﻟ
ﻻﻳﺆ
ﺒﺮ ﻋﻨﺪ ﻗﺮاءة اﻟﻜﻮد.
ﺑ ﺴﺮﻋ ﺔ أﻛﺘ ﻲ ﻟﻬﺎ اﻷوﻟﻮﻳ ﺔ
اﻟ
ﻳﻄﻔﻮ
ﺒﺮﻣﺠ ﺔ ،و ﻫﻮﻳﺸﻴﺮ إﱃ ﺣﻘﻴﻘ ﺔ
ﺘﺨﺪم ﻫﺬا اﻟﻤﺼﻄﻠﺢ ﻓ ﻲ ﻣﻌﻈﻢ ﻟﻐﺎ ت اﻟ
ﺋﻤﺎ .ﻳ ﺴ
ﺑﻌﻼﻣ ﺔ ﻋﺸﺮﻳ ﺔ ﻋﺎ ًﺘﺪﻋ ﻲ Pythonأي رﻗﻢ
ﺗﺴ
ﺑﺮﻣﺠ ﺔأن اﻟﻔﺎﺻﻠ ﺔ اﻟﻌﺸﺮﻳ ﺔﻳﻤﻜﻦ أنﺗﻈﻬﺮ ﻓ ﻲ أي ﻣﻮﺿﻊ ﻓ ﻲ اﻟﺮﻗﻢ.ﻳﺠ ﺐ ﻋﲆ ﻛﻞ ﻟﻐ ﺔ
ﺜﺎﻧ ﻲ
30اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
0.4
ﺜﺎل ،
ﺘﺨﺪﻣﻬﺎ .ﻓ ﻲ ﻫﺬا اﻟﻤ
ﺘ ﻲﺗ ﺴ
ﺘﻌﺮف ﻋﲆ ﻧﻮع اﻟﻤﻌﻠﻮﻣﺎ ت اﻟ
ﻫﺬا ﻫﻮ ﻧﻮع اﻟﺨﻄﺄ .ﻫﺬاﻳﻌﻨ ﻲ أن Pythonﻻﻳﻤﻜﻨﻬﺎ اﻟ
ﺘﺄﻛﺪًا ﻣﻦ ﻛﻴﻔﻴ ﺔﺗﻔ ﺴﻴﺮ ذﻟﻚ
ﺘﻐﻴ ﺮًا ﻗﺎد ًرا ﻋﲆ ﻗﻴﻤ ﺔ ﻋﺪد ﺻﺤﻴﺢ (int) ،ﻟﻜﻨﻪ ﻟﻴ ﺲ ﻣ
ﺘﺨﺪم ﻣ
ﺗﺮى Pythonأﻧﻚﺗ ﺴ
ﺒ ﺴﻴﻄ ﺔ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺘﻐﻴﺮا ت وأﻧﻮاع اﻟ
اﻟﻤ 31
Machine Translated by Google
اﻟﻌﻤﺮ = 23
ﺳﻌﻴﺪ"ﻣﻴﻼد "!rd
"+"messageﻋﻴﺪ
)+ strاﻟﻌﻤﺮ(
=
ﺗﻌﺮف Pythonاﻵن أﻧﻚﺗﺮﻳﺪﺗﺤﻮﻳﻞ اﻟﻘﻴﻤ ﺔ اﻟﻌﺪدﻳ ﺔ 23إﱃﺳﻠ ﺴﻠ ﺔ وﻋﺮض اﻟﺤﺮﻓﻴﻦ 2و 3ﻛﺠﺰء ﻣﻦ رﺳﺎﻟ ﺔ ﻋﻴﺪ
اﻟﻤﻴﻼد.
ﺘﻮﻗﻌﻬﺎ ،دون أي أﺧﻄﺎء:
ﺘ ﻲ ﻛﻨ ﺖﺗ
اﻵنﺗﺤﺼﻞ ﻋﲆ اﻟﺮﺳﺎﻟ ﺔ اﻟ
ﺜﻮن 2
ﺑﺎﻳاﻷﻋﺪاد اﻟﺼﺤﻴﺤ ﺔ ﻓ ﻲ
ﺜﻮن 2.7
ﺑﻴ>>>
>>> 3/2
1
>>> 3/2
1
>>> 3.0 / 2
1.5 >>> 3 / 2.0
1.5
ﺘﺨﺪام
ﺘﺎدوا ﻋﲆ Python 3ﻓ ﻲ اﺳ
ﺒﺪأ اﻷﺷﺨﺎص اﻟﺬﻳﻦ اﻋ
ﺒﺎك ﻋﻨﺪﻣﺎﻳ
ﺗﺘﻘ ﺴﻴﻢ ﻫﺬا ﻣﺼﺪ ًرا ﺷﺎﺋﻌً ﺎ ﻟﻼر
ﺒﺮﺳﻠﻮك اﻟ
ﺘﻳﻌ
ﺘﺮس ﻣﻦ اﻟ ﺴﻠﻮك ﻏﻴﺮ
ﺑﻴﻦ اﻷﻋﺪاد اﻟﺼﺤﻴﺤ ﺔ واﻟﻌﺎﺋﻤ ﺔ ،ﻓﺎﺣﺘﺨﺪم أوﺗﻨﺸ ﺊ رﻣ ًﺰاﻳﻤﺰج
Python 2 ،أو اﻟﻌﻜ ﺲ .إذا ﻛﻨ ﺖﺗ ﺴ
ﺘﻈﻢ.
اﻟﻤﻨ
ﺜﺎﻧ ﻲ
32اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺗﺄﻛﺪ ﻣﻦ إرﻓﺎق
ﺘﺞ ﻋﻨﻬﺎ ﻛﻞ ﻣﻨﻬﺎ ﻓ ﻲ اﻟﺮﻗﻢ 8.
ﺘ ﻲﻳﻨ
ﺘ ﺐ ﻋﻤﻠﻴﺎ ت اﻟﺠﻤﻊ واﻟﻄﺮح واﻟﻀﺮ ب واﻟﻘ ﺴﻤ ﺔ اﻟ
ﺛﻤﺎﻧﻴ ﺔ :اﻛ2-8.رﻗﻢ
ﺘﺎﻟ ﻲ:
ﺒﺪو ﻛﺎﻟ
ﺑﻌ ﺔ أﺳﻄﺮﺗ
ﺘﺎﺋﺞ.ﻳﺠ ﺐ ﻋﻠﻴﻚ إﻧﺸﺎء أر
ﺒﺎﻋ ﺔ ﻟﺮؤﻳ ﺔ اﻟﻨ
ﺒﺎرا ت اﻟﻄ
ﺗﻚ ﻓ ﻲ ﻋ
ﻋﻤﻠﻴﺎ
ﺗﻌﻠﻴﻘﺎ ت
ﺒﺮﻣﺠ ﺔ.
ﺘﻌﻠﻴﻘﺎ ت ﻫ ﻲ ﻣﻴﺰة ﻣﻔﻴﺪة ﻟﻠﻐﺎﻳ ﺔ ﻓ ﻲ ﻣﻌﻈﻢ ﻟﻐﺎ ت اﻟ
اﻟ
ﺜﺮﺗﻌﻘﻴﺪًا ،ﻳﺠ ﺐ ﻋﻠﻴﻚ إﺿﺎﻓ ﺔ
ﺑﺮاﻣﺠﻚ أﻃﻮل وأﻛﺒﺢ
ﺘﻰ اﻵن ﻫﻮ ﻛﻮد Python.ﻋﻨﺪﻣﺎﺗﺼ
ﺑﺮاﻣﺠﻚ ﺣﺘﻪ ﻓ ﻲ
ﺒﺘﻛﻞ ﻣﺎ ﻛ
ﺑﺎﻟﻠﻐ ﺔ اﻹﻧﺠﻠﻴﺰﻳ ﺔﺑ ﺔ ﻣﻼﺣﻈﺎ ت
ﺘﺎ
ﺘﻌﻠﻴﻖ ﻛ
ﺘﻴﺢ ﻟﻚ اﻟ
ﺘ ﻲﺗﺤﻠﻬﺎ.ﻳ
ﺑﺮاﻣﺠﻚﺗﺼﻒ ﻧﻬﺠﻚ اﻟﻌﺎمﺗﺠﺎه اﻟﻤﺸﻜﻠ ﺔ اﻟﻣﻼﺣﻈﺎ ت داﺧﻞ
ﺑﺮاﻣﺠﻚ.ﺿﻤﻦ
ﺘﻌﻠﻴﻘﺎ ت؟
ﺘ ﺐ اﻟ
ﻛﻴﻒﺗﻜ
ﺘﻌﻠﻴﻤﺎ ت
ﺋ ﺔ ﻓ ﻲ اﻟ
ﺘﺠﺰ
ﺒﻊ ﻋﻼﻣ ﺔ اﻟ
ﺘﺘﺮﺟﻢ Pythonأي ﺷ ﻲءﻳ
ﺘﺠﺎ ﻫﻞ ﻣ
ﺋ ﺔ )(#إﱃﺗﻌﻠﻴﻖ.ﻳ
ﺘﺠﺰ
ﺗﺸﻴﺮ ﻋﻼﻣ ﺔ اﻟ
ﻓ ﻲ Python ،
ﺜﺎل:
ﺒﻴﻞ اﻟﻤ
ﺑﻚ .ﻋﲆﺳﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
اﻟ
ﺒﺎ ﻟﻠﺠﻤﻴﻊ.
comment.py #ﻗﻞ ﻣﺮﺣ
ﺜﻮن!"(
ﺑﺎﻳﺑﺄ ﻫﻞﺒﺎ
ﺒﺎﻋ ﺔ )"ﻣﺮﺣ ً
ﻃ
ﺜﺎﻧ ﻲ.
ﺗﻨﻔﺬ اﻟ ﺴﻄﺮ اﻟ
ﺜﻮن اﻟ ﺴﻄﺮ اﻷول و
ﺑﺎﻳﺘﺠﺎ ﻫﻞ
ﺗ
ﺜﻮن!
ﺑﺎﻳﺒﺎ ﺷﻌ ﺐ
ﻣﺮﺣ
ﺒﻬﺎ؟
ﺘﺘ ﻲﻳﺠ ﺐ أنﺗﻜ
ﺘﻌﻠﻴﻘﺎ ت اﻟ
ﻣﺎ ﻧﻮع اﻟ
ﺒ ﺴﻴﻄ ﺔ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺘﻐﻴﺮا ت وأﻧﻮاع اﻟ
اﻟﻤ 33
Machine Translated by Google
ﺘ ﺐﺗﻌﻠﻴﻘﺎ ت ذا ت ﻣﻐﺰى.
ﺒﺮﻣﺠﻴﻦ آﺧﺮﻳﻦ ،ﻓﻴﺠ ﺐ أنﺗﻜ
ﺘﻌﺎون ﻣﻊ ﻣ ﺒﺮﻣﺠًﺎ ﻣﺤ ً
ﺘﺮﻓﺎ أوﺗ ﺒﺢ ﻣ
إذا ﻛﻨ ﺖﺗﺮﻳﺪ أنﺗﺼ
ﺑﺸﻜﻞﺗﻌﺎوﻧ ﻲ ،ﺳﻮاء ﻣﻦ ﺧﻼل ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻟﻤﻮﻇﻔﻴﻦ ﻓ ﻲ ﺷﺮﻛ ﺔ واﺣﺪة أو ﻣﺠﻤﻮﻋ ﺔ ﻣﻦﺒﺮاﻣﺞ
ﺑ ﺔ ﻣﻌﻈﻢ اﻟ
ﺘﺎ
ﺘﻢ ﻛ
اﻟﻴﻮم ،ﺗ
ﺘﻮح اﻟﻤﺼﺪر.
اﻷﺷﺨﺎصﻳﻌﻤﻠﻮن ﻣﻌً ﺎ ﻓ ﻲ ﻣﺸﺮوع ﻣﻔ
ﺘﻮﺻﻞ إﱃ
ﺒﻞ اﻟ ﺘ ﺐﺗﻌﻠﻴ ًﻘﺎ ،اﺳﺄل ﻧﻔ ﺴﻚ ﻋﻤﺎ إذا ﻛﺎن ﻋﻠﻴﻚ اﻟ
ﺘﻔﻜﻴﺮ ﻓ ﻲ ﻋﺪة ﻃﺮق ﻗ ﺘﻜﻋﻨﺪﻣﺎﺗﻘﺮر ﻣﺎ إذا ﻛﻨ ﺖﺳ
ﺘ ﺐﺗﻌﻠﻴ ًﻘﺎ ﺣﻮل اﻟﺤﻞ اﻟﺬيﺗﻘﺪﻣﻪ.
ﻃﺮﻳﻘ ﺔ ﻣﻌﻘﻮﻟ ﺔ ﻹﻧﺠﺎز ﺷ ﻲء ﻣﺎ ؛ إذا ﻛﺎن اﻷﻣﺮ ﻛﺬﻟﻚ ،ﻓﺎﻛ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺜﻮن
ﺑﺎﻳزن
ﺘﻔﺎﻋﻠﻴ ﺔ ﻓ ﻲ اﻷﻳﺎم اﻷوﱃ
ﺘﺮﻧ ﺖ .ﻛﺎﻧ ﺖ ﻣﻌﻈﻢ ﻣﻮاﻗﻊ اﻟﻮﻳ ﺐ اﻟ
ﺒﺮﻣﺠ ﺔ Perlﻫ ﻲ اﻟﺪﻋﺎﻣ ﺔ اﻷﺳﺎﺳﻴ ﺔ ﻟﻺﻧ
ﺘﺮة ﻃﻮﻳﻠ ﺔ ،ﻛﺎﻧ ﺖ ﻟﻐ ﺔ اﻟ
ﻟﻔ
ﺑﺬﻟﻚ ".أﺣ ﺐ اﻟﻨﺎس ﻫﺬهﺜﺮ ﻣﻦ ﻃﺮﻳﻘ ﺔ ﻟﻠﻘﻴﺎم
ﺘﻤﻊ Perlﻓ ﻲ ذﻟﻚ اﻟﻮﻗ ﺖ " ،ﻫﻨﺎك أﻛ
ﺑﻨﺼﻮص Perl.ﻛﺎن ﺷﻌﺎر ﻣﺠﻣﺪﻋﻮﻣ ﺔ
ﺑﻌﺪة ﻃﺮق .ﻛﺎن ﻫﺬاﺑ ﺔ ﻓ ﻲ اﻟﻠﻐ ﺔ ﺟﻌﻠ ﺖ ﻣﻦ اﻟﻤﻤﻜﻦ ﺣﻞ ﻣﻌﻈﻢ اﻟﻤﺸﻜﻼ ت
ﺘﻮﺘﺮة ﻣﻦ اﻟﻮﻗ ﺖ ،ﻷن اﻟﻤﺮوﻧ ﺔ اﻟﻤﻜ
اﻟﻌﻘﻠﻴ ﺔ ﻟﻔ
ﺘﺮﻛﻴﺰ ﻋﲆ اﻟﻤﺮوﻧ ﺔ ﺟﻌﻞ ﻣﻦ اﻟﺼﻌ ﺐ ﺒﻮﻻ ً أ
ﺛﻨﺎء اﻟﻌﻤﻞ ﻓ ﻲ ﻣﺸﺎرﻳﻌﻚ اﻟﺨﺎﺻ ﺔ ،وﻟﻜﻦ ﻓ ﻲ اﻟﻨﻬﺎﻳ ﺔ أدرك اﻟﻨﺎس أن اﻟ اﻟﻨﻬﺞ ﻣﻘ
ﺘﻬﻠﻚ ﻟﻠﻮﻗ ﺖ ﻣﺮاﺟﻌ ﺔ
ﺘﺮا ت ﻃﻮﻳﻠ ﺔ ﻣﻦ اﻟﺰﻣﻦ .ﻛﺎن ﻣﻦ اﻟﺼﻌ ﺐ ،واﻟﻤﻤﻞ ،واﻟﻤ ﺴ
ﺒﻴﺮة ﻋﲆ ﻣﺪى ﻓ
اﻟﺤﻔﺎظ ﻋﲆ اﻟﻤﺸﺎرﻳﻊ اﻟﻜ
اﻟﻜﻮد وﻣﺤﺎوﻟ ﺔ ﻣﻌﺮﻓ ﺔ ﻣﺎ ﻛﺎنﻳﻔﻜﺮ ﻓﻴﻪ ﺷﺨﺺ آﺧﺮ ﻋﻨﺪﻣﺎ ﻛﺎنﻳﺤﻞ ﻣﺸﻜﻠ ﺔ ﻣﻌﻘﺪة.
34اﻟﻔﺼﻞ 2
Machine Translated by Google
ﺘﺪئ.
ﺒﺜﻮن ﻣ
ﺑﺎﻳﺒﺮﻣﺞ
ﺒ ﺔ ﻟﻚ ﻛﻤ
ﺑﺎﻟﻨ ﺴﺘﻬﺎ
ﺒ ﺐ أ ﻫﻤﻴ
ﺗﻚ ﻋﲆ ﻓﻬﻢﺳ
ﺑﻌﺾ اﻷﺳﻄﺮ ﻟﻤ ﺴﺎﻋﺪ "Pythonﻫﻨﺎ ،ﻟﻜﻨﻨ ﻲﺳﺄﺷﺎرك
ﺘﻴﺮاد ﻫﺬا
>>>اﺳ
ﺘﺮز
ﺑﻴﺜﻮن ،ﺗﻴﻢ
ﺑﺎﻳزﻳﻦ
ﺒﻴﺢ.
اﻟﺠﻤﻴﻞ ﺧﻴﺮ ﻣﻦ اﻟﻘ
ﺘﺮم
ﺒﺮﻣﺠ ﺔ ،ﻳﺤﻞ اﻟﻨﺎس اﻟﻤﺸﺎﻛﻞ .ﻟﻘﺪ اﺣ
ﺜﻮن ﻓﻜﺮة أن اﻟﺸﻔﺮةﻳﻤﻜﻦ أنﺗﻜﻮن ﺟﻤﻴﻠ ﺔ وأﻧﻴﻘ ﺔ .ﻓ ﻲ اﻟ
ﺑﺎﻳﺒﺮﻣﺠﻮ
ﺒﻨﻰ ﻣ
ﺘﻳ
ﺘﺨﺪﻣﻬﺎ
ﺗﺴﺘﻌﻠﻢ اﻟﻤﺰﻳﺪ ﻋﻦ Pythonو
ﺘﻰ اﻟﺠﻤﻴﻠ ﺔ ﻟﻠﻤﺸﻜﻼ ت .ﻋﻨﺪﻣﺎﺗ
ﺋﻤﺎ اﻟﺤﻠﻮل اﻟﻤﺼﻤﻤ ﺔ ﺟﻴﺪًا واﻟﻔﻌﺎﻟ ﺔ وﺣ
ﺒﺮﻣﺠﻮن دا ً
اﻟﻤ
ﺘﻔﻚ ذا تﻳﻮم وﻳﻘﻮل " ،واو ،ﻫﺬا رﻣﺰ ﺟﻤﻴﻞ!"
ﺒﺮﻣﺠﻴ ﺔ ،ﻗﺪﻳﻨﻈﺮ ﺷﺨﺺ ﻣﺎ ﻓﻮق ﻛ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑ ﺔ اﻟﻤﺰﻳﺪ ﻣﻦ اﻟ
ﺘﺎ
ﻟﻜ
ﺘﺨﺪم
ﺘﺤﻘﻴﻖ .ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔ ،اﺳ
ﺑﻞ ﻟﻠ اﻟﺤﻴﺎة اﻟﻮاﻗﻌﻴ ﺔ ﻓﻮﺿﻮﻳ ﺔ ،وأﺣﻴﺎﻧًﺎﻳﻜﻮن اﻟﺤﻞ اﻟ
ﺒ ﺴﻴﻂ ﻟﻤﺸﻜﻠ ﺔ ﻣﺎ ﻏﻴﺮ ﻗﺎ
ﺑ ﺴﻂ ﺣﻞﻳﻌﻤﻞ.
أ
ﺑﺬﻟﻚ -وﻳﻔﻀﻞ أنﺗﻜﻮن واﺣﺪة ﻓﻘﻂ.ﻳﺠ ﺐ أنﺗﻜﻮن ﻫﻨﺎك ﻃﺮﻳﻘ ﺔ واﺣﺪة واﺿﺤ ﺔ ﻟﻠﻘﻴﺎم
ﺘﻮاﻓﻘ ﺔ إﱃ ﺣﺪ ﻣﺎ.
ﺘﻮﺻﻠﻮا إﱃ ﺣﻠﻮل ﻣ
ﺒﺮﻣﺠ ﻲ Pythonﺣﻞ ﻧﻔ ﺲ اﻟﻤﺸﻜﻠ ﺔ ،ﻓﻴﺠ ﺐ أنﻳ
ﺛﻨﻴﻦ ﻣﻦ ﻣ
إذاُﻃﻠ ﺐ ﻣﻦ ا
ﺘﺨﺪام
ﺘﻜﻮن ﻣﻦ اﺳ
ﺒﺮﻣﺠ ﺔ اﻟﻠﻐﻮﻳ ﺔﺗ
ﺜﻴﺮ ﻣﻦ اﻟ
ﺒﺮﻣﺠ ﺔ .ﻋﲆ اﻟﻌﻜ ﺲﺗﻤﺎﻣﺎ! ﻟﻜﻦ اﻟﻜ
ﺑﺪاع ﻓ ﻲ اﻟ
ﻫﺬا ﻻﻳﻌﻨ ﻲ أﻧﻪ ﻻﻳﻮﺟﺪ ﻣﺠﺎل ﻟﻺ
ﺑﺮاﻣﺠﻚﺑﺪاﻋً ﺎ.ﻳﺠ ﺐ أنﺗﻜﻮن ﺻﻮاﻣﻴﻞ وﻣ ﺴﺎﻣﻴﺮ
ﺜﺮ إ
ﺒﺮ وأﻛ
ﺒ ﺴﻴﻄ ﺔ ﺿﻤﻦ ﻣﺸﺮوع أﻛ
ﺘﺮﻛ ﺔ ﻓ ﻲ اﻟﻤﻮاﻗﻒ اﻟ
ﻣﻨﺎ ﻫﺞ ﺻﻐﻴﺮة ﻣﺸ
ﺜﻮن اﻵﺧﺮﻳﻦ.
ﺑﺎﻳﺒﺮﻣﺠ ﻲ
ﻣﻨﻄﻘﻴ ﺔ ﻟﻤ
ﺒ ﺴﻴﻄ ﺔ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺘﻐﻴﺮا ت وأﻧﻮاع اﻟ
اﻟﻤ 35
Machine Translated by Google
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﻣﻠﺨﺺ
ﺘﻐﻴﺮا ت اﻟﻮﺻﻔﻴ ﺔ وﻛﻴﻔﻴ ﺔ ﺣﻞ أﺧﻄﺎء
ﺘﺨﺪام أﺳﻤﺎء اﻟﻤ
ﺘﻐﻴﺮا ت .ﻟﻘﺪﺗﻌﻠﻤ ﺖ اﺳ
ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞﺗﻌﻠﻤ ﺖ اﻟﻌﻤﻞ ﻣﻊ اﻟﻤ
ﺘﺨﺪام اﻷﺣﺮف
ﺑﺎﺳﺒﻴ ﺔ ﻋﻨﺪ ﻇﻬﻮر ﻫﺎ .ﻟﻘﺪﺗﻌﻠﻤ ﺖ ﻣﺎ ﻫ ﻲ اﻟ ﺴﻼﺳﻞ وﻛﻴﻔﻴ ﺔ ﻋﺮض اﻟ ﺴﻼﺳﻞ
اﻷﺳﻤﺎء وأﺧﻄﺎء اﻟﻤﺰاﻣﻨ ﺔ اﻟﻀﺮﻳ
ﺗﻌﻠﻤ ﺖ إزاﻟ ﺔ اﻟﻤ ﺴﺎﻓﺎ ت
ﺑﺪﻗ ﺔ ،وﺘﻨﻈﻴﻢ اﻹﺧﺮاج
ﺒﻴﻀﺎء ﻟ
ﺘﺨﺪام اﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﺑﺪأ ت ﻓ ﻲ اﺳﺒﻴﺮة وﺣﺮف اﻟﻌﻨﻮان .ﻟﻘﺪ
اﻟﺼﻐﻴﺮة واﻟﻜ
ﺑﻌﺾﺑﺪأ ت اﻟﻌﻤﻞ ﻣﻊ اﻷﻋﺪاد اﻟﺼﺤﻴﺤ ﺔ واﻟﻌﺎﺋﻤ ﺔ ،وﻗﺮأ ت ﻋﻦﺘﻠﻔ ﺔ ﻣﻦ اﻟ ﺴﻠ ﺴﻠ ﺔ .ﻟﻘﺪ
ﺒﻴﻀﺎء ﻏﻴﺮ اﻟﻀﺮورﻳ ﺔ ﻣﻦ أﺟﺰاء ﻣﺨ
اﻟ
ﺑ ﺔﺗﻌﻠﻴﻘﺎ تﺗﻮﺿﻴﺤﻴ ﺔ
ﺘﺎ ﺒﻴﺎﻧﺎ ت اﻟﺮﻗﻤﻴ ﺔ .ﻟﻘﺪﺗﻌﻠﻤ ﺖ أ ً
ﻳﻀﺎ ﻛ ﺘﻌﺎﻣﻞ ﻣﻊ اﻟ
ﺒﺎه إﻟﻴﻪ ﻋﻨﺪ اﻟ
ﺘﺘﻮﻗﻊ اﻟﺬيﻳﺠ ﺐ اﻻﻧ
اﻟ ﺴﻠﻮك ﻏﻴﺮ اﻟﻤ
ﺗﻚ ﻗﺪر
ﺑ ﺴﻂ ﺷﻔﺮ
ﺑﻚ ﻟﻚ وﻟﻶﺧﺮﻳﻦ .أﺧﻴ ﺮًا ،ﻗﺮأ ت ﻋﻦ ﻓﻠ ﺴﻔ ﺔ اﻟﺤﻔﺎظ ﻋﲆ أﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘ ﺴﻬﻴﻞ ﻗﺮاءة اﻟ
ﻟ
اﻹﻣﻜﺎن ،ﻛﻠﻤﺎ أﻣﻜﻦ ذﻟﻚ.
ﺘﻐﻴﺮا ت
ﺗﺨﺰﻳﻦ ﻣﺠﻤﻮﻋﺎ ت اﻟﻤﻌﻠﻮﻣﺎ ت ﻓ ﻲ ﻣ
ﺘﻌﻠﻢ ﻓ ﻲ اﻟﻔﺼﻞ 3
ﺘﺳ
ﺑﺄي ﻣﻌﻠﻮﻣﺎ ت ﻓ ﻲﺗﻠﻚ اﻟﻘﺎﺋﻤ ﺔ.ﺘﻼﻋ ﺐ
ﺘﻌﻠﻢ ﻛﻴﻔﻴ ﺔ اﻟﻌﻤﻞ ﻣﻦ ﺧﻼل ﻗﺎﺋﻤ ﺔ ،واﻟ
ﺘﻗﻮاﺋﻢﺗ ﺴﻤﻰ .ﺳ
36اﻟﻔﺼﻞ 2
Machine Translated by Google
ﻣﺠﻤﻮﻋﺎ ت ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت ﻓ ﻲ ﻣﻜﺎن واﺣﺪ ،ﺳﻮاء ﻛﺎن ﻟﺪﻳﻚ ﻋﺪد ﻗﻠﻴﻞ ﻣﻦ
ﺘ ﻲﻳﻤﻜﻦ
اﻟﻌﻨﺎﺻﺮ أو ﻣﻼﻳﻴﻦ اﻟﻌﻨﺎﺻﺮ .اﻟﻘﻮاﺋﻢ ﻫ ﻲ واﺣﺪة ﻣﻦ أﻗﻮى ﻣﻴﺰا ت Pythonاﻟ
ﺑﻂ ﻣﻌً ﺎ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻤﻔﺎ ﻫﻴﻢ اﻟﻤﻬﻤ ﺔ
ﺒﺮﻣﺠﻴﻦ اﻟﺠﺪد ،و ﻫ ﻲﺗﺮ
ﺑ ﺴﻬﻮﻟ ﺔ ﻟﻠﻤاﻟﻮﺻﻮل إﻟﻴﻬﺎ
ﺒﺮﻣﺠ ﺔ.
ﻓ ﻲ اﻟ
ﺜﻴﻠﻬﺎ ﻟـ
ﺗﻤﺘﻌﻴﺪ Python
ﺒﺎﻋ ﺔ ﻗﺎﺋﻤ ﺔ ،ﻓ ﺴ
ﺒ ﺖ ﻣﻦ Pythonﻃ
إذا ﻃﻠ
ﺑﻌ ﺔ:
ﺑﻤﺎ ﻓ ﻲ ذﻟﻚ اﻷﻗﻮاس اﻟﻤﺮاﻟﻘﺎﺋﻤ ﺔ ،
ﺘﻌﻠﻢ ﻛﻴﻒ
ﺘﺨﺪﻣﻮن ،ﻓﻠﻨ
ﺗﺞ اﻟﺬيﺗﺮﻳﺪ أنﻳﺮاه اﻟﻤ ﺴ
ﻧﻈ ﺮًاﻷن ﻫﺬا ﻟﻴ ﺲ اﻟﻨﺎ
ﻟﻠﻮﺻﻮل إﱃ اﻟﻌﻨﺎﺻﺮ اﻟﻔﺮدﻳ ﺔ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ.
ﺑﻌ ﺔ.
ﺑﺄﻗﻮاس ﻣﺮﺑﻔﻬﺮس اﻟﻌﻨﺼﺮ اﻟﻤﺤﺎطﺒﻮﻋً ﺎ
ﺘﺘ ﺐ اﺳﻢ اﻟﻘﺎﺋﻤ ﺔ ﻣ
ﻟﻠﻮﺻﻮل إﱃ ﻋﻨﺼﺮ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ ،اﻛ
ﺑﻌ ﺔ أو ﻋﻼﻣﺎ ت
ﺑﺪون أﻗﻮاس ﻣﺮُﺮﺟﻊ Pythonﻫﺬا اﻟﻌﻨﺼﺮ ﻓﻘﻂ
ﺑﻨﺎء اﻟﺠﻤﻠ ﺔ ﻟﻬﺬا ﻓ ﻲ u.ﻋﻨﺪﻣﺎ ﻧﻄﻠ ﺐ ﻋﻨﺼ ﺮًا واﺣﺪًا ﻣﻦ اﻟﻘﺎﺋﻤ ﺔ ،ﺗﻳﻈﻬﺮ
ﺒﺎس:
ﺘاﻗ
رﺣﻠ ﺔ
ﺗﺮﻳﻚ"
ﺜﺎل ،ﻳﻤﻜﻨﻚﺗﻨ ﺴﻴﻖ اﻟﻌﻨﺼﺮ "
ﺒﻴﻞ اﻟﻤ
ﺘﺨﺪام ﻃﺮق اﻟ ﺴﻠ ﺴﻠ ﺔ ﻣﻦ اﻟﻔﺼﻞ 2ﻋﲆ أي ﻋﻨﺼﺮ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ .ﻋﲆﺳ ﻳﻤﻜﻨﻚ أ ً
ﻳﻀﺎ اﺳ
ﺒﻴﺮة.
ﺑﺄﺣﺮف ﻛ
ﺑ ﺔ ""Trek
ﺘﺎ
ﺜﻨﺎء ﻛ
ﺘﺑﺎﺳﺑﻖ
ﺜﺎل اﻟ ﺴﺎ
ﺜﻞ اﻟﻤ
ﺜﺎل ﻧﻔ ﺲ اﻹﺧﺮاج ﻣ
ﺘﺞ ﻫﺬا اﻟﻤ
ﻳﻨ
ﺜﺎﻟ ﺚ
38اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺒﺮ Pythonأن اﻟﻌﻨﺼﺮ اﻷول ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔﻳﻜﻮن ﻓ ﻲ اﻟﻤﻮﺿﻊ 0 ،وﻟﻴ ﺲ اﻟﻤﻮﺿﻊ 1.
ﺘﺗﻌ
ﺘﻠﻘﻰ
ﺘﻮى أدﻧﻰ .إذا ﻛﻨ ﺖﺗ
ﺑﻜﻴﻔﻴ ﺔﺗﻨﻔﻴﺬ ﻋﻤﻠﻴﺎ ت اﻟﻘﺎﺋﻤ ﺔ ﻋﲆ ﻣ ﺴﺘﻌﻠﻖ
ﺒ ﺐﻳ
ﺒﺮﻣﺠ ﺔ ،واﻟ ﺴ
ﺒﻖ ﻋﲆ ﻣﻌﻈﻢ ﻟﻐﺎ ت اﻟ
ﻫﺬاﻳﻨﻄ
ﺑﻌﻤﻞ واﺣﺪﺗﻠﻮ اﻵﺧﺮﺘﻮﻗﻌ ﺔ ،ﻓﺤﺪد ﻣﺎ إذا ﻛﻨ ﺖﺗﻘﻮم
ﺘﺎﺋﺞ ﻏﻴﺮ ﻣ
ﻧ
ﺧﻄﺄ.
ﺒ ﺴﻴﻂ
ﺘﺨﺪام ﻫﺬا اﻟﻌﺪ اﻟ
ﺑﺎﺳ
ﺜﺎﻧ ﻲ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ ﻋﲆ ﻓﻬﺮس 1.
ﺘﻮي اﻟﻌﻨﺼﺮ اﻟ
ﻳﺤ
ﺒﻴﻞ
اﻟﻨﻈﺎم ،ﻳﻤﻜﻨﻚ اﻟﺤﺼﻮل ﻋﲆ أي ﻋﻨﺼﺮﺗﺮﻳﺪه ﻣﻦ اﻟﻘﺎﺋﻤ ﺔ ﻋﻦ ﻃﺮﻳﻖ ﻃﺮح ﻋﻨﺼﺮ ﻣﻦ ﻣﻮﻗﻌﻪ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ .ﻋﲆﺳ
ﺑﻊ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ ،ﻳﻤﻜﻨﻚ ﻃﻠ ﺐ اﻟﻌﻨﺼﺮ ﻓ ﻲ اﻟﻔﻬﺮس 3.
ﺜﺎل ،ﻟﻠﻮﺻﻮل إﱃ اﻟﻌﻨﺼﺮ اﻟﺮا
اﻟﻤ
ﻛﺎﻧﻮﻧﺪﻳﻞ
ﺘﺨﺼﺺ
ﻣ
ﻟﻐ ﺔ Pythonﻟﻬﺎ ﺻﻴﻐ ﺔ ﺧﺎﺻ ﺔ ﻟﻠﻮﺻﻮل إﱃ اﻟﻌﻨﺼﺮ اﻷﺧﻴﺮ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ .ﻋﻦ ﻃﺮﻳﻖ اﻟ ﺴﺆال
ُﺮﺟﻊ Pythonدا ً
ﺋﻤﺎ اﻟﻌﻨﺼﺮ اﻷﺧﻴﺮ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ: ﺗ
ﺒ ﺔ ﻟﻠﻌﻨﺼﺮ ﻓ ﻲ اﻟﻔﻬﺮس -1 ،
ﺑﺎﻟﻨ ﺴ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺜﻮن.
ﺑﺎﻳﺒﺎﺷﺮة ﻣﻊ ﻗﻮاﺋﻢ
ﺑﺔ ﻣ
ﺒﺮاﻣﺞ اﻟﻘﺼﻴﺮة ﻟﻠﺤﺼﻮل ﻋﲆﺗﺠﺮ
ﺟﺮ ب ﻫﺬه اﻟ
ﺑﻘﺎﺋﻬﺎ ﻣﻨﻈﻤ ﺔ.
ﺘﻤﺎرﻳﻦ ﻛﻞ ﻓﺼﻞ ﻹ
ﻗﺪﺗﺮﻏ ﺐ ﻓ ﻲ إﻧﺸﺎء ﻣﺠﻠﺪ ﺟﺪﻳﺪ ﻟ
ﺘﻮي ﻋﲆ
ﺑﻌﻤﻞ ﻗﺎﺋﻤ ﺔﺗﺤﺜﻞ دراﺟ ﺔ ﻧﺎرﻳ ﺔ أوﺳﻴﺎرة ،وﻗﻢ
ﺘﻚ اﻟﺨﺎﺻ ﺔ :ﻓﻜﺮ ﻓ ﻲ وﺳﻴﻠ ﺔ اﻟﻨﻘﻞ اﻟﻤﻔﻀﻠ ﺔ ﻟﺪﻳﻚ ،ﻣ
3-3.ﻗﺎﺋﻤ
ﺘﻼك دراﺟ ﺔ
ﺜﻞ "أرﻏ ﺐ ﻓ ﻲ اﻣ
ﺒﻴﺎﻧﺎ ت ﺣﻮل ﻫﺬه اﻟﻌﻨﺎﺻﺮ ،ﻣ
ﺒﺎﻋ ﺔﺳﻠ ﺴﻠ ﺔ ﻣﻦ اﻟ
ﺘﻚ ﻟﻄ
ﺘﺨﺪم ﻗﺎﺋﻤ
ﺜﻠ ﺔ .اﺳ
اﻟﻌﺪﻳﺪ ﻣﻦ اﻷﻣ
ﻧﺎرﻳ ﺔ ﻣﻦ ﻫﻮﻧﺪا".
40اﻟﻔﺼﻞ 3
Machine Translated by Google
ﺗ ﻲ"
vدراﺟﺎ ت ﻧﺎرﻳ ﺔ = ]"[0دوﻛﺎ
ﺒﺎﻋ ﺔ )دراﺟﺎ ت ﻧﺎرﻳ ﺔ(
ﻃ
ﺑﺤﻴ ﺚﺗﻜﻮن " "hondaﻫ ﻲ اﻟﻌﻨﺼﺮ اﻷول.ّ ف اﻟﺮﻣﺰ اﻟﻤﻮﺟﻮد ﻓ ﻲ uاﻟﻘﺎﺋﻤ ﺔ اﻷﺻﻠﻴ ﺔ ،
ُﻌ ﺮ
ﻳ
ﺑﻘ ﻲ
ﺑﺎﻟﻔﻌﻞ ،وﺗﺞ أن اﻟﻌﻨﺼﺮ اﻷول ﻗﺪﺗﻢﺗﻐﻴﻴﺮه
ُﻈﻬﺮ اﻟﻨﺎ
ﻳﻐﻴﺮ اﻟﻜﻮد اﻟﻤﻮﺟﻮد ﻓ ﻲ vﻗﻴﻤ ﺔ اﻟﻌﻨﺼﺮ اﻷول إﱃ "ducati".ﻳ
ﺑﺎﻗ ﻲ اﻟﻘﺎﺋﻤ ﺔ ﻛﻤﺎ ﻫﻮ:
ﺑﻘﺎﺋﻤ ﺔ ،ﻓﺈن اﻟﻌﻨﺼﺮﺑﺈﻟﺤﺎق ﻋﻨﺼﺮﺑﺎﻟﻘﺎﺋﻤ ﺔ .ﻋﻨﺪﻣﺎﺗﻘﻮمﺑ ﺴﻂ ﻃﺮﻳﻘ ﺔ ﻹﺿﺎﻓ ﺔ ﻋﻨﺼﺮ ﺟﺪﻳﺪ إﱃ اﻟﻘﺎﺋﻤ ﺔ ﻫ ﻲ إﻟﺤﺎق اﻟﻌﻨﺼﺮ
إن أ
ﺑﻖ ،ﺳﻨﻀﻴﻒ اﻟﻌﻨﺼﺮ اﻟﺠﺪﻳﺪ
ﺜﺎل اﻟ ﺴﺎ
ﺘ ﻲ ﻛﺎﻧ ﺖ ﻟﺪﻳﻨﺎ ﻓ ﻲ اﻟﻤ
ﺘﺨﺪام ﻧﻔ ﺲ اﻟﻘﺎﺋﻤ ﺔ اﻟ
ﺑﺎﺳاﻟﺠﺪﻳﺪﻳﻀﺎف إﱃ ﻧﻬﺎﻳ ﺔ اﻟﻘﺎﺋﻤ ﺔ.
ﺗ ﻲ" إﱃ ﻧﻬﺎﻳ ﺔ اﻟﻘﺎﺋﻤ ﺔ:
"دوﻛﺎ
دراﺟﺎ ت ﻧﺎرﻳ ﺔ ][ =
)'motorcycles.append ('suzuki
)'motorcycles.append ('yamaha
)'motorcycles.append ('honda
ﺑﻘ ﺔ:
ﺜﻠ ﺔ اﻟ ﺴﺎ
ﺗﻤﺎﻣﺎ ﻟﻠﻘﻮاﺋﻢ اﻟﻤﻮﺟﻮدة ﻓ ﻲ اﻷﻣ
ً ﺛﻠ ﺔ
ﺗﺠ ﺔ ﻣﻤﺎ
ﺒﺪو اﻟﻘﺎﺋﻤ ﺔ اﻟﻨﺎ
ﺗ
ﺘﺨﺪﻣﻮن
ﺘ ﻲﻳﺮﻳﺪ اﻟﻤ ﺴ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺜﻴﺮ ﻣﻦ اﻷﺣﻴﺎن ﻟﻦﺗﻌﺮف اﻟ
ﺑﻬﺬه اﻟﻄﺮﻳﻘ ﺔ ﺷﺎﺋﻌ ﺔ ﺟﺪًا ،ﻷﻧﻚ ﻓ ﻲ ﻛﺒﻨﺎء
ﺗﻌﺪ ﻗﻮاﺋﻢ اﻟ
ﺘﻔﻆ
ﺘﺤﺘﺤﺪﻳﺪ ﻗﺎﺋﻤ ﺔ ﻓﺎرﻏ ﺔﺳ
ﺑﺑﺪأ
ﺘﺨﺪﻣﻴﻦ ﻟﺪﻳﻚﺗﺤ ﺖ اﻟ ﺴﻴﻄﺮة ،ا
ﺒﺮﻧﺎﻣﺞ .ﻟﺠﻌﻞ اﻟﻤ ﺴ
ﺑﻌﺪﺗﺸﻐﻴﻞ اﻟﺑﺮﻧﺎﻣﺞ إﻻﺗﺨﺰﻳﻨﻬﺎ ﻓ ﻲ
ﺘﻮ.
ﺗﻬﺎ ﻟﻠ
ﺘ ﻲ أﻧﺸﺄ
ﺑﺎﻟﻘﺎﺋﻤ ﺔ اﻟﺑﺈﻟﺤﺎق ﻛﻞ ﻗﻴﻤ ﺔ ﺟﺪﻳﺪة ﻣﻘﺪﻣ ﺔﺛﻢ ﻗﻢﺘﺨﺪﻣﻴﻦ.
ﺑﻘﻴﻢ اﻟﻤ ﺴ
42اﻟﻔﺼﻞ 3
Machine Translated by Google
ﺘﺨﺪﻣﻴﻦ اﻟﻨﺸﻄﻴﻦ.
ﺘﺨﺪم ﻣﻦ ﻗﺎﺋﻤ ﺔ اﻟﻤ ﺴ
ﺘﺎج إﱃ إزاﻟ ﺔ ﻫﺬا اﻟﻤ ﺴ
ﺘﺤﺑﺈﻧﺸﺎﺋﻪ ،ﻓ ﺴ ﺒﻴﻖ وﻳ ﺐ ﻗﻤ ﺖ ﺑﻪ ﻋﲆﺗﻄ ﻗﺮر إﻟﻐﺎء ﺣ ﺴﺎ
ﻳﻤﻜﻨﻚ إزاﻟ ﺔ ﻋﻨﺼﺮ وﻓ ًﻘﺎ ﻟﻤﻮﻗﻌﻪ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ أو وﻓ ًﻘﺎ ﻟﻘﻴﻤ
ﺘﻪ.
ﺑﻴﺎن delﺘﺨﺪام
ﺑﺎﺳإزاﻟ ﺔ ﻋﻨﺼﺮ
ﺘﺨﺪم اﻟﻜﻮد ﻓ ﻲ u delﻹزاﻟ ﺔ اﻟﻌﻨﺼﺮ اﻷول "honda" ، ،ﻣﻦ ﻗﺎﺋﻤ ﺔ اﻟﺪراﺟﺎ ت اﻟﻨﺎرﻳ ﺔ:
ﻳﺴ
ﺒﻴﻞ
ﺘﺨﺪام ﻋﻼﻣ ﺔ del stateإذا ﻛﻨ ﺖﺗﻌﺮف ﻓﻬﺮﺳﻬﺎ .ﻋﲆﺳ
ﺑﺎﺳﻳﻤﻜﻨﻚ إزاﻟ ﺔ ﻋﻨﺼﺮ ﻣﻦ أي ﻣﻮﺿﻊ ﻓ ﻲ ﻗﺎﺋﻤ ﺔ
ﺜﺎﻧ ﻲ "yamaha" ، ،ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ:
ﺜﺎل ،إﻟﻴﻚ ﻛﻴﻔﻴ ﺔ إزاﻟ ﺔ اﻟﻌﻨﺼﺮ اﻟ
اﻟﻤ
ﺗ ﻲ اﻟﻤﺼﻄﻠﺢ
ﺘﻪ.ﻳﺄ
ﺑﻌﺪ إزاﻟﺘﻴﺢ ﻟﻚ اﻟﻌﻤﻞ ﻣﻊ ﻫﺬا اﻟﻌﻨﺼﺮ
ﺗﺰﻳﻞ ﻃﺮﻳﻘ ﺔ )( popاﻟﻌﻨﺼﺮ اﻷﺧﻴﺮ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ ،وﻟﻜﻨﻬﺎﺗ
ﺘﻔﻜﻴﺮ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ ﻋﲆ أﻧﻬﺎ ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻟﻌﻨﺎﺻﺮ وإﺧﺮاج ﻋﻨﺼﺮ واﺣﺪ ﻣﻦ أﻋﲆ اﻟﻤﻜﺪس .ﻓ ﻲ ﻫﺬا اﻟﻘﻴﺎس ،
ﻓﺮﻗﻌ ﺔ ﻣﻦ اﻟ
ﺘﻮاﻓﻖ اﻟﺠﺰء اﻟﻌﻠﻮي ﻣﻦ اﻟﻤﻜﺪس ﻣﻊ ﻧﻬﺎﻳ ﺔ اﻟﻘﺎﺋﻤ ﺔ.
ﻳ
ﺒﺎﻋ ﺔ
)( v popped_motorcycle = motorcycles.popث اﻟﻄ
)اﻟﺪراﺟﺎ ت اﻟﻨﺎرﻳ ﺔ(
ﺒﺎﻋ ﺔ )(popped_motorcycle
xﻃ
ﺘﻐﻴﺮ
ﺘﻢﺗﺨﺰﻳﻨﻬﺎ اﻵن ﻓ ﻲ اﻟﻤ
ﻳﻮﺿﺢ اﻹﺧﺮاج أﻧﻪﺗﻤ ﺖ إزاﻟ ﺔ ﻗﻴﻤ ﺔ "ﺳﻮزوﻛ ﻲ" ﻣﻦ ﻧﻬﺎﻳ ﺔ اﻟﻘﺎﺋﻤ ﺔ وﻳ
popped_motorcycle:
ﺳﻮزوﻛ ﻲ
ﺗﻴ ﺐ
ﺘﺮﺑﺎﻟﻛﻴﻒﻳﻤﻜﻦ أنﺗﻜﻮن ﻃﺮﻳﻘ ﺔ )( popﻫﺬه ﻣﻔﻴﺪة؟ﺗﺨﻴﻞ أن اﻟﺪراﺟﺎ ت اﻟﻨﺎرﻳ ﺔ اﻟﻤﻮﺟﻮدة ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ ﻣﺨﺰﻧ ﺔ
ﺑﻴﺎن ﺣﻮل آﺧﺮ دراﺟ ﺔﺒﺎﻋ ﺔ
ﺘﺨﺪام ﻃﺮﻳﻘ ﺔ )( popﻟﻄ
ﺘﻼﻛﻨﺎ ﻟﻬﺎ .إذا ﻛﺎﻧ ﺖ ﻫﺬه ﻫ ﻲ اﻟﺤﺎﻟ ﺔ ،ﻓﻴﻤﻜﻨﻨﺎ اﺳ اﻟﺰﻣﻨ ﻲ وﻓ ًﻘﺎ ﻟ
ﺘﺎرﻳﺦ اﻣ
ﺘﺮﻳﻨﺎ ﻫﺎ:
ﻧﺎرﻳ ﺔ اﺷ
ﺘﻠﻜﻨﺎ ﻫﺎ:
ﺑ ﺴﻴﻄ ﺔ ﺣﻮل أﺣﺪ ث دراﺟ ﺔ ﻧﺎرﻳ ﺔ اﻣﺒﺎرة ﻋﻦ ﺟﻤﻠ ﺔ
ﺗﺞ ﻋ
اﻟﻨﺎ
44اﻟﻔﺼﻞ 3
Machine Translated by Google
ﺒﺎرة
ﺒﻊ رﺳﺎﻟ ﺔ ﺣﻮلﺗﻠﻚ اﻟﺪراﺟ ﺔ اﻟﻨﺎرﻳ ﺔ ﻓ ﻲ v.اﻹﺧﺮاج ﻋ
ﺛﻢ ﻧﻄ
ﺒﺪأ ﻣﻦ ﺧﻼل ﻇﻬﻮر أول دراﺟ ﺔ ﻧﺎرﻳ ﺔ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ ﻓ ﻲ u ،
ﻧ
ﺘﻬﺎ ﻋﲆ اﻹﻃﻼق:
ﺘﻠﻜ
ﺑ ﺴﻴﻄ ﺔﺗﺼﻒ أول دراﺟ ﺔ ﻧﺎرﻳ ﺔ اﻣﻋﻦ ﺟﻤﻠ ﺔ
ﺘﻪ ،
ﺘﻬﺎ ﻣﻦ اﻟﻘﺎﺋﻤ ﺔ .إذا ﻛﻨ ﺖﺗﻌﺮف ﻓﻘﻂ ﻗﻴﻤ ﺔ اﻟﻌﻨﺼﺮ اﻟﺬيﺗﺮﻳﺪ إزاﻟ
ﺘ ﻲﺗﺮﻳﺪ إزاﻟ
ﺑﻌﺾ اﻷﺣﻴﺎن ﻟﻦﺗﻌﺮف ﻣﻮﺿﻊ اﻟﻘﻴﻤ ﺔ اﻟﻓﻲ
ﺘﺨﺪام ﻃﺮﻳﻘ ﺔ اﻹزاﻟ ﺔ () .
ﻳﻤﻜﻨﻚ اﺳ
ﺒﻊ
ﺗ ﻲ" وﻧﻄ
ﺘﻬﺎ ﻣﻦ اﻟﻘﺎﺋﻤ ﺔ .ﻟﻨﺤﺬف اﻟﻘﻴﻤ ﺔ "دوﻛﺎ
ﺘﻢ إزاﻟ
ﺘﺨﺪام ﻃﺮﻳﻘ ﺔ )( removeﻟﻠﻌﻤﻞ ﻣﻊ ﻗﻴﻤ ﺔﺗ ﻳﻤﻜﻨﻚ أ ً
ﻳﻀﺎ اﺳ
ﺘﻬﺎ ﻣﻦ اﻟﻘﺎﺋﻤ ﺔ:
ﺒﺎ ﻹزاﻟ
ﺒً
ﺳ
ﺘﺨﺪم ﻫﺬا
ﺛﻢ ﻧ ﺴ
ﺘﻐﻴﺮﻳ ﺴﻤﻰ too_expensive v.
ﺘﺨﺰﻳﻦ اﻟﻘﻴﻤ ﺔ ""ducatiﻓ ﻲ ﻣ
ﺑﺑﻌﺪﺗﺤﺪﻳﺪ اﻟﻘﺎﺋﻤ ﺔ ﻓ ﻲ u ،ﻧﻘﻮم
ﺑﺎﻟﻘﻴﻤ ﺔ
ﺒﺎر Python
ﺘﻐﻴﺮ ﻹﺧ
اﻟﻤ
ﺘﻐﻴﺮ أ ً
ﻳﻀﺎ_ رﺧﻴﺼ ﺔ ، ﺗﻤ ﺖ إزاﻟ ﺔ اﻟﻘﻴﻤ ﺔ ""ducatiﻣﻦ اﻟﻘﺎﺋﻤ ﺔ وﻟﻜﻨﻬﺎ ﻻﺗﺰال ﻣﺨﺰﻧ ﺔ ﻓ ﻲ اﻟﻤ
ﻟﻺزاﻟ ﺔ ﻣﻦ اﻟﻘﺎﺋﻤ ﺔ ﻓ ﻲ w.ﻓ ﻲ x ،
ﺒ ﺔ ﻟ ﻲ.
ﺑﺎﻟﻨ ﺴﺜﻤﻦ
ﺑﺎ ﻫﻈ ﺔ اﻟﺗﻲ
دوﻛﺎ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺛﺔ
ﺛﻼﺒﺮ .ﻓﻜﺮ ﻓ ﻲ
ﺘﻮﻓﺮ اﻵن ﻣ ﺴﺎﺣ ﺔ أﻛ
ﺒﺮ ،ﻟﺬاﺗ
ﺘﻮ ﻃﺎوﻟ ﺔ ﻋﺸﺎء أﻛ
3-6.اﻟﻤﺰﻳﺪ ﻣﻦ اﻟﻀﻴﻮف :ﻟﻘﺪ وﺟﺪ ت ﻟﻠ
ﺘﻨﺎول اﻟﻌﺸﺎء.
ﺗﻬﻢ ﻟ
ﺿﻴﻮف آﺧﺮﻳﻦ ﻟﺪﻋﻮ
ﺒﻮﻋ ﺔ
ﺘﻤﺮﻳﻦ 3-5.أﺿﻒ ﻧ ﺴﺨ ﺔ ﻣﻄ
ﺘﻤﺮﻳﻦ 3-4أو اﻟ
ﺒﺮﻧﺎﻣﺠﻚ ﻣﻦ اﻟ
ﺑﺑﺪأ
•ا
ﺒﺮ.
ﺑﺄﻧﻚ وﺟﺪ ت ﻃﺎوﻟ ﺔ ﻋﺸﺎء أﻛﺑﺮﻧﺎﻣﺠﻚ ﻹﻋﻼم اﻟﻨﺎسﺑﻴﺎن ﻓ ﻲ ﻧﻬﺎﻳ ﺔ
ﺘﻚ.
ﺑﺪاﻳ ﺔ ﻗﺎﺋﻤﺘﺨﺪم إدراج )(ﻹﺿﺎﻓ ﺔ ﺿﻴﻒ ﺟﺪﻳﺪ إﱃ
•اﺳ
ﺘﻚ.
ﺘﺼﻒ ﻗﺎﺋﻤ
ﺘﺨﺪم إدراج )(ﻹﺿﺎﻓ ﺔ ﺿﻴﻒ ﺟﺪﻳﺪ واﺣﺪ ﻓ ﻲ ﻣﻨ
•اﺳ
ﺘﻚ.
ﺘﺨﺪم )( appendﻹﺿﺎﻓ ﺔ ﺿﻴﻒ ﺟﺪﻳﺪ إﱃ ﻧﻬﺎﻳ ﺔ ﻗﺎﺋﻤ
•اﺳ
ﺘﻚ.
ﺒﻊ ﻣﺠﻤﻮﻋ ﺔ ﺟﺪﻳﺪة ﻣﻦ رﺳﺎﺋﻞ اﻟﺪﻋﻮة ،واﺣﺪة ﻟﻜﻞ ﺷﺨﺺ ﻓ ﻲ ﻗﺎﺋﻤ
•اﻃ
46اﻟﻔﺼﻞ 3
Machine Translated by Google
ﺛﻨﻴﻦ ﻓﻘﻂ
ﺘﻰ ا
ﺘﻚ واﺣﺪًاﺗﻠﻮ اﻵﺧﺮ ﺣ
ﺘﺨﺪم )( popﻹزاﻟ ﺔ اﻟﻀﻴﻮف ﻣﻦ ﻗﺎﺋﻤ
•اﺳ
ﺒﻊ رﺳﺎﻟ ﺔ إﱃ ﻫﺬا اﻟﺸﺨﺺ
ﺘﻚ ،اﻃ
ﺳﻤﺎ ﻣﻦ ﻗﺎﺋﻤ
ﺒﺮز ﻓﻴﻬﺎ ا ً
ﺘﻚ .ﻓ ﻲ ﻛﻞ ﻣﺮةﺗ
ﺒﻘﻰ اﻷﺳﻤﺎء ﻓ ﻲ ﻗﺎﺋﻤ
ﺗ
ﺘﻨﺎول اﻟﻌﺸﺎء.
ﺗﻪ ﻟ
ﺒﺎره أﻧﻚ آﺳﻒ ﻟﻌﺪمﺗﻤﻜﻨﻚ ﻣﻦ دﻋﻮ
ﻹﺧ
ﺘﺄﻛﺪ ﻣﻦ أن ﻟﺪﻳﻚ
ﺘﻚ ﻟﻠ
ﺒﻊ ﻗﺎﺋﻤ
ﺑﺤﻴ ﺚﻳﻜﻮن ﻟﺪﻳﻚ ﻗﺎﺋﻤ ﺔ ﻓﺎرﻏ ﺔ .اﻃﺘﻚ ،
ﺘﺨﺪم delﻹزاﻟ ﺔ آﺧﺮ اﺳﻤﻴﻦ ﻣﻦ ﻗﺎﺋﻤ
•اﺳ
ﺒﺮﻧﺎﻣﺞ.
ﺑﺎﻟﻔﻌﻞ ﻗﺎﺋﻤ ﺔ ﻓﺎرﻏ ﺔ ﻓ ﻲ ﻧﻬﺎﻳ ﺔ اﻟ
ﺗﻨﻈﻴﻢ ﻗﺎﺋﻤ ﺔ
ﺘﺨﺪﻣﻮن
ﺑﻪ اﻟﻤ ﺴﺗﻴ ﺐ اﻟﺬيﻳﻘﺪم
ﺘﺮﺘﺤﻜﻢ ﻓ ﻲ اﻟ
ﺋﻤﺎ اﻟ
ﺘﻮﻗﻊ ،ﻷﻧﻪ ﻻﻳﻤﻜﻨﻚ دا ً
ﺗﻴ ﺐ ﻏﻴﺮ ﻣ
ﺘﺮﺑﺘﻢ إﻧﺸﺎء ﻗﻮاﺋﻤﻚ
ﺒﺎ ﻣﺎﻳ
ﻏﺎﻟ ً
ﺗﻴ ﺐ ﻣﻌﻴﻦ.
ﺘﺮﺑﺗﻚ
ﺒﺎ ﻣﺎﺗﺮﻏ ﺐ ﻓ ﻲﺗﻘﺪﻳﻢ ﻣﻌﻠﻮﻣﺎ
ﺗﻬﻢ .ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أن ﻫﺬا أﻣﺮ ﻻ ﻣﻔﺮ ﻣﻨﻪ ﻓ ﻲ ﻣﻌﻈﻢ اﻟﻈﺮوف ،ﻓﻐﺎﻟ ً
ﺑﻴﺎﻧﺎ
ﺗﻴ ﺐ
ﺘﺮﺘﺮﻏ ﺐ ﻓ ﻲﺗﻐﻴﻴﺮ اﻟ
ﺘﻚ ،وﻓ ﻲ أﺣﻴﺎن أﺧﺮىﺳ
ﺗﻴ ﺐ اﻷﺻﻠ ﻲ ﻟﻘﺎﺋﻤ
ﺘﺮﺘﺮﻏ ﺐ ﻓ ﻲ اﻟﺤﻔﺎظ ﻋﲆ اﻟ
ﺑﻌﺾ اﻷﺣﻴﺎنﺳﻓﻲ
ﺘﻤﺎدًا ﻋﲆ اﻟﻤﻮﻗﻒ.
ﺘﻨﻈﻴﻢ ﻗﻮاﺋﻤﻚ ،اﻋ
ﺘﻠﻔ ﺔ ﻟ
اﻷﺻﻠ ﻲ.ﺗﻮﻓﺮ Pythonﻋﺪدًا ﻣﻦ اﻟﻄﺮق اﻟﻤﺨ
ﺑﺪًا
ﺑﺠﺪﻳًﺎ ،وﻻﻳﻤﻜﻨﻨﺎ أ
ﺒﺔ أ
ﺗﺑﺸﻜﻞ داﺋﻢ .اﻟ ﺴﻴﺎرا ت اﻵن ﻣﺮﺗﻴ ﺐ اﻟﻘﺎﺋﻤ ﺔ
ﺗﻐﻴﺮﺗﺮ
ﻃﺮﻳﻘ ﺔ اﻟﻔﺮز () ،اﻟﻤﻮﺿﺤ ﺔ ﻓ ﻲ u ،
ﺗﻴ ﺐ اﻷﺻﻠ ﻲ:
ﺘﺮاﻟﻌﻮدة إﱃ اﻟ
ﺜﺎﻟ ﺚ
48اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺒﻴﺮة ﻋﻨﺪﻣﺎ
ﺘﻔ ﺴﻴﺮ اﻷﺣﺮف اﻟﻜ
ﺑﺄﺣﺮف ﺻﻐﻴﺮة .ﻫﻨﺎك ﻋﺪة ﻃﺮق ﻟﺑﻌﺾ اﻟﺸ ﻲء ﻋﻨﺪﻣﺎ ﻻﺗﻜﻮن ﺟﻤﻴﻊ اﻟﻘﻴﻢﺜﺮﺗﻌﻘﻴﺪًا
ﺑﺠﺪﻳًﺎ أﻛ
ﻳﻌﺪ ﻓﺮز اﻟﻘﺎﺋﻤ ﺔ أ
ﺘﻌﺎﻣﻞ ﻣﻌﻪ ﻓ ﻲ ﻫﺬا اﻟﻮﻗ ﺖ .وﻣﻊ ذﻟﻚ ،ﻓﺈن ﻣﻌﻈﻢ
ﺜﺮﺗﻌﻘﻴﺪًا ﻣﻤﺎ ﻧﺮﻳﺪ اﻟ
ﺗﻴ ﺐ اﻟﺪﻗﻴﻖ أﻛ
ﺘﺮﺗﻴ ﺐ اﻟﻔﺮز ،وﻳﻤﻜﻦ أنﻳﻜﻮنﺗﺤﺪﻳﺪ اﻟ
ﺗﻘﺮرﺗﺮ
ﺘﻪ ﻓ ﻲ ﻫﺬا اﻟﻘ ﺴﻢ.
ﺒﺎﺷﺮ ﻋﲆ ﻣﺎﺗﻌﻠﻤ
ﺑﺸﻜﻞ ﻣﺒﻨ ﻲ
ﺘأﺳﺎﻟﻴ ﺐ اﻟﻔﺮزﺳ
ﺗﻴ ﺐ ﻋﻜ ﺴ ﻲ
ﺘﺮﺑﺒﺎﻋ ﺔ ﻗﺎﺋﻤ ﺔ
ﻃ
ﺘﺨﺪام ﻃﺮﻳﻘ ﺔ reverse () .
ﺗﻴ ﺐ اﻷﺻﻠ ﻲ ﻟﻠﻘﺎﺋﻤ ﺔ ،ﻳﻤﻜﻨﻚ اﺳ
ﺘﺮﻟﻌﻜ ﺲ اﻟ
ﺗﻴ ﺐ اﻟﻘﺎﺋﻤ ﺔ إﱃ
ﺑ ﺴﻬﻮﻟ ﺔ إﻋﺎدةﺗﺮﺘﻼﻛﻬﺎ ،ﻓﻴﻤﻜﻨﻨﺎ ﺗﻴ ﺐ زﻣﻨ ﻲ وﻓ ًﻘﺎ ﻟ
ﺘﺎرﻳﺦ اﻣ ﺘﺮﺑﺘﺨﺰﻳﻦ ﻗﺎﺋﻤ ﺔ اﻟ ﺴﻴﺎرا ت ﻓ ﻲ اﻷﺻﻞ
ﺑإذا ﻗﻤﻨﺎ
ﺗﻴ ﺐ زﻣﻨ ﻲ ﻋﻜ ﺴ ﻲ:
ﺗﺮ
ﺑﻮاﺣﺪ ،ﻟﺬﻟﻚ ﻻﻳﺠ ﺐ أنﺗﻮاﺟﻪ أي أﺧﻄﺎء ﻓﺮدﻳ ﺔ ﻋﻨﺪﺗﺤﺪﻳﺪ ﻃﻮل اﻟﻘﺎﺋﻤ ﺔ.ﺒﺪأ
ﻳﺤ ﺴ ﺐ N ote Pythonاﻟﻌﻨﺎﺻﺮ ﻓ ﻲ ﻗﺎﺋﻤ ﺔﺗ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺗﻬﺎ.
3-8.رؤﻳ ﺔ اﻟﻌﺎﻟﻢ :ﻓﻜﺮ ﻓ ﻲ ﺧﻤ ﺴ ﺔ أﻣﺎﻛﻦ ﻋﲆ اﻷﻗﻞ ﻓ ﻲ اﻟﻌﺎﻟﻢﺗﻮد زﻳﺎر
ﺑﺠﺪﻳًﺎ.
ﺒﺔ أ
ﺗﺗﺨﺰﻳﻦ اﻟﻤﻮاﻗﻊ ﻓ ﻲ ﻗﺎﺋﻤ ﺔ.ﺗﺄﻛﺪ ﻣﻦ أن اﻟﻘﺎﺋﻤ ﺔ ﻟﻴ ﺴ ﺖ ﻣﺮ
•
ﺜﻮن ﺧﺎم.
ﺑﺎﻳﺒﻌﻬﺎ ﻛﻘﺎﺋﻤ ﺔ
ﺑﺪﻗ ﺔ ،ﻓﻘﻂ اﻃﺒﺎﻋ ﺔ اﻟﻘﺎﺋﻤ ﺔ
ﺑﺸﺄن ﻃﺒﻬﺎ اﻷﺻﻠ ﻲ .ﻻﺗﻘﻠﻖ
ﺗﻴﺘﺮ
ﺑﺘﻚ
ﺒﻊ ﻗﺎﺋﻤ
•اﻃ
ﺑﺠﺪي دونﺗﻌﺪﻳﻞ
ﺗﻴ ﺐ اﻷ
ﺘﺮﺑﺎﻟﺘﻚ
ﺒﺎﻋ ﺔ ﻗﺎﺋﻤ
ﺘﺨﺪم )( Sortedﻟﻄ
•اﺳ
اﻟﻘﺎﺋﻤ ﺔ اﻟﻔﻌﻠﻴ ﺔ.
ﺘﻬﺎ.
ﺒﺎﻋ
ﺒﻬﺎ اﻷﺻﻠ ﻲ ﻋﻦ ﻃﺮﻳﻖ ﻃ
ﺗﻴﺘﻚ ﻻﺗﺰال ﻓ ﻲﺗﺮ
•أﻇﻬﺮ أن ﻗﺎﺋﻤ
ﺒﻬﺎ ﻗﺪﺗﻐﻴﺮ.
ﺗﻴﺘﻈﻬﺮ أنﺗﺮ
ﺒﻊ اﻟﻘﺎﺋﻤ ﺔ ﻟ
ﺘﻚ .اﻃ
ﺗﻴ ﺐ ﻗﺎﺋﻤ
ﺘﻐﻴﻴﺮﺗﺮ
ﺘﺨﺪم ﻋﻜ ﺲ )(ﻟ
•اﺳ
ﺒﻬﺎ ﻗﺪﺗﻐﻴﺮ.
ﺗﻴﺘﻈﻬﺮ أنﺗﺮ
ﺒﻊ اﻟﻘﺎﺋﻤ ﺔ ﻟ
ﺑﺠﺪي .اﻃ
ﺗﻴ ﺐ أ
ﺘﺮﺑﺘﻢﺗﺨﺰﻳﻨﻬﺎ
ﺑﺤﻴ ﺚﻳﺘﻚ
ﺘﻐﻴﻴﺮ ﻗﺎﺋﻤ
ﺘﺨﺪم )( sortﻟ
•اﺳ
ﺑﺠﺪي ﻋﻜ ﺴ ﻲ.
ﺗﻴ ﺐ أ
ﺘﺮﺑﺘﻢﺗﺨﺰﻳﻨﻬﺎ
ﺑﺤﻴ ﺚﻳﺘﻚ
ﺘﻐﻴﻴﺮ ﻗﺎﺋﻤ
ﺘﺨﺪم )( sortﻟ
•اﺳ
ﺒﻬﺎ ﻗﺪﺗﻐﻴﺮ.
ﺗﻴﺘﻈﻬﺮ أنﺗﺮ
ﺒﻊ اﻟﻘﺎﺋﻤ ﺔ ﻟ
اﻃ
ﺒﺎﻋ ﺔ
ﺘﺨﺪم )( lenﻟﻄ
ﺒﺎ ت 3-4إﱃ )3-7ﺻﻔﺤ ﺔ 46) ،اﺳ
ﺘﺪرﻳ
ﺒﺮاﻣﺞ ﻣﻦ اﻟ
3-9.ﺿﻴﻮف اﻟﻌﺸﺎء :اﻟﻌﻤﻞ ﻣﻊ أﺣﺪ اﻟ
ﺘﻨﺎول اﻟﻌﺸﺎء.
رﺳﺎﻟ ﺔﺗﺸﻴﺮ إﱃ ﻋﺪد اﻷﺷﺨﺎص اﻟﺬﻳﻦﺗﺪﻋﻮ ﻫﻢ ﻟ
ﺒﺎل أو
ﺑﺎﻟﺠﺜﺎل ،ﻳﻤﻜﻨﻚ ﻋﻤﻞ ﻗﺎﺋﻤ ﺔ
ﺒﻴﻞ اﻟﻤ
3-10.ﻛﻞ وﻇﻴﻔ ﺔ :ﻓﻜﺮ ﻓ ﻲ ﺷ ﻲءﻳﻤﻜﻨﻚﺗﺨﺰﻳﻨﻪ ﻓ ﻲ ﻗﺎﺋﻤ ﺔ .ﻋﲆﺳ
ﺘﻮي ﻋﲆ ﻫﺬه
ﺑﺈﻧﺸﺎء ﻗﺎﺋﻤ ﺔﺗﺤﺑﺮﻧﺎﻣﺠًﺎﻳﻘﻮمﺘﺐ
ﺒﻠﺪان أو اﻟﻤﺪن أو اﻟﻠﻐﺎ ت أو أي ﺷ ﻲء آﺧﺮﺗﺮﻳﺪه .اﻛ
اﻷﻧﻬﺎر أو اﻟ
ﺘﺨﺪم ﻛﻞ وﻇﻴﻔ ﺔ ﻣﻘﺪﻣ ﺔ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ﻣﺮة واﺣﺪة ﻋﲆ اﻷﻗﻞ.
ﺛﻢﻳ ﺴاﻟﻌﻨﺎﺻﺮ
ﺒﺎﻋ ﺔ )دراﺟﺎ ت
دراﺟﺎ ت ﻧﺎرﻳ ﺔ ]'= ['honda'، 'yamaha'، 'suzukiﻃ
ﻧﺎرﻳ ﺔ )][3
50اﻟﻔﺼﻞ 3
Machine Translated by Google
"ﺳﻮزوﻛ ﻲ"
ﺒ ﺐ ﻓﻴﻬﺎ ﻫﺬا اﻷﺳﻠﻮ ب ﻓ ﻲ ﺣﺪو ث ﺧﻄﺄ ﻫ ﻲ ﻋﻨﺪﻣﺎﺗﻄﻠ ﺐ اﻟﻌﻨﺼﺮ اﻷﺧﻴﺮ ﻣﻦ ﻗﺎﺋﻤ ﺔ ﻓﺎرﻏ ﺔ:
ﺘﺴﺘ ﻲﻳ
اﻟﻤﺮة اﻟﻮﺣﻴﺪة اﻟ
ﺒﺪو
ﺘﻚ .ﻗﺪﺗ
ﺒﺎﻋ ﺔ ﻃﻮل ﻗﺎﺋﻤ
ﺘﻚ أو ﻣﺠﺮد ﻃﺒﺎﻋ ﺔ ﻗﺎﺋﻤﺘﻤﻜﻦ ﻣﻦ ﻣﻌﺮﻓ ﺔ ﻛﻴﻔﻴ ﺔ ﺣﻠﻪ ،ﻓﺤﺎول ﻃ ﻣﺎﻟﺤﻈ ﺔ إذا ﺣﺪ ث ﺧﻄﺄ ﻓ ﻲ اﻟﻔﻬﺮس وﻟﻢﺗ
ﺑﺮﻧﺎﻣﺠﻚ. ﺑﻮاﺳﻄ ﺔ ﺘﻘﺪه ،ﺧﺎﺻ ًﺔ إذاﺗﻤ ﺖ إدار
ﺗﻬﺎ دﻳﻨﺎﻣﻴﻜ ًﻴﺎ ﺜﻴ ًﺮا ﻋﻤﺎ ﻛﻨ ﺖﺗﻌ
ﺘﻠﻔ ﺔ ﻛ
ﺘﻚ ﻣﺨﻗﺎﺋﻤ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ّﻴ ﺮ
ﺘﻰ اﻵن ،ﻓﺤﺎول أنﻳﺤﺪ ث ﺧﻄﺄ .ﻏ
ﺑﺮاﻣﺠﻚ ﺣ ﺘﻌﻤﺪ :إذا ﻟﻢﺗ َ
ﺘﻠﻖ ﺧﻄﺄ ﻓﻬﺮس ﻓ ﻲ أﺣﺪ 3-11.اﻟﺨﻄﺄ اﻟﻤ
ﺒﺮﻧﺎﻣﺞ.
ﺒﻞ إﻏﻼق اﻟ
ﺘﺎج ﺧﻄﺄ ﻓﻬﺮس.ﺗﺄﻛﺪ ﻣﻦﺗﺼﺤﻴﺢ اﻟﺨﻄﺄ ﻗ
ﺗﻚ ﻹﻧ
ﺑﺮوﻏﺎﻣﺎﺳﺎ ﻓ ﻲ أﺣﺪ
ﻓﻬﺮ ً
ﻣﻠﺨﺺ
ﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻌﻨﺎﺻﺮ اﻟﻔﺮدﻳ ﺔ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ .ﻟﻘﺪﺗﻌﻠﻤ ﺖ ﻛﻴﻔﻴ ﺔﺗﺤﺪﻳﺪ ﻟﻘﺪﺗﻌﻠﻤ ﺖ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ﻣﺎ ﻫ ﻲ اﻟﻘﻮاﺋﻢ وﻛﻴﻔﻴ ﺔ اﻟ
ﺑﺸﻜﻞ داﺋﻢ وﻣﺆﻗ ﺖﻷﻏﺮاض اﻟﻌﺮض .ﻟﻘﺪﺗﻌﻠﻤ ﺖ أ ً
ﻳﻀﺎ ﻛﻴﻔﻴ ﺔ ﻗﺎﺋﻤ ﺔ وﻛﻴﻔﻴ ﺔ إﺿﺎﻓ ﺔ وإزاﻟ ﺔ اﻟﻌﻨﺎﺻﺮ .ﻟﻘﺪﺗﻌﻠﻤ ﺖ ﻓﺮز اﻟﻘﻮاﺋﻢ
ﺜﻮر ﻋﲆ ﻃﻮل اﻟﻘﺎﺋﻤ ﺔ وﻛﻴﻔﻴ ﺔﺗﺠﻨ ﺐ أﺧﻄﺎء اﻟﻔﻬﺮس ﻋﻨﺪ اﻟﻌﻤﻞ ﻣﻊ اﻟﻘﻮاﺋﻢ.
اﻟﻌ
52اﻟﻔﺼﻞ 3
Machine Translated by Google
4
اﻋﻤﻞ ﻣﻊ اﻟﻘﻮاﺋﻢ
ﺗﻌﻠﻤ ﺖ
ﺑ ﺴﻴﻄ ﺔ ،وﺜﺎﻟ ﺚ ﻛﻴﻔﻴ ﺔ ﻋﻤﻞ ﻗﺎﺋﻤ ﺔ
ﺗﻌﻠﻤ ﺖ ﻓ ﻲ اﻟﻔﺼﻞ اﻟ
اﻟﻌﻤﻞ ﻣﻊ اﻟﻌﻨﺎﺻﺮ اﻟﻔﺮدﻳ ﺔ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ .ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ
ﺘﺮداد
ﺑﺬﻟﻚ ﻋﻦ ﻃﺮﻳﻖ اﺳﺒﺎﻋ ﺔ ﻛﻞ اﺳﻢ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ.ﻳﻤﻜﻨﻨﺎ اﻟﻘﻴﺎم
ﺑﺄﺳﻤﺎء اﻟ ﺴﺤﺮة ،وﻧﺮﻳﺪ ﻃﺘﺮض أن ﻟﺪﻳﻨﺎ ﻗﺎﺋﻤ ﺔ
ﻟﻨﻔ
ﺜﺎل ،ﻗﺪﻳﻜﻮنﺗﻜﺮار
ﺒﻴﻞ اﻟﻤ
ﺒ ﺐ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻤﺸﺎﻛﻞ .ﻋﲆﺳ
ﻛﻞ اﺳﻢ ﻣﻦ اﻟﻘﺎﺋﻤ ﺔ ﻋﲆ ﺣﺪة ،وﻟﻜﻦ ﻫﺬا اﻷﺳﻠﻮ ب ﻗﺪﻳ ﺴ
ﺘﻢ ﻓﻴﻬﺎﺗﻐﻴﻴﺮ ﻃﻮل
ﺑﻨﺎ ﻓ ﻲ ﻛﻞ ﻣﺮةﻳﺘﻌﻴﻦ ﻋﻠﻴﻨﺎﺗﻐﻴﻴﺮ اﻟﻜﻮد اﻟﺨﺎص ﺑﺬﻟﻚ ﻣﻊ ﻗﺎﺋﻤ ﺔ ﻃﻮﻳﻠ ﺔ ﻣﻦ اﻷﺳﻤﺎء .أ ً
ﻳﻀﺎ ،ﺳﻴ اﻟﻘﻴﺎم
ﺑﺈدارة ﻫﺬه اﻟﻤﺸﻜﻼ ت داﺧﻠ ًﻴﺎ.
ﺘﻴﻦ ﻋﻦ ﻃﺮﻳﻖ اﻟ ﺴﻤﺎح ﻟـ Python
ﺗﻴﻦ اﻟﻤﺸﻜﻠ
ﺘﺎ ﻫﺎ
ﺘﺠﻨ ﺐ ﺣﻠﻘ ﺔ forﻛﻠ
اﻟﻘﺎﺋﻤ ﺔ.ﺗ
و w ،ﻣﺮة واﺣﺪة ﻟﻜﻞ اﺳﻢ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ .ﻗﺪﻳﻜﻮن ﻣﻦ اﻟﻤﻔﻴﺪ ﻗﺮاءة ﻫﺬا اﻟﺮﻣﺰ ﻋﲆ أﻧﻪ "ﻟﻜﻞﺳﺎﺣﺮ ﻓ ﻲ ﻗﺎﺋﻤ ﺔ اﻟ ﺴﺤﺮة ،
ﺒﻊ اﺳﻢ اﻟ ﺴﺎﺣﺮ".
اﻃ
ﺑ ﺴﻴﻄ ﺔ ﻟﻜﻞ اﺳﻢ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ:ﺒﻮﻋ ﺔ
ﺒﺎرة ﻋﻦ ﻧ ﺴﺨ ﺔ ﻣﻄ
اﻹﺧﺮاج ﻋ
أﻟﻴ ﺲ
دﻳﻔﻴﺪ
ﻛﺎروﻟﻴﻨﺎ
ﺒﺎﻋ ﺔ )ﺳﺎﺣﺮ(
ﻃ
ﺜﻮن اﻟﺨﻂ:
ﺑﺎﻳﺛﻢﺗﻨﻔﺬﺗﺨﺰن ﻫﺬه اﻟﻘﻴﻤ ﺔ ﻓ ﻲ اﻟ ﺴﺎﺣﺮ.
ﺘﺎﻟ ﻲ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ " ،دﻳﻔﻴﺪ" ،و
ﺜﻮن اﻻﺳﻢ اﻟ
ﺑﺎﻳﺘﺮﺟﻊ
ﺗﺴ
ﺒﺎﻋ ﺔ )ﺳﺎﺣﺮ(
ﻃ
ﺑﻊ
54اﻟﻔﺼﻞ اﻟﺮا
Machine Translated by Google
ﻟﻠﻘﻄﻂ ﻓ ﻲ اﻟﻘﻄﻂ:
اﻟ ﺴﺤﺮة ]'= ['alice'، 'david'، 'carolinaﻟﻠ ﺴﺎﺣﺮ ﻓ ﻲ اﻟ ﺴﺤﺮة(magician.title () + "، :
u printﻛﺎﻧ ﺖ ﻫﺬه ﺧﺪﻋ ﺔ راﺋﻌ ﺔ!"(
ﺑﺪءًا ﻣﻦ اﺳﻢ ﻫﺬا اﻟ ﺴﺎﺣﺮ .ﻓ ﻲ اﻟﻤﺮة اﻷوﱃﺘﻼف اﻟﻮﺣﻴﺪ ﻓ ﻲ ﻫﺬا اﻟﺮﻣﺰ ﻫﻮ ﻋﻨﺪ uﺣﻴ ﺚ ﻧﺆﻟﻒ رﺳﺎﻟ ﺔ ﻟﻜﻞﺳﺎﺣﺮ ،
اﻻﺧ
ﺜﺎﻧﻴ ﺔ ﻣﻦ ﺧﻼل
ﺒﺪأ اﻟﻤﺮة اﻟ
ﺘﺑﺎﺳﻢ "أﻟﻴ ﺲ".ﺳﺜﻮن أول رﺳﺎﻟ ﺔ
ﺑﺎﻳﺒﺪأ
ﻣﻦ ﺧﻼل اﻟﺤﻠﻘ ﺔ ،ﺗﻜﻮن ﻗﻴﻤ ﺔ اﻟ ﺴﺎﺣﺮ "أﻟﻴ ﺲ" ،ﻟﺬﻟﻚﺗ
ﺑﻜﻠﻤ ﺔ "Carolina".ﺒﺪأ
ﺘﺜ ﺔ ﻣﻦ ﺧﻼل اﻟﺮﺳﺎﻟ ﺔﺳ
ﺜﺎﻟ
ﺑﻜﻠﻤ ﺔ "David" ،واﻟﻤﺮة اﻟاﻟﺮﺳﺎﻟ ﺔ
_ 55
Machine Translated by Google
print (magician.title () + "،ﻛﺎﻧ ﺖ ﻫﺬه ﺧﺪﻋ ﺔ راﺋﻌ ﺔ!"( )"+ magician.title () + ". \ n
"
ﺘﺎﻟﻴ ﺔ ،
ﺘﻚ اﻟ
ﺘﻈﺎرﻷرى ﺧﺪﻋ
")u printﻻ أﻃﻴﻖ اﻻﻧ
ً
ﻋﺮﺿﺎﺳﺤﺮﻳًﺎ راﺋﻌً ﺎ!"( ")u printﺷﻜ ﺮًا ﻟﻠﺠﻤﻴﻊ .ﻟﻘﺪ ﻛﺎن
ﺑﻊ
56اﻟﻔﺼﻞ اﻟﺮا
Machine Translated by Google
ﺑﺎدﺋ ﺔ ﻟﻠ ﺴﻄﺮﺑ ًﻘﺎ .وﻣﻊ ذﻟﻚ ،ﻧﻈ ًﺮا ﻟﻌﺪم وﺟﻮد ﻣ ﺴﺎﻓ ﺔ
ﺘﻢﺳﺎ
ﺘﻴﻦ ﻣﺮة واﺣﺪة ﻟﻜﻞﺳﺎﺣﺮ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ ،ﻛﻤﺎ رأﻳ
ﺒﻮﻋ
ﺗﻴﻦ ﻣﻄ
ﺒﺎر
ﺘﻜﺮر أول ﻋ
ﺗ
ﺒﺎدﺋ ﺔ
ﺗﺠﻨ ﺐ أﺧﻄﺎء اﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﺑﻘ ﺔ ،ﻛﺎﻧ ﺖ
ﺜﻠ ﺔ اﻟ ﺴﺎ
ﺑﺎﻟﺨﻂ اﻟﻤﻮﺟﻮد ﻓﻮﻗﻪ .ﻓ ﻲ اﻷﻣﺒﺮﻣﺠﻴ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻢﺗﻮﺻﻴﻞﺳﻄﺮ واﺣﺪ ﻣﻦ اﻟ
ﺘﻰﻳ
ﺘﺤﺪﻳﺪ ﻣ
ﺒﺎدﺋ ﺔ ﻟ
ﺘﺨﺪم Pythonاﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﺗﺴ
ﺑﺎدﺋ ﺔ ﻟﻬﺎ.ﺒﻊ اﻟﺮﺳﺎﺋﻞ إﱃ اﻟ ﺴﺤﺮة اﻟﻔﺮدﻳﻴﻦ ﺟﺰءًا ﻣﻦ ﺣﻠﻘ ﺔ forﻷﻧﻪﺗﻢ وﺿﻊ ﻣ ﺴﺎﻓ ﺔ
ﺘ ﻲﺗﻄ
اﻷﺳﻄﺮ اﻟ
ﺘﻮﻳﺎ ت
ﺒﺮﻣﺠﻴ ﺔ ﻋﲆ ﻋﺪة ﻣ ﺴ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻞ ﻣﻦ اﻟ
ﺑﺎدﺋ ﺔ ﻟﻜﺘﻼﺣﻆ وﺟﻮد ﻣ ﺴﺎﻓ ﺔ
ﺑﺮاﻣﺞ Pythonاﻷﻃﻮل ،ﺳﺋﻴ ﺔ واﺿﺤ ﺔ .ﻓ ﻲ
ﺑﻨﻴ ﺔ ﻣﺮ
ﺑﺪﻗ ﺔ وﻣﻨ ﺴﻘ ﺔ
ﺒﺮﻧﺎﻣﺞ.
ﺘﻨﻈﻴﻢ اﻟﻌﺎم ﻟﻠ
ﺘ ﺴﺎ ب ﻓﻜﺮة ﻋﺎﻣ ﺔ ﻋﻦ اﻟ
ﺒﺎدﺋ ﺔ ﻫﺬه ﻋﲆ اﻛ
ﺘﻮﻳﺎ ت اﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﺘﻠﻔ ﺔ.ﺗ ﺴﺎﻋﺪك ﻣ ﺴ
ﻣﺨ
ﺒﺎدﺋ ﺔ
ﺑﻌﺾ أﺧﻄﺎء اﻟﻤ ﺴﺎﻓ ﺔ اﻟﺒﺔ
ﺘﺎج إﱃ ﻣﺮاﻗ
ﺘﺤﺒﺎدﺋ ﺔ اﻟﺼﺤﻴﺤ ﺔ ،ﺳ
ﺘﻤﺪ ﻋﲆ اﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﺘ ﻲﺗﻌ
ﺒﺮﻣﺠﻴ ﺔ اﻟ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑ ﺔ اﻟ
ﺘﺎ
ﺒﺪأ ﻓ ﻲ ﻛ
ﻋﻨﺪﻣﺎﺗ
ﺗﺼﺤﻴﺤﻬﺎ ﻋﻨﺪ
ﺒﻞ و
ﺘﻘﺒﻬﺎ ﻓ ﻲ اﻟﻤ ﺴ
ﺜﻠ ﺔ ﻋﲆ ﻫﺬه اﻷﺧﻄﺎء اﻵن ﻋﲆﺗﺠﻨ
ﺘ ﺴﺎﻋﺪك رؤﻳ ﺔ أﻣ
ﺑﺎدﺋ ﺔ.ﺳﺘﺎج إﱃ ﻣ ﺴﺎﻓ ﺔ
ﺘ ﻲﺗﺤ
ﺘﻞ اﻟ
ﺑﺎدﺋ ﺔ ﻟﻠﻜوﺿﻊ ﻣ ﺴﺎﻓ ﺔ
ﺒﺎدﺋ ﺔ
ﻧ ﺴﻴﺎن اﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﺜﻮن:
ﺑﺎﻳﺘﺬﻛﺮك
ﺒﺎرة forﻓ ﻲ ﺣﻠﻘ ﺔ .إذا ﻧ ﺴﻴ ﺖ ،ﻓ ﺴ
ﺑﻌﺪ ﻋﺑﺎدﺋ ﺔ ﻟﻠ ﺴﻄﺮﺑﻮﺿﻊ ﻣ ﺴﺎﻓ ﺔﺋﻤﺎ
ﻗﻢ دا ً
اﻟ ﺴﺤﺮةpy . اﻟ ﺴﺤﺮة ]'= ['alice'، 'david'، 'carolinaﻟﻠ ﺴﺎﺣﺮ ﻓ ﻲ اﻟ ﺴﺤﺮة)u print :اﻟ ﺴﺎﺣﺮ(
57-اﻟﻌﻤﻞ ﻣﻊ اﻟﻘﻮاﺋﻢ
Machine Translated by Google
ﺘﻠ ﺔ
ﺑﺎدﺋ ﺔ ﻟﻜﺑﺎدﺋ ﺔ:ﺗﻮﻗﻊ وﺟﻮد ﻣ ﺴﺎﻓ ﺔﺧﻄﺄ ﻣ ﺴﺎﻓ ﺔ
ﺑﻊ
58اﻟﻔﺼﻞ اﻟﺮا
Machine Translated by Google
ﺑﻌﺎﻟﻢ "!Pythonﺒﺎ
= "hello_world.py messageﻣﺮﺣ ً
ﺒﺎﻋ ﺔ )رﺳﺎﻟ ﺔ(
uﻃ
ﺘﻮﻗﻌ ﺔ
ﺑﺎدﺋ ﺔ ﻏﻴﺮ ﻣﺑﺎدﺋ ﺔ :ﻣ ﺴﺎﻓ ﺔﺧﻄﺄ ﻣ ﺴﺎﻓ ﺔ
ﺒﺐ
ﺑﺎدﺋ ﺔ ﻓﻘﻂ ﻋﻨﺪﻣﺎﻳﻜﻮن ﻟﺪﻳﻚﺳﺘﻮﻗﻌ ﺔ ﻋﻦ ﻃﺮﻳﻖ ﻋﻤﻞ ﻣ ﺴﺎﻓ ﺔ
ﺒﺎدﺋ ﺔ ﻏﻴﺮ اﻟﻤ
ﻳﻤﻜﻨﻚﺗﺠﻨ ﺐ أﺧﻄﺎء اﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﺑﺎدﺋ ﺔ ﻫ ﻲﺘﺮك ﻣ ﺴﺎﻓ ﺔ
ﺘ ﻲﻳﺠ ﺐ أنﺗ
ﺒﻬﺎ ﻓ ﻲ ﻫﺬه اﻟﻤﺮﺣﻠ ﺔ ،اﻷﺳﻄﺮ اﻟﻮﺣﻴﺪة اﻟ
ﺘﺘ ﻲﺗﻜ
ﺒﺮاﻣﺞ اﻟ
ﺑﺬﻟﻚ .ﻓ ﻲ اﻟﻣﺤﺪد ﻟﻠﻘﻴﺎم
ﺘ ﻲﺗﺮﻳﺪﺗﻜﺮار ﻫﺎ ﻟﻜﻞ ﻋﻨﺼﺮ ﻓ ﻲ ﺣﻠﻘ ﺔ for .
اﻹﺟﺮاءا ت اﻟ
ً
ﻋﺮﺿﺎﺳﺤﺮﻳًﺎ راﺋﻌً ﺎ!"( ")u printﺷﻜ ﺮًا ﻟﻠﺠﻤﻴﻊ ،ﻟﻘﺪ ﻛﺎن
ً
ﻋﺮﺿﺎﺳﺤﺮﻳًﺎ راﺋﻌً ﺎ! ﺷﻜ ﺮًا ﻟﻠﺠﻤﻴﻊ ،ﻟﻘﺪ ﻛﺎن
دﻳﻔﻴﺪ ،ﻛﺎﻧ ﺖﺗﻠﻚ ﺧﺪﻋ ﺔ ﻋﻈﻴﻤ ﺔ!
ﺘﺎﻟﻴ ﺔ ،دﻳﻔﻴﺪ.
ﺘﻚ اﻟ
ﺘﻈﺎرﻷرى ﺧﺪﻋ
ﻻ أﻃﻴﻖ اﻻﻧ
ً
ﻋﺮﺿﺎﺳﺤﺮﻳًﺎ راﺋﻌً ﺎ! ﺷﻜ ﺮًا ﻟﻠﺠﻤﻴﻊ ،ﻟﻘﺪ ﻛﺎن
ﻛﺎروﻟﻴﻨﺎ ،ﻛﺎﻧ ﺖﺗﻠﻚ ﺧﺪﻋ ﺔ ﻋﻈﻴﻤ ﺔ!
ﺘﻚ اﻟﻘﺎدﻣ ﺔ ،ﻛﺎروﻟﻴﻨﺎ.
ﺘﻈﺎرﻷرى ﺧﺪﻋ
ﻻ أﻃﻴﻖ اﻻﻧ
ً
ﻋﺮﺿﺎﺳﺤﺮﻳًﺎ راﺋﻌً ﺎ! ﺷﻜ ﺮًا ﻟﻠﺠﻤﻴﻊ ،ﻟﻘﺪ ﻛﺎن
59-اﻟﻌﻤﻞ ﻣﻊ اﻟﻘﻮاﺋﻢ
Machine Translated by Google
ﺒﺎدﺋ ﺔ
ﺑﻪ ﻟﻠﺨﻄﺄ اﻟﻤﻮﺟﻮد ﻓ ﻲ "ﻧ ﺴﻴﺎن اﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﻫﺬا ﺧﻄﺄ ﻣﻨﻄﻘ ﻲ آﺧﺮ ،ﻣﺸﺎ
ﺑﻚ ،ﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﺨﺪام اﻟ
ﺑﺎﺳﺧﻄﻮط إﺿﺎﻓﻴ ﺔ "ﻓ ﻲ اﻟﺼﻔﺤ ﺔ 58.ﻧﻈ ﺮًاﻷن Pythonﻻﺗﻌﺮف ﻣﺎﺗﺤﺎولﺗﺤﻘﻴﻘﻪ
ﺑﺼﻴﻐ ﺔ ﺻﺤﻴﺤ ﺔ .إذاﺗﻢﺗﻜﺮار أﺣﺪ اﻹﺟﺮاءا ت ﻋﺪة ﻣﺮا ت ﻋﻨﺪﻣﺎ ﻛﺎنﺑﺔ
ﺘﻮﺒﺮﻣﺠﻴ ﺔ اﻟﻤﻜ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﺸﻐﻴﻞ ﺟﻤﻴﻊ اﻟ
ﺑﻓ ﺴﻮفﺗﻘﻮم
ﺘﺎج ﻓﻘﻂ إﱃ إﻟﻐﺎءﺗﺤﺪﻳﺪ رﻣﺰ ﻫﺬا اﻹﺟﺮاء.
ﻳﺠ ﺐﺗﻨﻔﻴﺬه ﻣﺮة واﺣﺪة ﻓﻘﻂ ،ﻓﺤﺪد ﻣﺎ إذا ﻛﻨ ﺖﺗﺤ
ﻧ ﺴﻴﺎن اﻟﻘﻮﻟﻮن
ﺑﺪاﻳ ﺔ ﺣﻠﻘ ﺔ.ﺘﺎﻟ ﻲ ﻋﲆ أﻧﻪ
ﺜﻮن أنﺗﻔ ﺴﺮ اﻟ ﺴﻄﺮ اﻟ
ﺑﺎﻳ
ﺘﺎن ﻓ ﻲ ﻧﻬﺎﻳ ﺔﺗﻌﻠﻴﻤ ﺔ for
ﺒﺮ اﻟﻨﻘﻄ
ﻳﺨ
ﺒﺎﻋ ﺔ )ﺳﺎﺣﺮ(
ﻃ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺘﺰا
ﺒﻴﺘﺨﺪام اﺳﻢ اﻟ
ﺑﺎﺳﺒﺎﻋ ﺔ ﺟﻤﻠ ﺔ
ﺘﻌﺪﻳﻞ ﺣﻠﻘ ﺔ forﻟﻄ
ﺑ•ﻗﻢ
ﺑ ﺴﻴﻄ ﺔﺒﺎرة
ﺘﻮي ﻋﲆ ﻋ
ﺘﺰاﻳﺠ ﺐ أنﻳﻜﻮن ﻟﺪﻳﻚﺳﻄﺮ إﺧﺮاج واﺣﺪﻳﺤ
ﺑﻴﺘﺰا ﻓﻘﻂ .ﻟﻜﻞ
ﺒﻴ ﺑﺪﻻ ً ﻣﻦ ﻃ
ﺒﺎﻋ ﺔ اﺳﻢ اﻟ
ﺒﺮوﻧ ﻲ.
ﺒﻴﺘﺰا اﻟ
ﺑﻴﺜﻞ أﻧﺎ أﺣ ﺐ
ﻣ
ﺜﻞ أي ﻣﻦ ﻫﺬه
ﺒﺎﻋ ﺔ ﺟﻤﻠ ﺔ ﻣ
ﺑﻴﻦ ﻫﺬه اﻟﺤﻴﻮاﻧﺎ ت.ﻳﻤﻜﻨﻚ ﻃﺘﺮﻛ ﺔ
ﺒﺮﻧﺎﻣﺞﻳﻮﺿﺢ اﻟﻘﻮاﺳﻢ اﻟﻤﺸ
•أﺿﻒﺳﻄ ﺮًا ﻓ ﻲ ﻧﻬﺎﻳ ﺔ اﻟ
ﺘﺠﻌﻞ ﺣﻴﻮاﻧًﺎ أﻟﻴ ًﻔﺎ راﺋﻌً ﺎ!
اﻟﺤﻴﻮاﻧﺎ تﺳ
ﺑﻊ
60اﻟﻔﺼﻞ اﻟﺮا
Machine Translated by Google
ﺗﻮﻓﺮ Pythonﻋﺪدًا
ﺘﺨﺰﻳﻦ ﻣﺠﻤﻮﻋﺎ ت ﻣﻦ اﻷرﻗﺎم ،و
ﺜﺎﻟﻴ ﺔ ﻟ
ﺒﺮ اﻟﻘﻮاﺋﻢ ﻣ
ﺘﺗﻌ
ﺘﻌﻤﻞ
ﺑﺸﻜﻞ ﻓﻌﺎل ،ﺳﺘﺨﺪام ﻫﺬه اﻷدوا ت
ﺑﻤﺠﺮد أنﺗﻔﻬﻢ ﻛﻴﻔﻴ ﺔ اﺳﺑﻜﻔﺎءة ﻣﻊ ﻗﻮاﺋﻢ اﻷرﻗﺎم.أدوا تﺗ ﺴﺎﻋﺪك ﻋﲆ اﻟﻌﻤﻞ
ﺘﻮي ﻗﻮاﺋﻤﻚ ﻋﲆ ﻣﻼﻳﻴﻦ اﻟﻌﻨﺎﺻﺮ.
ﺘﻰ ﻋﻨﺪﻣﺎﺗﺤ
ﺑﺸﻜﻞ ﺟﻴﺪ ﺣﺑﻚﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
اﻟ
1
2
3
4
ﺜﻴ ﺮًا
ﺘﺮاه ﻛ
ﺘﻴﺠ ﺔ أﺧﺮى ﻟﻠ ﺴﻠﻮك اﻟﻮاﺣﺪﺗﻠﻮ اﻵﺧﺮ اﻟﺬيﺳ
ﺒﻊ اﻟﻨﻄﺎق )(اﻷرﻗﺎم ﻣﻦ 1إﱃ 4.و ﻫﺬه ﻧ
ﺜﺎل ،ﻳﻄ
ﻓ ﻲ ﻫﺬا اﻟﻤ
ﺘﻮﻗﻒ ﻋﻨﺪﻣﺎ
ﺗﺘ ﻲﺗﻘﺪﻣﻬﺎ ﻟﻬﺎ ،و
ﺜﻮن ﻓ ﻲ اﻟﻌﺪ ﻣﻦ اﻟﻘﻴﻤ ﺔ اﻷوﱃ اﻟ
ﺑﺎﻳﺑﺪءﺒ ﺐ اﻟﺪاﻟ ﺔ )( rangeﻓ ﻲ
ﺘﺴﺒﺮﻣﺠ ﺔ.ﺗ
ﻓ ﻲ ﻟﻐﺎ ت اﻟ
ﺘ ﻲﺗﻘﺪﻣﻬﺎ.
ﺜﺎﻧﻴ ﺔ اﻟ
ﺗﺼﻞ إﱃ اﻟﻘﻴﻤ ﺔ اﻟ
1
2
3
4
5
ﺘﻴﻦ
61-اﻟﻌﻤﻞ ﻣﻊ اﻟﻘﺎﺋﻤ
Machine Translated by Google
ﺘﻴﺠ ﺔ:
و ﻫﺬه ﻫ ﻲ اﻟﻨ
][1 ، 2 ، 3 ، 4 ، 5
ﺒﺎﻋ ﺔ
))even_numbers.py even_numbers = list (range (2،11،2ﻃ
)(even_numbers
ﺘﺠﺎوز اﻟﻘﻴﻤ ﺔ
ﺘﻰﺗﺼﻞ أوﺗ
ﺘﻜﺮر ﺣ
ﺑﺸﻜﻞ ﻣ
ﺛﻢﺗﻀﻴﻒ 2إﱃﺗﻠﻚ اﻟﻘﻴﻤ ﺔ.ﺗﻀﻴﻒ 2
ﺑﺎﻟﻘﻴﻤ ﺔ 2
ﺒﺪأ اﻟﺪاﻟ ﺔ )( range
ﺜﺎل ،ﺗ
ﻓ ﻲ ﻫﺬا اﻟﻤ
ﺘﻴﺠ ﺔ:
ﺘﺞ ﻫﺬه اﻟﻨ
ﺗﻨاﻟﻨﻬﺎﺋﻴ ﺔ 11 ، ،و
][2 ، 4 ، 6 ، 8 ، 10
ﺑﻌﺎ ت ][ =
squares.py uاﻟﻤﺮ
vﻟﻠﻘﻴﻤ ﺔ ﻓ ﻲ اﻟﻨﻄﺎق (1،11):
ﺑﻊ =اﻟﻘﻴﻤ ﺔ ** 2
ﻣﺮ
ﺑﻊ(
)x squares.appendﻣﺮ
ﺑﻌﺎ ت(
ﺒﺎﻋ ﺔ ص )ﻣﺮ
ﻃ
ﺗﺨﺰﻳﻨﻬﺎ ﻓ ﻲ
ﺜﺎﻧﻴ ﺔ و
ﺘﻢ رﻓﻊ اﻟﻘﻴﻤ ﺔ اﻟﺤﺎﻟﻴ ﺔ إﱃ اﻟﻘﻮة اﻟ
ﺘﺨﺪام وﻇﻴﻔ ﺔ اﻟﻨﻄﺎق () .داﺧﻞ اﻟﺤﻠﻘ ﺔ ،ﻳ
ﺑﺎﺳ
ﺣﻠﻘ ﺔ ﻣﻦ ﺧﻼل ﻛﻞ ﻗﻴﻤ ﺔ ﻣﻦ 1إﱃ 10
ﺑﻊ
62اﻟﻔﺼﻞ اﻟﺮا
Machine Translated by Google
ﺘﻢ
ﺘﻬﺎءﺗﺸﻐﻴﻞ اﻟﺤﻠﻘ ﺔ ،ﺗ
ﺑﻌﺎ ت اﻟﻘﺎﺋﻤ ﺔ .أﺧﻴ ﺮًا ،ﻋﻨﺪ اﻧ
ﺑﻤﺮﺑﻊ
ﺘﻢ إﻟﺤﺎق ﻛﻞ ﻗﻴﻤ ﺔ ﺟﺪﻳﺪة ﻟﻠﻤﺮ
ﺑﻊ ﻓ ﻲ w.ﻋﻨﺪ x ،ﻳ
ﺘﻐﻴﺮ ﻣﺮ
ﻣ
ﺑﻌﺎ ت ﻋﲆ y:
ﺒﺎﻋ ﺔ ﻗﺎﺋﻤ ﺔ اﻟﻤﺮ
ﻃ
][1 ، 4 ، 9 ، 16 ، 25 ، 36 ، 49 ، 64 ، 81 ، 100
ﺑﻌﺎ ت ][ =
اﻟﻤﺮ
ﻟﻠﻘﻴﻤ ﺔ ﻓ ﻲ اﻟﻨﻄﺎق (1،11):
)u squares.appendاﻟﻘﻴﻤ ﺔ )** 2
ﺑﻌﺎ ت(
ﺒﺎﻋ ﺔ )ﻣﺮ
ﻃ
ﺑﻌﺎ ت.
ﺑﻨﻔ ﺲ ﻋﻤﻞ اﻷﺳﻄﺮ ﻓ ﻲ wو xﻓ ﻲ اﻟﻤﺮ
ﻳﻘﻮم اﻟﻜﻮد ﻓ ﻲ u
ﺑﻌﺎ ت.
ﺑﻘﺎﺋﻤ ﺔ اﻟﻤﺮﺘﻢ إﻟﺤﺎﻗﻬﺎ ﻋﲆ اﻟﻔﻮر
ﺛﻢﻳﺜﺎﻧﻴ ﺔ
ﺘﻢ رﻓﻊ ﻛﻞ ﻗﻴﻤ ﺔ ﻓ ﻲ اﻟﺤﻠﻘ ﺔ إﱃ اﻟﻘﻮة اﻟ
ﻳ
ﺘﻐﻴﺮ
ﺘﺨﺪام ﻣ
ﺑﻌﺾ اﻷﺣﻴﺎن ،ﻳﺆدي اﺳﺜﺮﺗﻌﻘﻴﺪًا .ﻓ ﻲ
ﺘﻴﻦ ﻋﻨﺪ إﻧﺸﺎء ﻗﻮاﺋﻢ أﻛ
ﺗﻴﻦ اﻟﻄﺮﻳﻘ
ﺘﺨﺪام أي ﻣﻦ ﻫﺎ
ﻳﻤﻜﻨﻚ اﺳ
ﺑﺔﺑﺸﻜﻞ ﻏﻴﺮ ﺿﺮوري .رﻛﺰ أوﻻ ً ﻋﲆ ﻛ
ﺘﺎ ﺒﺮﻣﺠﻴ ﺔ ؛ ﻓ ﻲ أﺣﻴﺎن أﺧﺮىﻳﺠﻌﻞ اﻟﺸﻔﺮة ﻃﻮﻳﻠ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﻣﺆﻗ ﺖ إﱃﺗ ﺴﻬﻴﻞ ﻗﺮاءة اﻟ
ﺑﻮﺿﻮح ،واﻟﺬيﻳﻔﻌﻞ ﻣﺎﺗﺮﻳﺪه أنﻳﻔﻌﻠﻪ.اﻟﻜﻮد اﻟﺬيﺗﻔﻬﻤﻪ
ﺑﻚ.ﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺛﻨﺎء ﻣﺮاﺟﻌ ﺔ اﻟ
ﺜﺮ ﻓﺎﻋﻠﻴ ﺔ أ
ﺑﺤ ﺚ ﻋﻦ ﻃﺮق أﻛ
ﺛﻢ ا
ﺑ ﺴﻬﻮﻟ ﺔ ﻣﻊﺘﻨﺎﺳ ﺐ
ﺘﺼﺮة ﻣﻦ اأﻟﺮﻗﺎم ﻟﻜ ﻲﺗ
ﺜﻠ ﺔ اﻟﻮاردة ﻓ ﻲ ﻫﺬا اﻟﻘ ﺴﻢ ﻗﻮاﺋﻢ ﻣﺨ
ﺘﺨﺪم اأﻟﻤ
ال ﻣﺎﻟﺤﻈ ﺔﺗ ﺴ
ﺜﺮ ﻣﻦ اﻷرﻗﺎم.
ﺘﻮي ﻋﲆ ﻣﻠﻴﻮن أو أﻛ
ﺘﻚﺗﺤ
ﺑﺸﻜﻞ ﺟﻴﺪ إذا ﻛﺎﻧ ﺖ ﻗﺎﺋﻤﺻﻔﺤ ﺔ.ﺳﻴﻌﻤﻠﻮن
ﻗﺎﺋﻤ ﺔ اﻟﻔﻬﻢ
ﺘﻴﺢ ﻟﻚ
ﺒﺮﻣﺠﻴ ﺔ.ﺗ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑﻌ ﺔ أﺳﻄﺮ ﻣﻦ اﻟ
ﺛ ﺔ أو أر
ﺛﻼﺘﺨﺪام ﺑ ًﻘﺎ ﻹﻧﺸﺎء ﻣﺮ
ﺑﻌﺎ ت اﻟﻘﺎﺋﻤ ﺔ ﻣﻦ اﺳ ﺘﻜﻮن اﻟﻨﻬﺞ اﻟﻤﻮﺻﻮفﺳﺎ
ﻳ
ﺑﻴﻦ ﺣﻠﻘ ﺔ forﺒﺮﻣﺠﻴ ﺔ.ﻳﺠﻤﻊ ﻓﻬﻢ اﻟﻘﺎﺋﻤ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﻗﺎﺋﻤ ﺔ اﻟﻔﻬﻢ إﻧﺸﺎء ﻫﺬه اﻟﻘﺎﺋﻤ ﺔ ﻧﻔ ﺴﻬﺎ ﻓ ﻲﺳﻄﺮ واﺣﺪ ﻓﻘﻂ ﻣﻦ اﻟ
ﺘﺪﺋﻴﻦ ،
ﺒﺋﻤﺎ ﻟﻠﻤ
ﺘﻢﺗﻘﺪﻳﻢ ﻋﻤﻠﻴﺎ ت ﻓﻬﻢ اﻟﻘﺎﺋﻤ ﺔ دا ً
وإﻧﺸﺎء ﻋﻨﺎﺻﺮ ﺟﺪﻳﺪة ﻓ ﻲﺳﻄﺮ واﺣﺪ ،وﻳﻠﺤﻖﺗﻠﻘﺎﺋ ًﻴﺎ ﻛﻞ ﻋﻨﺼﺮ ﺟﺪﻳﺪ .ﻻﻳ
ﺒﺤ ﺚ ﻓ ﻲ ﻛﻮد اﻷﺷﺨﺎص اﻵﺧﺮﻳﻦ.
ﺒﺪأ ﻓ ﻲ اﻟ
ﺑﻤﺠﺮد أنﺗﺘﺮا ﻫﺎ
ﺘﻀﻤﻴﻨﻬﺎ ﻫﻨﺎﻷﻧﻚ ﻋﲆ اﻷرﺟﺢﺳ
ﺑوﻟﻜﻨ ﻲ ﻗﻤ ﺖ
ﺘﻴﻦ
63-اﻟﻌﻤﻞ ﻣﻊ اﻟﻘﺎﺋﻤ
Machine Translated by Google
ﺘﻬﺎ
ﺘ ﻲ رأﻳ
ﺑﻌﺎ ت اﻟ
ﺒﻨ ﻲ ﻧﻔ ﺲ ﻗﺎﺋﻤ ﺔ أرﻗﺎم اﻟﻤﺮ
ﺘﺎﻟ ﻲﻳ
ﺜﺎل اﻟ
اﻟﻤ
ﺘﺨﺪم ﻗﺎﺋﻤ ﺔ اﻟﻔﻬﻢ:
ﺑﻖ وﻟﻜﻨﻪﻳ ﺴ
ﻓ ﻲ وﻗ ﺖﺳﺎ
ﺑﻌﺎ ت
اﻟﻤﺮ ﺑﻌﺎ ت =]اﻟﻘﻴﻤ ﺔ ** 2ﻟﻠﻘﻴﻤ ﺔ ﻓ ﻲ اﻟﻨﻄﺎق ])(1،11
ﻣﺮ
ﺑﻌﺎ ت(
ﺒﺎﻋ ﺔ )ﻣﺮ
ﻃ
ﺑ ًﻘﺎ:
ﺘﻬﺎﺳﺎ
ﺘ ﻲ رأﻳ
ﺑﻌ ﺔ اﻟ
ﺘﻴﺠ ﺔ ﻫ ﻲ ﻧﻔ ﺲ ﻗﺎﺋﻤ ﺔ اﻷرﻗﺎم اﻟﻤﺮ
اﻟﻨ
][1 ، 4 ، 9 ، 16 ، 25 ، 36 ، 49 ، 64 ، 81 ، 100
ﺘﺠﺪ
ﺑﻚ ،ﻟﻜﻨﻚﺳﺑ ﺔ ﻗﺎﺋﻤ ﺔ اﻟﻔﻬﻢ اﻟﺨﺎﺻ ﺔ
ﺘﺎ
ﺒﺎ ﻟﻜ
ﺘﻄﻠ ﺐ اﻷﻣﺮﺗﺪرﻳ ً
ﻳ
ﺑﺎﻟﺮاﺣ ﺔ ﻋﻨﺪ إﻧﺸﺎء ﻗﻮاﺋﻢ ﻋﺎدﻳ ﺔ.ﺑﻤﺠﺮد أنﺗﺸﻌﺮﺘﻤﺎم
ﺑﺎﻻ ﻫإﻧﻬﺎ ﺟﺪﻳﺮة
ﺑﺔ
ﺘﺎ
ﺘﻜﺮار ،ﻓﻜﺮ ﻓ ﻲ ﻛ
ﺑﺎﻟﺒﺪأ ﻓ ﻲ اﻟﺸﻌﻮر
ﺗﺒﺮﻣﺠﻴ ﺔ ﻹﻧﺸﺎء ﻗﻮاﺋﻢ و
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑﻌ ﺔ أﺳﻄﺮ ﻣﻦ اﻟ
ﺛ ﺔ أو أر
ﺛﻼﺘﺐ
ﻋﻨﺪﻣﺎﺗﻜ
ﺑﻚ.ﻣﻔﺎ ﻫﻴﻢ اﻟﻘﺎﺋﻤ ﺔ اﻟﺨﺎﺻ ﺔ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺘﻐﺮق
ﺒﺎﻋ ﺔ اﻷرﻗﺎم) .إذا اﺳ
ﺘﺨﺪم ﺣﻠﻘ ﺔ forﻟﻄ
ﺛﻢ اﺳﺑﺎﻷرﻗﺎم ﻣﻦ واﺣﺪ إﱃ ﻣﻠﻴﻮن ،ﺑﻌﻤﻞ ﻗﺎﺋﻤ ﺔ4-4.اﻟﻤﻠﻴﻮن :ﻗﻢ
ﺑﺎﻟﻀﻐﻂ ﻋﲆ ctrl-Cأو ﻋﻦ ﻃﺮﻳﻖ إﻏﻼق ﻧﺎﻓﺬة اﻹﺧﺮاج(.ﺑﺈﻳﻘﺎﻓﻪﺘًﺎ ﻃﻮﻳ ﻼ ً ،ﻓﻘﻢ
اﻹﺧﺮاج وﻗ
ﺘﺄﻛﺪ ﻣﻦ أن
ﺘﺨﺪم )( minو )( maxﻟﻠ
ﺛﻢ اﺳﺑﺎﻷرﻗﺎم ﻣﻦ واﺣﺪ إﱃ ﻣﻠﻴﻮن ،ﺑﻌﻤﻞ ﻗﺎﺋﻤ ﺔ4-5.ﺟﻤﻊ اﻟﻤﻠﻴﻮن :ﻗﻢ
ﺜﻮن ﻓ ﻲ
ﺑﺎﻳ ﺘﺨﺪم أ ً
ﻳﻀﺎ اﻟﺪاﻟ ﺔ )( sumﻟﻤﻌﺮﻓ ﺔ ﻣﺪىﺳﺮﻋ ﺔ ﺘﻬ ﻲ ﻋﻨﺪ ﻣﻠﻴﻮن .اﺳ
ﺗﻨﺑﺎﻟﻔﻌﻞ ﻣﻦ واﺣﺪ وﺒﺪأ
ﺘﻚﺗ
ﻗﺎﺋﻤ
إﺿﺎﻓ ﺔ ﻣﻠﻴﻮن رﻗﻢ.
ﺘﺨﺪم
ﺑﺎﻷرﻗﺎم اﻟﻔﺮدﻳ ﺔ ﻣﻦ 1إﱃ 20.اﺳﺜ ﺔ ﻟﻠﺪاﻟ ﺔ )( rangeﻟﻌﻤﻞ ﻗﺎﺋﻤ ﺔ
ﺜﺎﻟ
ﺘﺨﺪم اﻟﻮﺳﻴﻄ ﺔ اﻟ
4-6.اﻷرﻗﺎم اﻟﻔﺮدﻳ ﺔ :اﺳ
ﺒﺎﻋ ﺔ ﻛﻞ رﻗﻢ.
ﺣﻠﻘ ﺔ forﻟﻄ
ﺘﻚ.
ﺒﺎﻋ ﺔ اﻷرﻗﺎم ﻓ ﻲ ﻗﺎﺋﻤ
ﺘﺨﺪم ﺣﻠﻘ ﺔ forﻟﻄ
ﺑﻤﻀﺎﻋﻔﺎ ت 3ﻣﻦ 3إﱃ 30.اﺳﺑﻌﻤﻞ ﻗﺎﺋﻤ ﺔﺛﻴﺎ ت :ﻗﻢ
ﺛﻼ4-7.
ﺒﺎ ت.
ﺑﺄول 10ﻣﻜﻌﺘﺨﺪم ﻗﺎﺋﻤ ﺔ اﻟﻔﻬﻢ ﻹﻧﺸﺎء ﻗﺎﺋﻤ ﺔ
ﺒﺎ ت( :اﺳ
)4-9. Cube Comprehensionﻓﻬﻢ اﻟﻤﻜﻌ
ﺑﻊ
64اﻟﻔﺼﻞ اﻟﺮا
Machine Translated by Google
ﺗﺸﺮﻳﺢ ﻗﺎﺋﻤ ﺔ
ﺒﻴﻦ ﻓ ﻲ ﻓﺮﻳﻖ:
ﺑﺎﻟﻼﻋﺘﺎﻟ ﻲ ﻗﺎﺋﻤ ﺔ
ﺜﺎل اﻟ
ﺘﻀﻤﻦ اﻟﻤ
ﻳ
)player.py playerاﻟﻼﻋ
ﺒﻮن )][0: 3 ]'u print = ['charles'، 'martina'، 'michael'، 'florence'، 'eli
ﺑﻌ ﺔ ﻓ ﻲ
ﺜ ﺔ واﻟﺮا
ﺜﺎﻟ
ﺜﺎﻧﻴ ﺔ واﻟ
ﺜﺎل ،إذا ﻛﻨ ﺖﺗﺮﻳﺪ اﻟﻌﻨﺎﺻﺮ اﻟ
ﺒﻴﻞ اﻟﻤ
ﻳﻤﻜﻨﻚ إﻧﺸﺎء أي ﻣﺠﻤﻮﻋ ﺔ ﻓﺮﻋﻴ ﺔ ﻣﻦ اﻟﻘﺎﺋﻤ ﺔ .ﻋﲆﺳ
ﺘﻬ ﻲ ﻋﻨﺪ اﻟﻔﻬﺮس 4:
ﺗﻨﺒﺪأ اﻟﺸﺮﻳﺤ ﺔ ﻓ ﻲ اﻟﻔﻬﺮس 1و
ﺘﻗﺎﺋﻤ ﺔ ،ﻓ ﺴ
65-اﻟﻌﻤﻞ ﻣﻊ اﻟﻘﻮاﺋﻢ
Machine Translated by Google
ﺒﻴﻦ.
ﺘﻤﺮ ﻓ ﻲ اﻟﻌﻤﻞ ﻣﻊﺗﻐﻴﺮ ﺣﺠﻢ ﻗﺎﺋﻤ ﺔ اﻟﻼﻋ
ﺒﻴﻦ وﺳﻴ ﺴ
ﺛ ﺔ ﻻﻋ
ﺛﻼﺒﺎﻋ ﺔ أﺳﻤﺎء آﺧﺮ
ﻳﺆدي ﻫﺬا إﱃ ﻃ
ﺘﻜﺮار
ﺑﺎﻟ
ﺗﻘﻮم Python ﺑﺪﻻ ً ﻣﻦﺗﻜﺮار اﻟﻘﺎﺋﻤ ﺔ اﻟﻜﺎﻣﻠ ﺔ ﻟﻼﻋ
ﺒﻴﻦ ﻓ ﻲ u ،
ﺛ ﺔ اﻷوﱃ ﻓﻘﻂ:
ﺜﻼﻣﻦ ﺧﻼل اﻷﺳﻤﺎء اﻟ
ﺜﺎل ،ﻋﻨﺪﻣﺎﺗﻜﻮن
ﺒﻴﻞ اﻟﻤ
اﻟﺸﺮاﺋﺢ ﻣﻔﻴﺪة ﺟﺪًا ﻓ ﻲ ﻋﺪد ﻣﻦ اﻟﻤﻮاﻗﻒ .ﻋﲆﺳ
ﺘﻬ ﻲ ﻓﻴﻬﺎ ﻫﺬا اﻟﻼﻋ ﺐ ﻣﻦ اﻟﻠﻌ ﺐ.ﻳﻤﻜﻨﻚ
ﺘﻴﺠ ﺔ اﻟﻨﻬﺎﺋﻴ ﺔ ﻟﻼﻋ ﺐ إﱃ ﻗﺎﺋﻤ ﺔ ﻓ ﻲ ﻛﻞ ﻣﺮةﻳﻨ
ﺒ ﺔ ،ﻳﻤﻜﻨﻚ إﺿﺎﻓ ﺔ اﻟﻨ
ﻋﻨﺪ إﻧﺸﺎء ﻟﻌ
ﺘﻀﻤﻦ اﻟﺪرﺟﺎ ت
ﺗﻴ ﺐﺗﻨﺎزﻟ ﻲ وأﺧﺬ ﺷﺮﻳﺤ ﺔﺗ
ﺘﺮﺑﺛﻼ ث ﻧﻘﺎط ﻟﻼﻋ ﺐ ﻋﻦ ﻃﺮﻳﻖ ﻓﺮز اﻟﻘﺎﺋﻤ ﺔﺑﻌﺪ ذﻟﻚ اﻟﺤﺼﻮل ﻋﲆ أﻋﲆ
ﺘﺨﺪام اﻟﺸﺮاﺋﺢ ﻟﻠﻤﻌﺎﻟﺠ ﺔ
ﺒﻴﺎﻧﺎ ت ،ﻳﻤﻜﻨﻚ اﺳ
ﺜﻼ ث اﻷوﱃ ﻓﻘﻂ .ﻋﻨﺪﻣﺎﺗﻌﻤﻞ ﻣﻊ اﻟ
اﻟ
ﺑﻊ
66اﻟﻔﺼﻞ اﻟﺮا
Machine Translated by Google
ﻧ ﺴﺦ ﻗﺎﺋﻤ ﺔ
ﺘﻜﺸﻒ
ﺑﻨﺎ ًء ﻋﲆ اﻟﻘﺎﺋﻤ ﺔ اﻷوﱃ .دﻋﻨﺎ ﻧ ﺴﺗﻤﺎﻣﺎ
ً ﺑﻘﺎﺋﻤ ﺔ ﺣﺎﻟﻴ ﺔ وإﻧﺸﺎء ﻗﺎﺋﻤ ﺔ ﺟﺪﻳﺪةﺒﺪء
ﺘﺮﻏ ﺐ ﻓ ﻲ اﻟ
ﺜﻴﺮ ﻣﻦ اﻷﺣﻴﺎن ،ﺳ
ﻓ ﻲﻛ
ﻛﻴﻒﻳﻌﻤﻞ ﻧ ﺴﺦ ﻗﺎﺋﻤ ﺔ وﻧﻔﺤﺺ ﻣﻮﻗ ًﻔﺎ واﺣﺪًاﻳﻜﻮن ﻓﻴﻪ ﻧ ﺴﺦ ﻗﺎﺋﻤ ﺔ ﻣﻔﻴﺪًا.
ﺜﺎﻧ ﻲ ([:]).
ﺑﺤﺬف اﻟﻔﻬﺮس اﻷول واﻟﻔﻬﺮس اﻟﺑﺄﻛﻤﻠﻬﺎﺘﻀﻤﻦ اﻟﻘﺎﺋﻤ ﺔ اﻷﺻﻠﻴ ﺔ
ﻟﻨ ﺴﺦ ﻗﺎﺋﻤ ﺔ ،ﻳﻤﻜﻨﻚ ﻋﻤﻞ ﺷﺮﻳﺤ ﺔﺗ
ﺑﺄﻛﻤﻠﻬﺎ.ﺘﺞ ﻧ ﺴﺨ ﺔ ﻣﻦ اﻟﻘﺎﺋﻤ ﺔ
ﺗﻨﺑﺎﻟﻌﻨﺼﺮ اﻷﺧﻴﺮ ،وﺘﻬ ﻲ
ﺗﻨﺒﺪأ ﻣﻦ اﻟﻌﻨﺼﺮ اﻷول و
ﺑﻌﻤﻞ ﺷﺮﻳﺤ ﺔﺗ
ﺒﺮ Python
ﻫﺬاﻳﺨ
ﺘﻲ
ﺑﺎﻷﻃﻌﻤ ﺔ اﻟﻤﻔﻀﻠ ﺔ ﻟﺪﻳﻨﺎ وﻧﺮﻳﺪ ﻋﻤﻞ ﻗﺎﺋﻤ ﺔ ﻣﻨﻔﺼﻠ ﺔ ﻣﻦ اﻷﻃﻌﻤ ﺔ اﻟﺜﺎل ،ﺗﺨﻴﻞ أن ﻟﺪﻳﻨﺎ ﻗﺎﺋﻤ ﺔ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺘﻬﻢ ﻋﻦ ﻃﺮﻳﻖ ﻧ ﺴﺦ
ﺘﻤﻜﻦ ﻣﻦ إﻧﺸﺎء ﻗﺎﺋﻤ
ﺘﻰ ﻧ
ﺘﻰ اﻵن ،ﺣ
ﺘﻨﺎ ﺣ
ﺒﻬﺎ أﺣﺪ اﻷﺻﺪﻗﺎء .ﻫﺬا اﻟﺼﺪﻳﻖﻳﺤ ﺐ ﻛﻞ ﺷ ﻲء ﻓ ﻲ ﻗﺎﺋﻤ
ﻳﺤ
ﺘﻨﺎ:
ﻗﺎﺋﻤ
ﺘ ﻲ اﻟﻤﻔﻀﻠ ﺔ ﻫ ﻲ(":
ﺒﺎﻋ ﺔ )"أﻃﻌﻤ
ﻃ
ﺒﺎﻋ ﺔ )(my_foods
ﻃ
ﺒﻊ
ﺘﺒﻴﻦ أن ﻛﻞ ﻗﺎﺋﻤ ﺔﺗ
ﻃﻌﺎﻣﺎ ﺟﺪﻳﺪًا إﱃ ﻛﻞ ﻗﺎﺋﻤ ﺔ وﻧ
ً ﺘﻴﻦ ،ﺳﻨﻀﻴﻒ
ﺘﻴﻦ ﻣﻨﻔﺼﻠ
ﺑﺎﻟﻔﻌﻞ ﻗﺎﺋﻤﺒﺎ ت أن ﻟﺪﻳﻨﺎ
ﺛﻹ
اﻷﻃﻌﻤ ﺔ اﻟﻤﻔﻀﻠ ﺔ ﻟﻠﺸﺨﺺ اﻟﻤﻨﺎﺳ ﺐ:
ﺘ ﻲ اﻟﻤﻔﻀﻠ ﺔ ﻫ ﻲ(":
ﺒﺎﻋ ﺔ )"أﻃﻌﻤ
ﻃ
ﺒﺎﻋ ﺔ )(my_foods
ﻃ
ﺘﻴﻦ
67-اﻟﻌﻤﻞ ﻣﻊ اﻟﻘﺎﺋﻤ
Machine Translated by Google
ﺜﺎل
ﺑﻨ ﺴﺦ اﻟﻌﻨﺎﺻﺮ اﻷﺻﻠﻴ ﺔ ﻓ ﻲ my_foodsإﱃ اﻟﻘﺎﺋﻤ ﺔ اﻟﺠﺪﻳﺪة friend_foods ،ﻛﻤﺎ ﻓﻌﻠﻨﺎ ﻓ ﻲ اﻟﻤﻓ ﻲ uﻧﻘﻮم
ﻃﻌﺎﻣﺎ ﺟﺪﻳﺪًا إﱃ ﻛﻞ ﻗﺎﺋﻤ ﺔ :ﻓ ﻲ vﻧﻀﻴﻒ ""cannoliإﱃ my_foods ،وﻓ ﻲ wﻧﻀﻴﻒ
ً ﺑﻌﺪ ذﻟﻚ ،ﻧﻀﻴﻒﺑﻖ.
اﻟ ﺴﺎ
ﺟﺎ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ
ﺘﻴﻦ ﻟﻤﻌﺮﻓ ﺔ ﻣﺎ إذا ﻛﺎن ﻛﻞ ﻣﻦ ﻫﺬه اﻷﻃﻌﻤ ﺔ ﻣﺪر ً
ﺒﺎﻋ ﺔ اﻟﻘﺎﺋﻤ
ﺑﻄﺛﻢ ﻧﻘﻮم
"آﻳ ﺲ ﻛﺮﻳﻢ" إﱃ friend_foods.
ﺒ ﺔ.
اﻟﻤﻨﺎﺳ
اﻷﻃﻌﻤ ﺔ اﻟﻤﻔﻀﻠ ﺔ ﻟﺼﺪﻳﻘ ﻲ ﻫ ﻲ['pizza'، 'falafel'، 'carrot cake'، 'ice cream'] :
y
ُﻈﻬﺮ اﻹﺧﺮاج ﻓ ﻲ xأن ""cannoliﻳﻈﻬﺮ اﻵن ﻓ ﻲ ﻗﺎﺋﻤ ﺔ اﻷﻃﻌﻤ ﺔ اﻟﻤﻔﻀﻠ ﺔ ﻟﺪﻳﻨﺎ وﻟﻜﻦ "اﻵﻳ ﺲ ﻛﺮﻳﻢ" ﻻﻳﻈﻬﺮ.ﻳﻤﻜﻨﻨﺎ أن ﻧﺮى أن
ﻳ
ﺒ ﺴﺎﻃ ﺔ ﻣﺠﻤﻮﻋ ﺔ friend_foods
ﺑ"اﻵﻳ ﺲ ﻛﺮﻳﻢ"ﻳﻈﻬﺮ اﻵن ﻓ ﻲ ﻗﺎﺋﻤ ﺔ أﺻﺪﻗﺎﺋﻨﺎ وﻟﻜﻦ "ﻛﺎﻧﻮﻟ ﻲ" ﻻﻳﻈﻬﺮ .إذا ﻛﺎن ﻟﺪﻳﻨﺎ
#ﻫﺬا ﻻﻳﻌﻤﻞ:
u friend_foods = my_foods
")my_foods.appendﻛﺎﻧﻮﻟ ﻲ"(
")friend_foods.appendآﻳ ﺲ ﻛﺮﻳﻢ"(
ﺘ ﻲ اﻟﻤﻔﻀﻠ ﺔ ﻫ ﻲ(":
ﺒﺎﻋ ﺔ )"أﻃﻌﻤ
ﻃ
ﺒﺎﻋ ﺔ )(my_foods
ﻃ
ﺴﺎو ﻟـ my_foods.ﻓ ﻲ
ٍ ﺘﻌﻴﻴﻦ friend_foodsﻋﲆ ﻣ
ﺑﺑﺪﻻ ً ﻣﻦﺗﺨﺰﻳﻦ ﻧ ﺴﺨ ﺔ ﻣﻦ my_foodsﻓ ﻲ friend_foodsﻓ ﻲ u ،ﻗﻤﻨﺎ
ﺑﺎﻟﻔﻌﻞ ﻓ ﻲ my_foods ،ﻟﺬﻟﻚﻳﺸﻴﺮﺑﺎﻟﻘﺎﺋﻤ ﺔ اﻟﻤﻮﺟﻮدة
ﺘﻐﻴﺮ اﻟﺠﺪﻳﺪ friend_foods
ﺑﻂ اﻟﻤ
ﺑﺮ
ﺑﻨﺎء اﻟﺠﻤﻠ ﺔ ﻫﺬا Pythonﺒﺮ
اﻟﻮاﻗﻊ ،ﻳﺨ
ﺘﻴﺠ ﺔ ﻟﺬﻟﻚ ،ﻋﻨﺪﻣﺎ ﻧﻀﻴﻒ ""cannoliإﱃ my_foods ،ﺳﻴﻈﻬﺮ أ ً
ﻳﻀﺎ ﻓ ﻲ friend_foods. ﺘﻐﻴﺮﻳﻦ اﻵن إﱃ ﻧﻔ ﺲ اﻟﻘﺎﺋﻤ ﺔ .ﻧ
ﻛﻼ اﻟﻤ
ً
ﻣﻀﺎﻓﺎ إﱃ friend_foodsﻓﻘﻂ. ﺒﺪو
ﺘﻴﻦ ،ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أﻧﻪﻳ
ﺘﺎ اﻟﻘﺎﺋﻤ
ﺘﻈﻬﺮ ﻛﻠﻤ ﺔ "آﻳ ﺲ ﻛﺮﻳﻢ" ﻓ ﻲ ﻛﻠ
ﺜﻞ ،ﺳ
ﺑﺎﻟﻤ
و
ﺑﻊ
68اﻟﻔﺼﻞ اﻟﺮا
Machine Translated by Google
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺒﺮﻧﺎﻣﺞﺗﻘﻮم
ﺘﻬﺎ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ،أﺿﻒ ﻋﺪة أﺳﻄﺮ إﱃ ﻧﻬﺎﻳ ﺔ اﻟ
ﺒﺘﺘ ﻲﻛ
ﺒﺮاﻣﺞ اﻟ
ﺘﺨﺪام أﺣﺪ اﻟ
ﺑﺎﺳ4-10.اﻟﺸﺮاﺋﺢ:
ﺑﻤﺎﻳﻠ ﻲ:
ﺘﺨﺪم ﺷﺮﻳﺤ ﺔ ل
ﺛﻢ اﺳﺛ ﺔ اﻷوﱃ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ ﻫ ﻲ .:
ﺜﻼﺒﻊ اﻟﺮﺳﺎﻟ ﺔ ،اﻟﻌﻨﺎﺻﺮ اﻟ
•اﻃ
ﺒﺮﻧﺎﻣﺞ.
ﺛ ﺔ اﻷوﱃ ﻣﻦ ﻗﺎﺋﻤ ﺔ ذﻟﻚ اﻟ
ﺜﻼﺒﺎﻋ ﺔ اﻟﻌﻨﺎﺻﺮ اﻟ
ﻃ
ﺘﺼﻒ
ﺛ ﺔ ﻋﻨﺎﺻﺮ ﻣﻦ ﻣﻨ
ﺛﻼﺒﺎﻋ ﺔ
ﺘﺨﺪم ﺷﺮﻳﺤ ﺔ ﻟﻄ
ﺘﺼﻒ اﻟﻘﺎﺋﻤ ﺔ ﻫ ﻲ .:اﺳ
ﺛ ﺔ ﻋﻨﺎﺻﺮ ﻣﻦ ﻣﻨ
ﺛﻼﺒﻊ اﻟﺮﺳﺎﻟ ﺔ ،
•اﻃ
اﻟﻘﺎﺋﻤ ﺔ.
ﺛ ﺔ اﻷﺧﻴﺮة ﻓ ﻲ
ﺜﻼﺒﺎﻋ ﺔ اﻟﻌﻨﺎﺻﺮ اﻟ
ﺘﺨﺪم ﺷﺮﻳﺤ ﺔ ﻟﻄ
ﺛ ﺔ اﻷﺧﻴﺮة ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ ﻫ ﻲ .:اﺳ
ﺜﻼﺒﻊ اﻟﺮﺳﺎﻟ ﺔ ،اﻟﻌﻨﺎﺻﺮ اﻟ•اﻃ
اﻟﻘﺎﺋﻤ ﺔ.
ﺘﺰا ،وأﻃﻠﻖ
ﺒﻴﺑﻌﻤﻞ ﻧ ﺴﺨ ﺔ ﻣﻦ ﻗﺎﺋﻤ ﺔ اﻟﺘﻤﺮﻳﻦ )4-1ﺻﻔﺤ ﺔ 60).ﻗﻢ
ﺒﺮﻧﺎﻣﺠﻚ ﻣﻦ اﻟ
ﺑﺑﺪأ
ﺘﺰاك :ا
ﺑﻴﺘﺰاي ،
ﺑﻴ4-11.
ﻋﻠﻴﻬﺎ اﺳﻢ friend_pizzas.
ﺑﻤﺎﻳﻠ ﻲ:ﺛﻢ ﻗﻢ
ﺘﻲ
ﺒﻊ اﻟﺮﺳﺎﻟ ﺔﻳﺎ ﻣﻔﻀﻠ
ﺘﻴﻦ .اﻃ
ﺘﻴﻦ ﻣﻨﻔﺼﻠ
ﺒﺎ ت أن ﻟﺪﻳﻚ ﻗﺎﺋﻤ
ﺛ•إ
ﺘﺰا اﻟﻤﻔﻀﻠ ﺔ ﻟﺼﺪﻳﻘ ﻲ
ﺒﻴﺒﻊ اﻟﺮﺳﺎﻟ ﺔ ،واﻟ
ﺒﺎﻋ ﺔ اﻟﻘﺎﺋﻤ ﺔ اﻷوﱃ .اﻃ
ﺘﺨﺪم ﺣﻠﻘ ﺔ forﻟﻄ
ﺛﻢ اﺳﺘﺰا ﻫ ﻲ، :
ﺒﻴاﻟ
ﺒ ﺔ.
ﺘﺰا ﺟﺪﻳﺪة ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ اﻟﻤﻨﺎﺳ
ﺑﻴﺜﺎﻧﻴ ﺔ.ﺗﺄﻛﺪ ﻣﻦﺗﺨﺰﻳﻦ ﻛﻞ
ﺒﺎﻋ ﺔ اﻟﻘﺎﺋﻤ ﺔ اﻟ
ﺘﺨﺪم ﺣﻠﻘ ﺔ forﻟﻄ
ﺛﻢ اﺳﻫ ﻲ، :
ﻣﺠﻤﻮﻋﺎ ت
ﺒﺮﻧﺎﻣﺞ.ﺗﻌﺪ اﻟﻘﺪرة ﻋﲆﺗﻌﺪﻳﻞ اﻟﻘﻮاﺋﻢ
ﺘﻐﻴﺮ ﻃﻮال ﻋﻤﺮ اﻟ
ﺘ ﻲﻳﻤﻜﻦ أنﺗ
ﺘﺨﺰﻳﻦ ﻣﺠﻤﻮﻋﺎ ت اﻟﻌﻨﺎﺻﺮ اﻟ
ﺗﻌﻤﻞ اﻟﻘﻮاﺋﻢ ﺟﻴﺪًا ﻟ
ﺒ ﺔ .وﻣﻊ ذﻟﻚ ،ﻗﺪﺗﺮﻏ ﺐ
ﺘﺨﺪﻣﻴﻦ ﻋﲆ ﻣﻮﻗﻊ وﻳ ﺐ أو ﻗﺎﺋﻤ ﺔ ﺷﺨﺼﻴﺎ ت ﻓ ﻲ ﻟﻌ
ﺑﺸﻜﻞ ﺧﺎص ﻋﻨﺪ اﻟﻌﻤﻞ ﻣﻊ ﻗﺎﺋﻤ ﺔ ﻣ ﺴﻣﻬﻤ ﺔ
ﺜﻮن
ﺑﺎﻳﺒﻂ.ﺗﺸﻴﺮ
ﺑﺎﻟﻀﺑﻔﻌﻞ ذﻟﻚ
ﺘ ﻲ ﻻﻳﻤﻜﻦﺗﻐﻴﻴﺮ ﻫﺎ.ﻳ ﺴﻤﺢ ﻟﻚ Tuples
ﺑﺎﻟﻌﻨﺎﺻﺮ اﻟﺑﻌﺾ اﻷﺣﻴﺎن ﻓ ﻲ إﻧﺸﺎء ﻗﺎﺋﻤ ﺔﻓﻲ
ﺘﻐﻴﻴﺮ ﻣﺠﻤﻮﻋ ﺔ.
ﺑﻠ ﺔ ﻟﻠ
ﺗ ﺴﻤﻰ اﻟﻘﺎﺋﻤ ﺔ ﻏﻴﺮ اﻟﻘﺎ
ﺘﻐﻴﻴﺮ ،و
ﺑﻠ ﺔ ﻟﻠ
ﺘ ﻲ ﻻﻳﻤﻜﻦﺗﻐﻴﻴﺮ ﻫﺎ ﻋﲆ أﻧﻬﺎ ﻏﻴﺮ ﻗﺎ
إﱃ اﻟﻘﻴﻢ اﻟ
ﺗﺤﺪﻳﺪ Tuple
ﺑﻤﺠﺮدﺗﺤﺪﻳﺪ tuple ،ﻳﻤﻜﻨﻚ ﺑﺪﻻ ً ﻣﻦ اﻷﻗﻮاس اﻟﻤﺮ
ﺑﻌ ﺔ. ﺘﺨﺪام اﻷﻗﻮاس
ﺜﻨﺎء اﺳ
ﺘﺑﺎﺳﺜﻞ اﻟﻘﺎﺋﻤ ﺔ
ﺗﻤﺎﻣﺎ ﻣ
ً ﺒﺪو اﻟﻤﺠﻤﻮﻋ ﺔ
ﺗ
ﺗﻤﺎﻣﺎ ﻛﻤﺎﺗﻔﻌﻞ ﻣﻊ اﻟﻘﺎﺋﻤ ﺔ.
ً ﺘﺨﺪام ﻓﻬﺮس ﻛﻞ ﻋﻨﺼﺮ ،
ﺑﺎﺳاﻟﻮﺻﻮل إﱃ اﻟﻌﻨﺎﺻﺮ اﻟﻔﺮدﻳ ﺔ
ﺘﻐﻴﺮ
ﺘﺄﻛﺪ ﻣﻦ أن ﺣﺠﻤﻪ ﻻﻳ
ﺑﺤﺠﻢ ﻣﻌﻴﻦ ،ﻓﻴﻤﻜﻨﻨﺎ اﻟﺋﻤﺎ
ﺘﻄﻴﻞﻳﺠ ﺐ أنﻳﻜﻮن دا ً
ﺜﺎل ،إذا ﻛﺎن ﻟﺪﻳﻨﺎ ﻣ ﺴ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺑﻌﺎد ﻓ ﻲ ﻣﺠﻤﻮﻋ ﺔ:
ﻋﻦ ﻃﺮﻳﻖ وﺿﻊ اﻷ
ﺑﺪﻻ ً ﻣﻦ اﻟﻤﺮ
ﺑﻊ ﺘﺨﺪام اﻷﻗﻮاس
ﺑﺎﺳ
ﺑﻌﺎد اﻟﺼﻒ ﻋﻨﺪ u ،
ﻧﺤﺪد أ
ﺘﺨﺪﻣﻨﺎ ﻫﺎ ﻟﻠﻮﺻﻮل إﱃ
ﺘ ﻲ اﺳ
ﺘﺨﺪام ﻧﻔ ﺲ اﻟﺼﻴﻐ ﺔ اﻟ
ﺑﺎﺳﺒﻊ ﻛﻞ ﻋﻨﺼﺮ ﻓ ﻲ اﻟﻤﺠﻤﻮﻋ ﺔ ﻋﲆ ﺣﺪة ،
اﻗﻮاس .ﻓ ﻲ vﻧﻄ
اﻟﻌﻨﺎﺻﺮ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ:
200
50
ﺘﻄﻴﻞ.
ﺑﻌﺎد اﻟﻤ ﺴ
ﺒﺮﻣﺠﻴ ﺔﺗﻐﻴﻴﺮ أ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺜﻴﺮ ﺧﻄﺄ ﻋﻨﺪﻣﺎﻳﺤﺎولﺳﻄﺮ ﻣﻦ اﻟ
ﻫﺬا ﻣﻔﻴﺪﻷﻧﻨﺎ ﻧﺮﻳﺪ ﻣﻦ Pythonأنﺗ
ﺒﻌﺪ(
ﺒﺎﻋ ﺔ )اﻟ
ﻃ
200
50
ﺑﻊ
70اﻟﻔﺼﻞ اﻟﺮا
Machine Translated by Google
ﺑ ﺔ ﻓﻮق Tuple
ﺘﺎ
اﻟﻜ
ﺘﻮي ﻋﲆ ﻣﺠﻤﻮﻋ ﺔ .ﻟﺬﻟﻚ
ﺘﻐﻴﺮﻳﺤ
ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أﻧﻪ ﻻﻳﻤﻜﻨﻚﺗﻌﺪﻳﻞ ﻣﺠﻤﻮﻋ ﺔ ،إﻻ أﻧﻪﻳﻤﻜﻨﻚﺗﻌﻴﻴﻦ ﻗﻴﻤ ﺔ ﺟﺪﻳﺪة إﱃ ﻣ
ﺑﺄﻛﻤﻠﻬﺎ:ﺑﻌﺎدﻧﺎ ،ﻓﻴﻤﻜﻨﻨﺎ إﻋﺎدةﺗﻌﺮﻳﻒ اﻟﻤﺠﻤﻮﻋ ﺔ
إذا أردﻧﺎﺗﻐﻴﻴﺮ أ
ﺒﻌﺪ(
ﺒﺎﻋ ﺔ )اﻟ
ﻃ
ﺒﻌﺪ(
ﺒﺎﻋ ﺔ )اﻟ
ﻃ
ﺑﻌﺎد
ﺘﺨﺰﻳﻦ ﻣﺠﻤﻮﻋ ﺔ ﺟﺪﻳﺪة ﻓ ﻲ اﻷ
ﺑﺑﻌﺎد ﻫﺎ اﻷوﻟﻴ ﺔ .ﻓ ﻲ v ،ﻧﻘﻮم
ﺒﻊ أ
ﺗﻄﺘﻠ ﺔ ﻓ ﻲ uاﻟﻤﺠﻤﻮﻋ ﺔ اﻷﺻﻠﻴ ﺔ و
ﺗﺤﺪد اﻟﻜ
ﺘﻐﻴﺮ أﻣﺮ ﺻﺎﻟﺢ:
ﺑ ﺔ ﻓﻮق اﻟﻤ
ﺘﺎ
ﺜﻴﺮ Pythonأي أﺧﻄﺎء ﻫﺬه اﻟﻤﺮة ،ﻷن اﻟﻜ
ﺑﻌﺎد اﻟﺠﺪﻳﺪة ﻓ ﻲ w.ﻻﺗ
ﺒﺎﻋ ﺔ اﻷ
ﺑﻄﺛﻢ ﻧﻘﻮمﺘﻐﻴﺮة.
اﻟﻤ
400100
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺜﻮنﺗﺮﻓﺾ ﻣﻠﻒ
ﺑﺎﻳﺗﺄﻛﺪ ﻣﻦ أن
•ﺣﺎولﺗﻌﺪﻳﻞ أﺣﺪ اﻟﻌﻨﺎﺻﺮ ،و
ﺘﻐﻴﺮ.
ﻳ
ﺘﻲ
ﺒﺮﻣﺠﻴ ﺔ اﻟ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻠ ﺔ ﻣﻦ اﻟ
ﺘﻠﻔ ﺔ .أﺿﻒ ﻛ
ﺑﺄﻃﻌﻤ ﺔ ﻣﺨﺒﺪال ﻋﻨﺼﺮﻳﻦ
ﺘﺘﻪ ،واﺳ
ﺘﻐﻴﻴﺮ ﻗﺎﺋﻤ
ﺑ•ﻳﻘﻮم اﻟﻤﻄﻌﻢ
ﺘﺨﺪم for
ﺛﻢ اﺳﺑ ﺔ اﻟﻤﺠﻤﻮﻋ ﺔ ،
ﺘﺎ
ﺗﻌﻴﺪ ﻛ
ﺒﺎﻋ ﺔ ﻛﻞ ﻋﻨﺼﺮ ﻣﻦ اﻟﻌﻨﺎﺻﺮ اﻟﻤﻮﺟﻮدة ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ اﻟﻤﻨﻘﺤ ﺔ.
ﺣﻠﻘ ﺔ ﻟﻄ
71-اﻟﻌﻤﻞ ﻣﻊ اﻟﻘﻮاﺋﻢ
Machine Translated by Google
ﺒﺎ.
ﺑﻨﻔ ﺲ اﻟﻄﺮﻳﻘ ﺔﺗﻘﺮﻳ ًﺘﺄﻛﺪ ﻣﻦ أن ﻛﻮد ﻛﻞ ﺷﺨﺺ ﻣﻨﻈﻢ
ﺘﺼﻤﻴﻢ ﻟﻠ
ﺜﻮن ﻋﲆ ﻋﺪد ﻣﻦ أﺳﺎﻟﻴ ﺐ اﻟ
ﺑﺎﻳﺒﺮﻣﺠﻮ
ﺗﻔﻖ ﻣ
ا
ﺑﺄيﺑ ﺔ ﻛﻮد Pythonاﻟﻨﻈﻴﻒ ،ﻳﺠ ﺐ أنﺗﻜﻮن ﻗﺎد ًرا ﻋﲆ ﻓﻬﻢ اﻟﻬﻴﻜﻞ اﻟﻌﺎم ﻟﻜﻮد Pythonاﻟﺨﺎص ﺘﺎﺘﻌﻠﻢ ﻛﺑﻤﺠﺮد أنﺗ
ﺒﺮﻣﺠًﺎ ﻣﺤ ً
ﺘﺮﻓﺎ ﻓ ﻲ وﻗ ﺖ ﻣﺎ ،ﻳﺠ ﺐ أن ﺒﺢ ﻣ
ﺒﻌﻮن ﻧﻔ ﺲ اﻹرﺷﺎدا ت .إذا ﻛﻨ ﺖﺗﺄﻣﻞ ﻓ ﻲ أنﺗﺼ
ﺘﺷﺨﺺ آﺧﺮ ،ﻃﺎﻟﻤﺎ أﻧﻬﻢﻳ
ﺘﻄﻮﻳﺮ ﻋﺎدا ت ﺟﻴﺪة.
ﺒﺎع ﻫﺬه اﻹرﺷﺎدا ت ﻓ ﻲ أﻗﺮ ب وﻗ ﺖ ﻣﻤﻜﻦ ﻟ
ﺗﺒﺪأ ﻓ ﻲ ا
ﺗ
دﻟﻴﻞ اﻷﺳﻠﻮ ب
ﺘﺮاحﺗﺤ ﺴﻴﻦ Python (PEP).ﻳﻌﺪ PEP 8واﺣﺪًا ﻣﻦ
ﺘ ﺐ اﻗ
ﻋﻨﺪﻣﺎﻳﺮﻳﺪ ﺷﺨﺺ ﻣﺎ إﺟﺮاءﺗﻐﻴﻴﺮ ﻋﲆ ﻟﻐ ﺔ Python ،ﻓﺈﻧﻪﻳﻜ
ﺜﻴﺮ
ﺑﻬﻢPEP 8 .ﻃﻮﻳﻞ إﱃ ﺣﺪ ﻣﺎ ،ﻟﻜﻦ اﻟﻜﺒﺮﻣﺠ ﻲ Pythonﺣﻮل ﻛﻴﻔﻴ ﺔﺗﺼﻤﻴﻢ اﻟﻜﻮد اﻟﺨﺎص
أﻗﺪم PEPs ،واﻟﺬيﻳﻮﺟﻪ ﻣ
ﺘﻰ اﻵن.
ﺘﻪ ﺣ
ﺜﺮﺗﻌﻘﻴﺪًا ﻣﻤﺎ رأﻳ
ﺑﻬﻴﺎﻛﻞﺗﺸﻔﻴﺮ أﻛﺘﻌﻠﻖ
ﻣﻨﻪﻳ
ﺗﻪ ،ﺳﻴﺸﺠﻌﻚ
ﺘﻬﺎ أو اﻟﻜﻮد اﻟﺬيﻳ ﺴﻬﻞ ﻗﺮاء
ﺑﺘﺎ
ﺘ ﻲﻳ ﺴﻬﻞ ﻛ
ﺒﺮﻣﺠﻴ ﺔ اﻟ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑ ﺔ اﻟ
ﺘﺎ
ﺑﻴﻦ ﻛﺘﻴﺎر
ﺑﺎﻟﻨﻈﺮ إﱃ اﻻﺧ
ﺑ ﺔ رﻣﺰ
ﺘﺎ
ﺘﺎﻟﻴ ﺔ ﻋﲆ ﻛ
ﺘ ﺴﺎﻋﺪك اﻹرﺷﺎدا ت اﻟ
ﺗﻬﺎ.ﺳ
ﺘ ﻲﻳ ﺴﻬﻞ ﻗﺮاء
ﺒﺮﻣﺠﻴ ﺔ اﻟ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑ ﺔ اﻟ
ﺘﺎ
ﺋﻤﺎ ﻋﲆ ﻛ
ﺒﺮﻣﺠﻮ Pythonدا ً
ﻣ
ﺒﺪاﻳ ﺔ.
واﺿﺢ ﻣﻦ اﻟ
ﺑﻊ
72اﻟﻔﺼﻞ اﻟﺮا
Machine Translated by Google
ﻃﻮل اﻟﺨﻂ
ﺘﻮﺟﻴﻬ ﻲﻷن ﺣﺮﻓﺎ.ﺗﺎرﻳﺨﻴﺎ ً ،ﺗﻢﺗﻄﻮﻳﺮ ﻫﺬا اﻟﻤ
ﺒﺪأ اﻟ ﺑﺄنﻳﻜﻮن ﻛﻞﺳﻄﺮ أﻗﻞ ﻣﻦ ً 80ﺜﻮنﺑﺎﻳﺒﺮﻣﺠ ﻲ
ﻳﻮﺻ ﻲ اﻟﻌﺪﻳﺪ ﻣﻦ ﻣ
ﺘﻮي ﻋﲆ ً 79
ﺣﺮﻓﺎ ﻓﻘﻂ ﻓ ﻲﺳﻄﺮ واﺣﺪ ﻓ ﻲ ﻧﺎﻓﺬة ﻃﺮﻓﻴ ﺔ. ﻣﻌﻈﻢ أدوا ت وﺿﻊ comﻳﻤﻜﻦ أنﺗﺤ
ﺑﻄﻮل اﻟﺨﻂﺘﺰام
ﺑﻨﺎء ﺣﻘﻴﻘﻴﻮن آﺧﺮون ﻟﻼﻟ
ﺗﻬﻢ ،وﻟﻜﻦﻳﻮﺟﺪ أ
ﺜﻴﺮ ﻋﲆ ﺷﺎﺷﺎ
ﺑﻜﺣﺎﻟ ًﻴﺎ ،ﻳﻤﻜﻦ ﻟﻸﺷﺨﺎص وﺿﻊ ﺧﻄﻮط أﻃﻮل
ﺘﻮﺣ ﺔ ﻋﲆ ﻧﻔ ﺲ اﻟﺸﺎﺷ ﺔ ،وﻳ ﺴﻤﺢ
ﺘﺮﻓﻴﻦ ﻋﺪة ﻣﻠﻔﺎ ت ﻣﻔ
ﺒﺮﻣﺠﻴﻦ اﻟﻤﺤ
ﺒﺎ ﻣﺎﻳﻜﻮن ﻟﺪى اﻟﻤ اﻟﻘﻴﺎﺳ ﻲ اﻟﻤﻜﻮن ﻣﻦ ً 79
ﺣﺮﻓﺎ .ﻏﺎﻟ ً
ﺒﺎ إﱃ ﺟﻨ ﺐ ﻋﲆ اﻟﺸﺎﺷ ﺔ.
ﺘﻮﺣ ﺔ ﺟﻨ ً
ﺛ ﺔ ﻣﻠﻔﺎ ت ﻣﻔ
ﺛﻼﺑﺮؤﻳ ﺔﺳﻄﻮر ﻛﺎﻣﻠ ﺔ ﻓ ﻲ ﻣﻠﻔﻴﻦ أوﺘﺨﺪام ﻃﻮل اﻟﺨﻂ اﻟﻘﻴﺎﺳ ﻲ ﻟﻬﻢ
اﺳ
ﺛﺎﺋﻖﺗﻠﻘﺎﺋﻴ ﺔ
ﺘ ﻲﺗﻨﺸ ﺊ و
ﺑﻌﺾ اﻷدوا ت اﻟ ﺗﻚ ﻋﲆ ً 72
ﺣﺮﻓﺎ ﻟﻜﻞﺳﻄﺮ ،ﻷن ﺑﺄنﺗﻘﺼﺮ ﺟﻤﻴﻊﺗﻌﻠﻴﻘﺎ ﻳﻮﺻ ﻲ PEP 8أ ً
ﻳﻀﺎ
ﺑﺪاﻳ ﺔ ﻛﻞﺳﻄﺮ ﻣﻌﻠﻖ.ﺒﺮﺗﻀﻴﻒ أﺣﺮفﺗﻨ ﺴﻴﻖ ﻓ ﻲ
ﻟﻠﻤﺸﺎرﻳﻊ اﻷﻛ
ﺧﻄﻮط ﻓﺎرﻏ ﺔ
ﺗﻚ ،ﻟﻜﻦ ﻻ
ﺘﻨﻈﻴﻢ ﻣﻠﻔﺎ
ﺘﺨﺪام أﺳﻄﺮ ﻓﺎرﻏ ﺔ ﻟ
ﺘﺨﺪم أﺳﻄ ﺮًا ﻓﺎرﻏ ﺔ.ﻳﺠ ﺐ ﻋﻠﻴﻚ اﺳ
ﺋ ﻲ ،اﺳ
ﺑﺸﻜﻞ ﻣﺮﺒﺮﻧﺎﻣﺞ
ﺘﺠﻤﻴﻊ أﺟﺰاء ﻣﻦ اﻟ
ﻟ
ﺜﺎل ،إذا
ﺒﻴﻞ اﻟﻤ
ﺘﻮازن اﻟﺼﺤﻴﺢ .ﻋﲆﺳ
ﺘﺎ ب ،ﻳﺠ ﺐ أنﺗﺤﻘﻖ اﻟ
ﺜﻠ ﺔ اﻟﻮاردة ﻓ ﻲ ﻫﺬا اﻟﻜ
ﺒﺎع اﻷﻣ
ﺗﺑﺎﺑﺸﻜﻞ ﻣﻔﺮط.ﺗﻔﻌﻞ ذﻟﻚ
ﺑﻬﺬه اﻟﻘﺎﺋﻤ ﺔ ،ﺑﺸ ﻲء ﻣﺎﺛ ﺔﺳﻄﻮر أﺧﺮىﺗﻘﻮم
ﺛﻼﺛﻢﺘ ﻲﺗﻨﺸ ﺊ ﻗﺎﺋﻤ ﺔ ،
ﺒﺮﻣﺠﻴ ﺔ اﻟ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﻛﺎن ﻟﺪﻳﻚ ﺧﻤ ﺴ ﺔ أﺳﻄﺮ ﻣﻦ اﻟ
ﺑﻴﻦ اﻟﻘ ﺴﻤﻴﻦ.ﺑﻌ ﺔ أﺳﻄﺮ ﻓﺎرﻏ ﺔ
ﺛ ﺔ أو أر
ﺛﻼﺑﻴﻦ اﻟﻘ ﺴﻤﻴﻦ .وﻣﻊ ذﻟﻚ ،ﻻﻳﺠ ﺐ وﺿﻊﻓﻤﻦ اﻟﻤﻨﺎﺳ ﺐ وﺿﻊﺳﻄﺮ ﻓﺎرغ
73اﻟﻌﻤﻞ ﻣﻊ اﻟﻘﻮاﺋﻢ
Machine Translated by Google
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺒﺮﻧﺎﻣﺞ.
ﺑﺸﻜﻞ ﻣﻔﺮط ﻓ ﻲ ﻣﻠﻔﺎ ت اﻟﺘﺨﺪم اﻷﺳﻄﺮ اﻟﻔﺎرﻏ ﺔ
•ﻻﺗ ﺴ
ﻣﻠﺨﺺ
ﺑﻜﻔﺎءة ﻣﻊ اﻟﻌﻨﺎﺻﺮ اﻟﻤﻮﺟﻮدة ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ .ﻟﻘﺪﺗﻌﻠﻤ ﺖ ﻛﻴﻔﻴ ﺔ اﻟﻌﻤﻞ ﻣﻦ ﺧﻼل ﻗﺎﺋﻤ ﺔﺗﻌﻠﻤ ﺖ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ﻛﻴﻔﻴ ﺔ اﻟﻌﻤﻞ
ﺒﺎدﺋ ﺔ
ﺑﻌﺾ أﺧﻄﺎء اﻟﻤ ﺴﺎﻓ ﺔ اﻟﺑﺮﻧﺎﻣﺞ ،وﻛﻴﻔﻴ ﺔﺗﺠﻨ ﺐﺒﻨﺎء
ﺒﺎدﺋ ﺔ ﻟ
ﺘﺨﺪم Pythonاﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﺘﺨﺪام ﺣﻠﻘ ﺔ for ،وﻛﻴﻒﺗ ﺴ
ﺑﺎﺳ
ﺘ ﻲﻳﻤﻜﻨﻚ إﺟﺮاؤ ﻫﺎ ﻋﲆ اﻟﻘﻮاﺋﻢ اﻟﺮﻗﻤﻴ ﺔ.
ﺑﻌﺾ اﻟﻌﻤﻠﻴﺎ ت اﻟﺑﺎﻹﺿﺎﻓ ﺔ إﱃﺑ ﺴﻴﻄ ﺔ ،اﻟﺸﺎﺋﻌ ﺔ .ﻟﻘﺪﺗﻌﻠﻤ ﺖ إﻧﺸﺎء ﻗﻮاﺋﻢ ﻋﺪدﻳ ﺔ
ﺘﺨﺪام
ﺑﺎﺳﺑﺸﻜﻞ ﺻﺤﻴﺢﻟﻘﺪﺗﻌﻠﻤ ﺖ ﻛﻴﻔﻴ ﺔﺗﻘ ﺴﻴﻢ ﻗﺎﺋﻤ ﺔ ﻟﻠﻌﻤﻞ ﻣﻊ ﻣﺠﻤﻮﻋ ﺔ ﻓﺮﻋﻴ ﺔ ﻣﻦ اﻟﻌﻨﺎﺻﺮ وﻛﻴﻔﻴ ﺔ ﻧ ﺴﺦ اﻟﻘﻮاﺋﻢ
ﺒﻐ ﻲﺗﻐﻴﻴﺮ ﻫﺎ ،وﻛﻴﻔﻴ ﺔ
ﺘ ﻲ ﻻﻳﻨ
ﺘ ﻲﺗﻮﻓﺮ درﺟ ﺔ ﻣﻦ اﻟﺤﻤﺎﻳ ﺔ ﻟﻤﺠﻤﻮﻋ ﺔ ﻣﻦ اﻟﻘﻴﻢ اﻟ ﺷﺮﻳﺤ ﺔ .ﻟﻘﺪﺗﻌﺮﻓ ﺖ أ ً
ﻳﻀﺎ ﻋﲆ tuples ،واﻟ
ﺗﻪ.
ﺘ ﺴﻬﻴﻞ ﻗﺮاء
ﺘﺰاﻳﺪ ﻟ
ﺑﺸﻜﻞ ﻣﺗﺼﻤﻴﻢ ﻛﻮدك اﻟﻤﻌﻘﺪ
ﺘﻌﻠﻢﺗﺠﻤﻴﻊ
ﺘﺒﺎرا ت if .ﺳ
ﺘﺨﺪام ﻋ
ﺑﺎﺳﺘﻠﻔ ﺔ
ﺑﺸﻜﻞ ﻣﻨﺎﺳ ﺐ ﻋﲆ اﻟﺸﺮوط اﻟﻤﺨﺘﻌﻠﻢ اﻟﺮد
ﺘﻓ ﻲ اﻟﻔﺼﻞ اﻟﺨﺎﻣ ﺲ ،ﺳ
ﺒﺤ ﺚ ﻋﻨﻬﺎ
ﺘ ﻲﺗ
ﺑﺸﻜﻞ ﻣﻨﺎﺳ ﺐ ﻟﻨﻮع اﻟﻤﻮﻗﻒ أو اﻟﻤﻌﻠﻮﻣﺎ ت اﻟﺑﺔ
ﺘﺠﺎ
ﺒﺎرا ت اﻟﺸﺮﻃﻴ ﺔ ﻟﻼﺳ
ﺘﺒ ًﻴﺎ ﻣﻦ اﻻﺧ
ﻣﺠﻤﻮﻋﺎ ت ﻣﻌﻘﺪة ﻧ ﺴ
ﺘﺨﺪام إذا ﺘﻌﻠﻢ أ ً
ﻳﻀﺎ اﺳ ﺘﺒﻂ.ﺳ
ﺑﺎﻟﻀ
ﺑﻊ
74اﻟﻔﺼﻞ اﻟﺮا
Machine Translated by Google
5
ﺘﻌﻠﻴﻘﺎ ت
إذا ﻛﺎﻧ ﺖ اﻟ
ﺒﺮﻧﺎﻣﺞ
ﺑﻔﺤﺺ اﻟﺤﺎﻟ ﺔ اﻟﺤﺎﻟﻴ ﺔ ﻟﻠ
ﺒﺎرة ifﻓ ﻲ Python
ﺗ ﺴﻤﺢ ﻟﻚ ﻋ
ﺘﻠﻚ اﻟﺤﺎﻟ ﺔ.
ﺑﺸﻜﻞ ﻣﻨﺎﺳ ﺐ ﻟﺑﺔ
ﺘﺠﺎ
واﻻﺳ
ﺑﺔ
ﺘﺎ
ﺘﻌﻠﻢ ﻛ
ﺘﺘﺤﻘﻖ ﻣﻦ أي ﺣﺎﻟ ﺔﺗﻬﻤﻚ.ﺳ
ﺘﻴﺢ ﻟﻚ اﻟ
ﺘ ﻲﺗ
ﺒﺎرا ت اﻟﺸﺮﻃﻴ ﺔ ،واﻟ
ﺘﺑ ﺔ اﻻﺧ
ﺘﺎ
ﺘﻌﻠﻢ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ﻛ
ﺘﺳ
ﺘﻲ
ﺘﻰﺗﻮﺟﺪ اﻟﺸﺮوط اﻟﺪﻗﻴﻘ ﺔ اﻟ
ﺘﺤﺪﻳﺪ ﻣ
ﺒﺎرا ت ifﻟ
ﺜﺮﺗﻌﻘﻴﺪًا ﻣﻦ ﻋ
ﺘﻌﻠﻢ ﻛﻴﻔﻴ ﺔ إﻧﺸﺎءﺳﻠ ﺴﻠ ﺔ أﻛ
ﺘﺑ ﺴﻴﻄ ﺔ ،وﺳ
ﺒﺎرا ت if
ﻋ
ﺗﻌﺎﻟﺞ ﻣﻌﻈﻢ اﻟﻌﻨﺎﺻﺮ ﻓ ﻲ
ﺑ ﺔ ﺣﻠﻘ ﺔ for
ﺘﺎ
ﺘﻤﻜﻦ ﻣﻦ ﻛ
ﺘﻰﺗ
ﺒﻴﻖ ﻫﺬا اﻟﻤﻔﻬﻮم ﻋﲆ اﻟﻘﻮاﺋﻢ ،ﺣ
ﺘﻄﺑﺑﻌﺪ ذﻟﻚﺘﻘﻮم
ﺗﺮﻳﺪ ﻫﺎ.ﺳ
ﺘﻠﻔ ﺔ.
ﺑﻄﺮﻳﻘ ﺔ ﻣﺨﺑﻘﻴﻢ ﻣﺤﺪدةﺘﻌﺎﻣﻞ ﻣﻊ ﻋﻨﺎﺻﺮ ﻣﻌﻴﻨ ﺔ
ﺑﻄﺮﻳﻘ ﺔ واﺣﺪة وﻟﻜﻨﻬﺎﺗﻗﺎﺋﻤ ﺔ
Machine Translated by Google
ﺑ ﺴﻴﻂﺜﺎل
ﻣ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ.ﺗﺨﻴﻞ أن ﻟﺪﻳﻚﺑ ﺔ ﻟﻠﻤﻮاﻗﻒ اﻟﺨﺎﺻ ﺔ
ﺘﺠﺎ
ﺑﺎﻻﺳﺒﺎرا ت
ﺘﺘﺎﻟ ﻲ ﻛﻴﻒ إذاﺳﻤﺤ ﺖ ﻟﻚ اﻻﺧ
ﺜﺎل اﻟﻘﺼﻴﺮ اﻟ
ﻳﻮﺿﺢ اﻟﻤ
ﺒﺎﻋ ﺔ أﺳﻤﺎء ﻣﻌﻈﻢ اﻟ ﺴﻴﺎرا ت
ﺒﺎﻋ ﺔ اﺳﻢ ﻛﻞﺳﻴﺎرة .أﺳﻤﺎء اﻟ ﺴﻴﺎرا ت ﻫ ﻲ أﺳﻤﺎء ﻋﻠﻢ ،ﻟﺬﻟﻚﻳﺠ ﺐ ﻃ
ﺗﺮﻳﺪ ﻃ
ﺑﺎﻟ ﺴﻴﺎرا ت وﻗﺎﺋﻤ ﺔ
ﺑﺄﺳﻤﺎءﺒﺮ ﻗﺎﺋﻤ ﺔ
ﺘﺎﻟ ﻲﻳﻤﺮ ﻋ
ﺒﻴﺮة .اﻟﻜﻮد اﻟ
ﺑﺄﺣﺮف ﻛﺒﺎﻋ ﺔ اﻟﻘﻴﻤ ﺔ ""bmwﻛﻠﻬﺎ
ﻓ ﻲ ﺣﺎﻟ ﺔ أﺣﺮف اﻟﻌﻨﻮان .وﻣﻊ ذﻟﻚ ،ﻳﺠ ﺐ ﻃ
ﺑﺪﻻ ً ﻣﻦ ﺣﺎﻟ ﺔ اﻟﻌﻨﻮان:ﺒﻴﺮة
ﺑﺄﺣﺮف ﻛﺘﻬﺎ
ﺒﺎﻋ
ﺘﻢ ﻃ
ﺒﺤ ﺚ ﻋﻦ اﻟﻘﻴﻤ ﺔ 'bmw'.ﻋﻨﺪﻣﺎﺗﻜﻮن اﻟﻘﻴﻤ ﺔ "bmw" ،ﻳ
اﻟ ﺴﻴﺎرا ت وﻳ
ﺘﺤﻘﻖ أوﻻ ً ﻣﻤﺎ إذا ﻛﺎﻧ ﺖ اﻟﻘﻴﻤ ﺔ اﻟﺤﺎﻟﻴ ﺔ ﻟﻠ ﺴﻴﺎرة ﻫ ﻲ " bmw" u.
ﺜﺎلﺗ
اﻟﺤﻠﻘ ﺔ ﻓ ﻲ ﻫﺬا اﻟﻤ
ﺘﻬﺎ ﻓ ﻲ ﺣﺎﻟ ﺔ
ﺒﺎﻋ
ﺘﻢ ﻃ
ﺘﺒﻴﺮة .إذا ﻛﺎﻧ ﺖ ﻗﻴﻤ ﺔ اﻟ ﺴﻴﺎرة ﻏﻴﺮ bmw ،ﻓ ﺴ
ﺑﺄﺣﺮف ﻛﺒﺎﻋ ﺔ اﻟﻘﻴﻤ ﺔ
ﺘﻢ ﻃ
ﺘإذا ﻛﺎن اﻷﻣﺮ ﻛﺬﻟﻚ ،ﻓ ﺴ
اﻟﻌﻨﻮان:
أودي
ﺑﻠﻴﻮ
ﺑ ﻲ ام د
ﺑﺎرو
ﺳﻮ
ﺗﺎ
ﺗﻮﻳﻮ
ﺘﻲ
ﺒﺎرا ت اﻟ
ﺘﺑﺎﻟﻨﻈﺮ ﻓ ﻲ أﻧﻮاع اﻻﺧﺒﺪأ
ﺘﻌﻠﻤﻬﺎ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ .ﻟﻨ
ﺘﺘ ﻲﺳ
ﺑﻴﻦ ﻋﺪد ﻣﻦ اﻟﻤﻔﺎ ﻫﻴﻢ اﻟﺜﺎل
ﻳﺠﻤﻊ ﻫﺬا اﻟﻤ
ﺑﺮﻧﺎﻣﺠﻚ.ﺘﺨﺪاﻣﻬﺎ ﻟﻔﺤﺺ اﻟﺸﺮوط ﻓ ﻲ
ﻳﻤﻜﻨﻚ اﺳ
ﺒﺎرا ت اﻟﺸﺮﻃﻴ ﺔ
ﺘاﻻﺧ
ﺘﻴﻦ
ﺘﺨﺪم Pythonاﻟﻘﻴﻤ
ﺒﺎ ًرا ﺷﺮﻃ ًﻴﺎ.ﺗ ﺴ
ﺘﺒﻴ ﺮًاﻳﻤﻜﻦﺗﻘﻴﻴﻤﻪ ﻋﲆ أﻧﻪ ﺻﺤﻴﺢ أو ﺧﻄﺄ وﻳ ﺴﻤﻰ اﺧ
ﺗﻌﺒﺎرة if
ﻳﻮﺟﺪ ﻓ ﻲ ﻗﻠ ﺐ ﻛﻞ ﻋ
ﺒﺎر اﻟﺸﺮﻃ ﻲ إﱃ
ﺘﺒﺎرة if .إذاﺗﻢﺗﻘﻴﻴﻢ اﻻﺧ
ﺒﺮﻣﺠﻴ ﺔ اﻟﻤﻮﺟﻮدة ﻓ ﻲ ﻋ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻘﺮﻳﺮ ﻣﺎ إذا ﻛﺎنﻳﺠ ﺐﺗﻨﻔﻴﺬ اﻟ
Trueو Falseﻟ
ﺗﻨﻔﺬ اﻟﻜﻮد اﻟﺬيﻳﻠ ﻲ if
True ،ﻓﺈن Python
ﺑﻠﻴﻮ"
ﺑ ﻲ ام د
ش >>>ﺳﻴﺎرة ="
>>> vﺳﻴﺎرة '== 'bmw
ﺣﻘﻴﻘ ﻲ
76اﻟﻔﺼﻞ اﻟﺨﺎﻣ ﺲ
Machine Translated by Google
ﺒﺎر
ﺘﻋﻨﺪﻣﺎﺗﻜﻮن ﻗﻴﻤ ﺔ اﻟ ﺴﻴﺎرة ﻏﻴﺮ "bmw" ،ﻳﻌﻮد ﻫﺬا اﻻﺧ
ﺧﻄﺄ ﺷﻨﻴﻊ:
ش >>>ﺳﻴﺎرة ='أودي'
ﺧﻄﺄ ﺷﻨﻴﻊ
>>>ﺳﻴﺎرة ="أودي"
>>>ﺳﻴﺎرة =='أودي'
ﺧﻄﺄ ﺷﻨﻴﻊ
ﺒﺎر
ﺘﺑﺪﻻ ً ﻣﻦ ذﻟﻚﺗﺮﻳﺪ ﻓﻘﻂ اﺧ
إذا ﻛﺎﻧ ﺖ اﻟﻘﻀﻴ ﺔ ﻣﻬﻤ ﺔ ،ﻓﺈن ﻫﺬا اﻟ ﺴﻠﻮك ﻣﻔﻴﺪ .وﻟﻜﻦ إذا ﻟﻢﺗﻜﻦ اﻟﺤﺎﻟ ﺔ ﻣﻬﻤ ﺔ ،و
ﺒﻞ إﺟﺮاء اﻟﻤﻘﺎرﻧ ﺔ:
ﺘﻐﻴﺮ إﱃ أﺣﺮف ﺻﻐﻴﺮة ﻗ
ﺘﻐﻴﺮ ،ﻳﻤﻜﻨﻚﺗﺤﻮﻳﻞ ﻗﻴﻤ ﺔ اﻟﻤ
ﻗﻴﻤ ﺔ اﻟﻤ
>>>ﺳﻴﺎرة ="أودي"
ش >>>ﺳﻴﺎرة ='أودي'
أودي
ﺒﻴﺎﻧﺎ ت 77
إذا ﻛﺎﻧ ﺖ اﻟ
Machine Translated by Google
ﺑﻠﻴﻮ
ﺜﻮن True.ﻓ ﻲ د
ﺑﺎﻳﺘﺎن ،ﻟﺬاﺗﺮﺟﻊ
ﺑﻖ اﻟ ﺴﻠ ﺴﻠ
ﺘﻄﺎ
إﱃ اﻟ ﺴﻠ ﺴﻠ ﺔ "أودي".ﺗ
ﺒﺎر اﻟﺸﺮط.
ﺘﺑﺎﺧﺛﺮ
ﺘﺄ
ﻳﻤﻜﻨﻨﺎ أن ﻧﺮى أن اﻟﻘﻴﻤ ﺔ اﻟﻤﺨﺰﻧ ﺔ ﻓ ﻲ اﻟ ﺴﻴﺎرة ﻟﻢﺗ
ﺜﺎل ،ﻗﺪ
ﺒﻴﻞ اﻟﻤ
ﺑﻬ ﺔ ﻟﻬﺬه .ﻋﲆﺳ
ﺑﻄﺮﻳﻘ ﺔ ﻣﺸﺎﺘﺨﺪﻣﻮن
ﺘ ﻲﻳﺪﺧﻠﻬﺎ اﻟﻤ ﺴ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺗﻔﺮض ﻣﻮاﻗﻊ اﻟﻮﻳ ﺐ ﻗﻮاﻋﺪ ﻣﻌﻴﻨ ﺔ ﻟﻠ
ﺑﺎﻟﻔﻌﻞ.ﺘﺨﺪام
ﻗﻴﺪ اﻻﺳ
ﺒ ﺔ اﻷوﱃ
ﺗﺘﻞ اﻟﻤﺮ
ﺑ ﺔﺗﺤ
ﺘﺰا ﻣﻄﻠﻮ
ﺑﻴﺘﺨﺪام ﻋﺎﻣﻞ ﻋﺪم اﻟﻤ ﺴﺎواة.ﺳﻨﺨﺰن
ﺒﺎرة ifأﺧﺮى ﻟﻔﺤﺺ ﻛﻴﻔﻴ ﺔ اﺳ
ﺘﺨﺪم ﻋ
دﻋﻨﺎ ﻧ ﺴ
ﺒﻊ رﺳﺎﻟ ﺔ إذا ﻟﻢﻳﻄﻠ ﺐ اﻟﺸﺨﺺ اﻷﻧﺸﻮﺟ ﺔ:
ﺛﻢ ﻧﻄﺘﻐﻴﺮ
ﻓ ﻲﻣ
toppings.py = "request_toppingﻓﻄﺮ"
ﺒﺎﻋ ﺔ :
ﺘﻢﺗﻨﻔﻴﺬ ﺣﺎﻟ ﺔ اﻟﻄ
ﻧﻈ ﺮًاﻷن ﻗﻴﻤ ﺔ request_toppingﻟﻴ ﺴ ﺖ "anchovies" ،ﻳ
ﻣﻘﺎرﻧﺎ ت ﻋﺪدﻳ ﺔ
ﺒﻠﻎ ﻣﻦ اﻟﻌﻤﺮ
ﺘﺎﻟ ﻲ ﻣﻤﺎ إذا ﻛﺎن اﻟﺸﺨﺺﻳ
ﺘﺤﻘﻖ اﻟﻜﻮد اﻟ
ﺜﺎل ،ﻳ
ﺒﻴﻞ اﻟﻤ
ﺴﻴﻄﺎ ﺟﺪًا .ﻋﲆﺳ
ً ﺑﺒﺎر اﻟﻘﻴﻢ اﻟﻌﺪدﻳ ﺔ أﻣ ﺮًا
ﺘﻳﻌﺪ اﺧ
ﻋﺎﻣﺎ:
ً 18
>>>اﻟﻌﻤﺮ = 18
>>>اﻟﻌﻤﺮ == 18
ﺣﻘﻴﻘ ﻲ
78اﻟﻔﺼﻞ اﻟﺨﺎﻣ ﺲ
Machine Translated by Google
ﺜﺎل ،ﻣﻠﻒ
ﺒﻴﻞ اﻟﻤ
ﺘ ﺴﺎوﻳﻴﻦ .ﻋﲆﺳ
ﺒﺎر ﻟﻤﻌﺮﻓ ﺔ ﻣﺎ إذا ﻛﺎن رﻗﻤﺎن ﻏﻴﺮ ﻣ
ﺘ ﻳﻤﻜﻨﻚ أ ً
ﻳﻀﺎ اﺧ
ﺑ ﺔ ﻏﻴﺮ ﺻﺤﻴﺤ ﺔ:
ﺒﻊ رﺳﺎﻟ ﺔ إذا ﻛﺎﻧ ﺖ اﻹﺟﺎ
ﺘﺎﻟ ﻲﻳﻄ
اﻟﻜﻮد اﻟ
اﻟ ﺴﺤﺮي
ش ﻟﻮ اﻟﺠﻮا ب! = 42:
ﺑ ﺔ )(17ﻟﻴ ﺴ ﺖ ﻛﺬﻟﻚ
ﺒﺎر اﻟﺸﺮﻃ ﻲ ﻋﻨﺪ u ،ﻷن ﻗﻴﻤ ﺔ اﻹﺟﺎ
ﺘﺘﺎز اﻻﺧ
اﺟ
ﺒﺎدﺋ ﺔ:
ﺘﻠ ﺔ اﻟﺸﻔﺮة ذا ت اﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﺘﻢﺗﻨﻔﻴﺬ ﻛ
ﺒﺎر ،ﻳ
ﺘﺘﻴﺎز اﻻﺧ
ﻳ ﺴﺎوي 42.ﻧﻈ ﺮًا ﻻﺟ
ﺒﺮ
ﺜﻞ أﺻﻐﺮ ﻣﻦ أو أﻗﻞ ﻣﻦ أوﻳ ﺴﺎوي أو أﻛ ﺗﻚ اﻟﺸﺮﻃﻴ ﺔ أ ً
ﻳﻀﺎ ،ﻣ ﺒﺎرا
ﺘﻨﻮﻋ ﺔ ﻓ ﻲ ﻋ
ﻳﻤﻜﻨﻚﺗﻀﻤﻴﻦ ﻣﻘﺎرﻧﺎ ت رﻳﺎﺿﻴ ﺔ ﻣ
ﺒﺮ ﻣﻦ أوﻳ ﺴﺎوي:
ﻣﻦ أو أﻛ
>>>اﻟﻌﻤﺮ = 19
ﻋﺎﻣﺎ
>>>اﻟﻌﻤﺮ أﻗﻞ ﻣﻦ ً 21
ﺣﻘﻴﻘ ﻲ
>>>اﻟﻌﻤﺮ< 21
ﺧﻄﺄ ﺷﻨﻴﻊ
>>>اﻟﻌﻤﺮ< = 21
ﺧﻄﺄ ﺷﻨﻴﻊ
ﺘﻌﺪدة
ﺘﺤﻘﻖ ﻣﻦ اﻟﺸﺮوط اﻟﻤ
اﻟ
ﺘﺎج أﺣﻴﺎﻧًﺎ إﱃ ﺷﺮﻃﻴﻦ ﻟﻜ ﻲﺗﻜﻮن
ﺜﺎل ،ﻗﺪﺗﺤ
ﺒﻴﻞ اﻟﻤ
ﺘﻌﺪدة ﻓ ﻲ ﻧﻔ ﺲ اﻟﻮﻗ ﺖ .ﻋﲆﺳ
ﺘﺤﻘﻖ ﻣﻦ ﺷﺮوط ﻣ
ﻗﺪﺗﺮﻏ ﺐ ﻓ ﻲ اﻟ
ﺋﻴ ﺴﻴ ﺔ و /
ﺗﺨﺎذ إﺟﺮاء .ﻓ ﻲ أوﻗﺎ ت أﺧﺮى ،ﻗﺪﺗﻜﻮن راﺿ ًﻴﺎ ﻋﻦ ﺷﺮط واﺣﺪ ﻓﻘﻂ ﻫﻮ ﺻﻮا ب.ﻳﻤﻜﻦ ﻟﻠﻜﻠﻤﺎ ت اﻟﺮ
ﻋﲆ ﺻﻮا ب ﻻ
ﺗﻚ ﻓ ﻲ ﻫﺬه اﻟﻤﻮاﻗﻒ.
أو ﻣ ﺴﺎﻋﺪ
ﺘﻌﺪدة
ﺘﺤﻘﻖ ﻣﻦ ﺷﺮوط ﻣ
ﺘﺨﺪام واﻟ
اﺳ
ﺘﺎﻟ ﻲ:
ﺒﺎر اﻟ
ﺘﺘﺨﺪام اﻻﺧ
ﺑﺎﺳﻋﺎﻣﺎ
ﺒﺮ ﻣﻦ ً 21
ﺘﺤﻘﻖ ﻣﻤﺎ إذا ﻛﺎن ﻋﻤﺮ ﺷﺨﺼﻴﻦ أﻛ
ﺜﺎل ،ﻳﻤﻜﻨﻚ اﻟ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺧﻄﺄ ﺷﻨﻴﻊ
ﺒﻴﺎﻧﺎ ت 79
إذا اﻟ
Machine Translated by Google
ﺘﻌﺪدة
ﺘﺤﻘﻖ ﻣﻦ ﺷﺮوط ﻣ
ﺘﺨﺪام أو اﻟ
اﺳ
ﻋﺎﻣﺎ:
ﺑﻦﻳﺰﻳﺪ ﻋﻤﺮه ﻋﻦ ً 21
ﺒﺤ ﺚ ﻋﻦ ﻋﻤﺮ واﺣﺪ ﻓﻘﻂ ﻟﻜﻞ ا
ﻟﻨﻔﻜﺮ ﻓ ﻲ ﻋﻤﺮان ﻣﺮة أﺧﺮى ،وﻟﻜﻦ ﻫﺬه اﻟﻤﺮةﺳﻨ
u >>> age_0 = 22 >>> age_1 = 18 v >>> age_0> = 21أو age_1> = 21
ﺧﻄﺄ ﺷﻨﻴﻊ
ﺘﺎح
ﺘﺨﺪم اﻟﻤﻔ
ﺑﺎﻟﻔﻌﻞ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ ،اﺳﻟﻤﻌﺮﻓ ﺔ ﻣﺎ إذا ﻛﺎﻧ ﺖ ﻗﻴﻤ ﺔ ﻣﻌﻴﻨ ﺔ ﻣﻮﺟﻮدة
ﺒﻬﺎ اﻟﻌﻤﻴﻞ
ﺘ ﻲ ﻃﻠ
ﺑﺎﻹﺿﺎﻓﺎ ت اﻟﺘﺰا.ﺳﻨﻀﻊ ﻗﺎﺋﻤ ﺔ
ﺑﻴﺒﻬﺎ ﻟﻤﻄﻌﻢ
ﺘﺘ ﻲ ﻗﺪﺗﻜ
ﺑﻌﺾ اﻟﺮﻣﻮز اﻟﻛﻠﻤ ﺔ ﻓﻴﻬﺎ .دﻋﻨﺎ ﻧﻔﻜﺮ ﻓ ﻲ
ﺑﻌﺾ اﻹﺿﺎﻓﺎ ت ﻣﻮﺟﻮدة ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ.ﺘﺤﻘﻖ ﻣﻤﺎ إذا ﻛﺎﻧ ﺖ
ﺛﻢ ﻧﺘﺰا
ﺒﻴﻟ
80اﻟﻔﺼﻞ اﻟﺨﺎﻣ ﺲ
Machine Translated by Google
ﺑﺔ
ﺒﺮوﻧ ﻲ" ﻓ ﻲ اﻟﻀﺨﺎﻣ ﺔ اﻟﻤﻄﻠﻮ
ﺑﻴ>>> "v
ﺧﻄﺄ ﺷﻨﻴﻊ
ﺘﺨﺪﻣﻴﻦ اﻟﻤﺤﻈﻮرﻳﻦ:
ﺘﺨﺪم ﺿﻤﻦ اﻟﻤ ﺴ
uإذا ﻟﻢﻳﻜﻦ اﻟﻤ ﺴ
print (user.title () + "،ﻳﻤﻜﻨﻚ إرﺳﺎل رد إذا ﻛﻨ ﺖﺗﺮﻏ ﺐ ﻓ ﻲ ذﻟﻚ(".
ﺘﺨﺪم ﻟﻴ ﺴ ﺖ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ
ﺑﻮﺿﻮحﺗﺎم .إذا ﻛﺎﻧ ﺖ ﻗﻴﻤ ﺔ اﻟﻤ ﺴاﻟ ﺴﻄﺮ ﻋﻨﺪ uﻳﻘﺮأ
ﺒﺎدﺋ ﺔ.
ﺗﻨﻔﺬ اﻟ ﺴﻄﺮ ذي اﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﺑﺈرﺟﺎع Trueو
ﺗﻘﻮم Python
banned_users ،
ﺘﺨﺪم ''marieﻏﻴﺮ ﻣﻮﺟﻮد ﻓ ﻲ ﻗﺎﺋﻤ ﺔ banned_users ،ﻟﺬﻟﻚﺗﺮى رﺳﺎﻟ ﺔ
اﻟﻤ ﺴ
ﺗﻬﺎ ﻟﻨﺸﺮ رد:
دﻋﻮ
ﺒﻴﺮا ت اﻟﻤﻨﻄﻘﻴ ﺔ
ﺘﻌاﻟ
ﺒﻴﺮ اﻟﻤﻨﻄﻘ ﻲ ﻫﻮ ﻣﺠﺮد اﺳﻢ آﺧﺮ
ﺘﻌﺒﻴﺮ اﻟﻤﻨﻄﻘ ﻲ ﻓ ﻲ ﻣﺮﺣﻠ ﺔ ﻣﺎ .اﻟ
ﺘﻌﺘ ﺴﻤﻊ ﻣﺼﻄﻠﺢ اﻟ
ﺒﺮﻣﺠ ﺔ ،ﺳ
ﺘﻌﻠﻢ اﻟﻤﺰﻳﺪ ﻋﻦ اﻟ
ﻋﻨﺪﻣﺎﺗ
ﺘﻢﺗﻘﻴﻴﻤﻬﺎ.
ﺑﻌﺪ أنﻳﺒﻴﺮ اﻟﺸﺮﻃ ﻲ
ﺘﻌﺜﻞ ﻗﻴﻤ ﺔ اﻟ
ﺗﻤﺎﻣﺎ ﻣ
ً ﺒﺎر اﻟﺸﺮﻃ ﻲ .اﻟﻘﻴﻤ ﺔ اﻟﻤﻨﻄﻘﻴ ﺔ ﻫ ﻲ إﻣﺎ Trueأو False ،
ﺘﻟﻼﺧ
= game_activeﺻﺤﻴﺢ
= can_editﺧﻄﺄ
ﺒﺮﻧﺎﻣﺞ
ﺒﻊ ﺣﺎﻟ ﺔ اﻟ
ﺘﺘﺗﻮﻓﺮ اﻟﻘﻴﻢ اﻟﻤﻨﻄﻘﻴ ﺔ ﻃﺮﻳﻘ ﺔ ﻓﻌﺎﻟ ﺔ ﻟ
ﺑﺮﻧﺎﻣﺠﻚ.أو ﺣﺎﻟ ﺔ ﻣﻌﻴﻨ ﺔ ﻣﻬﻤ ﺔ ﻓ ﻲ
ﺒﻴﺎﻧﺎ ت 81
إذا ﻛﺎﻧ ﺖ اﻟ
Machine Translated by Google
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺒﺎر.
ﺘﺘﺎﺋﺞ ﻛﻞ اﺧ
ﺗﻮﻗﻌﻚ ﻟﻨ
ﺒﺎر و
ﺘﺑﻴﺎﻧًﺎﻳﺼﻒ ﻛﻞ اﺧﺒﻊ
ﺒﺎرا ت اﻟﺸﺮﻃﻴ ﺔ .اﻃ
ﺘﺘ ﺐﺳﻠ ﺴﻠ ﺔ ﻣﻦ اﻻﺧ
ﺒﺎرا ت اﻟﺸﺮﻃﻴ ﺔ :اﻛ
ﺘ5-1.اﻻﺧ
ﺑﺎرو"
ﺳﻴﺎرة ="ﺳﻮ
ﺑ ًﺎ(".
ﺗﻮﻗﻊ ﺻﻮا
")printﻫﻞ اﻟ ﺴﻴﺎرة ؟'== 'subaruأ
ﺑﺎرو"(
ﺒﺎﻋ ﺔ )ﺳﻴﺎرة =="ﺳﻮ
ﻃ
ﺗﻮﻗﻊ ﺧﻄﺄ(".
print ("\ nﻫﻞ اﻟ ﺴﻴﺎرة =='أودي'؟ أ
ﺒﺎﻋ ﺔ )ﺳﻴﺎرة =='أودي'(
ﻃ
ﺒ ﺐ ﻛﻞﺳﻄﺮ
ﺗﺄﻛﺪ ﻣﻦ أﻧﻚﺗﻔﻬﻢﺳ
ﺘﺎﺋﺠﻚ ،و
ﺜ ﺐ إﱃ ﻧ
•اﻧﻈﺮ ﻋﻦ ﻛ
ﺘﻘﻴﻴﻢ ﺻﺤﻴﺢ أو ﺧﻄﺄ.
ﺑ
ﺑﺔ
ﺑـ 10.إذا ﻛﻨ ﺖﺗﺮﻳﺪﺗﺠﺮﺑﺈﻧﺸﺎﺋﻬﺎﺘ ﻲﺗﻘﻮم
ﺒﺎرا ت اﻟ
ﺘﺒﺎرا ت اﻟﺸﺮﻃﻴ ﺔ :ﻟﻴ ﺲ ﻋﻠﻴﻚﺗﺤﺪﻳﺪ ﻋﺪد اﻻﺧ
ﺘ5-2.اﻟﻤﺰﻳﺪ ﻣﻦ اﻻﺧ
ﺘﻴﺠ ﺔ واﺣﺪة
ﺒﺎرا ت وأﺿﻔﻬﺎ إﱃ conditional_tests.py.اﺣﺼﻞ ﻋﲆ ﻧ
ﺘﺘ ﺐ اﻟﻤﺰﻳﺪ ﻣﻦ اﻻﺧ
اﻟﻤﺰﻳﺪ ﻣﻦ اﻟﻤﻘﺎرﻧﺎ ت ،ﻓﺎﻛ
ﻋﲆ اﻷﻗﻞ ﺻﺤﻴﺤ ﺔ وأﺧﺮى ﺧﻄﺄ ﻟﻜﻞ ﻣﻤﺎﻳﻠ ﻲ:
ﺒﻴﺎﻧﺎ ت
إذا اﻟ
ﺑ ﺴﻴﻄ ﺔ إذاﺒﺎرا ت
ﻋ
ﺒﺎر واﺣﺪ وإﺟﺮاء واﺣﺪ:
ﺘﺒﺎرة ifﻟﻬﺎ اﺧ
ﺑ ﺴﻂ ﻧﻮع ﻣﻦ ﻋ
أ
82اﻟﻔﺼﻞ اﻟﺨﺎﻣ ﺲ
Machine Translated by Google
ﺒﺎر .إذاﺗﻢ
ﺘﺑﻌﺪ اﻻﺧﺒﺎدﺋ ﺔ
ﺘﻠ ﺔ ذا ت اﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﺒﺎر ﺷﺮﻃ ﻲ ﻓ ﻲ اﻟ ﺴﻄﺮ اﻷول وأي إﺟﺮاء ﻓ ﻲ اﻟﻜ
ﺘﻳﻤﻜﻨﻚ وﺿﻊ أي اﺧ
ﺒﺎرة if .
ﺗﻨﻔﺬ اﻟﻜﻮد اﻟﺬيﻳﻠ ﻲ ﻋ
ﺒﺎر اﻟﺸﺮﻃ ﻲ إﱃ True ،ﻓﺈن Python
ﺘﺗﻘﻴﻴﻢ اﻻﺧ
ﺘﺼﻮﻳ ﺖ.
ﺑﻤﺎﻳﻜﻔ ﻲ ﻟﻠﺒﻴ ﺮًا
ﺜﻞ ﻋﻤﺮ اﻟﺸﺨﺺ ،وﻧﺮﻳﺪ ﻣﻌﺮﻓ ﺔ ﻣﺎ إذا ﻛﺎن ﻫﺬا اﻟﺸﺨﺺ ﻛ
ﺘﻐﻴ ﺮًاﻳﻤ
ﺘﺮض أن ﻟﺪﻳﻨﺎ ﻣ
ﻟﻨﻔ
ﺘﺼﻮﻳ ﺖ:
ﺑﺈﻣﻜﺎن اﻟﺸﺨﺺ اﻟﺘﺎﻟ ﻲ ﻣﺎ إذا ﻛﺎن
ﺒﺮ اﻟﻜﻮد اﻟ
ﺘﻳﺨ
ﺘﺼﻮﻳ ﺖ = 19
ﻋﻤﺮ اﻟ
uإذا ﻛﺎن اﻟﻌﻤﺮ< = 18:
ﺘﺼﻮﻳ ﺖ!"(
ﺒﻠﻎ ﻣﻦ اﻟﻌﻤﺮ ﻣﺎﻳﻜﻔ ﻲ ﻟﻠ
")v printأﻧ ﺖﺗ
ﺒﺮ ﻣﻦ أو
ﺘﺤﻘﻖ Pythonﻟﻤﻌﺮﻓ ﺔ ﻣﺎ إذا ﻛﺎﻧ ﺖ اﻟﻘﻴﻤ ﺔ ﻓ ﻲ اﻟﻌﻤﺮ أﻛ
ﻓ ﻲ uﻳ
ﺒﺎدﺋ ﺔ ﻓ ﻲ v:
ﺒﺎﻋ ﺔ ذي اﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﺑﻴﺎن اﻟﻄ
ﻳ ﺴﺎوي 18.إﻧﻪ ﻛﺬﻟﻚ ،ﻟﺬﻟﻚﺗﻨﻔﺬ Python
ﺘﺼﻮﻳ ﺖ!
ﺒﻠﻎ ﻣﻦ اﻟﻌﻤﺮ ﻣﺎﻳﻜﻔ ﻲ ﻟﻠ
أﻧ ﺖﺗ
اﻟﻌﻤﺮ = 19
إذا ﻛﺎن اﻟﻌﻤﺮ< = 18:
ﺘﺼﻮﻳ ﺖ!"(
ﺒﻠﻎ ﻣﻦ اﻟﻌﻤﺮ ﻣﺎﻳﻜﻔ ﻲ ﻟﻠ
ﺒﺎﻋ ﺔ )"أﻧ ﺖﺗ
ﻃ
ﺘﻰ اﻵن؟"(
ﺘﺼﻮﻳ ﺖ ﺣ
ﺘ ﺴﺠﻴﻞ ﻟﻠ
ﺑﺎﻟ ")printﻫﻞ ﻗﻤ ﺖ
ﺒﺎﻋ ﺔ ﻛﻼ
ﺘﻢ ﻃ
ﺑﺤﻴ ﺚﺗﺒﺎﻋ ﺔ ،
ﺒﺎرا ت اﻟﻄ
ﺑﺎدﺋ ﺔ ﻟﻜﻞ ﻣﻦ ﻋﺘﻢ وﺿﻊ ﻣ ﺴﺎﻓ ﺔ
ﺒﺎر اﻟﺸﺮﻃ ﻲ ،وﻳ
ﺘﺘﺎز اﻻﺧ
ﻳﺠ
اﻟ ﺴﻄﺮﻳﻦ:
ﺘﺼﻮﻳ ﺖ!
ﺒﻠﻎ ﻣﻦ اﻟﻌﻤﺮ ﻣﺎﻳﻜﻔ ﻲ ﻟﻠ
أﻧ ﺖﺗ
ﺘﻰ اﻵن؟
ﺘﺼﻮﻳ ﺖ ﺣ
ﺘ ﺴﺠﻴﻞ ﻟﻠ
ﺑﺎﻟﻫﻞ ﻗﻤ ﺖ
ﺑﻴﺎﻧﺎ ت if-else
ﺘﻠﻒ ﻓ ﻲ ﺟﻤﻴﻊ اﻟﺤﺎﻻ ت اﻷﺧﺮى.
ﺒﺎر ﺷﺮﻃ ﻲ وإﺟﺮاء ﻣﺨ
ﺘﺘﻴﺎز اﺧ
ﺗﺨﺎذ إﺟﺮاء واﺣﺪ ﻋﻨﺪ اﺟ
ﺘﺮﻏ ﺐ ﻓ ﻲ ا
ﺜﻴﺮ ﻣﻦ اﻷﺣﻴﺎن ،ﺳ
ﻓ ﻲﻛ
ﺜﻮن if-elseﻳﺠﻌﻞ ﻫﺬا ﻣﻤﻜﻨًﺎ.
ﺑﻴﺑﻨﺎء ﺟﻤﻠ ﺔ
ﺘﻢﺗﻨﻔﻴﺬ ﻫﺎ
ﺘ ﻲﻳ
ﺘﻌﺮﻳﻒ إﺟﺮاء أو ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻹﺟﺮاءا ت اﻟ
ﺑﺗ ﺴﻤﺢ ﻟﻚ
ﺒﺎرة else
ﺒ ﺴﻴﻄ ﺔ ،ﻟﻜﻦ ﻋ
ﺘﻠ ﺔ if-elseﺟﻤﻠ ﺔ ifاﻟ
ﺒﻪ ﻛ
ﺗﺸ
ﺒﺎر اﻟﺸﺮﻃ ﻲ.
ﺘﻋﻨﺪ ﻓﺸﻞ اﻻﺧ
ﺒﻴﺎﻧﺎ ت 83
إذا ﻛﺎﻧ ﺖ اﻟ
Machine Translated by Google
اﻟﻌﻤﺮ = 17
uإذا ﻛﺎن اﻟﻌﻤﺮ< = 18:
ﺘﺼﻮﻳ ﺖ!"(
ﺒﻠﻎ ﻣﻦ اﻟﻌﻤﺮ ﻣﺎﻳﻜﻔ ﻲ ﻟﻠ
ﺒﺎﻋ ﺔ )"أﻧ ﺖﺗ
ﻃ
ﺘﻰ اﻵن؟"(
ﺘﺼﻮﻳ ﺖ ﺣ
ﺘ ﺴﺠﻴﻞ ﻟﻠ
ﺑﺎﻟ ")printﻫﻞ ﻗﻤ ﺖ
vآﺧﺮ:
ﺘﺼﻮﻳ ﺖ(".
")printﻋﺬ ًرا ،أﻧ ﺖ أﺻﻐﺮ ﻣﻦ اﻟ
ﻋﺎﻣﺎ!"(
ﺒﻠﻎ ً 18
ﺑﻤﺠﺮد أنﺗﺘﺼﻮﻳ ﺖ
ﺘ ﺴﺠﻴﻞ ﻟﻠ
ﺒﺎﻋ ﺔ )"اﻟﺮﺟﺎء اﻟ
ﻃ
ﺒﺎدﺋ ﺔ
ﺒﺎﻋ ﺔ ذا ت اﻟﻤ ﺴﺎﻓ ﺔ اﻟ
ﺘﻠ ﺔ ﻣﻦ اﻟﻄ
ﺒﺎر اﻟﺸﺮﻃ ﻲ ﻋﻨﺪ u ،ﻓﺈن أول ﻛ
ﺘإذا ﻧﺠﺢ اﻻﺧ
ﻋﺎﻣﺎ ﻫﺬه اﻟﻤﺮة ،
ﺘﻠ ﺔ elseﻓ ﻲ v .ﻧﻈ ﺮًاﻷن اﻟﻌﻤﺮ أﻗﻞ ﻣﻦ ً 18
ﺘﻢﺗﻨﻔﻴﺬ ﻛ
ﺒﺎر إﱃ False ،ﻓ ﺴﻴ
ﺘﺒﺎرا ت .إذاﺗﻢﺗﻘﻴﻴﻢ اﻻﺧ
ﺘﻢﺗﻨﻔﻴﺬ اﻟﻌ
ﻳ
ﺘﻠ ﺔ else :
ﺘﻢﺗﻨﻔﻴﺬ اﻟﻜﻮد اﻟﻤﻮﺟﻮد ﻓ ﻲ ﻛ
ﺒﺎر اﻟﺸﺮﻃ ﻲ وﻳ
ﺘﻳﻔﺸﻞ اﻻﺧ
ﺘﺼﻮﻳ ﺖ أو
ﺑﻤﺎﻳﻜﻔ ﻲ ﻟﻠﺒﻴ ﺮًا
ﺘﻘﻴﻴﻤﻬﻤﺎ :إﻣﺎ أنﻳﻜﻮن اﻟﺸﺨﺺ ﻛ
ﺘﻴﻦ ﻓﻘﻂ ﻟ
ﺘﻤﻠ
ﺘﻴﻦ ﻣﺤ
ﺘﻮي ﻋﲆ ﺣﺎﻟ
ﻳﻌﻤﻞ ﻫﺬا اﻟﺮﻣﺰﻷﻧﻪﻳﺤ
ﺘﺼﻮﻳ ﺖ .إذا ﻛﺎن آﺧﺮ
ﺑﻤﺎﻳﻜﻔ ﻲ ﻟﻠﺒﻴ ﺮًا
ﻟﻴ ﺲ ﻛ
ﺘﻤﻠﻴﻦ .ﻓ ﻲﺳﻠ ﺴﻠ ﺔ if-else
ﺋﻤﺎ أﺣﺪ اﻹﺟﺮاءﻳﻦ اﻟﻤﺤ
ﺘ ﻲﺗﺮﻳﺪ ﻓﻴﻬﺎ أنﺗﻨﻔﺬ Pythonدا ً
ﺑﺸﻜﻞ ﺟﻴﺪ ﻓ ﻲ اﻟﻤﻮاﻗﻒ اﻟﺒﻨﻴ ﺔ
ﺗﻌﻤﻞ اﻟ
ﺋﻤﺎﺗﻨﻔﻴﺬ أﺣﺪ اﻹﺟﺮاءﻳﻦ.
ﺘﻢ دا ً
ﺜﻞ ﻫﺬه ،ﺳﻴ
ﺑ ﺴﻴﻄ ﺔ ﻣ
ﺳﻠ ﺴﻠ ﺔ if-elif-else
ﺘﺨﺪام ﺻﻴﺎﻏ ﺔ else .
ﺘﻘﻴﻴﻢ ﻫﺬه اﻟﺤﺎﻻ ت ،ﻳﻤﻜﻨﻚ اﺳ
ﺘﻴﻦ ،وﻟ
ﺘﻤﻠ
ﺘﻴﻦ ﻣﺤ
ﺜﺮ ﻣﻦ ﺣﺎﻟ
ﺒﺎر أﻛ
ﺘﺘﺎج إﱃ اﺧ
ﺘﺤﺜﻴﺮ ﻣﻦ اﻷﺣﻴﺎن ،ﺳ
ﻓ ﻲﻛ
ﺘﻰﻳﻤﺮ واﺣﺪ.
ﺗﻴ ﺐ ﺣ
ﺘﺮﺑﺎﻟﺒﺎر ﺷﺮﻃ ﻲ
ﺘﺘﻢﺗﺸﻐﻴﻞ ﻛﻞ اﺧ ﺘﻠ ﺔ واﺣﺪة ﻓﻘﻂ ﻓ ﻲﺳﻠ ﺴﻠ ﺔ if-elif-else .ﻳ
ﺗﻨﻔﺬ Pythonﻛ Python if-elif-
ﺒﺎرا ت.
ﺘﺑﺎﻗ ﻲ اﻻﺧ
ﺘﺨﻄﻰ Python ﺗﺒﺎر وﺘﺒﻊ ذﻟﻚ اﻻﺧ
ﺘﺘﻢﺗﻨﻔﻴﺬ اﻟﻜﻮد اﻟﺬيﻳ
ﺒﺎر ،ﻳﺘ
ﺘﻴﺎز اﻻﺧ
ﻋﻨﺪ اﺟ
ﺘﻴﻦ.
ﺘﻤﻠ
ﺘﻴﻦ ﻣﺤ
ﺜﺮ ﻣﻦ ﺣﺎﻟ
ﺘﻀﻤﻦ اﻟﻌﺪﻳﺪ ﻣﻦ ﻣﻮاﻗﻒ اﻟﻌﺎﻟﻢ اﻟﺤﻘﻴﻘ ﻲ أﻛ
ﺗ
ﺘﻠﻒ اﻟﻔﺌﺎ ت اﻟﻌﻤﺮﻳ ﺔ:
ﺘﻠﻔ ﺔ ﻟﻤﺨ
ﺘﻘﺎﺿﻰ أﺳﻌﺎ ًرا ﻣﺨ
ﺒﺎرك ﻣﺪﻳﻨ ﺔ ﻣﻼ ﻫ ﻲﺗ
ﺘﺜﺎل ،ﺿﻊ ﻓ ﻲ اﻋ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺒﻮل اﻟﺸﺨﺺ؟
ﺘﺤﺪﻳﺪ ﻣﻌﺪل ﻗ
ﺒﺎرة ifﻟ
ﺘﺨﺪام ﻋ
ﻛﻴﻒﻳﻤﻜﻨﻨﺎ اﺳ
ﺒﻮل:
ﺒﻊ رﺳﺎﻟ ﺔﺳﻌﺮ اﻟﻘ
ﺛﻢﺗﻄﺘﺎﻟ ﻲ ﻟﻠﻔﺌ ﺔ اﻟﻌﻤﺮﻳ ﺔ ﻟﻠﺸﺨﺺ
ﺒﺮ اﻟﻜﻮد اﻟ
ﺘﺗﺨ
84اﻟﻔﺼﻞ اﻟﺨﺎﻣ ﺲ
Machine Translated by Google
ﺒﺔ
ﺒﺎﻋ ﺔ رﺳﺎﻟ ﺔ ﻣﻨﺎﺳ
ﺘﻢ ﻃ
ﺘﺒﺎر ،ﻓ ﺴ
ﺘﺒﺎر if at uﻣﺎ إذا ﻛﺎن ﻋﻤﺮ اﻟﺸﺨﺺ أﻗﻞ ﻣﻦ 4ﺳﻨﻮا ت .إذا ﻧﺠﺢ اﻻﺧ
ﺘﺒﺮ اﺧ
ﺘﻳﺨ
ﺘﻢﺗﺸﻐﻴﻠﻪ ﻓﻘﻂ ﻓ ﻲ ﺣﺎﻟ ﺔ
ﺒﺎر ،واﻟﺬيﻳ
ﺘﺒﺮ ﺧﻂ elifﻓ ﻲ vﺣ ًﻘﺎ آﺧﺮ إذا ﻛﺎن اﻻﺧ
ﺘﺒﺎرا ت.ﻳﻌ
ﺘﺑﺎﻗ ﻲ اﻻﺧ
ﺘﺨﻄﻰ Python
ﺗو
ﺒﻠﻎ ﻣﻦ اﻟﻌﻤﺮ 4ﺳﻨﻮا ت ﻋﲆ اﻷﻗﻞﻷن
ﺑﻖ .ﻓ ﻲ ﻫﺬه اﻟﻤﺮﺣﻠ ﺔ ﻣﻦ اﻟ ﺴﻠ ﺴﻠ ﺔ ،ﻧﻌﻠﻢ أن اﻟﺸﺨﺺﻳ
ﺒﺎر اﻟ ﺴﺎ
ﺘﻓﺸﻞ اﻻﺧ
ﺘﻠ ﺔ
ﺘﺨﻄﻰ Pythonﻛ
ﺗﺒﺔ و
ﺒﺎﻋ ﺔ اﻟﺮﺳﺎﻟ ﺔ اﻟﻤﻨﺎﺳ
ﺘﻢ ﻃ
ﺘﻋﺎﻣﺎ ،ﻓ ﺴ
ﺒﺎر اﻷول ﻓﺸﻞ .إذا ﻛﺎن ﻋﻤﺮ اﻟﺸﺨﺺ أﻗﻞ ﻣﻦ ً 18
ﺘاﻻﺧ
ﺘﻠ ﺔ elseﻓ ﻲ w.
ﺘﺸﻐﻴﻞ اﻟﻜﻮد ﻓ ﻲ ﻛ
ﺑﺗﻘﻮم
ﺒﺎرا ت ifو elif ،ﻓﺈن Python
ﺘelse .إذا ﻓﺸﻠ ﺖ ﻛﻞ ﻣﻦ اﺧ
ﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻠ ﺔ اﻟ
ﺘﻢﺗﻨﻔﻴﺬ ﻛ
ﺒﺎر ﻋﻨﺪ uإﱃ False ،ﻟﺬﻟﻚ ﻻﻳ
ﺘﺘﻢﺗﻘﻴﻴﻢ اﻻﺧ
ﺜﺎل ،ﻳ
ﻓ ﻲ ﻫﺬا اﻟﻤ
ﺑﻪ .اﻟﻤﺨﺮجﺘﻢﺗﻨﻔﻴﺬ اﻟﻜﻮد اﻟﺨﺎص
ﺑﺤﻴ ﺚﻳ
ﺜﺎﻧ ﻲ إﱃ True (12أﻗﻞ ﻣﻦ )18
ﺒﺎر اﻟ
ﺘﺘﻢﺗﻘﻴﻴﻢ اﻻﺧ
ﺑﻪ .وﻣﻊ ذﻟﻚ ،ﻳ
ﺒﻮل:
ﺘﻜﻠﻔ ﺔ اﻟﻘ
ﺑﺘﺨﺪم
ﺒﺎرة ﻋﻦ ﺟﻤﻠ ﺔ واﺣﺪة ﻹﻋﻼم اﻟﻤ ﺴ
ﻋ
ﺘﻠ ﺔ elseوﺳﻴﻜﻮنﺳﻌﺮ
ﺘﻢﺗﻨﻔﻴﺬ ﻛ
ﺒﺎرﻳﻦ .ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻻ ت ،ﺳﻴ
ﺘﺒﺮ ﻣﻦ 17إﱃ ﻓﺸﻞ أول اﺧ
ﻗﺪﻳﺆدي أي ﻋﻤﺮ أﻛ
ﺒﻮل 10دوﻻرا ت.
اﻟﻘ
اﻟﻌﻤﺮ = 12
ﺳﻌﺮ w = 10
ﺑﻌﺪﺗﺤﺪﻳﺪ اﻟ ﺴﻌﺮ ﻣﻦ ﺧﻼلﺑﻖ. ﺗﺤﺪد اﻟﺨﻄﻮط ﻓ ﻲ uو vو wﻗﻴﻤ ﺔ اﻟ ﺴﻌﺮ وﻓ ًﻘﺎ ﻟﻌﻤﺮ اﻟﺸﺨﺺ ،ﻛﻤﺎ ﻓ ﻲ اﻟﻤ
ﺜﺎل اﻟ ﺴﺎ
ﺒﻮل
ﺒﻠﻎ ﻋﻦﺳﻌﺮ ﻗ
ﻫﺬه اﻟﻘﻴﻤ ﺔ ﻟﻌﺮض mes sageﻳ ﺒﻮق
ﺒﺎﻋ ﺔ ﻣﻨﻔﺼﻞ ﻏﻴﺮ ﻣ ﺴ
ﺑﻴﺎن ﻃﺘﺨﺪم
ﺳﻠ ﺴﻠ ﺔ if-elif-else ،ﻳ ﺴ
اﻟﺸﺨﺺ.
ﺒﺎرا ت
85-إذا ﻛﺎﻧ ﺖ اﻟﻌ
Machine Translated by Google
ﺘﻌﺪدة
ﺘﻞ elifاﻟﻤ
ﺘﺨﺪام ﻛ
اﺳ
اﻟﻌﻤﺮ = 12
ﺑﻠﻮكﺣﺬف آﺧﺮ
ﺑﻌﺾ اﻷﺣﻴﺎنﺘﻠ ﺔ اﻷﺧﺮى ﻣﻔﻴﺪة ؛ ﻓ ﻲ
ﺑﻌﺾ اﻷﺣﻴﺎنﺗﻜﻮن اﻟﻜﺘﻠ ﺔ أﺧﺮى ﻓ ﻲ ﻧﻬﺎﻳ ﺔﺳﻠ ﺴﻠ ﺔ if-elif .ﻓ ﻲ
ﺘﻄﻠ ﺐ Pythonﻛ
ﻻﺗ
ﺘﻘﻂ اﻟﺸﺮط اﻟﻤﺤﺪد ﻟﻠﻔﺎﺋﺪة:
ﺒﺎرة elifإﺿﺎﻓﻴ ﺔﺗﻠ
ﺘﺨﺪام ﻋ
ﻳﻜﻮن ﻣﻦ اﻟﻮاﺿﺢ اﺳ
اﻟﻌﻤﺮ = 12
ﺘﻠ ﺔ elifاﻹﺿﺎﻓﻴ ﺔ ﻋﻨﺪ uﺳﻌ ﺮًا ﻗﺪره 5دوﻻرا ت أﻣﺮﻳﻜﻴ ﺔ ﻋﻨﺪﻣﺎﻳﻜﻮن اﻟﺸﺨﺺ 65أو
ﺗﺤﺪد ﻛ
ﺒﺎ ًرا ﻣﻌﻴﻨًﺎ
ﺘﺘﻠ ﺔ ﻣﻦ اﻟﻜﻮد اﺧ
ﺘﺎز ﻛﻞ ﻛ
ﺘﻐﻴﻴﺮ ،ﻳﺠ ﺐ أنﺗﺠ أﻗﺪم ،و ﻫ ﻲ أوﺿﺢ ﻗﻠﻴ ﻼ ً ﻣﻦ ﻛ
ﺘﻠ ﺔ اﻟﻌﻨﺎﺻﺮ اﻟﻌﺎﻣ ﺔ .ﻣﻊ ﻫﺬا اﻟ
ﺘﻢﺗﻨﻔﻴﺬ ﻫﺎ.
ﺘﻰﻳ
ﺣ
86اﻟﻔﺼﻞ اﻟﺨﺎﻣ ﺲ
Machine Translated by Google
ﺘﻀﻤﻦ ذﻟﻚ
ﺒﺎر ifأو elifﻣﺤﺪد ،وﻳﻤﻜﻦ أنﻳ
ﺘﺑﻘﻪ اﺧ
ﺑﻖ ﻣﻊ أي ﺷﺮط ﻟﻢﻳﻄﺎ
ﺘﻄﺎ
ﺑﻴﺎن ﺷﺎﻣﻞ .إﻧﻪﻳﺒﺎرة ﻋﻦ
ﺘﻠ ﺔ elseﻋ
ﻛ
ﺘﻠ ﺔ elifﻧﻬﺎﺋﻴ ﺔ
ﺘﺨﺪام ﻛ
ﺒﺮ ﻫﺎ ،ﻓﻔﻜﺮ ﻓ ﻲ اﺳ
ﺘﺘﻰ ﺿﺎرة .إذا ﻛﺎن ﻟﺪﻳﻚ ﺣﺎﻟ ﺔ ﻧﻬﺎﺋﻴ ﺔ ﻣﺤﺪدةﺗﺨ
ﺑﻴﺎﻧﺎ ت ﻏﻴﺮ ﺻﺎﻟﺤ ﺔ أو ﺣأﺣﻴﺎﻧًﺎ
ﺘﻌﻤﻞ ﻓﻘﻂ ﻓ ﻲ ﻇﻞ
ﺑﻚﺳﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺒﺮ ﻓ ﻲ أن اﻟ
ﺛﻘ ﺔ أﻛﺘﺴ ﺐ
ﺘﻜﺘﻴﺠ ﺔ ﻟﺬﻟﻚ ،ﺳ
ﺘﻠ ﺔ else .ﻧ
ﺗﺠﺎ ﻫﻞ ﻛ
و
اﻟﻈﺮوف اﻟﺼﺤﻴﺤ ﺔ.
ﺘﻌﺪدة
ﺒﺎر اﻟﺸﺮوط اﻟﻤ
ﺘاﺧ
ﺑﻤﺠﺮد أنﺗﺠﺪﺒﺎر واﺣﺪ ﻟﻠﻨﺠﺎح.
ﺘﺘﺎج ﻓﻘﻂ إﱃ اﺧ
ﺘﺨﺪام ﻓﻘﻂ ﻋﻨﺪﻣﺎﺗﺤ
ﺒ ﺔ ﻟﻼﺳ
ﺒﺮﺳﻠ ﺴﻠ ﺔ if-elif-elseﻗﻮﻳ ﺔ ،ﻟﻜﻨﻬﺎ ﻣﻨﺎﺳ
ﺘﺗﻌ
ﺒﺎر ﺣﺎﻟ ﺔ ﻣﻌﻴﻨ ﺔ.
ﺘﺑﺎﺧﺒﺎرا ت .ﻫﺬا اﻟ ﺴﻠﻮك ﻣﻔﻴﺪ ،ﻷﻧﻪ ﻓﻌﺎل وﻳ ﺴﻤﺢ ﻟﻚ
ﺘﺑﻘﻴ ﺔ اﻻﺧﺘﺨﻄﻰ
ﺒﺎ ًرا واﺣﺪًا ﻧﺠﺢ ،ﻓﺈﻧﻬﺎﺗ
ﺘPythonاﺧ
ﺘﺨﺪام
ﺘﻤﺎم .ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔ ،ﻳﺠ ﺐ ﻋﻠﻴﻚ اﺳ
ﺘﺤﻘﻖ ﻣﻦ ﺟﻤﻴﻊ ﺷﺮوط اﻻ ﻫ
ﺑﻌﺾ اﻷﺣﻴﺎن اﻟوﻣﻊ ذﻟﻚ ،ﻣﻦ اﻟﻤﻬﻢ ﻓ ﻲ
ﺜﺮ ﻣﻦ ﺷﺮط واﺣﺪ
ﺘﻞ elifأو else .ﻳﻜﻮن ﻫﺬا اﻷﺳﻠﻮ ب ﻣﻨﻄﻘ ًﻴﺎ ﻋﻨﺪﻣﺎﻳﻜﻮن أﻛ
ﺑﺪون ﻛﺒ ﺴﻴﻄ ﺔ
ﺒﺎرا ت ifاﻟ
ﺳﻠ ﺴﻠ ﺔ ﻣﻦ ﻋ
ﺘﺼﺮف وﻓ ًﻘﺎ ﻟﻜﻞ ﺣﺎﻟ ﺔ ﺻﺤﻴﺤ ﺔ.
ﺗﺮﻳﺪ اﻟ
ﺻﺤﻴﺤًﺎ ،و
ﺒ ﺔ اﻷوﱃ
ﺗﺘﻞ اﻟﻤﺮ
ﺛﻨﻴﻦﺗﺤ
ﺘﺰا .إذا ﻃﻠ ﺐ ﺷﺨﺺ ﻣﺎ ا
ﺒﻴﺜﺎل ﻣﻄﻌﻢ اﻟ
دﻋﻮﻧﺎ ﻧﻌﻴﺪ اﻟﻨﻈﺮ ﻓ ﻲ ﻣ
ﺑﻬﻢ:ﺘﺰا اﻟﺨﺎﺻ ﺔ
ﺒﻴﺘﺎ اﻹﺿﺎﻓﺎ ت ﻋﲆ اﻟ
ﺘﺄﻛﺪ ﻣﻦﺗﻀﻤﻴﻦ ﻛﻠ
ﺘﺎج إﱃ اﻟ
ﺘﺤﺘﺰا ،ﺳ
ﺒﻴاﻟ
ﺑ ﺔ:
vإذا ﻛﺎﻧ ﺖ "اﻟﻔﻄﺮ" ﻓ ﻲ اﻟﻀﺨﺎﻣ ﺔ اﻟﻤﻄﻠﻮ
ﺒﺎﻋ ﺔ )"إﺿﺎﻓ ﺔ اﻟﻔﻄﺮ(".ﻃ
ﺑ ﺔ:
ﺒﺮوﻧ ﻲ" ﻓ ﻲ اﻹﺿﺎﻓﺎ ت اﻟﻤﻄﻠﻮ ﺑﻴإذا ﻛﺎﻧ ﺖ ﻛﻠﻤ ﺔ "
)"print ("Adding pepperoni.
ﺑ ﺔ:
ﺒﻦ اﻹﺿﺎﻓ ﻲ" ﻓ ﻲ اﻹﺿﺎﻓﺎ ت اﻟﻤﻄﻠﻮ xإذا ﻛﺎن "اﻟﺠ
ﺒﻦ(". ﺒﺎﻋ ﺔ )"إﺿﺎﻓ ﺔ اﻟﻤﺰﻳﺪ ﻣﻦ اﻟﺠﻃ
ﺑﻚ!"(ﺘﺰا اﻟﺨﺎﺻ ﺔ
ﺒﻴﺘﻬﺎء ﻣﻦ ﺻﻨﻊ اﻟ
ﺗﻢ اﻻﻧ
ﺒﺎﻋ ﺔ ("\ n
ﻃ
ﺑ ﺔ .إذا _
ﺒﻘ ﺔ اﻟﻤﻄﻠﻮ
ﺘﻮي ﻋﲆ اﻟﻄ
ﺑﻘﺎﺋﻤ ﺔﺗﺤ
ﺒﺪأ ﻣﻦ u
ﻧ
ﺘﻢ
ﺘﺑﻪ .إذا ﻛﺎن اﻷﻣﺮ ﻛﺬﻟﻚ ،ﻓ ﺴﺘﺰا اﻟﺨﺎﺻ ﺔ
ﺒﻴﺘﺤﻘﻖ ﻟﻤﻌﺮﻓ ﺔ ﻣﺎ إذا ﻛﺎن اﻟﺸﺨﺺ ﻗﺪ ﻃﻠ ﺐ ﻋﻴ ﺶ اﻟﻐﺮا ب ﻋﲆ اﻟ
ﺒﻴﺎن ﻓ ﻲ vﻳ
اﻟ
ﺑ ﺴﻴﻄ ﺔ ،وﻟﻴ ﺲ elifأو ﻏﻴﺮ ذﻟﻚﺒﺎرة أﺧﺮى
ﺒﺮوﻧ ﻲ ﻓ ﻲ wﻫﻮ ﻋ
ﺒﻴﺒﺎر اﻟ
ﺘﺒﺎﻋ ﺔ رﺳﺎﻟ ﺔﺗﺆﻛﺪ ذﻟﻚ .اﺧ
ﻃ
ﺘﺰا:
ﺒﻴﺒﻦ اﻹﺿﺎﻓ ﻲ إﱃ اﻟ
ﺘﻢ إﺿﺎﻓ ﺔ ﻛﻞ ﻣﻦ اﻟﻔﻄﺮ واﻟﺠ
ﺜﺎل ،ﺗ
ﺘﻢﺗﻘﻴﻴﻢ ﻛﻞ ﺣﺎﻟ ﺔ ﻓ ﻲ ﻫﺬا اﻟﻤ
ﻧﻈ ًﺮاﻷﻧﻪﻳ
إﺿﺎﻓ ﺔ اﻟﻔﻄﺮ.
ﺒﻦ.
إﺿﺎﻓ ﺔ اﻟﻤﺰﻳﺪ ﻣﻦ اﻟﺠ
ﺑﻚ!ﺘﺰا اﻟﺨﺎﺻ ﺔ
ﺒﻴﺘﻬﻴﻨﺎ ﻣﻦ ﺻﻨﻊ اﻟ
اﻧ
ﺒﻴﺎﻧﺎ ت 87
إذا اﻟ
Machine Translated by Google
ﺒﺎر
ﺘﺘﻴﺎز اﺧ
ﺑﻌﺪ اﺟﺘﻮﻗﻒ ﻋﻦ اﻟﻌﻤﻞ
ﺘﻠ ﺔ if-elif-else ،ﻷن اﻟﻜﻮدﺳﻴ
ﺘﺨﺪﻣﻨﺎ ﻛ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ إذا اﺳﻟﻦﻳﻌﻤﻞ ﻫﺬا اﻟﺮﻣﺰ
ﺒﺪو ﻋﻠﻴﻪ ذﻟﻚ:
واﺣﺪ ﻓﻘﻂ .إﻟﻴﻚ ﻣﺎﺳﻴ
ﺑﻚ!"(ﺘﺰا اﻟﺨﺎﺻ ﺔ
ﺒﻴﺘﻬﺎء ﻣﻦ ﺻﻨﻊ اﻟ
ﺗﻢ اﻻﻧ
ﺒﺎﻋ ﺔ ("\ n
ﻃ
ُﻀﺎف ﻋﻴ ﺶ اﻟﻐﺮا ب
ﺘﻴﺎزه ،ﻟﺬﻟﻚﻳ
ﺘﻢ اﺟ
ﺒﺎرﻳ
ﺘﺒﺎر "اﻟﻔﻄﺮ" ﻫﻮ أول اﺧ
ﺘاﺧ
ﺘﺠﺎوز
ﺒﺎرا تﺗ
ﺘﺜﻮن ﻻﺗﺠﺮي أي اﺧ
ﺑﺎﻳﺑﺪًا ،ﻷن
ﺒﺮوﻧ ﻲ" أ
ﺒﻴﺒﻦ اﻹﺿﺎﻓ ﻲ" و "اﻟ
ﺘﻢ ﻓﺤﺺ ﻗﻴﻢ "اﻟﺠ
ﺘﺰا .وﻣﻊ ذﻟﻚ ،ﻻﻳ
ﺒﻴﻟﻠ
ﺘﻢﺗﻔﻮﻳ ﺖ ﺟﻤﻴﻊ
ﺒﻘ ﺔ اﻷوﱃ ﻟﻠﻌﻤﻴﻞ ،وﻟﻜﻦﺳﻴ
ﺘﻢ إﺿﺎﻓ ﺔ اﻟﻄ
ﺘﺒﺎر اﻷول اﻟﺬيﻳﻤﺮ ﻓ ﻲﺳﻠ ﺴﻠ ﺔ if-elif-else .ﺳ
ﺘاﻻﺧ
اﻹﺿﺎﻓﺎ ت اﻷﺧﺮى:
إﺿﺎﻓ ﺔ اﻟﻔﻄﺮ.
ﺑﻚ!ﺘﺰا اﻟﺨﺎﺻ ﺔ
ﺒﻴﺘﻬﻴﻨﺎ ﻣﻦ ﺻﻨﻊ اﻟ
اﻧ
ﺘﺨﺪم if-elif
ﺒﺮﻣﺠﻴ ﺔ ،ﻓﺎﺳ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻠ ﺔ واﺣﺪة ﻓﻘﻂ ﻣﻦ اﻟ
ﺘﺼﺎر ،إذا ﻛﻨ ﺖﺗﺮﻳﺪﺗﺸﻐﻴﻞ ﻛ
ﺑﺎﺧ
ﺒﺎرا ت if
ﺘﺨﺪمﺳﻠ ﺴﻠ ﺔ ﻣﻦ ﻋ
ﺒﺮﻣﺠﻴ ﺔ ،ﻓﺎﺳ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻠ ﺔ واﺣﺪة ﻣﻦ اﻟ
ﺜﺮ ﻣﻦ ﻛ
ﺳﻠ ﺴﻠ ﺔ أﺧﺮى .إذا ﻛﺎنﻳﻠﺰمﺗﺸﻐﻴﻞ أﻛ
ﺘﻘﻠ ﺔ .
اﻟﻤ ﺴ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺘ ﺐﺳﻠ ﺴﻠ ﺔ if-else . ﺘﺮ ﻟﻮﻧًﺎ ﻟﻜﺎﺋﻦ ﻓﻀﺎﺋ ﻲ ﻛﻤﺎ ﻓﻌﻠ ﺖ ﻓ ﻲ اﻟ
ﺘﻤﺮﻳﻦ 5-3 ،واﻛ 5-4. Alien Colors # 2:اﺧ
ﺘﻮ
ﺑﻴﺎن ﺣﺼﻞ ﻋﻠﻴﻪ اﻟﻼﻋ ﺐ ﻟﻠﺒﺎﻋ ﺔ
ﺑﻄ•إذا ﻟﻢﻳﻜﻦ ﻟﻮن اﻟﻜﺎﺋﻦ اﻟﻔﻀﺎﺋ ﻲ أﺧﻀﺮ ،ﻓﻘﻢ
10ﻧﻘﺎط.
88اﻟﻔﺼﻞ اﻟﺨﺎﻣ ﺲ
Machine Translated by Google
ﺑﺢ 5ﻧﻘﺎط.
ﺑﺄن اﻟﻼﻋ ﺐ ﻗﺪ رﺒﻊ رﺳﺎﻟ ﺔﺗﻔﻴﺪ
•إذا ﻛﺎن اﻟﻜﺎﺋﻦ اﻟﻔﻀﺎﺋ ﻲ أﺧﻀﺮ ،اﻃ
ﺑﺢ 10ﻧﻘﺎط.
ﺑﺄن اﻟﻼﻋ ﺐ ﻗﺪ رﺒﻊ رﺳﺎﻟ ﺔﺗﻔﻴﺪ
ﺒ ﻲ أﺻﻔﺮ ،اﻃ
•إذا ﻛﺎن اﻷﺟﻨ
ﺘﻲ
ﺘﻘﻠ ﺔ اﻟ
ﺒﺎرا ت ifاﻟﻤ ﺴ
ﺘ ﺐﺳﻠ ﺴﻠ ﺔ ﻣﻦ ﻋ
ﺛﻢ اﻛﺑﺎﻟﻔﻮاﻛﻪ اﻟﻤﻔﻀﻠ ﺔ ﻟﺪﻳﻚ ،ﺘ ﺐ ﻗﺎﺋﻤ ﺔ
5-7.اﻟﻔﺎﻛﻬ ﺔ اﻟﻤﻔﻀﻠ ﺔ :اﻛ
ﺘﻚ.
ﺒﺤ ﺚ ﻋﻦ ﻓﻮاﻛﻪ ﻣﻌﻴﻨ ﺔ ﻓ ﻲ ﻗﺎﺋﻤ
ﺗ
ﺒﺎرا ت 89
إذا ﻛﺎﻧ ﺖ اﻟﻌ
Machine Translated by Google
ﺑﻚﺘﺰا اﻟﺨﺎﺻ ﺔ
ﺒﻴﺒﻘ ﺔ ﻋﻠﻮﻳ ﺔ إﱃ اﻟ
ﺘﺰا رﺳﺎﻟ ﺔ ﻛﻠﻤﺎﺗﻤ ﺖ إﺿﺎﻓ ﺔ ﻃ
ﺒﻴﺘﺰا.ﻳﻌﺮض ﻣﻄﻌﻢ اﻟ
ﺒﻴﺜﺎل ﻣﻄﻌﻢ اﻟ
دﻋﻨﺎ ﻧﻮاﺻﻞ ﻣ
ﺒﻬﺎ اﻟﻌﻤﻴﻞ
ﺘ ﻲ ﻃﻠ
ﺒﻘﺎ ت اﻟ
ﺑﺎﻟﻄﺑﻜﻔﺎءة ﻋﺎﻟﻴ ﺔ ﻣﻦ ﺧﻼل ﻋﻤﻞ ﻗﺎﺋﻤ ﺔﺑﻬﺬا اﻹﺟﺮاءﺑ ﺔ اﻟﻜﻮد اﻟﺨﺎص
ﺘﺎ
ﺛﻨﺎء إﻋﺪاد ﻫﺎ.ﻳﻤﻜﻦ ﻛ
أ
ﺘﺰا:
ﺒﻴﺘﻬﺎ إﱃ اﻟ
ﺒﻘ ﺔ ﻋﻨﺪ إﺿﺎﻓ
ﺘﺨﺪام ﺣﻠﻘ ﺔ ﻟﻺﻋﻼن ﻋﻦ ﻛﻞ ﻃ
واﺳ
ﺑ ﺔ:
ﺘ ﺴﻮﻳ ﺔ اﻟﻤﻄﻠﻮ
ﻟﻠﻄﻠ ﺐ_اﻟ
)"print ("Adding" + required_topping + ".
ﺑﻚ!"(ﺘﺰا اﻟﺨﺎﺻ ﺔ
ﺒﻴﺘﻬﺎء ﻣﻦ ﺻﻨﻊ اﻟ
ﺗﻢ اﻻﻧ
ﺒﺎﻋ ﺔ ("\ n
ﻃ
ﺑ ﺴﻴﻄ ﺔ :
ﺒﺎﺷﺮﻷن ﻫﺬا اﻟﺮﻣﺰ ﻫﻮ ﻣﺠﺮد ﺣﻠﻘ ﺔ for
اﻹﺧﺮاج واﺿﺢ وﻣ
إﺿﺎﻓ ﺔ اﻟﻔﻄﺮ.
اﺿﺎﻓ ﺔ اﻟﻔﻠﻔﻞ اﻻﺧﻀﺮ.
ﺒﻦ.
إﺿﺎﻓ ﺔ اﻟﻤﺰﻳﺪ ﻣﻦ اﻟﺠ
ﺘﺰا!
ﺒﻴﺘﻬﻴﻨﺎ ﻣﻦ ﺻﻨﻊ اﻟ
اﻧ
ﺑ ﺔ:
ﺘ ﺴﻮﻳ ﺔ اﻟﻤﻄﻠﻮ
ﻟﻠﻄﻠ ﺐ_اﻟ
ﺘ ﺴﻮق =='ﻓﻠﻔﻞ أﺧﻀﺮ':
ﺒ ﺖ_اﻟ
uإذا ﻃﻠ
")printﻋﺬ ًرا ،ﻧﻔﺪ اﻟﻔﻠﻔﻞ اﻷﺧﻀﺮ اﻵن(".
vآﺧﺮ:
ﺑﻚ!"(ﺘﺰا اﻟﺨﺎﺻ ﺔ
ﺒﻴﺘﻬﺎء ﻣﻦ ﺻﻨﻊ اﻟ
ﺗﻢ اﻻﻧ
ﺒﺎﻋ ﺔ ("\ n
ﻃ
ﺘﺰا.
ﺒﻴﺘﻪ إﱃ اﻟ
ﺒﻞ إﺿﺎﻓ
ﺘﺤﻘﻖ ﻣﻦ ﻛﻞ ﻋﻨﺼﺮ ﻣﻄﻠﻮ ب ﻗ
ﻫﺬه اﻟﻤﺮة ﻧ
ﺘﺤﻘﻖ اﻟﻜﻮد اﻟﻤﻮﺟﻮد ﻓ ﻲ uﻟﻤﻌﺮﻓ ﺔ ﻣﺎ إذا ﻛﺎن اﻟﺸﺨﺺ ﻗﺪ ﻃﻠ ﺐ اﻟﻔﻠﻔﻞ اﻷﺧﻀﺮ .إذا ﻛﺎن اﻷﻣﺮ ﻛﺬﻟﻚ ،ﻓﺈﻧﻨﺎ
ﻳ
ﺒ ﺐ ﻋﺪمﺗﻤﻜﻨﻬﻢ ﻣﻦﺗﻨﺎول اﻟﻔﻠﻔﻞ اﻷﺧﻀﺮ.
ﺒﺮ ﻫﻢ ﻋﻦﺳ
ﻧﻌﺮض رﺳﺎﻟ ﺔﺗﺨ
ﺘﺰا.
ﺒﻴﺘﻠ ﺔ elseﻓ ﻲ vإﺿﺎﻓ ﺔ ﺟﻤﻴﻊ اﻹﺿﺎﻓﺎ ت اﻷﺧﺮى إﱃ اﻟ
ﺗﻀﻤﻦ ﻛ
90اﻟﻔﺼﻞ اﻟﺨﺎﻣ ﺲ
Machine Translated by Google
إﺿﺎﻓ ﺔ اﻟﻔﻄﺮ.
ﻋﺬرا ،ﻟﻘﺪ ﻧﻔﺪ اﻟﻔﻠﻔﻞ اﻷﺧﻀﺮ ﻟﺪﻳﻨﺎ اﻵن.
ﺒﻦ.
إﺿﺎﻓ ﺔ اﻟﻤﺰﻳﺪ ﻣﻦ اﻟﺠ
ﺑﻚ!ﺘﺰا اﻟﺨﺎﺻ ﺔ
ﺒﻴﺘﻬﻴﻨﺎ ﻣﻦ ﺻﻨﻊ اﻟ
اﻧ
][ = u request_toppings
ﺑ ﺔ ﻓ ﻲ u.
ﺑﻘﺎﺋﻤ ﺔ ﻓﺎرﻏ ﺔ ﻣﻦ اﻹﺿﺎﻓﺎ ت اﻟﻤﻄﻠﻮﺒﺪأ
ﻫﺬه اﻟﻤﺮة ﻧ
ﺗﺮﺟﻊ True
ﺒﺎرة if ،
ﺘﺨﺪام اﺳﻢ ﻗﺎﺋﻤ ﺔ ﻓ ﻲ ﻋ
ﺘﻢ اﺳ
ﺑﻔﺤﺺﺳﺮﻳﻊ ﻋﻨﺪ v.ﻋﻨﺪﻣﺎﻳ ﺑﺪﻻ ً ﻣﻦ اﻟﻘﻔﺰ ﻣ
ﺒﺎﺷﺮة إﱃ ﺣﻠﻘ ﺔ for ،ﻧﻘﻮم
ﺒﺖ
ﺘﻢﺗﻘﻴﻴﻢ اﻟﻘﺎﺋﻤ ﺔ اﻟﻔﺎرﻏ ﺔ إﱃ False.إذا ﻃﻠ
ﺘﻮي ﻋﲆ ﻋﻨﺼﺮ واﺣﺪ ﻋﲆ اﻷﻗﻞ ؛ﻳ
Pythonإذا ﻛﺎﻧ ﺖ اﻟﻘﺎﺋﻤ ﺔﺗﺤ
ﺑ ًﺎ
ﺒ ﺔ اﻷوﱃ ﻣﻄﻠﻮ
ﺗﺘﻞ اﻟﻤﺮ
إذا ﻟﻢﺗﻜﻦ اﻟﻘﺎﺋﻤ ﺔ ﻓﺎرﻏ ﺔ ،ﻓ ﺴﻴﻌﺮض اﻹﺧﺮاج ﻛﻞ ﻋﻨﺼﺮﺗﺤ
ﺘﺰا.
ﺒﻴﺘﻪ إﱃ اﻟ
ﺘﻢ إﺿﺎﻓ
ﻳ
ﺒﻴﺎﻧﺎ ت 91
إذا اﻟ
Machine Translated by Google
ﺘﻌﺪدة
ﺘﺨﺪام ﻗﻮاﺋﻢ ﻣ
اﺳ
ﺘﺰا.
ﺑﻴﺒﻨ ﻲ
ﺒﻞ أن ﻧ
ﺒﺎ ت اﻹﺿﺎﻓﺎ ت ﻏﻴﺮ اﻟﻌﺎدﻳ ﺔ ﻗ
ﺘﺮس ﻣﻦ ﻃﻠ
دﻋﻮﻧﺎ ﻧﺤ
ﺜﺎﻧ ﻲ ﻫﻮ ﻗﺎﺋﻤ ﺔ اﻹﺿﺎﻓﺎ ت
ﺘﺰا ،واﻟ
ﺒﻴﺘﺎﺣ ﺔ ﻓ ﻲ ﻣﻄﻌﻢ اﻟ
ﺑﺄﻋﲆ اﻷﺻﻮا ت اﻟﻤﺒﺎرة ﻋﻦ ﻗﺎﺋﻤ ﺔ
ﺘﻴﻦ .اﻷول ﻋ
ﺘﺎﻟ ﻲ ﻗﺎﺋﻤ
ﺜﺎل اﻟ
ﻳﺤﺪد اﻟﻤ
ﺒﻞ
ﺘﻮﻓﺮة ﻗ
ﺑﻞ ﻗﺎﺋﻤ ﺔ اﻹﺿﺎﻓﺎ ت اﻟﻤ
ﺘﻢ ﻓﺤﺺ ﻛﻞ ﻋﻨﺼﺮ ﻓ ﻲ request_toppingsﻣﻘﺎ
ﺘﺨﺪم .ﻫﺬه اﻟﻤﺮة ،ﻳ
ﺒﻬﺎ اﻟﻤ ﺴ
ﺘ ﻲ ﻃﻠ
اﻟ
ﺘﺰا:
ﺒﻴﺘﻪ إﱃ اﻟ
إﺿﺎﻓ
ﺑ ﺔ:
ﺘ ﺴﻮق ﻓ ﻲ اﻟﻀﺨﻤﺎ ت اﻟﻤﻄﻠﻮ
wﻟﻠﻄﻠ ﺐ_اﻟ
ﺘ ﺴﻮق ﻓ ﻲ available_toppings:
ﺒ ﺖ_اﻟ
xإذا ﻃﻠ
)"print ("Adding" + required_topping + ".
ﻧﻌﻢ آﺧﺮ:
"
")printﻣﻌﺬرة ،ﻟﻴ ﺲ ﻟﺪﻳﻨﺎ +ﻃﻠ ﺐ )"+ ".
ﺑﻚ!"(ﺘﺰا اﻟﺨﺎﺻ ﺔ
ﺒﻴﺘﻬﺎء ﻣﻦ ﺻﻨﻊ اﻟ
ﺗﻢ اﻻﻧ
ﺒﺎﻋ ﺔ ("\ n
ﻃ
ﺘﺰا
ﺒﻴﺘﺰا ﻫﺬا .ﻻﺣﻆ أن ﻫﺬاﻳﻤﻜﻦ أنﻳﻜﻮن ﺻ ًﻔﺎ إذا ﻛﺎن ﻣﻄﻌﻢ اﻟ
ﺒﻴﺘﻮﻓﺮة ﻓ ﻲ ﻣﻄﻌﻢ اﻟ
ﺑﺎﻹﺿﺎﻓﺎ ت اﻟﻤﻧﺤﺪد ﻓ ﻲ uﻗﺎﺋﻤ ﺔ
ﺒﻬﺎ اﻟﻌﻤﻴﻞ .ﻻﺣﻆ اﻟﻄﻠ ﺐ ﻏﻴﺮ
ﺘ ﻲ ﻃﻠ
ﺑﺎﻹﺿﺎﻓﺎ ت اﻟﺑﻌﻤﻞ ﻗﺎﺋﻤ ﺔﺘ ﺔ ﻣﻦ اﻹﺿﺎﻓﺎ ت .ﻓ ﻲ v ،ﻧﻘﻮم
ﺑﺛﺎﺘﻮي ﻋﲆ ﻣﺠﻤﻮﻋ ﺔ
ﻳﺤ
ﺑ ﺔ.
ﺒﻘ ﺔ اﻟﻤﻄﻠﻮ
ﺑﻌﻤﻞ ﺣﻠﻘ ﺔ ﻣﻦ ﺧﻼل ﻗﺎﺋﻤ ﺔ اﻟﻄﺒﻄﺎﻃ ﺲ اﻟﻤﻘﻠﻴ ﺔ" .ﻓ ﻲ w ،ﻧﻘﻮم
ﺘﺎد "اﻟ
اﻟﻤﻌ
ﺑﺎﻟﻔﻌﻞ ﻓ ﻲ ﻗﺎﺋﻤ ﺔ اﻹﺿﺎﻓﺎ تﺑ ﺔ ﻣﻮﺟﻮدة ﺘﺤﻘﻖ أوﻻ ً ﻟﻤﻌﺮﻓ ﺔ ﻣﺎ إذا ﻛﺎﻧ ﺖ ﻛﻞ ﻃ
ﺒﻘ ﺔ ﻣﻦ اﻹﺿﺎﻓﺎ ت اﻟﻤﻄﻠﻮ داﺧﻞ اﻟﺤﻠﻘ ﺔ ،ﻧ
ﺘﺰا.
ﺒﻴﺘﺎﺣ ﺔ x.إذا ﻛﺎن اﻷﻣﺮ ﻛﺬﻟﻚ ،ﻓﻨﺤﻦ ﻧﻀﻴﻒ ذﻟﻚ إﱃ اﻟ
اﻟﻤ
ﺒﺮ
ﺒﺎﻋ ﺔ رﺳﺎﻟ ﺔﺗﺨ
ﺑﻄﺘﻠ ﺔ else
ﺗﻘﻮم ﻛ
ﺘﻠ ﺔ else y.
ﺘﻢﺗﺸﻐﻴﻞ ﻛ
ﺘﺎﺣ ﺔ ،ﻓ ﺴﻴ
ﺑ ﺔ ﻓ ﻲ ﻗﺎﺋﻤ ﺔ اﻹﺿﺎﻓﺎ ت اﻟﻤ
إذا ﻟﻢﺗﻜﻦ اﻟﻘﻤ ﺔ اﻟﻤﻄﻠﻮ
ﺘﻮﻓﺮة.
ﺒﻘ ﺔ ﻏﻴﺮ اﻟﻤ
ﺘﺨﺪم ﻋﻦ اﻟﻄ
اﻟﻤ ﺴ
إﺿﺎﻓ ﺔ اﻟﻔﻄﺮ.
ﺑﻄﺎﻃ ﺲ ﻣﻘﻠﻴ ﺔ.ﻋﺬرا ،ﻟﻴ ﺲ ﻟﺪﻳﻨﺎ
ﺒﻦ.
إﺿﺎﻓ ﺔ اﻟﻤﺰﻳﺪ ﻣﻦ اﻟﺠ
ﺑﻚ!ﺘﺰا اﻟﺨﺎﺻ ﺔ
ﺒﻴﺘﻬﻴﻨﺎ ﻣﻦ ﺻﻨﻊ اﻟ
اﻧ
92اﻟﻔﺼﻞ اﻟﺨﺎﻣ ﺲ
Machine Translated by Google
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺗﺨﻴﻞ
ﺑﻤﺎ ﻓ ﻲ ذﻟﻚ اﻻﺳﻢ "admin".ﺜﺮ ،
ﺘﺨﺪﻣﻴﻦ أو أﻛ
ﺑﺨﻤ ﺴ ﺔ أﺳﻤﺎء ﻣ ﺴﺑﻌﻤﻞ ﻗﺎﺋﻤ ﺔﺒﺎ Admin:ﻗﻢ
5-8.ﻣﺮﺣ ً
ﺒﻊ
ﺘﻜﺮار ﺧﻼل اﻟﻘﺎﺋﻤ ﺔ ،واﻃ
ﺑﺎﻟﺑﻌﺪﺗ ﺴﺠﻴﻞ اﻟﺪﺧﻮل إﱃ ﻣﻮﻗﻊ وﻳ ﺐ .ﻗﻢﺘﺨﺪم ﺘ ﺐ رﻣ ًﺰاﻳﻄ
ﺒﻊﺗﺤﻴ ﺔ ﻟﻜﻞ ﻣ ﺴ أﻧﻚﺗﻜ
ﺘﺨﺪم:
ﺗﺤﻴ ﺔ ﻟﻜﻞ ﻣ ﺴ
ﺜﻞ Hello Eric ،ﺷﻜ ﺮًا ﻟﻚ ﻋﲆﺗ ﺴﺠﻴﻞ اﻟﺪﺧﻮل ﻣﺮة أﺧﺮى.
ﺒﻊﺗﺤﻴ ﺔ ﻋﺎﻣ ﺔ ،ﻣ
ﺑﺨﻼف ذﻟﻚ ،اﻃ
•
ﺘﺨﺪﻣﻴﻦ!
ﺑﻌﺾ اﻟﻤ ﺴﺜﻮر ﻋﲆ
ﺑﺤﺎﺟ ﺔ ﻟﻠﻌﺒﻊ اﻟﺮﺳﺎﻟ ﺔ ﻧﺤﻦ
•إذا ﻛﺎﻧ ﺖ اﻟﻘﺎﺋﻤ ﺔ ﻓﺎرﻏ ﺔ ،اﻃ
ﺛﻨﻴﻦ ﻣﻦ
ﺗﺄﻛﺪ ﻣﻦ وﺟﻮد واﺣﺪ أو ا
ﺘﺨﺪﻣﻴﻦﺗ ﺴﻤﻰ new_users.
ﺑﻌﻤﻞ ﻗﺎﺋﻤ ﺔ أﺧﺮى ﻣﻦ ﺧﻤ ﺴ ﺔ أﺳﻤﺎء ﻣ ﺴ•ﻗﻢ
ﺘﺨﺪﻣﻴﻦ اﻟﺤﺎﻟﻴﻴﻦ . ﺘﺨﺪﻣﻴﻦ اﻟﺠﺪﻳﺪة أ ً
ﻳﻀﺎ ﻓ ﻲ ﻗﺎﺋﻤ ﺔ اﻟﻤ ﺴ أﺳﻤﺎء اﻟﻤ ﺴ
ﺑﺎﻟﻔﻌﻞ.ﺘﺨﺪاﻣﻪ
ﺘﺨﺪم ﺟﺪﻳﺪ ﻗﺪﺗﻢ اﺳ
ﺘﺨﺪﻣﻴﻦ اﻟﺠﺪد ﻟﻤﻌﺮﻓ ﺔ ﻣﺎ إذا ﻛﺎن ﻛﻞ اﺳﻢ ﻣ ﺴ
ﺑﺈﺟﺮاءﺗﻜﺮار ﻟﻘﺎﺋﻤ ﺔ اﻟﻤ ﺴ•ﻗﻢ
ﺘﻢ
ﺘﺨﺪم ﺟﺪﻳﺪ .إذا ﻟﻢﻳ
ﺘﺎج إﱃ إدﺧﺎل اﺳﻢ ﻣ ﺴ
ﺒﺎﻋ ﺔ رﺳﺎﻟ ﺔ ﻣﻔﺎد ﻫﺎ أن اﻟﺸﺨﺺﺳﻴﺤ
ﺑﻄإذا ﻛﺎن اﻷﻣﺮ ﻛﺬﻟﻚ ،ﻓﻘﻢ
ﺘﺎح.
ﺘﺨﺪم ﻣ
ﺑﺄن اﺳﻢ اﻟﻤ ﺴﺒﺎﻋ ﺔ رﺳﺎﻟ ﺔﺗﻔﻴﺪ
ﺑﻄﺘﺨﺪم ،ﻓﻘﻢ
ﺘﺨﺪام اﺳﻢ ﻣ ﺴ
اﺳ
ﺘﻬ ﻲ ﻣﻌﻈﻢ
ﺜﺎﻧ ﻲ.ﺗﻨ
ﺜﻞ اﻷول أو اﻟ
ﺒﻴ ﺔ إﱃ ﻣﻮﺿﻌﻬﺎ ﻓ ﻲ ﻗﺎﺋﻤ ﺔ ،ﻣ
ﺗﻴﺘﺮ
ﺒﻴ ﺔ:ﺗﺸﻴﺮ اﻷرﻗﺎم اﻟ
ﺗﻴﺘﺮ
5-11.اﻷﻋﺪاد اﻟ
ﺜﻨﺎء 1و 2و 3.
ﺘﺑﺎﺳﺑﺎﻟﺮﻗﻢ ،ﺒﻴ ﺔ
ﺗﻴﺘﺮ
اﻷﻋﺪاد اﻟ
ﺗﻚ
ﺒ ﺔ ﻟﻜﻞ رﻗﻢ.ﻳﺠ ﺐ أنﺗﻘﺮأ ﻣﺨﺮﺟﺎ
ﺒﻴ ﺔ اﻟﻤﻨﺎﺳ
ﺗﻴﺘﺮ
ﺒﺎﻋ ﺔ اﻟﻨﻬﺎﻳ ﺔ اﻟ
ﺘﺨﺪمﺳﻠ ﺴﻠ ﺔ if-elif-elseداﺧﻞ اﻟﺤﻠﻘ ﺔ ﻟﻄ
•اﺳ
ﺘﻴﺠ ﺔ ﻓ ﻲﺳﻄﺮ ﻣﻨﻔﺼﻞ.
"1st 2nd 3rd 4th 5th 6th 7th 8th 9th" ،وﻳﺠ ﺐ أنﺗﻜﻮن ﻛﻞ ﻧ
ﺒﺎرا ت 93
إذا ﻛﺎﻧ ﺖ اﻟﻌ
Machine Translated by Google
ﺑﻚﺒﺎرا ت اﻟﺨﺎﺻ ﺔ
ﺗﺼﻤﻴﻢ اﻟﻌ
ﺒﺎرا ت
ﺘﺘﺼﻤﻴﻢ اﻻﺧ
ﺘ ﻲﻳﻮﻓﺮ ﻫﺎ PEP 8ﻟ
ﺘﻮﺻﻴ ﺔ اﻟﻮﺣﻴﺪة اﻟ
ﺖ ﻋﺎدا تﺗﺼﻔﻴﻒ ﺟﻴﺪة .اﻟ
ﺜﺎل ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ،رأﻳِ
ﻓ ﻲ ﻛﻞ ﻣ
ﺜﺎل:
ﺒﻴﻞ اﻟﻤ
ﺜﻞ == ، > = ، <=.ﻋﲆﺳ
ﺘﺨﺪام ﻣ ﺴﺎﻓ ﺔ واﺣﺪة ﺣﻮل ﻋﻮاﻣﻞ اﻟﻤﻘﺎرﻧ ﺔ ،ﻣ
اﻟﺸﺮﻃﻴ ﺔ ﻫ ﻲ اﺳ
أﻓﻀﻞ ﻣﻦ:
ﺑﻚ ؛ ﻓﻘﻂﺛﺮ ﻫﺬه اﻟﻤ ﺴﺎﻓﺎ ت ﻋﲆ ﻃﺮﻳﻘ ﺔﺗﻔ ﺴﻴﺮ Pythonﻟﻠﻜﻮد اﻟﺨﺎص
ﻻﺗﺆ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺗﻚ اﻟﺸﺮﻃﻴ ﺔ
ﺒﺎرا
ﺘﺗﺄﻛﺪ ﻣﻦﺗﺼﻤﻴﻢ اﺧ
ﺘﻬﺎ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ،و
ﺒﺘﺘ ﻲﻛ
ﺒﺮاﻣﺞ اﻟ
ﺒﺎرا ت Styling if :راﺟﻊ اﻟ
5-12.ﻋ
ﺑﺸﻜﻞ ﻣﻨﺎﺳ ﺐ.
ﻣﻠﺨﺺ
ﺑ ﺴﻴﻄ ﺔ else ،
ﺒﺎرا ت if
ﺑﺔ ﻋ
ﺘﺎ
ﺋﻤﺎ إﱃ ﺻﻮا ب أو ﺧﻄﺄ .ﻟﻘﺪﺗﻌﻠﻤ ﺖ ﻛ
ﺘﻢﺗﻘﻴﻴﻤﻬﺎ دا ً
ﺘ ﻲﻳ
ﺒﺎرا ت اﻟﺸﺮﻃﻴ ﺔ ،واﻟ
ﺘﺑ ﺔ اﻻﺧ
ﺘﺎ
ﺗﻌﻠﻤ ﺖ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ﻛﻴﻔﻴ ﺔ ﻛ
if-
ﺘﻴﻔﺎء
ﺘﻰﺗﻢ اﺳ
ﺒﺎر وﻣﻌﺮﻓ ﺔ ﻣ
ﺘﺘﺎﺟﻬﺎ ﻟﻼﺧ
ﺘ ﻲﺗﺤ
ﺘﺤﺪﻳﺪ اﻟﺸﺮوط اﻟﺨﺎﺻ ﺔ اﻟ
ﺘﺨﺪام ﻫﺬه اﻟﻬﻴﺎﻛﻞ ﻟ
ﺑﺪأ ت ﻓ ﻲ اﺳﺳﻼﺳﻞ ،وﺳﻼﺳﻞ if-elif-else .ﻟﻘﺪ
ﺘﻔﺎدة
ﺘﻤﺮار ﻓ ﻲ اﻻﺳ
ﺘﻠﻒ ﻋﻦ ﺟﻤﻴﻊ اﻟﻌﻨﺎﺻﺮ اﻷﺧﺮى ﻣﻊ اﻻﺳ
ﺑﺸﻜﻞ ﻣﺨﺘﻌﺎﻣﻞ ﻣﻊ ﻋﻨﺎﺻﺮ ﻣﻌﻴﻨ ﺔ ﻓ ﻲ ﻗﺎﺋﻤ ﺔ
ﺑﺮاﻣﺠﻚ .ﻟﻘﺪﺗﻌﻠﻤ ﺖ اﻟﻫﺬه اﻟﺸﺮوط ﻓ ﻲ
ﺒ ًﻴﺎ.
واﻟﻔﻬﻢ ﻧ ﺴ
94اﻟﻔﺼﻞ اﻟﺨﺎﻣ ﺲ
Machine Translated by Google
ﺒﺢ
ﺑﻤﺠﺮد أنﺗﺼﺗﻌﻠﻢ ﻛﻴﻔﻴ ﺔ اﻟﻮﺻﻮل إﱃ اﻟﻤﻌﻠﻮﻣﺎ ت
ﺘﻰ اﻟﻘﻮاﻣﻴ ﺲ
ﺘﻌﻠﻢ ﻛﻴﻔﻴ ﺔ دﻣﺞ اﻟﻘﻮاﻣﻴ ﺲ داﺧﻞ اﻟﻘﻮاﺋﻢ واﻟﻘﻮاﺋﻢ داﺧﻞ اﻟﻘﻮاﻣﻴ ﺲ وﺣ
ﺘﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،ﺳاﻟﻘﺎﻣﻮس.
داﺧﻞ اﻟﻘﻮاﻣﻴ ﺲ اﻷﺧﺮى.
ﺘﻤﻜﻦ ﻣﻦ إﻧﺸﺎء
ﺘﺜﺮ دﻗ ﺔ.ﺳ
ﺑﺸﻜﻞ أﻛﺘﻨﻮﻋ ﺔ ﻣﻦ اﻟﻜﺎﺋﻨﺎ ت اﻟﻮاﻗﻌﻴ ﺔ
ﺑﻨﻤﺬﺟ ﺔ ﻣﺠﻤﻮﻋ ﺔ ﻣﻳ ﺴﻤﺢ ﻟﻚ ﻓﻬﻢ اﻟﻘﻮاﻣﻴ ﺲ
ﺒﺮ ﻗﺪرﺗﺮﻳﺪه ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت ﺣﻮل ﻫﺬا اﻟﺸﺨﺺ.
ﺛﻢﺗﺨﺰﻳﻦ أﻛﺷﺨﺼﺎ ﻣﺎ
ً ﺜﻞ
ﻗﺎﻣﻮسﻳﻤ
ﺑ ﺴﻴﻂﻗﺎﻣﻮس
ﺒ ﺴﻴﻂ
ﺘﻠﻔ ﺔ.ﻳﺨﺰن ﻫﺬا اﻟﻘﺎﻣﻮس اﻟ
ﺒ ﺔﺗﻀﻢ ﻛﺎﺋﻨﺎ ت ﻓﻀﺎﺋﻴ ﺔﻳﻤﻜﻦ أنﻳﻜﻮن ﻟﻬﺎ أﻟﻮان وﻗﻴﻢ ﻣﺨ
ﺒﺎرك ﻟﻌ
ﺘﺿﻊ ﻓ ﻲ اﻋ
ﻣﻌﻠﻮﻣﺎ ت ﺣﻮل ﻛﺎﺋﻦ ﻓﻀﺎﺋ ﻲ ﻣﻌﻴﻦ:
ﺛﻨﺎن
ﺘﺨﺰﻳﻦ ﻟﻮن اﻟﻜﺎﺋﻦ اﻟﻔﻀﺎﺋ ﻲ وﻗﻴﻤ ﺔ اﻟﻨﻘﻄ ﺔ .اﻻ
ﺑﻳﻘﻮم اﻟﻘﺎﻣﻮس alien_0
ﺑﻴﺎﻧﺎ ت اﻟﻮﺻﻮل وﻋﺮض ﻫﺬه اﻟﻤﻌﻠﻮﻣﺎ ت ،ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻫﻨﺎ:ﺒﺎﻋ ﺔ
ﻃ
أﺧﻀﺮ
5
اﻟﻌﻤﻞ ﻣﻊ اﻟﻘﻮاﻣﻴ ﺲ
ﺘﺎح ﻟﻠﻮﺻﻮل
ﺘﺨﺪام ﻣﻔ
ﺑﻘﻴﻤ ﺔ ،وﻳﻤﻜﻨﻚ اﺳﺘﺼﻞ
ﺘﺎح ﻣ
ﺘﺎح واﻟﻘﻴﻤ ﺔ .ﻛﻞ ﻣﻔ
ﺜﻮن ﻫﻮ ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ أزواج اﻟﻤﻔ
ﺑﺎﻳاﻟﻘﺎﻣﻮس ﻓ ﻲ
ﺘﺎح.
ﺑﻬﺬا اﻟﻤﻔﺒﻄ ﺔ
ﺗإﱃ اﻟﻘﻴﻤ ﺔ اﻟﻤﺮ
ﺳﺎ آﺧﺮ.
ﺘﻰ ﻗﺎﻣﻮ ً
رﻗﻤﺎ أوﺳﻠ ﺴﻠ ﺔ أو ﻗﺎﺋﻤ ﺔ أو ﺣ
ً ﺘﺎح
ﻳﻤﻜﻦ أنﺗﻜﻮن ﻗﻴﻤ ﺔ اﻟﻤﻔ
ﺘﺨﺪام أي ﻛﺎﺋﻦﻳﻤﻜﻨﻚ إﻧﺸﺎؤه ﻓ ﻲ Pythonﻛﻘﻴﻤ ﺔ ﻓ ﻲ اﻟﻘﺎﻣﻮس.
ﻓ ﻲ اﻟﻮاﻗﻊ ،ﻳﻤﻜﻨﻚ اﺳ
ﺗﻴﺢ
ﺑﺄﻗﻮاس {} ، ،ﻣﻊﺳﻠ ﺴﻠ ﺔ ﻣﻦ اﻟﻤﻔﺎﺘﻢﺗﻐﻠﻴﻒ اﻟﻘﺎﻣﻮس
ﻓ ﻲ Python ،ﻳ
ﺑﻖ:
ﺜﺎل اﻟ ﺴﺎ
أزواج اﻟﻘﻴﻢ داﺧﻞ اﻷﻗﻮاس ،ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓ ﻲ اﻟﻤ
ُﺮﺟﻊ Pythonاﻟﻘﻴﻤ ﺔ
ﺣﺎ ،ﺗ
ﺘﺎ ً
ﺒﻌﺾ .ﻋﻨﺪﻣﺎﺗﻘﺪم ﻣﻔ
ﺒﻌﻀﻬﺎ اﻟ
ﺑﺒﻄ ﺔ
ﺗﺘﺎح واﻟﻘﻴﻤ ﺔ ﻫﻮ ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻟﻘﻴﻢ اﻟﻤﺮ
زوج اﻟﻤﻔ
ﺑﺸﻜﻞ ﻣﻨﻔﺼﻞﺘﺎح واﻟﻘﻴﻤ ﺔ اﻟﻔﺮدﻳ ﺔ
ﺘﻢﺗﺼﻨﻴﻒ أزواج اﻟﻤﻔ
ﺘﻴﻦ ،وﻳ
ﺑﻨﻘﻄﺘﻪ
ﺑﻘﻴﻤﺘﺎح
ﺒﻂ ﻛﻞ ﻣﻔ
ﺗﺘﺎح.ﻳﺮ
ﺑﻬﺬا اﻟﻤﻔﺒﻄ ﺔ
ﺗاﻟﻤﺮ
ﺘﺎح ﻓ ﻲ اﻟﻘﺎﻣﻮس.
ﻋﻦ ﻃﺮﻳﻖ اﻟﻔﻮاﺻﻞ.ﻳﻤﻜﻨﻚﺗﺨﺰﻳﻦ أي ﻋﺪدﺗﺮﻳﺪه ﻣﻦ أزواج اﻟﻘﻴﻤ ﺔ واﻟﻤﻔ
ﺘﺎح ﻓ ﻲ
ﻳﺨﺰن ﻫﺬا اﻟﻘﺎﻣﻮس ﻣﻌﻠﻮﻣ ﺔ واﺣﺪة ﻋﻦ alien_0 ،و ﻫ ﻲ ﻟﻮن اﻟﻜﺎﺋﻦ اﻟﻔﻀﺎﺋ ﻲ .اﻟ ﺴﻠ ﺴﻠ ﺔ " "colorﻫ ﻲ ﻣﻔ
ﺒﻄ ﺔ ﻫ ﻲ "green".
ﺗﺘﻬﺎ اﻟﻤﺮ
ﻫﺬا اﻟﻘﺎﻣﻮس ،وﻗﻴﻤ
96اﻟﻔﺼﻞ 6
Machine Translated by Google
أﺧﻀﺮ
ﺑﺈﻃﻼق اﻟﻨﺎر ﻋﲆ ﻫﺬا اﻟﻜﺎﺋﻦ اﻟﻔﻀﺎﺋ ﻲ ،ﻳﻤﻜﻨﻚ اﻵن اﻟﻮﺻﻮل إﱃ اﻟﻠﻮن أو ﻗﻴﻤ ﺔ اﻟﻨﻘﻄ ﺔ ﻟـ alien_0.إذا ﻗﺎم ﻻﻋ ﺐ
ﺜﻞ ﻫﺬا:
ﺘﺨﺪام رﻣﺰ ﻣ
ﺑﺎﺳﺑﺤﻬﺎ
ﺘ ﻲﻳﺠ ﺐ أنﻳﺮ
ﺒﺤ ﺚ ﻋﻦ ﻋﺪد اﻟﻨﻘﺎط اﻟ
ﻓﻴﻤﻜﻨﻚ اﻟ
ﺘﻮ 5ﻧﻘﺎط!
ﺑﺤ ﺖ ﻟﻠ
ﻟﻘﺪ ر
ﺒ ﻲ.
ﺘﺮداد ﻗﻴﻤ ﺔ ﻧﻘﻄ ﺔ اﻷﺟﻨ
ﺘﻢ اﺳ
ﺘﻢ ﻓﻴﻬﺎ إﺳﻘﺎط ﻛﺎﺋﻦ ﻓﻀﺎﺋ ﻲ ،ﻓ ﺴﻴ
ﺘﺸﻐﻴﻞ ﻫﺬا اﻟﺮﻣﺰ ﻓ ﻲ ﻛﻞ ﻣﺮةﻳ
ﺑإذا ﻗﻤ ﺖ
ﺘﺎح ﺟﺪﻳﺪة
إﺿﺎﻓ ﺔ أزواج ﻗﻴﻤ ﺔ ﻣﻔ
ﺗﻴﺢ واﻟﻘﻴﻤ ﺔ إﱃ اﻟﻘﺎﻣﻮس ﻓ ﻲ أي وﻗ ﺖ .ﻋﲆ
اﻟﻘﻮاﻣﻴ ﺲ ﻫ ﻲ ﻫﻴﺎﻛﻞ دﻳﻨﺎﻣﻴﻜﻴ ﺔ ،وﻳﻤﻜﻨﻚ إﺿﺎﻓ ﺔ أزواج ﺟﺪﻳﺪة ﻣﻦ اﻟﻤﻔﺎ
ﺑﻴﻦ ﻗﻮﺳﻴﻦﺘﺎح اﻟﺠﺪﻳﺪ
ﺑﺎﻟﻤﻔﺒﻮﻋً ﺎ
ﺘﺗﻴﺢ ،ﻳﻤﻜﻨﻚ إﻋﻄﺎء اﺳﻢ اﻟﻘﺎﻣﻮس ﻣ
ﺜﺎل ،ﻹﺿﺎﻓ ﺔ زوج ﺟﺪﻳﺪ ﻣﻦ ﻗﻴﻢ اﻟﻤﻔﺎ
ﺒﻴﻞ اﻟﻤ
ﺳ
ﺑﻌﻴﻦ ﻣﻊ اﻟﻘﻴﻤ ﺔ اﻟﺠﺪﻳﺪة.
ﻣﺮ
97-ﻗﻮاﻣﻴ ﺲ
Machine Translated by Google
ﺑﻘﺎﻣﻮس ﻓﺎرغﺒﺪء
اﻟ
ﺒﺪء ﻣﻞء ﻗﺎﻣﻮس ﻓﺎرغ ،
ﺛﻢ إﺿﺎﻓ ﺔ ﻛﻞ ﻋﻨﺼﺮ ﺟﺪﻳﺪ إﻟﻴﻬﺎ .ﻟﺑﺈﻟﻘﺎء ﻛﻠﻤ ﺔ ﻓﺎرﻏ ﺔﺒﺪء ﻣﻦ اﻟﻤﻼﺋﻢ أﺣﻴﺎﻧًﺎ ،أو ﺣ
ﺘﻰ ﻣﻦ اﻟﻀﺮوري ،اﻟ
ﺒﻴﻞ
ﺑﻪ .ﻋﲆﺳﺗﻴﺢ واﻟﻘﻴﻤ ﺔ ﻓ ﻲ اﻟ ﺴﻄﺮ اﻟﺨﺎص
ﺛﻢ أﺿﻒ ﻛﻞ زوج ﻣﻦ اﻟﻤﻔﺎﺑﻤﺠﻤﻮﻋ ﺔ ﻓﺎرﻏ ﺔ ﻣﻦ اﻷﻗﻮاسﺳﺎ
ﺣﺪد ﻗﺎﻣﻮ ً
ﺘﺨﺪام ﻫﺬا اﻷﺳﻠﻮ ب:
ﺑﺎﺳ
ﺜﺎل ،إﻟﻴﻚ ﻛﻴﻔﻴ ﺔ إﻧﺸﺎء ﻗﺎﻣﻮس alien_0
اﻟﻤ
}{ = alien_0
= ]''alien_0 ['colorأﺧﻀﺮ'
']alien_0ﻧﻘﺎط'[ = 5
ﺒﺎﻋ ﺔ )(alien_0
ﻃ
ﺘﺨﺪﻣﻨﺎه
ﺘﻴﺠ ﺔ ﻫ ﻲ اﻟﻘﺎﻣﻮس اﻟﺬي اﺳ
ﺛﻢ ﻧﻀﻴﻒ ﻗﻴﻢ اﻟﻠﻮن واﻟﻨﻘﻄ ﺔ إﻟﻴﻪ .واﻟﻨ ً
ﻓﺎرﻏﺎ ، ﻫﻨﺎ ﻧﺤﺪد ﻗﺎﻣﻮس alien_0
ﺑﻘ ﺔ:
ﺜﻠ ﺔ اﻟ ﺴﺎ
ﻓ ﻲ اﻷﻣ
ﺘﺨﺪم
ﺘ ﻲﻳﻮﻓﺮ ﻫﺎ اﻟﻤ ﺴ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺘﺨﺪم ﻗﻮاﻣﻴ ﺲ ﻓﺎرﻏ ﺔ ﻋﻨﺪﺗﺨﺰﻳﻦ اﻟ
ﺘﺴﻋﺎدة ،ﺳ
ﺘﺎح واﻟﻘﻴﻤ ﺔﺗﻠﻘﺎﺋ ًﻴﺎ. ﺘ ﺐ رﻣ ًﺰاﻳﻮﻟﺪ ﻋﺪدًا ﻛ
ﺒﻴ ﺮًا ﻣﻦ أزواج اﻟﻤﻔ ﻓ ﻲ ﻗﺎﻣﻮس أو ﻋﻨﺪﻣﺎﺗﻜ
98اﻟﻔﺼﻞ 6
Machine Translated by Google
= ]''alien_0 ['colorأﺻﻔﺮ'
"
ﺒﺎﻋ ﺔ )"اﻟﻜﺎﺋﻦ اﻟﻔﻀﺎﺋ ﻲ اﻵن )" + alien_0 ['color'] +".
ﻃ
ﺘﺎح
ﺑﺎﻟﻤﻔﺒﻄ ﺔ
ﺗﺘﻐﻴﻴﺮ اﻟﻘﻴﻤ ﺔ اﻟﻤﺮ
ﺑﺛﻢ ﻧﻘﻮمﺘﻮي ﻋﲆ ﻟﻮن اﻟﻜﺎﺋﻦ اﻟﻔﻀﺎﺋ ﻲ ﻓﻘﻂ ؛ ﻧﺤﺪد أوﻻ ً ﻗﺎﻣﻮ ً
ﺳﺎ ﻟـ alien_0ﻳﺤ
"اﻟﻠﻮن" إﱃ "اﻷﺻﻔﺮ".
ﺑﺎﻟﻔﻌﻞ ﻣﻦ اﻷﺧﻀﺮ إﱃ اﻷﺻﻔﺮ:ﻳﻮﺿﺢ اﻹﺧﺮاج أن اﻟﻜﺎﺋﻦ اﻟﻔﻀﺎﺋ ﻲ ﻗﺪﺗﻐﻴﺮ
اﻟﻐﺮﻳ ﺐ أﺧﻀﺮ.
اﻟﻐﺮﻳ ﺐ اﻵن أﺻﻔﺮ.
ﺒ ﻲ إﱃ اﻟﻴﻤﻴﻦ.
#اﻧﻘﻞ اﻷﺟﻨ
ﺘﻪ اﻟﺤﺎﻟﻴ ﺔ.
ﺑﻨﺎ ًء ﻋﲆﺳﺮﻋﺑﻬﺎ اﻟﻔﻀﺎﺋ ﻲﺘﺤﺮك
ﺘ ﻲﻳﺠ ﺐ أنﻳ
ﺗﺤﺪﻳﺪ اﻟﻤ ﺴﺎﻓ ﺔ اﻟ
#
ﺑﻄﻴﺌ ﺔ':
== ]''u if alien_0 ['speed
x_increment = 1
ﺘﻮﺳﻂ':
== ]''elif alien_0 ['speedﻣ
x_increment = 2
آﺧﺮ:
ﺒ ﻲﺳﺮﻳﻊ.
#ﻳﺠ ﺐ أنﻳﻜﻮن ﻫﺬا أﺟﻨ
x_increment = 3
"
ﺒﺎﻋ ﺔ )"ﻣﻮﺿﻊ xﺟﺪﻳﺪ:
ﻃ ))]'+ str (alien_0 ['x_position
ﺘﻐﻴﺮ
ﺗﺨﺰن ﻫﺬه اﻟﻘﻴﻤ ﺔ ﻓ ﻲ اﻟﻤ
ﺘﺤﺮك اﻟﻔﻀﺎﺋ ﻲ إﱃ اﻟﻴﻤﻴﻦ و
ﺗﺤﺪدﺳﻠ ﺴﻠ ﺔ if-elif-elseإﱃ أي ﻣﺪىﻳﺠ ﺐ أنﻳ
ﻓ ﻲ u،
ﺘﺤﺮك وﺣﺪة واﺣﺪة إﱃ اﻟﻴﻤﻴﻦ ؛ إذا ﻛﺎﻧ ﺖ اﻟ ﺴﺮﻋ ﺔ
ﺑﻄﻴﺌ ﺔ" ،ﻓﺈﻧﻪﻳ
x_increment.إذا ﻛﺎﻧ ﺖﺳﺮﻋ ﺔ اﻟﻜﺎﺋﻦ اﻟﻔﻀﺎﺋ ﻲ "
ﺗﻴﻦ
ﺘﺤﺮك ﻣﺮ
ﺘﻮﺳﻄ ﺔ" ،ﻓﺈﻧﻬﺎﺗ
"ﻣ
99-ﻗﻮاﻣﻴ ﺲ
Machine Translated by Google
ﺘﻬﺎ إﱃ
ﺘﻢ إﺿﺎﻓ
ﺑﻤﺠﺮد ﺣ ﺴﺎ ب اﻟﺰﻳﺎدة ،ﺗﺛﻼ ث وﺣﺪا ت إﱃ اﻟﻴﻤﻴﻦ.ﺘﺤﺮك
وﺣﺪا ت ﻋﲆ اﻟﻴﻤﻴﻦ وإذا ﻛﺎﻧ ﺖ "ﺳﺮﻳﻌ ﺔ" ،ﻓﺈﻧﻬﺎﺗ
ﺑﺎﻟﻘﺎﻣﻮس .ﺘﻴﺠ ﺔ ﻓ ﻲ x_positionاﻟﺨﺎص
ﺘﻢﺗﺨﺰﻳﻦ اﻟﻨ
ﻗﻴﻤ ﺔ x_positionﻋﻨﺪ v ،وﻳ
ﺗﻴﻦ إﱃ اﻟﻴﻤﻴﻦ:
ﺘﻮﺳﻂ اﻟ ﺴﺮﻋ ﺔ ،ﻓﺈن ﻣﻮﺿﻌﻪﻳﻨﻘﻞ وﺣﺪ
ﻧﻈ ﺮًاﻷن ﻫﺬا ﻛﺎﺋﻦ ﻓﻀﺎﺋ ﻲ ﻣ
ﺛﻨﺎﺋﻴ ﺔ اﻟﻜﺎﺋﻦ اﻟﻔﻀﺎﺋ ﻲ ،ﻳﻤﻜﻨﻚﺗﻐﻴﻴﺮ اﻟ ﺴﻠﻮك اﻟﻌﺎمﺘﻘﻨﻴ ﺔ راﺋﻌ ﺔ ﺟﺪًا :ﻣﻦ ﺧﻼلﺗﻐﻴﻴﺮ ﻗﻴﻤ ﺔ واﺣﺪة ﻓ ﻲ
ﻫﺬه اﻟ
ﺘﻮﺳﻂ اﻟ ﺴﺮﻋ ﺔ إﱃ ﻛﺎﺋﻦ ﻓﻀﺎﺋ ﻲﺳﺮﻳﻊ ،ﻳﻤﻜﻨﻚ إﺿﺎﻓ ﺔ
ﺘﺤﻮﻳﻞ ﻫﺬا اﻟﻔﻀﺎﺋ ﻲ ﻣ
ﺜﺎل ،ﻟ
ﺒﻴﻞ اﻟﻤ
ﻟﻠﻜﺎﺋﻦ اﻟﻔﻀﺎﺋ ﻲ .ﻋﲆﺳ
اﻟ ﺴﻄﺮ:
= ]'alien_0 ['speedﺳﺮﻳﻊ
ﺒﺮ ﻟـ x_increment
ﺘﻌﻴﻴﻦ ﻗﻴﻤ ﺔ أﻛ
ﺑﺑﻌﺪ ذﻟﻚ
ﺘﻠ ﺔ if-elif-else
ﺘﻘﻮم ﻛ
ﺳ
ﺘﻢ ﻓﻴﻬﺎﺗﺸﻐﻴﻞ اﻟﻜﻮد.
ﺘ ﻲﻳ
ﺘﺎﻟﻴ ﺔ اﻟ
ﻓ ﻲ اﻟﻤﺮة اﻟ
ﺘﺎح اﻟﻘﻴﻤ ﺔ
إزاﻟ ﺔ أزواج ﻣﻔ
ﺘﺎح
ﺒﺎرة delﻹزاﻟ ﺔ زوج اﻟﻤﻔ
ﺘﺨﺪام ﻋ
ﺑﺤﺎﺟ ﺔ إﱃ ﺟﺰء ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟﻤﺨﺰﻧ ﺔ ﻓ ﻲ ﺻﻴﻐ ﺔ إﻟﻘﺎء ،ﻳﻤﻜﻨﻚ اﺳﻋﻨﺪﻣﺎ ﻟﻢﺗﻌﺪ
ﺗﻤﺎﻣﺎ.
ً واﻟﻘﻴﻤ ﺔ
ﺘﺎح اﻟﺬيﺗﺮﻳﺪه
ﺘﻴﺎﺟﺎ ت delﻫﻮ اﺳﻢ اﻟﻘﺎﻣﻮس واﻟﻤﻔ
ﻛﻞ اﺣ
ﻳﺰﻳﻞ.
ﺘﻪ:
ﺘﺎح "اﻟﻨﻘﺎط" ﻣﻦ ﻗﺎﻣﻮس alien_0ﻣﻊ ﻗﻴﻤ
ﺜﺎل ،دﻋﻨﺎ ﻧﺰﻳﻞ ﻣﻔ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺘﺎح
ﺑﻬﺬا اﻟﻤﻔﺒﻄ ﺔ
ﺗﺋﻴ ﺴﻴ ﺔ ﻣﻦ اﻟﻘﺎﻣﻮس alien_0وإزاﻟ ﺔ اﻟﻘﻴﻤ ﺔ اﻟﻤﺮ
ﺑﺤﺬف "اﻟﻨﻘﺎط" اﻟﺮ
ﺒﺮ اﻟ ﺴﻄﺮ ﻋﻨﺪ u Python
ﻳﺨ
ﺛﺮ:
ﺘﺄ
ﺑﺎﻗ ﻲ اﻟﻘﺎﻣﻮس ﻟﻢﻳﺒﺎﻟﻐ ﺔ 5ﻣﻦ اﻟﻨﻄﻖ ary ،ﻟﻜﻦ
ﺘﻬﺎ اﻟ
ﺋﻴ ﺴﻴ ﺔ وﻗﻴﻤ
ُﻈﻬﺮ اﻹﺧﺮاج أﻧﻪﺗﻢ ﺣﺬف "اﻟﻨﻘﺎط" اﻟﺮ أ ً
ﻳﻀﺎ.ﻳ
ﺛﻠ ﺔ
ﻣﻌﺠﻢ ﻛﺎﺋﻨﺎ ت ﻣﻤﺎ
ﺘﺨﺪام ﺒ ﺔ.ﻳﻤﻜﻨﻚ أ ً
ﻳﻀﺎ اﺳ ﺘﻠﻔ ﺔ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت ﺣﻮل ﻛﺎﺋﻦ واﺣﺪ ،ﻛﺎﺋﻦ ﻓﻀﺎﺋ ﻲ ﻓ ﻲ ﻟﻌ
ﺑﻖﺗﺨﺰﻳﻦ أﻧﻮاع ﻣﺨ
ﺜﺎل اﻟ ﺴﺎ
ﺗﻀﻤﻦ اﻟﻤ
ﺘﺼﻮﻳ ﺖ ﻋﲆ
ﺘﺮض أﻧﻚﺗﺮﻳﺪ اﻟ
ﺜﺎل ،ﻟﻨﻔ
ﺒﻴﻞ اﻟﻤ
ﺘﺨﺰﻳﻦ ﻧﻮع واﺣﺪ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت ﺣﻮل اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻜﺎﺋﻨﺎ ت .ﻋﲆﺳ
ﻗﺎﻣﻮس ﻟ
ﻣﻠﻒ
100اﻟﻔﺼﻞ اﻟ ﺴﺎدس
Machine Translated by Google
ﺜﻞ ﻫﺬا:
ﺑ ﺴﻴﻂ ،ﻣﺘﻄﻼع
ﺘﺎﺋﺞ اﺳ
ﺘﺨﺰﻳﻦ ﻧ
ﺒﺮﻣﺠ ﺔ اﻟﻤﻔﻀﻠ ﺔ ﻟﺪﻳﻬﻢ .اﻟﻘﺎﻣﻮس ﻣﻔﻴﺪ ﻟ
ﻋﺪد اﻷﺷﺨﺎص واﺳﺄﻟﻬﻢ ﻋﻦ ﻟﻐ ﺔ اﻟ
اﻟﻠﻐ ﺔ اﻟﻤﻔﻀﻠ ﺔ { =
ﺜﻮن" ،
ﺑﻴ"ﺟﻴﻦ"" :
"ﺳﺎرة"" :ج"،
ﺑ ﻲ"،
"إدوارد"" :رو
ﺜﻮن" ،ﺑﻴ"ﻓﻴﻞ"" :
}
ﺘﺎح وﻗﻢ
ﺑﻌﺪ آﺧﺮ زوج ﻣﻦ اﻟﻘﻴﻤ ﺔ واﻟﻤﻔﺘﻬﺎء ﻣﻦﺗﻌﺮﻳﻒ اﻟﻘﺎﻣﻮس ،أﺿﻒ ﻗﻮس إﻏﻼق ﻋﲆﺳﻄﺮ ﺟﺪﻳﺪ
ﺑﻤﺠﺮد اﻻﻧ
ﺑﻌﺪ آﺧﺮﺗﻴﺢ اﻟﻤﻮﺟﻮدة ﻓ ﻲ اﻟﻘﺎﻣﻮس .ﻣﻦ اﻟﻤﻤﺎرﺳﺎ ت اﻟﺠﻴﺪةﺗﻀﻤﻴﻦ ﻓﺎﺻﻠ ﺔ
ﺘﻤﺎﺷﻰ ﻣﻊ اﻟﻤﻔﺎ
ﺑﺤﻴ ﺚﻳﺘﻮى واﺣﺪ
ﺑﻤ ﺴﺘﻪ
ﺒﻴﺜ
ﺘﺑ
ﺘﺎﻟ ﻲ.
ﺘﺎح ﺟﺪﻳﺪ ﻓ ﻲ اﻟ ﺴﻄﺮ اﻟ
ﺘﻌﺪاد ﻹﺿﺎﻓ ﺔ زوج ﻗﻴﻢ ﻣﻔ ﺗﻴﺢ أ ً
ﻳﻀﺎ ،ﻟﺬا ﻓﺄﻧ ﺖ ﻋﲆ اﺳ زوج ﻣﻦ ﻗﻴﻢ اﻟﻤﻔﺎ
اﻟﻠﻐ ﺔ اﻟﻤﻔﻀﻠ ﺔ { =
favour_ languages.py ﺜﻮن" ،
ﺑﻴ"ﺟﻴﻦ"" :
"ﺳﺎرة"" :ج"،
ﺑ ﻲ"،
"إدوارد"" :رو
ﺜﻮن" ،ﺑﻴ"ﻓﻴﻞ"" :
}
"
+
")u printﻟﻐ ﺔﺳﺎرة اﻟﻤﻔﻀﻠ ﺔ ﻫ ﻲ favour_languages ['sarah'].
vاﻟﻌﻨﻮان () +
ث )"".
]'favour_languages ['sarah
ﺗﺞ
ﺒﺎﻋ ﺔ ﻓ ﻲ v ،وﻳﻈﻬﺮ اﻟﻨﺎ
ﺑﻴﺎن اﻟﻄﺑﻨﺎء اﻟﺠﻤﻠ ﺔ ﻫﺬا ﻓ ﻲﺘﺨﺪام
ﺘﻢ اﺳ
ﻳ
ﻟﻐ ﺔﺳﺎرة اﻟﻤﻔﻀﻠ ﺔ:
ﻗﻮاﻣﻴ ﺲ 101
Machine Translated by Google
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺗﻴﺢ ﻓ ﻲ ﻣ ﺴﺮد
ﺘﺨﺪم ﻫﺬه اﻟﻜﻠﻤﺎ ت ﻛﻤﻔﺎ
ﺑﻘ ﺔ .اﺳ
ﺘﻬﺎ ﻓ ﻲ اﻟﻔﺼﻮل اﻟ ﺴﺎ
ﺑﺮﻣﺠ ﺔﺗﻌﻠﻤ•ﻓﻜﺮ ﻓ ﻲ ﺧﻤ ﺲ ﻛﻠﻤﺎ ت
ﺘﺨﺰﻳﻦ ﻣﻌﺎﻧﻴﻬﺎ ﻛﻘﻴﻢ.
ﺑﺑﻚ ،وﻗﻢاﻟﻤﺼﻄﻠﺤﺎ ت اﻟﺨﺎص
102اﻟﻔﺼﻞ اﻟ ﺴﺎدس
Machine Translated by Google
ﺋﻴ ﺴﻴ ﺔ
ﺒﺮ ﺟﻤﻴﻊ أزواج اﻟﻘﻴﻤ ﺔ اﻟﺮ
ﺘﻜﺮار ﻋ
اﻟ
ﺘﺨﺪم ﻋﲆ ﻣﻮﻗﻊ
ﺘﺨﺰﻳﻦ ﻣﻌﻠﻮﻣﺎ ت ﺣﻮل ﻣ ﺴ
ﺘﻜﺮار اﻟﺤﻠﻘ ﻲ ،دﻋﻨﺎ ﻧﻔﻜﺮ ﻓ ﻲ ﻗﺎﻣﻮس ﺟﺪﻳﺪ ﻣﺼﻤﻢ ﻟ
ﺘﻠﻔ ﺔ ﻟﻠ
ﺘﻜﺸﻒ اﻟﻄﺮق اﻟﻤﺨ
ﺒﻞ أن ﻧ ﺴ
ﻗ
وﻳ ﺐ.
ﺘﺨﺪم واﻻﺳﻢ اﻷول واﻻﺳﻢ اﻷﺧﻴﺮ ﻟﺸﺨﺺ واﺣﺪ:
ﺘﺨﺰﻳﻦ اﺳﻢ اﻟﻤ ﺴ
ﺑﺘﺎﻟ ﻲ
ﻳﻘﻮم اﻟﻘﺎﻣﻮس اﻟ
{ = user_0
ﺘﺨﺪم""efermi"، :
"اﺳﻢ اﻟﻤ ﺴ
"first": "enrico"،
"آﺧﺮ"" :ﻓﻴﺮﻣ ﻲ"،
}
user.py { = user_0
ﺘﺨﺪم""efermi"، :
"اﺳﻢ اﻟﻤ ﺴ
"first": "enrico"،
"آﺧﺮ"" :ﻓﻴﺮﻣ ﻲ"،
}
ﺋﻴ ﺴﻴ ﺔ.
ﺑﺄزواج اﻟﻘﻴﻤ ﺔ اﻟﺮُﺮﺟﻊ ﻗﺎﺋﻤ ﺔ
ﺘ ﻲﺗ
ﺑﻌﻨﺎﺻﺮ اﻟﻄﺮﻳﻘ ﺔ () ،واﻟﺒﻮﻋً ﺎ
ﺘtionaryﻣ
ﺘﻐﻴﺮﻳﻦ اﻟﻤﻘﺪﻣﻴﻦ.
ﺘﺨﺰﻳﻦ ﻛﻞ ﻣﻦ ﻫﺬه اﻷزواج ﻓ ﻲ اﻟﻤ
ﺑﺛﻢﺗﻘﻮم ﺣﻠﻘ ﺔ for
ﺒﺎﻋ ﺔ اﻷوﱃ
ﺒﻄ ﺔ w .ﻳﻀﻤﻦ "" \ nﻓ ﻲ ﺟﻤﻠ ﺔ اﻟﻄ
ﺗﺑﺎﻟﻘﻴﻤ ﺔ اﻟﻤﺮﺒﻮﻋً ﺎ
ﺘﺘﺎح v ،ﻣ
ﺒﺎﻋ ﺔ ﻛﻞ ﻣﻔ
ﺘﻐﻴﺮا ت ﻟﻄ
ﺘﺨﺪم اﻟﻤ
ﺑﻖ ،ﻧ ﺴ
ﺜﺎل اﻟ ﺴﺎ
ﻓ ﻲ اﻟﻤ
ﺗﻴﺢ واﻟﻘﻴﻤ ﺔ ﻓ ﻲ اﻹﺧﺮاج:
ﺒﻞ ﻛﻞ زوج ﻣﻦ اﻟﻤﻔﺎ
إدﺧﺎلﺳﻄﺮ ﻓﺎرغ ﻗ
ﺘﺎح :اﻷﺧﻴﺮ
اﻟﻤﻔ
اﻟﻘﻴﻤ ﺔ :ﻓﻴﺮﻣ ﻲ
ﺘﺨﺪم
ﺘﺎح :اﺳﻢ اﻟﻤ ﺴ
اﻟﻤﻔ
اﻟﻘﻴﻤ ﺔefermi :
ـ103اﻟﻘﻮاﻣﻴ ﺲ
Machine Translated by Google
ﺒﺮ
ﺘﻨﻘﻞ ﻋ
ﺘﻰ ﻋﻨﺪ اﻟ
ﺑﻪ ،ﺣﺗﻴ ﺐ اﻟﺬيﺗﻢﺗﺨﺰﻳﻨﻬﺎ
ﺘﺮﺑﺎﻟﺘﻢ إرﺟﺎﻋﻬﺎ
ﺗﻴﺢ واﻟﻘﻴﻤ ﺔ ﻻﻳ
ﻻﺣﻆ ﻣﺮة أﺧﺮى أن أزواج اﻟﻤﻔﺎ
ﺗﻴﺢ
ﺑﻴﻦ اﻟﻤﻔﺎﺗﺼﺎﻻ ت
ﺒﻊ ﻓﻘﻂ اﻻ
ﺘﺘﺋﻴ ﺴﻴ ﺔ ﻓﻴﻪ ؛ﻳ
ﺘﻢﺗﺨﺰﻳﻦ أزواج اﻟﻘﻴﻤ ﺔ اﻟﺮ
ﺗﻴ ﺐ اﻟﺬيﻳ
ﺘﺮﺑﺎﻟ
ﺘﻢ Python
اﻟﻘﺎﻣﻮس .ﻻﺗﻬ
اﻟﻔﺮدﻳ ﺔ وﻗﻴﻤﻬﺎ.
اﻟﻠﻐ ﺔ اﻟﻤﻔﻀﻠ ﺔ { =
favour_ languages.py ﺜﻮن" ،
ﺑﻴ"ﺟﻴﻦ"" :
"ﺳﺎرة"" :ج"،
ﺑ ﻲ"،
"إدوارد"" :رو
ﺜﻮن" ،ﺑﻴ"ﻓﻴﻞ"" :
}
ﺘﻄﻼع:
ﺒﺮﻣﺠﻴ ﺔ ،ﻳﻤﻜﻨﻨﺎ ﻋﺮض ﺟﻤﻴﻊ اﻟﻤﻌﻠﻮﻣﺎ ت ﻣﻦ اﻻﺳ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑﻀﻌ ﺔ أﺳﻄﺮ ﻣﻦ اﻟاﻵن ،ﻓ ﻲ
ﺗﻴﺢ ﻓ ﻲ اﻟﻘﺎﻣﻮس
ﺘﻜﺮار ﻣﻦ ﺧﻼل ﺟﻤﻴﻊ اﻟﻤﻔﺎ
اﻟ
ﺘﻘﻞ ﻣﻦ ﺧﻼل
ﺘﻌﺎﻣﻞ ﻣﻊ ﻛﻞ اﻟﻘﻴﻢ اﻟﻤﻮﺟﻮدة ﻓ ﻲ اﻟﻘﺎﻣﻮس .دﻋﻨﺎ ﻧﻨ
ﺘﺎج إﱃ اﻟ
ﺗﻴﺢ )(ﻣﻔﻴﺪة ﻋﻨﺪﻣﺎ ﻻﺗﺤ
ﺗﻌﺪ ﻃﺮﻳﻘ ﺔ اﻟﻤﻔﺎ
ﺘﻄﻼع:
ﺒﻊ أﺳﻤﺎء ﻛﻞ ﻣﻦ ﺷﺎرك ﻓ ﻲ اﻻﺳ
ﻗﺎﻣﻮس اﻟﻠﻐ ﺔ اﻟﻤﻔﻀﻠ ﺔ وﻧﻄ
اﻟﻠﻐ ﺔ اﻟﻤﻔﻀﻠ ﺔ { =
ﺜﻮن" ،
ﺑﻴ"ﺟﻴﻦ"" :
"ﺳﺎرة"" :ج"،
ﺑ ﻲ"،
"إدوارد"" :رو
ﺜﻮن" ،ﺑﻴ"ﻓﻴﻞ"" :
}
104اﻟﻔﺼﻞ 6
Machine Translated by Google
ﺘﻐﻴﺮ.ﻳﻈﻬﺮ
ﺗﻴﺢ ﻣﻦ ﻗﺎﻣﻮس اﻟﻠﻐ ﺔ اﻟﻤﻔﻀﻠ ﺔ وﻳﺨﺰﻧﻬﺎ واﺣﺪًاﺗﻠﻮ اﻵﺧﺮ ﻓ ﻲ اﺳﻢ اﻟﻤ
ﺜﻮن أنﻳ ﺴﺤ ﺐ ﻛﻞ اﻟﻤﻔﺎ
ﺑﺎﻳ
ﺒﺮ اﻟ ﺴﻄﺮ ﻓ ﻲ u
ﻳﺨ
ﺘﻄﻼع:
ﺗﺞ أﺳﻤﺎء ﻛﻞ ﻣﻦ ﺷﺎرك ﻓ ﻲ اﻻﺳ
اﻟﻨﺎ
ﺟﻴﻦ
ﺳﺎره
ﻓﻴﻞ
إدوارد
ﺗﻤﺎﻣﺎ إذا
ً ﺘﻜﺮار ﺧﻼل اﻟﻘﺎﻣﻮس ،ﻟﺬﻟﻚﺳﻴﻜﻮن ﻟﻬﺬا اﻟﺮﻣﺰ ﻧﻔ ﺲ اﻹﺧﺮاج
ﺘﺮاﺿ ﻲ ﻋﻨﺪ اﻟ
ﺗﻴﺢ ﻫﻮ ﻓ ﻲ اﻟﻮاﻗﻊ اﻟ ﺴﻠﻮك اﻻﻓ
ﺒﺮ اﻟﻤﻔﺎ
ﺘﻜﺮار ﻋ
اﻟ
ﻛﻨ ﺖ
ﺘ ﺐ. . .
ﻛ
. .ﺑﺪﻻ ﻣﻦ .
اﻟﻠﻐ ﺔ اﻟﻤﻔﻀﻠ ﺔ { =
ﺜﻮن" ،
ﺑﻴ"ﺟﻴﻦ"" :
"ﺳﺎرة"" :ج"،
ﺑ ﻲ"،
"إدوارد"" :رو
ﺜﻮن" ،
ﺑﻴ"ﻓﻴﻞ"" :
}
ـ105اﻟﻘﻮاﻣﻴ ﺲ
Machine Translated by Google
إدوارد
ﻓﻴﻞ
ﺘﻚ اﻟﻤﻔﻀﻠ ﺔ ﻫ ﻲ !Python
ﺒﺎ ﻓﻴﻞ ،أرى أن ﻟﻐ
ﻣﺮﺣ ً
ﺳﺎره
ﺘﻚ اﻟﻤﻔﻀﻠ ﺔ ﻫ ﻲ !C
ﺒﺎﺳﺎرة ،أرى أن ﻟﻐ
ﻣﺮﺣ ً
ﺟﻴﻦ
ﺘﺸﻒ
ﺘﻄﻼع رأي ﺷﺨﺺ ﻣﻌﻴﻦ .ﻫﺬه اﻟﻤﺮة ،دﻋﻨﺎ ﻧﻜ
ﺘﺨﺪام ﻃﺮﻳﻘ ﺔ )( keysﻟﻤﻌﺮﻓ ﺔ ﻣﺎ إذاﺗﻢ اﺳ ﻳﻤﻜﻨﻚ أ ً
ﻳﻀﺎ اﺳ
ﺘﻄﻼع:
ﻣﺎ إذا ﻛﺎﻧ ﺖ إﻳﺮﻳﻦ ﻗﺪ أﺟﺮ ت اﻻﺳ
اﻟﻠﻐ ﺔ اﻟﻤﻔﻀﻠ ﺔ { =
ﺜﻮن" ،
ﺑﻴ"ﺟﻴﻦ"" :
"ﺳﺎرة"" :ج"،
ﺑ ﻲ"،
"إدوارد"" :رو
ﺜﻮن" ،
ﺑﻴ"ﻓﻴﻞ"" :
}
ﺘﻄﻼع!
إﻳﺮﻳﻦ ،ﻣﻦ ﻓﻀﻠﻚ ﺷﺎرك ﻓ ﻲ اﻻﺳ
ﺗﻴ ﺐ
ﺘﺮﺑﺎﻟﺗﻴﺢ اﻟﻘﺎﻣﻮس
ﺘﻜﺮار ﻣﻦ ﺧﻼل ﻣﻔﺎ
اﻟ
ﺑﺪًا ﻋﲆ اﻟﻌﻨﺎﺻﺮ ﻣﻦ
ﺑﻪ ،ﻟﻜﻨﻚ ﻻﺗﺤﺼﻞ أﺒﻄ ﺔ
ﺗﺘﺎح واﻟﻘﻴﻤ ﺔ اﻟﻤﺮ
ﺑﻴﻦ ﻛﻞ ﻣﻔﺗﺼﺎل واﺿﺢ
ﺋﻤﺎ ﻋﲆ ا
ﻳﺤﺎﻓﻆ اﻟﻘﺎﻣﻮس دا ً
ﺑﻪ .ﻫﺬه ﻟﻴ ﺴ ﺖ ﻣﺸﻜﻠ ﺔ ،ﻷﻧﻚ ﻋﺎدة ﻣﺎﺗﺮﻳﺪ ﻓﻘﻂ اﻟﺤﺼﻮل ﻋﲆ اﻟﻘﻴﻤ ﺔ اﻟﺼﺤﻴﺤ ﺔﺒﺆ
ﺘﻨﺗﻴ ﺐﻳﻤﻜﻦ اﻟ
ﺑﺄيﺗﺮاﻟﻘﺎﻣﻮس
ﺘﺎح.
ﺑﻜﻞ ﻣﻔﺒﻄ ﺔ
ﺗاﻟﻤﺮ
ﺘﺨﺪام
ﺛﻨﺎء إرﺟﺎﻋﻬﺎ ﻓ ﻲ ﺣﻠﻘ ﺔ for .ﻳﻤﻜﻨﻚ اﺳ
ﺗﻴﺢ أ
ﺗﻴ ﺐ ﻣﻌﻴﻦ ﻓ ﻲ ﻓﺮز اﻟﻤﻔﺎ
ﺘﺮﺑﺜﻞ إﺣﺪى ﻃﺮق إرﺟﺎع اﻟﻌﻨﺎﺻﺮ
ﺘﻤﺗ
ﺗﻴ ﺐ:
ﺘﺮﺑﺎﻟﺗﻴﺢ
اﻟﻮﻇﻴﻔ ﺔ )( Sortedﻟﻠﺤﺼﻮل ﻋﲆ ﻧ ﺴﺨ ﺔ ﻣﻦ اﻟﻤﻔﺎ
اﻟﻠﻐ ﺔ اﻟﻤﻔﻀﻠ ﺔ { =
ﺜﻮن" ،
ﺑﻴ"ﺟﻴﻦ"" :
"ﺳﺎرة"" :ج"،
ﺑ ﻲ"،
"إدوارد"" :رو
ﺜﻮن" ،
ﺑﻴ"ﻓﻴﻞ"" :
}
106اﻟﻔﺼﻞ 6
Machine Translated by Google
ﺗﻴ ﺐ:
ﺘﺮﺑﺎﻟﺘﻄﻼع ﻣﻊ ﻋﺮض اﻷﺳﻤﺎء
ﺗﺞ ﻛﻞ ﻣﻦ ﺷﺎرك ﻓ ﻲ اﻻﺳ
ﻳﻈﻬﺮ اﻟﻨﺎ
اﻟﻠﻐ ﺔ اﻟﻤﻔﻀﻠ ﺔ { =
ﺜﻮن" ،ﺑﻴ
"ﺟﻴﻦ"" :
"ﺳﺎرة"" :ج"،
ﺑ ﻲ"،
"إدوارد"" :رو
ﺜﻮن" ،
ﺑﻴ"ﻓﻴﻞ"" :
}
ﺘﺎﻟﻴ ﺔ(":
ﺗﻢ ذﻛﺮ اﻟﻠﻐﺎ ت اﻟ
ﺒﺎﻋ ﺔ )"
ﻃ
ﻟﻠﻐ ﺔ ﻓ ﻲ favourite_languages.values ():
))( print (language.title
ﺘﺎﻟﻴ ﺔ:
ﺗﻢ ذﻛﺮ اﻟﻠﻐﺎ ت اﻟ
ﺜﻮن
ﺑﺎﻳ
ج
ﺜﻮن
ﺑﺎﻳ
ﺑﻲ
رو
ﺘﺤﻘﻖ ﻣﻨﻬﺎ
ﻳ ﺴﺤ ﺐ ﻫﺬا اﻷﺳﻠﻮ ب ﺟﻤﻴﻊ اﻟﻘﻴﻢ ﻣﻦ اﻟﻘﺎﻣﻮس دون اﻟ
ﺘﺞ
ﺒﻴﻦ ،ﻗﺪﻳﻨ
ﺘﺠﻴ
ﺒﻴﺮ ﻣﻦ اﻟﻤ ﺴ
ﺘﻄﻼع ﻣﻊ ﻋﺪد ﻛ
ﺑﺸﻜﻞ ﺟﻴﺪ ﻣﻊ ﻋﺪد ﺻﻐﻴﺮ ﻣﻦ اﻟﻘﻴﻢ ،وﻟﻜﻦ ﻓ ﻲ اﺳﺘﻜﺮار .ﻗﺪﻳﻌﻤﻞ ﻫﺬا
ﻟﻠ
ﺘﺨﺪام ﻣﺠﻤﻮﻋ ﺔ.
ﺘﻴﺎر ﻫﺎ دونﺗﻜﺮار ،ﻳﻤﻜﻨﻨﺎ اﺳ
ﺘﻜﺮرة ﻟﻠﻐﺎﻳ ﺔ .ﻟﺮؤﻳ ﺔ ﻛﻞ ﻟﻐ ﺔﺗﻢ اﺧ
ﻋﻦ ذﻟﻚ ﻗﺎﺋﻤ ﺔ ﻣ
اﻟﻠﻐ ﺔ اﻟﻤﻔﻀﻠ ﺔ { =
ﺜﻮن" ،ﺑﻴ
"ﺟﻴﻦ"" :
"ﺳﺎرة"" :ج"،
ﺑ ﻲ"،
"إدوارد"" :رو
107-ﻗﻮاﻣﻴ ﺲ
Machine Translated by Google
ﺜﻮن" ،
ﺑﻴ"ﻓﻴﻞ"" :
}
ﺘﺎﻟﻴ ﺔ(":
ﺗﻢ ذﻛﺮ اﻟﻠﻐﺎ ت اﻟ
ﺒﺎﻋ ﺔ )"
ﻃ
uﻟﻠﻐ ﺔ ﻓ ﻲ اﻟﻤﺠﻤﻮﻋ ﺔ (favourite_languages.values ()):
))( print (language.title
ﺘﺎﻟﻴ ﺔ:
ﺗﻢ ذﻛﺮ اﻟﻠﻐﺎ ت اﻟ
ﺜﻮن
ﺑﺎﻳ
ج
ﺑﻲ
رو
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺘﻨﻈﻴﻒ اﻟﻜﻮد
ﺑﺑﻌﺪ أن ﻋﺮﻓ ﺖ ﻛﻴﻔﻴ ﺔﺗﻨﻔﻴﺬ ﺣﻠﻘ ﺔ ﻣﻦ ﺧﻼل ﻗﺎﻣﻮس ،ﻗﻢ6-4.ﻣ ﺴﺮد اﻟﻤﺼﻄﻠﺤﺎ ت 2:اﻵن
ﺑﻚﺒﻮﻋﺎ ت اﻟﺨﺎﺻ ﺔ
ﺒﺪالﺳﻠ ﺴﻠ ﺔ اﻟﻤﻄ
ﺘﺘﻤﺮﻳﻦ )6-3ﺻﻔﺤ ﺔ )102ﻋﻦ ﻃﺮﻳﻖ اﺳ
ﻣﻦ اﻟ
ﺗﻴﺢ اﻟﻘﺎﻣﻮس واﻟﻘﻴﻢ.
ﺒﺮ ﻣﻔﺎ
ﺒﺎرا ت ﻣﻊ ﺣﻠﻘ ﺔﺗﻤﺮ ﻋ
ﻋ
ﺑﻚﺗﻌﻤﻞ ،أﺿﻒ ﺧﻤ ﺴ ﺔ ﻣﺼﻄﻠﺤﺎ ت أﺧﺮى ﻓ ﻲ Pythonإﱃﺘﺄﻛﺪًا ﻣﻦ أن اﻟﺤﻠﻘ ﺔ اﻟﺨﺎﺻ ﺔ
ﻋﻨﺪﻣﺎﺗﻜﻮن ﻣ
ﺒﺮﻧﺎﻣﺞ ﻣﺮة أﺧﺮى ،ﻳﺠ ﺐﺗﻀﻤﻴﻦ ﻫﺬه اﻟﻜﻠﻤﺎ ت واﻟﻤﻌﺎﻧ ﻲ
ﺑﻚ .ﻋﻨﺪﺗﺸﻐﻴﻞ اﻟﻣ ﺴﺮد اﻟﻤﺼﻄﻠﺤﺎ ت اﻟﺨﺎص
اﻟﺠﺪﻳﺪةﺗﻠﻘﺎﺋ ًﻴﺎ ﻓ ﻲ اﻹﺧﺮاج.
ﺒﺮ ﻣﺼﺮ.
ﺜﻞ ﻧﻬﺮ اﻟﻨﻴﻞﻳﻤﺮ ﻋ
ﺒﺎﻋ ﺔ ﺟﻤﻠ ﺔ ﺣﻮل ﻛﻞ ﻧﻬﺮ ،ﻣ
ﺘﺨﺪم ﺣﻠﻘ ﺔ ﻟﻄ
•اﺳ
ﺘﻀﻤﻴﻦ
ﺑﺘﻄﻼع اﻟﻠﻐﺎ ت اﻟﻤﻔﻀﻠ ﺔ .ﻗﻢ
ﺑﺎﻷﺷﺨﺎص اﻟﺬﻳﻦﻳﺠ ﺐ ﻋﻠﻴﻬﻢ اﻟﻤﺸﺎرﻛ ﺔ ﻓ ﻲ اﺳﺑﻌﻤﻞ ﻗﺎﺋﻤ ﺔ•ﻗﻢ
ﺑﻌﺾ اﻷﺳﻤﺎء ﻏﻴﺮ ﻣﻮﺟﻮدة.
ﺑﺎﻟﻔﻌﻞ ﻓ ﻲ اﻟﻘﺎﻣﻮس وﺑﻌﺾ اﻷﺳﻤﺎء اﻟﻤﻮﺟﻮدة
ﺘﻄﻼع
ﺘﻄﻼع .إذا ﻛﺎﻧﻮا ﻗﺪ ﺷﺎرﻛﻮا ﻓ ﻲ اﻻﺳ
ﺑﻌﻤﻞﺗﻜﺮار ﻟﻘﺎﺋﻤ ﺔ اﻷﺷﺨﺎص اﻟﺬﻳﻦﻳﺠ ﺐ ﻋﻠﻴﻬﻢ اﻟﻤﺸﺎرﻛ ﺔ ﻓ ﻲ اﻻﺳ•ﻗﻢ
ﺒﻊ رﺳﺎﻟ ﺔﺗﺸﻜﺮ ﻫﻢ ﻋﲆ اﻟﺮد.
ﺑﺎﻟﻔﻌﻞ ،اﻃ
ﺘﻄﻼع.
ﺒﻊ رﺳﺎﻟ ﺔﺗﺪﻋﻮ ﻫﻢ إﱃ اﻟﻤﺸﺎرﻛ ﺔ ﻓ ﻲ اﻻﺳ
ﺑﻌﺪ ،اﻃﺘﺮاع
إذا ﻟﻢﻳﺠﺮوا اﻻﻗ
108اﻟﻔﺼﻞ 6
Machine Translated by Google
ﺘﻌﺸﻴ ﺶ
اﻟ
ﺘﺎج أﺣﻴﺎﻧًﺎ إﱃﺗﺨﺰﻳﻦ ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻟﻘﻮاﻣﻴ ﺲ ﻓ ﻲ ﻗﺎﺋﻤ ﺔ أو ﻗﺎﺋﻤ ﺔ ﻋﻨﺎﺻﺮ ﻛﻘﻴﻤ ﺔ ﻓ ﻲ ﻗﺎﻣﻮس .و ﻫﺬا ﻣﺎﻳ ﺴﻤﻰ
ﺘﺤﺳ
ﺘﻰ ﻗﺎﻣﻮس داﺧﻞ
ﺘﻌﺸﻴ ﺶ.ﻳﻤﻜﻨﻚ دﻣﺞ ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻟﻘﻮاﻣﻴ ﺲ داﺧﻞ ﻗﺎﺋﻤ ﺔ ،أو ﻗﺎﺋﻤ ﺔ ﻋﻨﺎﺻﺮ داﺧﻞ ﻗﺎﻣﻮس ،أو ﺣ
اﻟ
ﺘﺎﻟﻴ ﺔ.
ﺜﻠ ﺔ اﻟ
ﺘﻮﺿﺢ اﻷﻣ
ﺘﻌﺸﻴ ﺶ ﻣﻴﺰة ﻗﻮﻳ ﺔ ،ﻛﻤﺎﺳ
ﺒﺮ اﻟ
ﺘﻗﺎﻣﻮس آﺧﺮ.ﻳﻌ
ﻗﺎﺋﻤ ﺔ اﻟﻘﻮاﻣﻴ ﺲ
ﺘﻮي ﻋﲆ ﻣ ﺴﺎﺣ ﺔ
ﺘﻨﻮﻋ ﺔ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت ﺣﻮل ﻛﺎﺋﻦ ﻓﻀﺎﺋ ﻲ واﺣﺪ ،وﻟﻜﻨﻪ ﻻﻳﺤ
ﺘﻮي ﻗﺎﻣﻮس alien_0ﻋﲆ ﻣﺠﻤﻮﻋ ﺔ ﻣ
ﻳﺤ
ﺑﺎﻷﺟﺎﻧ ﺐ .ﻛﻴﻒﻳﻤﻜﻨﻚ إدارة أﺳﻄﻮل ﻣﻦ اﻟﻔﻀﺎﺋﻴﻴﻦ؟ﺛﺎن ،ﻧﺎ ﻫﻴﻚ ﻋﻦ ﺷﺎﺷ ﺔ ﻣﻠﻴﺌ ﺔ
ﺘﺨﺰﻳﻦ ﻣﻌﻠﻮﻣﺎ ت ﺣﻮل ﻛﺎﺋﻦ ﻓﻀﺎﺋ ﻲ ٍ
ﻟ
ﺜﺎل ،
ﺒﻴﻞ اﻟﻤ
ﺳﺎ ﻟﻠﻤﻌﻠﻮﻣﺎ ت ﺣﻮل ﻫﺬا اﻟﻔﻀﺎﺋ ﻲ .ﻋﲆﺳ
ﺒ ﻲ ﻗﺎﻣﻮ ً
ﺑﺎﻷﺟﺎﻧ ﺐﻳﻜﻮن ﻓﻴﻬﺎ ﻛﻞ أﺟﻨإﺣﺪى اﻟﻄﺮق ﻫ ﻲ ﻋﻤﻞ ﻗﺎﺋﻤ ﺔ
ﺛ ﺔ أﺟﺎﻧ ﺐ:
ﺜﻼﺑﺘﺎﻟ ﻲ ﻗﺎﺋﻤ ﺔ
ُﻨﺸ ﺊ اﻟﻜﻮد اﻟ
ﻳ
ﺒ ﻲ(
ﺒﺎﻋ ﺔ )أﺟﻨ
ﻃ
ﺘﻠ ًﻔﺎ.
ﺜﻞ ﻛﻞ ﻣﻨﻬﺎ ﻛﺎﺋﻨًﺎ ﻓﻀﺎﺋ ًﻴﺎ ﻣﺨ
ﺛ ﺔ ﻗﻮاﻣﻴ ﺲ ،ﻳﻤ
ﺛﻼ ﻧﻘﻮم أوﻻ ً
ﺑﺈﻧﺸﺎء
ﺒﻊ ﻛﻞ ﻛﺎﺋﻦ ﻓﻀﺎﺋ ﻲ:
ّر اﻟﻘﺎﺋﻤ ﺔ وﻧﻄ
ﻧﺤﻦ ﻧﺤﺰم ﻛﻞ ﻣﻦ ﻫﺬه اﻟﻘﻮاﻣﻴ ﺲ ﻓ ﻲ ﻗﺎﺋﻤ ﺔﺗ ﺴﻤﻰ اﻟﻜﺎﺋﻨﺎ ت اﻟﻔﻀﺎﺋﻴ ﺔ .أﺧﻴ ﺮًا ،ﻧﻤ ﺮ
}{'color': 'green'، 'Points': 5} {'color': 'yellow'، 'Points': 10} {'color': 'red'، 'Points': 15
ﺘﺎﻟ ﻲ
ﺜﺎل اﻟ
ﺑﺮﻣﺰﻳﻮﻟﺪ ﻛﻞ ﻛﺎﺋﻦ ﻓﻀﺎﺋ ﻲﺗﻠﻘﺎﺋ ًﻴﺎ .ﻓ ﻲ اﻟﻤﺛ ﺔ ﻛﺎﺋﻨﺎ ت ﻓﻀﺎﺋﻴ ﺔ
ﺛﻼﺜﺮ ﻣﻦ
ﺜﺮ واﻗﻌﻴ ﺔ أﻛ
ﺜﺎل اﻷﻛ
ﺘﻀﻤﻦ اﻟﻤ
ﻗﺪﻳ
ﺒ ًﻴﺎ:
ﺘﺨﺪم اﻟﻨﻄﺎق )(ﻹﻧﺸﺎء أﺳﻄﻮل ﻣﻦ 30أﺟﻨ
ﻧﺴ
109-ﻗﻮاﻣﻴ ﺲ
Machine Translated by Google
}'color': 'green'، 'Points': 5} {'speed': 'slow'، 'color': 'green'، 'Points': 5} {'speed': 'slow' ، 'color': 'green'، 'Points': 5
{'speed': 'slow'، 'color': 'green'، 'Points': 5} {'speed': 'slow'، 'color': 'green'، 'Points': 5} {'speed' : 'slow'،
...
ﺒﺎر ﻫﺎ ﻛﻞ ﻣﻨﻬﺎ
ﺘﺜﻮنﺗﻀﻊ ﻓ ﻲ اﻋ
ﺑﺎﻳﻛﻞ ﻫﺬه اﻟﻜﺎﺋﻨﺎ ت اﻟﻔﻀﺎﺋﻴ ﺔ ﻟﻬﺎ ﻧﻔ ﺲ اﻟﺨﺼﺎﺋﺺ ،ﻟﻜﻦ
ﺒ ﻲ ﻋﲆ ﺣﺪة.
ﺘﻌﺪﻳﻞ ﻛﻞ أﺟﻨ
ﺑواﺣﺪ ﻛﺎﺋﻦ ﻣﻨﻔﺼﻞ ،واﻟﺬيﻳ ﺴﻤﺢ ﻟﻨﺎ
ﺑﻌﺾ اﻷﺟﺎﻧ ﺐﻳﻐﻴﺮونﺒ ﺔ ﻟﺪﻳﻪ
ﺜﻞ ﻫﺬا؟ﺗﺨﻴﻞ أن أﺣﺪ ﺟﻮاﻧ ﺐ اﻟﻠﻌ
ﻛﻴﻒﻳﻤﻜﻨﻚ اﻟﻌﻤﻞ ﻣﻊ ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻟﻔﻀﺎﺋﻴﻴﻦ ﻣ
ﺘﻐﻴﻴﺮ
ﺒﺎرة ifﻟ
ﺘﺨﺪام ﺣﻠﻘ ﺔ forوﻋ
ﺒ ﺔ .ﻋﻨﺪﻣﺎﻳﺤﻴﻦ وﻗ ﺖﺗﻐﻴﻴﺮ اﻷﻟﻮان ،ﻳﻤﻜﻨﻨﺎ اﺳ
ﺑﺸﻜﻞ أﺳﺮع ﻣﻊﺗﻘﺪم اﻟﻠﻌﺘﺤﺮﻛﻮن
ﻟﻮﻧﻬﻢ وﻳ
ﺘﻮﺳﻄ ﺔ
ﺛ ﺔ اﻷوﱃ إﱃ ﻛﺎﺋﻨﺎ ت ﻓﻀﺎﺋﻴ ﺔ ﺻﻔﺮاء ﻣ
ﺜﻼﺘﻐﻴﻴﺮ اﻟﻜﺎﺋﻨﺎ ت اﻟﻔﻀﺎﺋﻴ ﺔ اﻟ
ﺜﺎل ،ﻟ
ﺒﻴﻞ اﻟﻤ
ﻟﻮن اﻟﻜﺎﺋﻨﺎ ت اﻟﻔﻀﺎﺋﻴ ﺔ .ﻋﲆﺳ
ﺑﺬﻟﻚ:ﺘﺤﻖ ﻛﻞ ﻣﻨﻬﺎ 10ﻧﻘﺎط ،ﻳﻤﻜﻨﻨﺎ اﻟﻘﻴﺎم
اﻟ ﺴﺮﻋ ﺔﺗ ﺴ
110اﻟﻔﺼﻞ 6
Machine Translated by Google
ﺘﻮﺳﻂ ،وﻗﻴﻤ ﺔ
ﻧﺤﻦ ﻧﻌﺪل اﻟﻜﺎﺋﻨﺎ ت اﻟﻔﻀﺎﺋﻴ ﺔ اﻟﺨﻀﺮاء ﻓﻘﻂ .إذا ﻛﺎن اﻟﻜﺎﺋﻦ اﻟﻔﻀﺎﺋ ﻲ أﺧﻀﺮ ،ﻓﺈﻧﻨﺎ ﻧﻐﻴﺮ اﻟﻠﻮن إﱃ اﻟﻠﻮن اﻷﺻﻔﺮ ،واﻟ ﺴﺮﻋ ﺔ إﱃ اﻟﻤ
ﺘﺎﻟ ﻲ:
اﻟﻨﻘﻄ ﺔ إﱃ 10 ،ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓ ﻲ اﻹﺧﺮاج اﻟ
...
ﺘﺎﻟ ﻲ:
ﺑﺎﻟﺸﻜﻞ اﻟﺒﺪو ﻫﺬه اﻟﺤﻠﻘ ﺔ
ﺘﺑﺎﻟﻜﺎﻣﻞ ﻣﺮة أﺧﺮى ،ﺳﺒﺮﻧﺎﻣﺞ
ﺑﺪون إﻇﻬﺎر اﻟﻟﻜﻞ ﻣﻨﻬﺎ.
ﺘﺨﺪم ﻋﲆ ﻣﻮﻗﻊ
ﺜﺎل ،ﻳﻤﻜﻨﻚ إﻧﺸﺎء ﻗﺎﻣﻮس ﻟﻜﻞ ﻣ ﺴ
ﺒﻴﻞ اﻟﻤ
ﺘﻮي ﻣﻮﻗﻊ tionaryﻋﲆ أﻧﻮاع ﻋﺪﻳﺪة ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت ﺣﻮل ﻛﺎﺋﻦ واﺣﺪ .ﻋﲆﺳ
ﻳﺤ
ﻗﺎﺋﻤ ﺔ ﻓ ﻲ ﻗﺎﻣﻮس
ﺒﺎرك ﻛﻴﻒﻳﻤﻜﻨﻚ وﺻﻒ
ﺘﺜﺎل ،ﺿﻊ ﻓ ﻲ اﻋ ﺑﺪﻻ ً ﻣﻦ وﺿﻊ ﻗﺎﻣﻮس داﺧﻞ ﻗﺎﺋﻤ ﺔ ،ﻣﻦ اﻟﻤﻔﻴﺪ أﺣﻴﺎﻧًﺎ وﺿﻊ ﻗﺎﺋﻤ ﺔ داﺧﻞ ﻗﺎﻣﻮس .ﻋﲆﺳ
ﺒﻴﻞ اﻟﻤ
ﺘ ﻲﺗﺼﻔﻬﺎ.
ﺘﺰا اﻟ
ﺒﻴﺒﺎ واﺣﺪًا ﻣﻦ اﻟ
أنﺗﻜﻮن ﻗﺎﺋﻤ ﺔ أﻓﻀﻞ اﻷﺻﻮا ت ﺟﺎﻧ ً
ﺑﺎﻹﺿﺎﻓﺎ ت:ﺑﺪﻻ ً ﻣﻦ إرﺟﺎع ﻗﻴﻤ ﺔ واﺣﺪة ،ﻧﺤﺼﻞ ﻋﲆ ﻗﺎﺋﻤ ﺔﺒﻘ ﺔ" ،ﻛﻤﺎ ﻧﻔﻌﻞ ﻣﻊ أي ﻗﻴﻤ ﺔ ﻓ ﻲ اﻟﻘﺎﻣﻮس.
ﺘﺎح "اﻟﻄ
ﻧﻌﻄ ﻲ اﺳﻢ اﻟﻘﺎﻣﻮس واﻟﻤﻔ
ﺒﻬﺎ.
ﺘﻢ ﻃﻠ
ﺘﺰاﻳ
ﺑﻴﺗﺨﺰﻳﻦ ﻣﻌﻠﻮﻣﺎ ت ﺣﻮل
pizza.py #
ﺘﺰا { =
ﺑﻴu
"اﻟﻘﺸﺮة"" :ﺳﻤﻴﻜ ﺔ" ،
ﺒﻦ اﻹﺿﺎﻓ ﻲ"[ ،
ﺒﻘ ﺔ اﻟﻌﻠﻴﺎ""] :اﻟﻔﻄﺮ" " ،اﻟﺠ
"اﻟﻄ
}
ﻗﻮاﻣﻴ ﺲ 111
Machine Translated by Google
ﺒﻘ ﺔ"[:
ﺘﺰا ]"اﻟﻄ
ﺒﻴﺒ ﺔ اﻷوﱃ ﻓ ﻲ اﻟ
ﺗﺘﻞ اﻟﻤﺮ
ﺘﺤwﻟ
ﺘﺼﺪر(
ﺗﺒﺎﻋ ﺔ ("\ t" +
ﻃ
ﺒﻨﺎء ﻫﺎ:
ﺘ ﻲ ﻧﺨﻄﻂ ﻟ
ﺘﺰا اﻟ
ﺒﻴﺘﺎﻟ ﻲ اﻟ
ﺗﺞ اﻟ
ﻳﻠﺨﺺ اﻟﻨﺎ
ﺘﺎﻟﻴ ﺔ:
ﺒﻘ ﺔ اﻟ
ﺘﺰاﺳﻤﻴﻜ ﺔ اﻟﻘﺸﺮة ﻣﻊ اﻟﻄ
ﺑﻴﺒﺖ
ﻟﻘﺪ ﻃﻠ
ﺒﻨ ﺔ اﺿﺎﻓﻴ ﺔ
ﻓﻄﺮ ﺟ
ﺜﺎل
ﺘﺎح واﺣﺪ ﻓ ﻲ اﻟﻘﺎﻣﻮس .ﻓ ﻲ اﻟﻤ
ﺑﻤﻔﺜﺮ ﻣﻦ ﻗﻴﻤ ﺔ
ﺑﻂ أﻛ
ﻳﻤﻜﻨﻚ دﻣﺞ ﻗﺎﺋﻤ ﺔ داﺧﻞ ﻗﺎﻣﻮس ﻓ ﻲ أي وﻗ ﺖﺗﺮﻳﺪ ر
ﺜﺮ ﻣﻦ ﻟﻐ ﺔ
ﺘﻴﺎر أﻛ
ﺘﺨﺰﻳﻦ ردود ﻛﻞ ﺷﺨﺺ ﻓ ﻲ ﻗﺎﺋﻤ ﺔ ،ﻳﻤﻜﻦ ﻟﻸﺷﺨﺎص اﺧ
ﺑﺒﺮﻣﺠ ﺔ اﻟﻤﻔﻀﻠ ﺔ ،إذا ﻗﻤﻨﺎ
ﺑﻖ ﻟﻠﻐﺎ ت اﻟ
اﻟ ﺴﺎ
ﺑﺪﻻ ً ﻣﻦ ﻟﻐ ﺔ واﺣﺪة.ﺘﻜﻮن ﻗﺎﺋﻤ ﺔ ﻟﻐﺎ ت
ﺑﻜﻞ ﺷﺨﺺﺳﺒﻄ ﺔ
ﺗﺘﺼﻔﺢ اﻟﻘﺎﻣﻮس ،ﻓﺈن اﻟﻘﻴﻤ ﺔ اﻟﻤﺮ
واﺣﺪة ﻣﻔﻀﻠ ﺔ .ﻋﻨﺪﻣﺎ ﻧ
ﺑﻜﻞ ﺷﺨﺺ:ﺒﻄ ﺔ
ﺗﺘﺸﻐﻴﻞ ﻗﺎﺋﻤ ﺔ اﻟﻠﻐﺎ ت اﻟﻤﺮ
ﺘﺨﺪم ﺣﻠﻘ ﺔ forأﺧﺮى ﻟ
داﺧﻞ ﺣﻠﻘ ﺔ forﻓ ﻲ اﻟﻘﺎﻣﻮس ،ﻧ ﺴ
ﻣﻔﻀﻞ_
u favourite_languages {=
languages.py
"jen": ["python"، "ruby"]،
"ﺳﺎرة""] :ج"[،
ﺑ ﻲ" " ،اﻧﻄﻠﻖ"[ ،
"إدوارد""] :رو
'phil': ['python'، 'haskell']،
}
112اﻟﻔﺼﻞ اﻟ ﺴﺎدس
Machine Translated by Google
ﺜﺮ ﻣﻦ ﻣﻔﻀﻞ واﺣﺪ ،ﻓ ﺴﻴﻈﻞ اﻹﺧﺮاج ﻛﻤﺎ ﻫﻮ .إذا ﻛﺎن اﻟﺸﺨﺺ ﻟﺪﻳﻪ ﻟﻐ ﺔ ﻣﻔﻀﻠ ﺔ واﺣﺪة ﻓﻘﻂ ،
إذا ﻛﺎن ﻟﺪى اﻟﺸﺨﺺ أﻛ
ﺜﺎل ،ﻳﻤﻜﻨﻚ اﻟﻘﻮل إن ﻟﻐ ﺔﺳﺎرة اﻟﻤﻔﻀﻠ ﺔ ﻫ ﻲ C.
ﺒﻴﻞ اﻟﻤ
ﺘﻌﻜ ﺲ ذﻟﻚ .ﻋﲆﺳ
ﻓﻴﻤﻜﻨﻚﺗﻐﻴﻴﺮ اﻟﺼﻴﺎﻏ ﺔ ﻟ
ﺜﻠ ﺔ
ﺜﻴﺮ ﻣﻤﺎﺗﺮاه ﻓ ﻲ اﻷﻣ
ﺑﻜﺑﺸﻜﻞ أﻋﻤﻖﺘﺪاﺧﻞ اﻟﻌﻨﺎﺻﺮ
ﺑالﻳﺠ ﺐ ﻋﻠﻴﻚ إﺟﺮاءﺗﺪاﺧﻞ ﺷﺪﻳﺪ ﻓ ﻲ اﻟﻘﻮاﺋﻢ واﻟﻘﻮاﻣﻴ ﺲ .إذا ﻛﻨ ﺖﺗﻘﻮم
ﺑ ﺴﻂ ﻟﺤﻞ اﻟﻤﺸﻜﻠ ﺔ.
ﺘﺪاﺧﻞ ،ﻓﻤﻦ اﻟﻤﺮﺟﺢ أنﺗﻮﺟﺪ ﻃﺮﻳﻘ ﺔ أ
ﺒﻴﺮة ﻣﻦ اﻟ
ﺘﻮﻳﺎ ت ﻛ
ﺑﻤ ﺴﺑﻘ ﺔ أو إذا ﻛﻨ ﺖﺗﻌﻤﻞ ﻣﻊ رﻣﺰ ﺷﺨﺺ آﺧﺮ
اﻟ ﺴﺎ
ﻗﺎﻣﻮس ﻓ ﻲ ﻗﺎﻣﻮس
ﺑ ﺴﺮﻋ ﺔ ﻋﻨﺪﻣﺎﺗﻔﻌﻞ ذﻟﻚ.ﺒﺮﻣﺠﻴ ﺔ ﻣﻌﻘﺪة
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺒﺢ اﻟ
ﻳﻤﻜﻨﻚﺗﻀﻤﻴﻦ ﻗﺎﻣﻮس داﺧﻞ ﻗﺎﻣﻮس آﺧﺮ ،وﻟﻜﻦﻳﻤﻜﻦ أنﺗﺼ
ﺘﺨﺪام أﺳﻤﺎء
ﺘﺨﺪم ﻓﺮﻳﺪ ،ﻓﻴﻤﻜﻨﻚ اﺳ
ﺘﺨﺪﻣﻴﻦ ﻟﻤﻮﻗﻊ وﻳ ﺐ ،وﻟﻜﻞ ﻣﻨﻬﻢ اﺳﻢ ﻣ ﺴ
ﺜﺎل ،إذا ﻛﺎن ﻟﺪﻳﻚ ﻋﺪة ﻣ ﺴ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺘﺨﺪام ﻗﺎﻣﻮس ﻛﻘﻴﻤ ﺔ
ﺑﺎﺳﺘﺨﺪم
ﺑﻌﺪ ذﻟﻚﺗﺨﺰﻳﻦ اﻟﻤﻌﻠﻮﻣﺎ ت ﺣﻮل ﻛﻞ ﻣ ﺴﺗﻴﺢ ﻓ ﻲ اﻟﻘﺎﻣﻮس.ﻳﻤﻜﻨﻚ
ﺘﺨﺪﻣﻴﻦ ﻛﻤﻔﺎ
اﻟﻤ ﺴ
ﺘﺨﺪم :اﻻﺳﻢ اﻷول واﺳﻢ
ﺛﻼ ث ﻣﻌﻠﻮﻣﺎ ت ﻋﻦ ﻛﻞ ﻣ ﺴﺘﺨﺰﻳﻦ
ﺑﺘﺎﻟﻴ ﺔ ،ﻧﻘﻮم
ﺑﻪ .ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ اﻟﺘﺨﺪم اﻟﺨﺎص
ﺑﺎﺳﻢ اﻟﻤ ﺴﺒﻄ ﺔ
ﺗﻣﺮ
ﺑﻜﻞ اﺳﻢﺒﻄ ﺔ
ﺗﺘﺨﺪﻣﻴﻦ وﻗﺎﻣﻮس اﻟﻤﻌﻠﻮﻣﺎ ت اﻟﻤﺮ
اﻟﻌﺎﺋﻠ ﺔ واﻟﻤﻮﻗﻊ.ﺳﻨﺼﻞ إﱃ ﻫﺬه اﻟﻤﻌﻠﻮﻣﺎ ت ﻋﻦ ﻃﺮﻳﻖﺗﻜﺮار أﺳﻤﺎء اﻟﻤ ﺴ
ﺘﺨﺪم:
ﻣﺴ
many_users.py ﺘﺨﺪﻣﻮن { =
اﻟﻤ ﺴ
ﺘﺎﻳﻦ"{ :
"أﻳﻨﺸ
"first": "albert"،
ﺘﺎﻳﻦ" ،
"آﺧﺮ"" :أﻳﻨﺸ
ﺘﻮن"،
ﺑﺮﻳﻨ ﺴ
"اﻟﻤﻮﻗﻊ"" :
}،
113-ﻗﻮاﻣﻴ ﺲ
Machine Translated by Google
{ 'mcurie':
"first": "marie"،
"آﺧﺮ"" :ﻛﻮري"،
ﺑﺎرﻳ ﺲ"،
"اﻟﻤﻮﻗﻊ"" :
}،
}
"
x print ("\ tاﻻﺳﻢ اﻟﻜﺎﻣﻞ+ full_name.title ()) :
ﺒﺎﻋ ﺔ ("\ tاﻟﻤﻮﻗﻊ+ location.title ()) ":
ﻃ
ﺘﺨﺪمaeinstein :
اﺳﻢ اﻟﻤ ﺴ
ﺘﺎﻳﻦ
ﺒﺮ ت أﻳﻨﺸ
اﻻﺳﻢ اﻟﻜﺎﻣﻞ :أﻟ
ﺘﻮن
ﺑﺮﻳﻨ ﺴاﻟﻤﻮﻗﻊ:
ﺘﺨﺪمmcurie :
اﺳﻢ اﻟﻤ ﺴ
اﻻﺳﻢ اﻟﻜﺎﻣﻞ :ﻣﺎري ﻛﻮري
ﺑﺎرﻳ ﺲاﻟﻤﻮﻗﻊ:
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
114اﻟﻔﺼﻞ 6
Machine Translated by Google
6-8.اﻟﺤﻴﻮاﻧﺎ ت اﻷﻟﻴﻔ ﺔ :اﺻﻨﻊ ﻋﺪة ﻗﻮاﻣﻴ ﺲ ،ﺣﻴ ﺚﻳﻜﻮن اﺳﻢ ﻛﻞ ﻗﺎﻣﻮس ﻫﻮ اﺳﻢ ﺣﻴﻮان أﻟﻴﻒ .ﻓ ﻲ ﻛﻞ
ﺘﺨﺰﻳﻦ ﻫﺬه اﻟﻘﻮاﻣﻴ ﺲ ﻓ ﻲ ﻗﺎﺋﻤ ﺔﺗ ﺴﻤﻰ اﻟﺤﻴﻮاﻧﺎ ت
ﺑﺘﻀﻤﻴﻦ ﻧﻮع اﻟﺤﻴﻮان واﺳﻢ اﻟﻤﺎﻟﻚ .ﻗﻢ
ﺑﻗﺎﻣﻮس ،ﻗﻢ
ﺒﺎﻋ ﺔ ﻛﻞ ﻣﺎﺗﻌﺮﻓﻪ ﻋﻦ ﻛﻞ ﺣﻴﻮان أﻟﻴﻒ.
ﺑﻄﺛﻨﺎء ﻗﻴﺎﻣﻚ
ﺘﻚ وأ
ﺑﻌﻤﻞﺗﻜﺮار ﻟﻘﺎﺋﻤﺑﻌﺪ ذﻟﻚ ،ﻗﻢاﻷﻟﻴﻔ ﺔ.
ﺘﺨﺪاﻣﻬﺎ
ﺛ ﺔ أﺳﻤﺎء ﻻﺳ
ﺛﻼﺑﻌﻤﻞ ﻗﺎﻣﻮسﻳ ﺴﻤﻰ favourite_places.ﻓﻜﺮ ﻓ ﻲ6-9.اﻷﻣﺎﻛﻦ اﻟﻤﻔﻀﻠ ﺔ :ﻗﻢ
ﺜﺮ
ﺘﻤﺮﻳﻦ أﻛ
ﺛ ﺔ أﻣﺎﻛﻦ ﻣﻔﻀﻠ ﺔ ﻟﻜﻞ ﺷﺨﺺ .ﻟﺠﻌﻞ ﻫﺬا اﻟ
ﺛﻼﺘﺨﺰﻳﻦ ﻣﻜﺎن إﱃ
ﺑﺗﻴﺢ ﻓ ﻲ اﻟﻘﺎﻣﻮس ،وﻗﻢ
ﻛﻤﻔﺎ
ﺑﻌﻤﻞﺗﻜﺮار ﻓ ﻲ اﻟﻘﺎﻣﻮس ،ﺑﻌﺾ اﻷﻣﺎﻛﻦ اﻟﻤﻔﻀﻠ ﺔ ﻟﺪﻳﻬﻢ .ﻗﻢﺑﻌﺾ اﻷﺻﺪﻗﺎءﺗ ﺴﻤﻴ ﺔﺗﺸﻮﻳ ًﻘﺎ ،اﻃﻠ ﺐ ﻣﻦ
ﺒﻊ اﺳﻢ ﻛﻞ ﺷﺨﺺ وأﻣﺎﻛﻨﻪ اﻟﻤﻔﻀﻠ ﺔ.
واﻃ
ﺘﺨﺪم أﺣﺪ
ﺑﺄي ﻋﺪد ﻣﻦ اﻟﻄﺮق .اﺳﺘﻮﺳﻴﻌﻬﺎ
ﺑﻤﺎﻳﻜﻔ ﻲ ﻟﺜﻠ ﺔ ﻣﻌﻘﺪة
6-12.اﻹﺿﺎﻓﺎ ت :ﻧﺤﻦ ﻧﻌﻤﻞ اﻵن ﻣﻊ أﻣ
ﺒﺮﻧﺎﻣﺞ أوﺗﺤ ﺴﻴﻦ
ﺗﻴﺢ وﻗﻴﻢ ﺟﺪﻳﺪة أوﺗﻐﻴﻴﺮﺳﻴﺎق اﻟ
ﺑﺈﺿﺎﻓ ﺔ ﻣﻔﺎﺘﻮﺳﻴﻌﻪ
ﺑﺘﺮﻓ ﺔ ﻣﻦ ﻫﺬا اﻟﻔﺼﻞ وﻗﻢ
ﺜﻠ ﺔ اﻟﻤﺤ
اﻷﻣ
ﺗﻨ ﺴﻴﻖ اﻹﺧﺮاج.
ﻣﻠﺨﺺ
ﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟﻤﺨﺰﻧ ﺔ ﻓ ﻲ اﻟﻘﺎﻣﻮس .ﻟﻘﺪﺗﻌﻠﻤ ﺖ ﻛﻴﻔﻴ ﺔ
ﺗﻌﻠﻤ ﺖ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ﻛﻴﻔﻴ ﺔﺗﻌﺮﻳﻒ اﻟﻘﺎﻣﻮس وﻛﻴﻔﻴ ﺔ اﻟ
ﺗﻌﺪﻳﻠﻬﺎ ﻓ ﻲ اﻟﻘﺎﻣﻮس ،وﻛﻴﻔﻴ ﺔﺗﻜﺮار ﺟﻤﻴﻊ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟﻤﻮﺟﻮدة ﻓ ﻲ اﻟﻘﺎﻣﻮس .ﻟﻘﺪﺗﻌﻠﻤ ﺖ
اﻟﻮﺻﻮل إﱃ اﻟﻌﻨﺎﺻﺮ اﻟﻔﺮدﻳ ﺔ و
ﺗﻴﺤﻪ ،وﻗﻴﻤﻪ .ﻟﻘﺪﺗﻌﻠﻤ ﺖ أ ً
ﻳﻀﺎ ﻛﻴﻔﻴ ﺔﺗﻀﻤﻴﻦ ﻗﻮاﻣﻴ ﺲ ﺘﺎح ﻓ ﻲ اﻟﻘﺎﻣﻮس ،وﻣﻔﺎ
إﺟﺮاء ﺣﻠﻘ ﺔ ﻣﻦ ﺧﻼل أزواج اﻟﻘﻴﻤ ﺔ واﻟﻤﻔ
ﺗﺪاﺧﻞ ﻗﺎﻣﻮس داﺧﻞ ﻗﺎﻣﻮس.
ﺘﺪاﺧﻠ ﺔ ﻓ ﻲ ﻗﺎﻣﻮس ،و
ﺘﻌﺪدة ﻓ ﻲ ﻗﺎﺋﻤ ﺔ ،وﻗﻮاﺋﻢ ﻣ
ﻣ
115-ﻗﻮاﻣﻴ ﺲ
Machine Translated by Google
Machine Translated by Google
ً
ﻋﺎدة إﱃ اﻟﺤﺼﻮل ﺘﺎج
ﺑﺬﻟﻚ ،ﺗﺤﺘﺨﺪم اﻟﻨﻬﺎﺋ ﻲ .ﻟﻠﻘﻴﺎم
ﺒﺮاﻣﺞ ﻟﺤﻞ ﻣﺸﻜﻠ ﺔ اﻟﻤ ﺴ
ﺑ ﺔ ﻣﻌﻈﻢ اﻟ
ﺘﺎ
ﺘﻢ ﻛ
ﺗ
ﺷﺨﺼﺎ ﻣﺎﻳﺮﻳﺪ
ً ﺘﺮض أن
ﺑ ﺴﻴﻂ ،ﻟﻨﻔﺜﺎل
ﺘﺨﺪم .ﻟﻠﺤﺼﻮل ﻋﲆ ﻣ
ﺑﻌﺾ اﻟﻤﻌﻠﻮﻣﺎ ت ﻣﻦ اﻟﻤ ﺴﻋﲆ
ﺘﺨﺪم
ﺒ ﺔ اﻟﻤ ﺴ
ﺒﺮﻧﺎﻣﺞ إﱃ ﻣﻄﺎﻟ
ﺘﺎج اﻟ
ﺑ ﺔ.ﺳﻴﺤ
ﺘﻤﻜﻦ ﻣﻦﺗﻘﺪﻳﻢ إﺟﺎ
ﺒﻞ أنﺗ
ﺘﺨﺪم ﻗ
ﺑﺤﺎﺟ ﺔ إﱃ ﻣﻌﺮﻓ ﺔ ﻋﻤﺮ اﻟﻤ ﺴ
ﺘﺤﺪﻳﺪ ﻣﺎ إذا
ﺘﺼﻮﻳ ﺖ ﻟ
ﺑﻌﻤﺮ اﻟﺘﻬﺎ
ﺒﺮﻧﺎﻣﺞ ﻋﲆ ﻫﺬه اﻟﻤﺪﺧﻼ ت ،ﻳﻤﻜﻨﻪ ﻣﻘﺎرﻧ
ﺘﻮي اﻟ
ﺑﻤﺠﺮد أنﻳﺤﺑﺈدﺧﺎل أو إدﺧﺎل ﻋﻤﺮه ؛
ﺘﻴﺠ ﺔ.
ﺑﻼغ ﻋﻦ اﻟﻨ
ﺛﻢ اﻹﺑﻤﺎﻳﻜﻔ ﻲﺒﻴ ﺮًا
ﺘﺨﺪم ﻛ
ﻛﺎن اﻟﻤ ﺴ
ﺘﺎج
ﺑﺮﻧﺎﻣﺠﻚ ﻣﻦ اﻟﻌﻤﻞ ﻣﻌﻬﺎ .ﻋﻨﺪﻣﺎﻳﺤﺘﻤﻜﻦ
ﺘﻰﻳ
ﺘﺨﺪم ﺣ
ﺒﻮل ﻣﺪﺧﻼ ت اﻟﻤ ﺴ
ﺘﻌﻠﻢ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ﻛﻴﻔﻴ ﺔ ﻗ
ﺘﺳ
ﺘﻤﻜﻦ ﻣﻦ
ﺘﺑﺎﻷﺳﻤﺎء ،ﺳﺑﺮﻧﺎﻣﺠﻚ إﱃ ﻗﺎﺋﻤ ﺔﺘﺎج
ﺑﺎﻻﺳﻢ .ﻋﻨﺪﻣﺎﻳﺤﺘﺨﺪم
ﺒ ﺔ اﻟﻤ ﺴ
ﺘﻤﻜﻦ ﻣﻦ ﻣﻄﺎﻟ
ﺘﺑﺮﻧﺎﻣﺠﻚ إﱃ اﺳﻢ ،ﺳ
ﺘﺨﺪم وﻇﻴﻔ ﺔ اﻹدﺧﺎل () .
ﺘﺴﺑﺬﻟﻚ ،ﺳﺑ ﺴﻠ ﺴﻠ ﺔ ﻣﻦ اﻷﺳﻤﺎء .ﻟﻠﻘﻴﺎمﺘﺨﺪم
ﺒ ﺔ اﻟﻤ ﺴ
ﻣﻄﺎﻟ
ﺒﺮ ﻗﺪر
ﺘﻤﻜﻨﻮا ﻣﻦ إدﺧﺎل أﻛ
ﺘﻰﻳ
ﺘﺨﺪﻣﻮن ذﻟﻚ ،ﺣ
ﺒﺮاﻣﺞ ﻃﺎﻟﻤﺎ أراد اﻟﻤ ﺴ ﺘﻌﻠﻢ أ ً
ﻳﻀﺎ ﻛﻴﻔﻴ ﺔ اﻟﺤﻔﺎظ ﻋﲆﺗﺸﻐﻴﻞ اﻟ ﺘﺳ
ﺘﺨﺪم Python while loop
ﺘﺴﺒﺮﻧﺎﻣﺠﻚ اﻟﻌﻤﻞ ﻣﻊ ﻫﺬه اﻟﻤﻌﻠﻮﻣﺎ ت.ﺳ
ﺑﻌﺪ ذﻟﻚ ،ﻳﻤﻜﻦ ﻟﻣﻤﻜﻦ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت ؛
ﺑﻘﻴ ﺖ ﺷﺮوط ﻣﻌﻴﻨ ﺔ ﺻﺤﻴﺤ ﺔ.ﺒﺮاﻣﺞ ﻃﺎﻟﻤﺎ
ﻟﻠﺤﻔﺎظ ﻋﲆﺗﺸﻐﻴﻞ اﻟ
Machine Translated by Google
ﺘﻤﻜﻦ ﻣﻦ
ﺘﺑﺮاﻣﺠﻚ ،ﺳﺘﺤﻜﻢ ﻓ ﻲ ﻣﺪةﺗﺸﻐﻴﻞ
ﺘﺨﺪم واﻟﻘﺪرة ﻋﲆ اﻟ
ﻣﻦ ﺧﻼل اﻟﻘﺪرة ﻋﲆ اﻟﻌﻤﻞ ﻣﻊ ﻣﺪﺧﻼ ت اﻟﻤ ﺴ
ﺑﺎﻟﻜﺎﻣﻞ.ﺑﺮاﻣﺞﺗﻔﺎﻋﻠﻴ ﺔﺑﺔ
ﺘﺎ
ﻛ
ﺒﻐﺎء
ﺑ ")message = inputﻗﻞ ﻟ ﻲ ﺷﻴ ًﺌﺎ ،وﺳﺄﻛﺮره ﻟﻚ(":
ﺒﺎﻋ ﺔ )رﺳﺎﻟ ﺔ(
ﻃ
ﺘﻰﻳﻌﺮف ﻣﺎﻳﺠ ﺐ
ﺘﺨﺪم ﺣ
ﺘ ﻲ ﻧﺮﻳﺪ ﻋﺮﺿﻬﺎ ﻟﻠﻤ ﺴ
ﺘﻌﻠﻴﻤﺎ ت ،اﻟ
ﺗﺄﺧﺬ وﻇﻴﻔ ﺔ اﻹدﺧﺎل )(وﺳﻴﻄ ﺔ واﺣﺪة :اﻟﻤﻮﺟﻪ ،أو اﻟ
ﺑﺸ ﻲء ﻣﺎ ،وﺳﺄﻛﺮر ﻫﺎﺒﺮﻧ ﻲ
ﺒ ﺔ أﺧ
ﺘﺨﺪم اﻟﻤﻄﺎﻟ
ﺘﺸﻐﻴﻞ اﻟ ﺴﻄﺮ اﻷول ،ﻳﺮى اﻟﻤ ﺴ
ﺑﺜﺎل ،ﻋﻨﺪﻣﺎﺗﻘﻮم Python
ﻓﻌﻠﻪ .ﻓ ﻲ ﻫﺬا اﻟﻤ
ﺑﺔ ﻓ ﻲ
ﺘﺠﺎ
ﺘﻢﺗﺨﺰﻳﻦ اﻻﺳ
ﺘﺨﺪم ﻋﲆ إدﺧﺎل.ﻳ
ﺑﻌﺪ أنﻳﻀﻐﻂ اﻟﻤ ﺴﺘﻤﺮ
ﺘﺨﺪم رده وﻳ ﺴ
ﺑﻴﻨﻤﺎﻳﺪﺧﻞ اﻟﻤ ﺴﺒﺮﻧﺎﻣﺞ
ﺘﻈﺮ اﻟ
ﻟﻚ .:ﻳﻨ
ﺘﺨﺪم:
ﺛﻢﺗﻌﺮض )print (messageاﻹدﺧﺎل ﻣﺮة أﺧﺮى ﻟﻠﻤ ﺴﺘﻐﻴﺮة ،
اﻟﺮﺳﺎﻟ ﺔ اﻟﻤ
ﺘﻲ
ﺒﺮاﻣﺞ اﻟ
ﺑ ﺔ اﻟ
ﺘﺎ
ﺘﺨﺪام Sublime Textﻟﻜ
ﺑﺎﻹدﺧﺎل.ﻳﻤﻜﻨﻚ اﺳﺘﺨﺪم
ﺘ ﻲﺗﻄﺎﻟ ﺐ اﻟﻤ ﺴ
ﺒﺮاﻣﺞ اﻟ
ﺘﺸﻐﻴﻞ اﻟ
ﺑﻻﻳﻘﻮم N ote Sublime Text
ﺑﺮاﻣﺞ Pythonﻣﻦ ﻣﺤﻄ ﺔ ﻃﺮﻓﻴ ﺔ" ﻓ ﻲ اﻟﺼﻔﺤ ﺔﺗﺸﻐﻴﻞ
ﺒﺮاﻣﺞ ﻣﻦ ﻣﺤﻄ ﺔ ﻃﺮﻓﻴ ﺔ .راﺟﻊ "
ﺘﺎج إﱃﺗﺸﻐﻴﻞ ﻫﺬه اﻟ
ﺘﺤﺑﺎﻹدﺧﺎل ،وﻟﻜﻨﻚﺳﺗﻄﺎﻟ ﺐ
رﻗﻢ 16.
ﺑ ﺔ ﻣﻮﺟﻬﺎ ت واﺿﺤ ﺔ
ﺘﺎ
ﻛ
ﺒﻂ
ﺑﺎﻟﻀﺘﺨﺪم
ﺒﺮ اﻟﻤ ﺴ
ﺑﻌ ﺔﺗﺨ
ﺘﺎ
ﺒ ﺔ واﺿﺤ ﺔ وﺳﻬﻠ ﺔ اﻟﻤ
ﺘﺨﺪم ﻓﻴﻬﺎ وﻇﻴﻔ ﺔ اﻹدﺧﺎل () ،ﻳﺠ ﺐ ﻋﻠﻴﻚﺗﻀﻤﻴﻦ ﻣﻄﺎﻟ
ﻓ ﻲ ﻛﻞ ﻣﺮةﺗ ﺴ
ﺜﺎل:
ﺒﻴﻞ اﻟﻤ
ﺑﻤﺎﻳﺠ ﺐ إدﺧﺎﻟﻪ .ﻋﲆﺳﺘﺨﺪم
ﺒﺮ اﻟﻤ ﺴ
ﺒﺎرةﺗﺨ
ﺒﺤ ﺚ ﻋﻨﻬﺎ.ﻳﺠ ﺐ أنﺗﻌﻤﻞ أي ﻋ
ﺘ ﻲﺗ
ﺑﻨﻮع اﻟﻤﻌﻠﻮﻣﺎ ت اﻟ
ﺘﺨﺪم
ﺑ ﺔ اﻟﻤ ﺴ
ﺘﺠﺎ
ﺑﻖ( ﻟﻔﺼﻞ اﻟﻤﻮﺟﻪ ﻋﻦ اﺳ
ﺜﺎل اﻟ ﺴﺎ
ﺘﻴﻦ ﻓ ﻲ اﻟﻤ
ﺑﻌﺪ اﻟﻨﻘﻄ
ﺒﺎ ت )
أﺿﻒ ﻣ ﺴﺎﻓ ﺔ ﻓ ﻲ ﻧﻬﺎﻳ ﺔ اﻟﻤﻄﺎﻟ
ﺜﺎل:
ﺒﻴﻞ اﻟﻤ
ﺘﺨﺪم .ﻋﲆﺳ
ﺘﻮﺿﻴﺢ ﻣﻜﺎن إدﺧﺎل اﻟﻨﺺ ﻟﻠﻤ ﺴ
وﻟ
ﺒﺐ
ﺑﺴﺘﺨﺪم
ﺒﺎر اﻟﻤ ﺴ
ﺜﺎل ،ﻗﺪﺗﺮﻏ ﺐ ﻓ ﻲ إﺧ
ﺒﻴﻞ اﻟﻤ
ﺒ ﺔ أﻃﻮل ﻣﻦﺳﻄﺮ واﺣﺪ .ﻋﲆﺳ
ﺑ ﺔ ﻣﻄﺎﻟﺘﺎج أﺣﻴﺎﻧًﺎ إﱃ ﻛ
ﺘﺎ ﺘﺤﺳ
ﺑﺈدﺧﺎل ﻣﻌﻴﻦ.ﺘﻚ
ﺒﻣﻄﺎﻟ
118اﻟﻔﺼﻞ 7
Machine Translated by Google
ﺘﻮﺿﻴﺢ:
ﺘﻔﻬﺎم ﻟﻠ
ﺑﻌﺪ ﻋﻼﻣ ﺔ اﻻﺳﺑﻤ ﺴﺎﻓ ﺔﺘﺪ اﻟﻤﻮﺟﻪ اﻵن ﻋﲆﺳﻄﺮﻳﻦ ،ﻣﺮة أﺧﺮى
ﻳﻤ
ﺘ ﻲﺗﺮا ﻫﺎ.
ﺗﻨﺎ ﻣﻦ أﻧ ﺖ ،ﻳﻤﻜﻨﻨﺎﺗﺨﺼﻴﺺ اﻟﺮﺳﺎﺋﻞ اﻟ
ﺒﺮإذا أﺧ
ﻣﺎ ﻫﻮ اﺳﻤﻚ اﻷول؟ إرﻳﻚ
ﺒﺎ اﻳﺮﻳﻚ!
ﻣﺮﺣ
ﺒﺎر
ﺘﺘﻢﺗﻘﻴﻴﻢ ﻫﺬا اﻻﺧ
ﺒﺮ ﻣﻦ أوﻳ ﺴﺎوي 18.وﻳ
ﺘﻮي اﻵن ﻋﲆ اﻟﻘﻴﻤ ﺔ اﻟﻌﺪدﻳ ﺔ )21و 18ﻟﻤﻌﺮﻓ ﺔ ﻣﺎ إذا ﻛﺎن اﻟﻌﻤﺮ أﻛ
ﺘ ﻲﺗﺤ
)اﻟ
إﱃ True.
ﺑﻤﺎﺑﺮﻧﺎﻣﺠًﺎﻳﺤﺪد ﻣﺎ إذا ﻛﺎن اﻷﺷﺨﺎص ﻃﻮﻳﻞ اﻟﻘﺎﻣ ﺔﺒﺎرك
ﺘﺑﺮﻧﺎﻣﺞ ﻓﻌﻠ ﻲ؟ ﺿﻊ ﻓ ﻲ اﻋﺘﺨﺪم داﻟ ﺔ )( intﻓ ﻲ
ﻛﻴﻒﺗ ﺴ
ﻳﻜﻔ ﻲ ﻟﺮﻛﻮ ب اﻷﺳﻄﻮاﻧ ﺔ
ﺘﺮ:
ﻛﻮﺳ
ﺒﻮﺻ ﺔ؟"(
ﺑﺎﻟﺒﻠﻎ ﻃﻮﻟﻚ
")rollercoaster.py height = inputﻛﻢﻳ
ﺗﻔﺎع(
ﺗﻔﺎع )= intاﻻر
اﻻر
ﺗﻔﺎع< = 36:
إذا ﻛﺎن اﻻر
ﺑﻤﺎﻳﻜﻔ ﻲ ﻟﻠﺮﻛﻮ ب!"(ﺒﺎﻋ ﺔ ("\ nأﻧ ﺖ ﻃﻮﻳﻞ
ﻃ
آﺧﺮ:
ﺗﻔﺎع(
ﺗﻔﺎع )= intاﻻر
ﺑـ 36ﻷن اﻻرﺗﻔﺎع
ﺒﺮﻧﺎﻣﺞ ﻣﻘﺎرﻧ ﺔ اﻻر
ﻳﻤﻜﻦ ﻟﻠ
ﺒﺮ ﻣﻦ أوﻳ ﺴﺎوي 36 ،ﻓﺈﻧﻨﺎ
ﺒﺎري .إذا ﻛﺎن اﻟﺮﻗﻢ اﻟﺬيﺗﻢ إدﺧﺎﻟﻪ أﻛ
ﺑﻦ ﻛﻮﻣ
ﺒﻞ إﺟﺮاء ا
ﺜﻴﻞ ﻋﺪدي ﻗ
ﻳﺤﻮل ﻗﻴﻤ ﺔ اﻹدﺧﺎل إﱃﺗﻤ
ﺑﻤﺎﻳﻜﻔ ﻲ:ﺘﺨﺪم أﻧﻪ ﻃﻮﻳﻞ
ﺒﺮ اﻟﻤ ﺴ
ﻧﺨ
ﺒﻮﺻ ﺔ؟ 71
ﺑﺎﻟﻛﻢ ﻃﻮﻟﻚ
ﻣﺸﻐﻞ Modulo
رﻗﻤﺎ واﺣﺪًا ﻋﲆ رﻗﻢ
ً ﺘﺸﻐﻴﻞ modulo (٪) ،اﻟﺬيﻳﻘ ﺴﻢ
ﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟﺮﻗﻤﻴ ﺔ ﻋﺎﻣﻞ اﻟ
ﻣﻦ اﻷدوا ت اﻟﻤﻔﻴﺪة ﻓ ﻲ اﻟ
ﺒﺎﻗ ﻲ:
آﺧﺮ وﻳﻌﻴﺪ اﻟ
>>> 4٪ 3
1
>>> 5٪ 3
2
>>> 6٪ 3
0
ﺑﻊ
120اﻟﻔﺼﻞ اﻟ ﺴﺎ
Machine Translated by Google
>>> 7٪ 3
1
ﺒﺎﻗ ﻲ.
ﺒﺮك ﻓﻘﻂ ﻣﺎ ﻫﻮ اﻟ
ﺘﻨﺎﺳ ﺐ ﻓﻴﻬﺎ رﻗﻢ ﻣﻊ رﻗﻢ آﺧﺮ ؛ﻳﺨ
ﺘ ﻲﻳ
ﺑﻌﺪد اﻟﻤﺮا ت اﻟ
ﺒﺮك ﻋﺎﻣﻞ modulo
ﻻﻳﺨ
ﺋﻤﺎ 0.ﻳﻤﻜﻨﻚ
ُﺮﺟﻊ ﻋﺎﻣﻞ moduloدا ً ﺑ ﻼ ً ﻟﻠﻘ ﺴﻤ ﺔ ﻋﲆ رﻗﻢ آﺧﺮ ،ﻓﺈن اﻟ
ﺒﺎﻗ ﻲﻳﻜﻮن 0 ،ﻟﺬﻟﻚﻳ ﻋﻨﺪﻣﺎﻳﻜﻮن أﺣﺪ اﻷرﻗﺎم ﻗﺎ
ﺘﺤﺪﻳﺪ ﻣﺎ إذا ﻛﺎن اﻟﺮﻗﻢ زوﺟ ًﻴﺎ أم ﻓﺮدﻳًﺎ:
ﺘﺨﺪام ﻫﺬه اﻟﺤﻘﻴﻘ ﺔ ﻟ
اﺳ
" "
ﺒﺎﻋ ﺔ ("\ nاﻟﺮﻗﻢ
ﻃ أﻣﺮ ﻏﺮﻳ ﺐ(". )+ strرﻗﻢ( +
ﺗﺤﺎول
ﺘﺨﺪم ﻋﲆ أﻧﻪ ﻛﻮد Pythonو ﺘﻮي Python 2.7ﻋﲆ وﻇﻴﻔ ﺔ إدﺧﺎل )(أ ً
ﻳﻀﺎ ،ﻟﻜﻦ ﻫﺬه اﻟﻮﻇﻴﻔ ﺔﺗﻔ ﺴﺮ إدﺧﺎل اﻟﻤ ﺴ ﻳﺤ
ﺘﺸﻐﻴﻞ رﻣﺰ
ﺑﺘﻘﻮم
ﺜﻮن ﻻﺗﻔﻬﻢ اﻟﻤﺪﺧﻼ ت ؛ ﻓ ﻲ أﺳﻮأ اﻷﺣﻮال ،ﺳ
ﺑﺎﻳﺘﺤﺼﻞ ﻋﲆ ﺧﻄﺄ ﻣﻔﺎده أن
ﺗﺸﻐﻴﻞ اﻹدﺧﺎل .ﻓ ﻲ أﺣ ﺴﻦ اﻷﺣﻮالﺳ
ﺘﺨﺪم )( raw_input
ﺘﺨﺪم Python 2.7 ،ﻓﺎﺳ
ﻟﻢﺗﻜﻦﺗﻨﻮيﺗﺸﻐﻴﻠﻪ .إذا ﻛﻨ ﺖﺗ ﺴ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺛﻨﺎء اﻟﺤﻠﻘﺎ ت
ﺘﺨﺪم وأ
إدﺧﺎل اﻟﻤ ﺴ 121
Machine Translated by Google
ﺛﻨﺎءﺗﺸﻐﻴﻞ اﻟﺤﻠﻘ ﺔ
أ
ﺘﺎﻟﻴ ﺔ ﻣﻦ 1إﱃ 5:
ﺜﺎل ،ﺗﻌﺪ ﺣﻠﻘ ﺔ whileاﻟ
ﺒﻴﻞ اﻟﻤ
ﺒﺮﺳﻠ ﺴﻠ ﺔ ﻣﻦ اﻷرﻗﺎم .ﻋﲆﺳ
ﺘﺨﺪام ﺣﻠﻘ ﺔ whileﻟﻠﻌﺪ ﻋ
ﻳﻤﻜﻨﻚ اﺳ
ﺒﻊ 1
ﺗﻄﻳﻜﺮر Pythonاﻟﺤﻠﻘ ﺔ ﻃﺎﻟﻤﺎ أن اﻟﺸﺮط current_number <= 5ﺻﺤﻴﺢ .ﻧﻈ ﺮًاﻷن 1أﻗﻞ ﻣﻦ 5 ،
ﺒﻊ Python 2
ﺗﻄﺛﻢﺗﻀﻴﻒ 1 ،ﻣﻤﺎﻳﺠﻌﻞ اﻟﺮﻗﻢ اﻟﺤﺎﻟ ﻲ 2.ﻧﻈ ﺮًاﻷن 2أﻗﻞ ﻣﻦ 5 ،
Python
ﺒﺮ ﻣﻦ 5 ،
ﺑﻤﺠﺮد أنﺗﻜﻮن ﻗﻴﻤ ﺔ current_numberأﻛوﻳﻀﻴﻒ 1ﻣﺮة أﺧﺮى ،ﻣﻤﺎﻳﺠﻌﻞ اﻟﺮﻗﻢ اﻟﺤﺎﻟ ﻲ 3 ،و ﻫﻜﺬا.
ﺒﺮﻧﺎﻣﺞ:
ﺘﻬ ﻲ اﻟ
ﺘﻮﻗﻒ اﻟﺤﻠﻘ ﺔ ﻋﻦ اﻟﻌﻤﻞ وﻳﻨ
ﺗ
1
2
3
4
5
ﺘﺮة
ﺒ ﺔ إﱃ ﻓ
ﺘﺎج اﻟﻠﻌ
ﺜﺎل ،ﺗﺤ
ﺒﻴﻞ اﻟﻤ
ﺘﺨﺪﻣﻬﺎ ﻛﻞﻳﻮم ﻋﲆ اﻷرﺟﺢ ﻋﲆ ﺣﻠﻘﺎ ت while .ﻋﲆﺳ
ﺘ ﻲﺗ ﺴ
ﺒﺮاﻣﺞ اﻟ
ﺘﻮي اﻟ
ﺗﺤ
ﺑﻤﺠﺮد أنﺘﻮﻗﻒ ﻋﻦ اﻟﻌﻤﻞ
ﺘﺎﻟ ﻲﻳﻤﻜﻦ أنﺗ
ﺑﺎﻟ
ﺘﻤﺮ ﻓ ﻲ اﻟﻌﻤﻞ ﻃﺎﻟﻤﺎ ﻛﻨ ﺖﺗﺮﻏ ﺐ ﻓ ﻲ ﻣﻮاﺻﻠ ﺔ اﻟﻠﻌ ﺐ ،و
ﺘﺴﺘﻜﺮار ﻟ
ﻣﻦ اﻟ
ﺗﻄﻠ ﺐ ﻣﻨﻬﺎ اﻹﻗﻼع.
ﺑﻌﺪ أن أردﻧﺎﺘﻰ
ﺘﻤﺮوا ﻓ ﻲ اﻟﻌﻤﻞ ﺣ
ﺑﺬﻟﻚ أو اﺳﺒﺮ ﻫﻢ
ﺒﻞ أن ﻧﺨ
ﺘﻌً ﺎ إذاﺗﻮﻗﻔ ﺖ ﻋﻦ اﻟﻌﻤﻞ ﻗ
ﺒﺮاﻣﺞ ﻣﻤ
ﺘﺨﺪام اﻟ
ﻟﻦﻳﻜﻮن اﺳ
اﻹﻗﻼع ،ﻟﺬا ﻓﺈن اﻟﺤﻠﻘﺎ ت ﻣﻔﻴﺪة ﺟﺪًا.
ﺘﻴﺎر وﻗ ﺖ اﻹﻧﻬﺎء
ﺑﺎﺧﺘﺨﺪم
اﻟ ﺴﻤﺎح ﻟﻠﻤ ﺴ
ﺒﺮﻧﺎﻣﺞ داﺧﻞ ﺣﻠﻘ ﺔ while .ﺳﻨﺤﺪد ﻗﻴﻤ ﺔ
ﺘﺨﺪم ﻣﻦ ﺧﻼل وﺿﻊ ﻣﻌﻈﻢ اﻟ
ﺑﺮﻧﺎﻣﺞ parrot.pyﻃﺎﻟﻤﺎ أراد اﻟﻤ ﺴﻳﻤﻜﻨﻨﺎﺗﺸﻐﻴﻞ
ﺑﺈدﺧﺎل ﻗﻴﻤ ﺔ quit:ﺘﺨﺪم
ﺒﺮﻧﺎﻣﺞ ﻃﺎﻟﻤﺎ ﻟﻢﻳﻘﻢ اﻟﻤ ﺴ
ﺘﻤﺮ ﻓ ﻲﺗﺸﻐﻴﻞ اﻟ
ﺛﻢ ﻧ ﺴ
quit
122اﻟﻔﺼﻞ 7
Machine Translated by Google
""
ﺛﻨﺎء اﻟﺮﺳﺎﻟ ﺔ! = 'quit':
v message = wأ
ﺛﻢﺑﺨﻴﺎرﻳﻦ ﻟﻬﻤﺎ :إدﺧﺎل رﺳﺎﻟ ﺔ أو إدﺧﺎل ﻗﻴﻤ ﺔ إﻧﻬﺎء )ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔ " ،إﻧﻬﺎء"(.ﺘﺨﺪم
ﺒﺮ اﻟﻤ ﺴ
ﻓ ﻲ u ،ﻧﺤﺪد ﻣﻮﺟﻬً ﺎﻳﺨ
ّ ف اﻟﺮﺳﺎﻟ ﺔ ﻛ ﺴﻠ ﺴﻠ ﺔ ﻓﺎرﻏ ﺔ "" ، ،ﻟﺬﻟﻚ ﻟﺪى
ﺘﺨﺪم .ﻧﺤﻦ ﻧﻌ ﺮ
ﺘﺨﺰﻳﻦ أي ﻗﻴﻤ ﺔﻳﺪﺧﻠﻬﺎ اﻟﻤ ﺴ
ﺘﻐﻴﺮة vﻟ
ﺑﺈﻋﺪاد رﺳﺎﻟ ﺔ ﻣﻧﻘﻮم
ﺘﻢ ﻓﻴﻬﺎﺗﺸﻐﻴﻞ
ﺘ ﻲﻳ
ﺘ ﻲﺗﺼﻞ ﻓﻴﻬﺎ إﱃ اﻟ ﺴﻄﺮ while .ﻓ ﻲ اﻟﻤﺮة اﻷوﱃ اﻟ
ﺘﺤﻘﻖ ﻣﻨﻪ ﻓ ﻲ اﻟﻤﺮة اﻷوﱃ اﻟ
Pythonﺷ ﻲء ﻟﻠ
ﺘﻢ إدﺧﺎل أي إدﺧﺎل
ﺑـ "quit" ،وﻟﻜﻦ ﻟﻢﻳﺒﺎرة while ،ﻳﺠ ﺐ أنﺗﻘﺎرن ﻗﻴﻤ ﺔ اﻟﺮﺳﺎﻟ ﺔ
ﺒﺮﻧﺎﻣﺞ ووﺻﻮل Pythonإﱃ اﻟﻌ
اﻟ
ﺒﺮﻧﺎﻣﺞ .ﻟﺤﻞ ﻫﺬه
ﺑﻌ ﺔﺗﺸﻐﻴﻞ اﻟ
ﺘﺎ
ﺘﻤﻜﻦ ﻣﻦ ﻣ
ﺘﻪ ،ﻓﻠﻦﺗ
ﺘﻰ اﻵن .إذا ﻟﻢﻳﻜﻦ ﻟﺪى Pythonﻣﺎﻳﻤﻜﻦ ﻣﻘﺎرﻧ
ﺘﺨﺪم ﺣ
ﻟﻠﻤ ﺴ
ﺜﻮن
ﺒﺎﻳ
ﺘﻜﻮن ﻣﻨﻄﻘﻴ ﺔ ﻟ
ﺘﺄﻛﺪ ﻣﻦ إﻋﻄﺎء اﻟﺮﺳﺎﻟ ﺔ ﻗﻴﻤ ﺔ أوﻟﻴ ﺔ .ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أﻧﻬﺎ ﻣﺠﺮدﺳﻠ ﺴﻠ ﺔ ﻓﺎرﻏ ﺔ ،إﻻ أﻧﻬﺎﺳ
اﻟﻤﺸﻜﻠ ﺔ ،ﻧ
ﺗﻌﻤﻞ.ﻳﻌﻤﻞ ﻫﺬا while loop wﻃﺎﻟﻤﺎ أن ﻗﻴﻤ ﺔ اﻟﺮﺳﺎﻟ ﺔ
ﺘﻨﻔﻴﺬ com parisonاﻟﺬيﻳﺠﻌﻞ ﺣﻠﻘ ﺔ while
ﺑﺗ ﺴﻤﺢ ﻟﻬﺎ
و
ﻟﻴ ﺴ ﺖ "quit".
ﺑﺎﻟﺠﻤﻴﻊ!أ ﻫﻼ
ﺒﺎ ﻣﺠﺪدا. ﻗﻞ ﻟ ﻲ ﺷﻴ ًﺌﺎ ،وﺳﺄﻛﺮره ﻟﻚ :أدﺧﻞ "إﻧﻬﺎء" ﻹﻧﻬﺎء اﻟ
ﺒﺮﻧﺎﻣﺞ .ﻣﺮﺣ
ﺒﺎ ﻣﺠﺪدا.
ﻣﺮﺣ
ﺘﺮك
ﻳ
ﺒﺎر
ﺘﺑ ﺴﻴﻂ إذا ﻛﺎن اﻻﺧﺒﻊ ﻛﻠﻤ ﺔ "إﻧﻬﺎء" ﻛﻤﺎ ﻟﻮ ﻛﺎﻧ ﺖ رﺳﺎﻟ ﺔ ﻓﻌﻠﻴ ﺔ.
ﺜﻨﺎء أﻧﻪﻳﻄ
ﺘﺑﺎﺳﺒﺮﻧﺎﻣﺞ ﺟﻴﺪًا ،
ﻳﻌﻤﻞ ﻫﺬا اﻟ
ﻳﻌﻤﻞ ﻋﲆ إﺻﻼح ﻫﺬا:
""
message = while message! = 'quit':
ﺑﺎﻟﺠﻤﻴﻊ!أ ﻫﻼ
ﺒﺎ ﻣﺠﺪدا. ﻗﻞ ﻟ ﻲ ﺷﻴ ًﺌﺎ ،وﺳﺄﻛﺮره ﻟﻚ :أدﺧﻞ "إﻧﻬﺎء" ﻹﻧﻬﺎء اﻟ
ﺒﺮﻧﺎﻣﺞ .ﻣﺮﺣ
ﺒﺎ ﻣﺠﺪدا.
ﻣﺮﺣ
ﺘﺨﺪام اﻟﻌﻠﻢ
اﺳ
ﺜﺮ
ﺒﺮاﻣﺞ اﻷﻛ
ﺑﻴﻨﻤﺎ ﻛﺎن ﺷﺮط ﻣﻌﻴﻦ ﺻﺤﻴﺤًﺎ .وﻟﻜﻦ ﻣﺎذا ﻋﻦ اﻟﺒﺮﻧﺎﻣﺞﻳﺆدي ﻣﻬﺎم ﻣﻌﻴﻨ ﺔ
ﺑﻖ ،ﻛﺎن ﻟﺪﻳﻨﺎ اﻟ
ﺜﺎل اﻟ ﺴﺎ
ﻓ ﻲ اﻟﻤ
ﺒﺮﻧﺎﻣﺞ ﻋﻦ اﻟﻌﻤﻞ؟
ﺘﻠﻔ ﺔ إﱃﺗﻮﻗﻒ اﻟ
ﺘ ﻲ ﻗﺪﺗﺆدي ﻓﻴﻬﺎ اﻟﻌﺪﻳﺪ ﻣﻦ اﻷﺣﺪا ث اﻟﻤﺨ
ﺗﻌﻘﻴﺪًا واﻟ
ﺒ ﺔ.
ﺘﻠﻔ ﺔ إﻧﻬﺎء اﻟﻠﻌ
ﺒ ﺔ ﻣﺎ ،ﻳﻤﻜﻦ ﻟﻠﻌﺪﻳﺪ ﻣﻦ اﻷﺣﺪا ث اﻟﻤﺨ
ﺜﺎل ،ﻓ ﻲ ﻟﻌ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺘﺮض أنﻳﺤﻤﻴﻬﺎ ،ﻳﺠ ﺐ أن
ﺘ ﻲ ﻛﺎن ﻣﻦ اﻟﻤﻔ
ﺘﻢﺗﺪﻣﻴﺮ ﺟﻤﻴﻊ اﻟﻤﺪن اﻟ
ﺘﻪ ،أوﻳ
ﻋﻨﺪﻣﺎﻳﻨﻔﺪ اﻟﻼﻋ ﺐ ﻣﻦ اﻟ ﺴﻔﻦ ،أوﻳﻨﻔﺪ وﻗ
ﺘﻤﻠ ﺔ ﻹﻳﻘﺎف
ﺘﻬ ﻲ إذا ﺣﺪ ث أي ﻣﻦ ﻫﺬه اﻷﺣﺪا ث .ﻓ ﻲ ﺣﺎﻟ ﺔ ﺣﺪو ث اﻟﻌﺪﻳﺪ ﻣﻦ اﻷﺣﺪا ث اﻟﻤﺤ
ﺒ ﺔ.ﻳﺠ ﺐ أنﻳﻨ
ﺘﻬ ﻲ اﻟﻠﻌ
ﺗﻨ
ﺒﺎر ﻛﻞ ﻫﺬه اﻟﺸﺮوط ﻓ ﻲ وﻗ ﺖ واﺣﺪ
ﺘﺒﺮﻧﺎﻣﺞ ،ﻓ ﻲ ﻣﺤﺎوﻟ ﺔ ﻻﺧ
اﻟ
ﺒﺎ.
ﺒﻴﺎن ﻣﻌﻘﺪًا وﺻﻌ ً
ﺒﺢ اﻟ
ﻳﺼ
ﺒﺮﻧﺎﻣﺞ اﻟﺬيﻳﺠ ﺐﺗﺸﻐﻴﻠﻪ ﻓﻘﻂ ﻃﺎﻟﻤﺎ أن اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﺸﺮوط ﺻﺤﻴﺤ ﺔ ،
ﺒ ﺔ ﻟﻠ
ﺑﺎﻟﻨ ﺴ
ﺘﻐﻴﺮ ،اﻟﻤ ﺴﻤﻰ اﻟﻌﻠﻢ ،ﻳﻌﻤﻞ ﻛﺈﺷﺎرة
ﻧﺸﻄﺎ أم ﻻ .ﻫﺬا اﻟﻤ
ً ﺑﺄﻛﻤﻠﻪﺒﺮﻧﺎﻣﺞ
ﺘﻐﻴﺮ واﺣﺪﻳﺤﺪد ﻣﺎ إذا ﻛﺎن اﻟ
ﻳﻤﻜﻨﻚﺗﺤﺪﻳﺪ ﻣ
ﺛﻨﺎءﺗﻌﻴﻴﻦ اﻟﻌﻠﻢ ﻋﲆ Trueوإﻳﻘﺎفﺗﺸﻐﻴﻞ ningﻋﻨﺪﻣﺎﻳﻘﻮم أي ﻣﻦ
ﺘﻢﺗﺸﻐﻴﻠﻬﺎ أ
ﺑﺤﻴ ﺚﻳﺑﺮاﻣﺠﻨﺎﺑﺔ
ﺘﺎ
ﺒﺮﻧﺎﻣﺞ.ﻳﻤﻜﻨﻨﺎ ﻛ
ﻟﻠ
ﺑﻨﺎ ﻣﻦ ﺷﺮطﺒﺎرة whileاﻟﻌﺎﻣ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﺤﻘﻖ ﻋ
ﺘﻴﺠ ﺔ ﻟﺬﻟﻚ ،ﻳﺠ ﺐ أنﺗ
ﺘﻌﻴﻴﻦ ﻗﻴﻤ ﺔ اﻟﻌﻠﻢ إﱃ False.ﻧ
ﺑاﻷﺣﺪا ث اﻟﻌﺪﻳﺪة
ﺗﻨﺎ اﻷﺧﺮى )ﻟﻤﻌﺮﻓ ﺔ ﻣﺎ إذا ﻛﺎن
ﺒﺎرا
ﺘﺑﻌﺪ ذﻟﻚ ،ﻳﻤﻜﻦﺗﻨﻈﻴﻢ ﺟﻤﻴﻊ اﺧواﺣﺪ ﻓﻘﻂ :ﻣﺎ إذا ﻛﺎﻧ ﺖ اﻟﻌﻼﻣ ﺔ ﺻﺤﻴﺤ ﺔ ﺣﺎﻟ ًﻴﺎ أم ﻻ.
ﺒﺮﻧﺎﻣﺞ.
ﺑﻘﻴ ﺔ اﻟﺑﺪﻗ ﺔ ﻓ ﻲ
ﺒﻂ اﻟﻌﻼﻣ ﺔ ﻋﲆ )False
ﺣﺪ ث ﻣﺎﻳﺠ ﺐ أنﻳﻀ
ش ﻧﺸﻂ = ﺻﺤﻴﺢ
ﺛﻨﺎء اﻟﻨﺸﺎط:
vأ
124اﻟﻔﺼﻞ 7
Machine Translated by Google
ﺑ ﺴﻂ
ﺑﺬﻟﻚﻳﺠﻌﻞﺗﻌﻠﻴﻤ ﺔ whileأﺒﺮﻧﺎﻣﺞ ﻓ ﻲ ﺣﺎﻟ ﺔ ﻧﺸﻄ ﺔ .اﻟﻘﻴﺎم
ﺒﺪأ اﻟ
ﺘﻰﻳ
ﺘﻐﻴﺮ اﻟﻨﺸﻂ إﱃ True uﺣ
ﺘﻌﻴﻴﻦ اﻟﻤ
ﺑﻗﻤﻨﺎ
ﺘﻐﻴﺮ
ﺒﺮﻧﺎﻣﺞ .ﻃﺎﻟﻤﺎ ﻇﻞ اﻟﻤ
ﺑﺎﻟﻤﻨﻄﻖ ﻓ ﻲ أﺟﺰاء أﺧﺮى ﻣﻦ اﻟﺘﻤﺎم
ﺘﻢ اﻻ ﻫ
ﺒﺎرة whileﻧﻔ ﺴﻬﺎ ؛ﻳ
ﺘﻢ إﺟﺮاء ﻣﻘﺎرﻧ ﺔ ﻓ ﻲ ﻋ
ﻷﻧﻪ ﻻﻳ
ﺘﻤﺮ اﻟﺤﻠﻘ ﺔ ﻓ ﻲﺗﺸﻐﻴﻞ v.
ﺘﺴاﻟﻨﺸﻂ ﺻﺤﻴﺤًﺎ ،ﺳ
city.py ﺗﻬﺎ":
ﺑﺰﻳﺎرﺘ ﻲ ﻗﻤ ﺖ
ﻣﻮﺟﻪ = "\ nاﻟﺮﺟﺎء إدﺧﺎل اﺳﻢ اﻟﻤﺪﻳﻨ ﺔ اﻟ
ﺘﻬﺎء"(.
ﻣﻮﺟﻪ )+ = "\ nأدﺧﻞ" إﻧﻬﺎء "ﻋﻨﺪ اﻻﻧ
ﺑﻴﻨﻤﺎ ﺻﺤﻴﺢ:
u
آﺧﺮ:
"
")printأﺣ ﺐ أن أذ ﻫ ﺐ إﱃ )"!" + city.title () +
ﺒﺮﻧﺎﻣﺞ ﻓ ﻲ
ﺘﻤﺮ اﻟﺤﻠﻘ ﺔ ﻓ ﻲ ﻫﺬا اﻟ
ﺗﺴﺑﺪ ﻣﺎ ﻟﻢﺗﺼﻞ إﱃﺗﻌﻠﻴﻤ ﺔ break .
ﺛﻨﺎءﺗﺸﻐﻴﻞ True uإﱃ اﻷ
ﺒﺪأ أ
ﺘ ﻲﺗ
اﻟﺤﻠﻘ ﺔ اﻟ
ﺘﻢﺗﺸﻐﻴﻞﺗﻌﻠﻴﻤ ﺔ
ﺘﻰﻳﺪﺧﻠﻮا "إﻧﻬﺎء" .ﻋﻨﺪﻣﺎﻳﺪﺧﻠﻮن 'quit' ،ﻳ
ﺘ ﻲ زارو ﻫﺎ ﺣ
ﺑﺈدﺧﺎل أﺳﻤﺎء اﻟﻤﺪن اﻟﺘﺨﺪم
ﺒ ﺔ اﻟﻤ ﺴ
ﻣﻄﺎﻟ
ﺒ ﺐ ﻓ ﻲ ﺧﺮوج Pythonﻣﻦ اﻟﺤﻠﻘ ﺔ:
ﺘﺴbreak ،ﻣﻤﺎﻳ
ﺘﻬﺎء (.ﻧﻴﻮﻳﻮرك
ﺗﻬﺎ) :أدﺧﻞ "إﻧﻬﺎء" ﻋﻨﺪ اﻻﻧ
ﺑﺰﻳﺎرﺘ ﻲ ﻗﻤ ﺖ
اﻟﺮﺟﺎء إدﺧﺎل اﺳﻢ اﻟﻤﺪﻳﻨ ﺔ اﻟ
أﺣ ﺐ أن أذ ﻫ ﺐ إﱃ ﻧﻴﻮﻳﻮرك!
ﺘﻬﺎء(.ﺳﺎن
ﺗﻬﺎ) :أدﺧﻞ "إﻧﻬﺎء" ﻋﻨﺪ اﻻﻧ
ﺑﺰﻳﺎرﺘ ﻲ ﻗﻤ ﺖ
اﻟﺮﺟﺎء إدﺧﺎل اﺳﻢ اﻟﻤﺪﻳﻨ ﺔ اﻟ
ﻓﺮاﻧ ﺴﻴ ﺴﻜﻮ ،أرﻏ ﺐ ﻓ ﻲ اﻟﺬ ﻫﺎ ب إﱃﺳﺎن ﻓﺮاﻧ ﺴﻴ ﺴﻜﻮ!
ﺘﻬﺎء (.إﻧﻬﺎء
ﺗﻬﺎ) :أدﺧﻞ "إﻧﻬﺎء" ﻋﻨﺪ اﻻﻧ
ﺑﺰﻳﺎرﺘ ﻲ ﻗﻤ ﺖ
اﻟﺮﺟﺎء إدﺧﺎل اﺳﻢ اﻟﻤﺪﻳﻨ ﺔ اﻟ
ﺘﺨﺪام
ﺜﺎل ،ﻳﻤﻜﻨﻚ اﺳ
ﺒﻴﻞ اﻟﻤ
ﺘﺨﺪامﺗﻌﻠﻴﻤ ﺔ breakﻓ ﻲ أي ﺣﻠﻘ ﺔ ﻣﻦ ﺣﻠﻘﺎ ت Python.ﻋﲆﺳ
N oteﻳﻤﻜﻨﻚ اﺳ
ﺘﻤﺮار ﻓ ﻲ ﺣﻠﻘ ﺔ
ﺘﺨﺪام اﻻﺳ
ﺑﺎﺳ
ﺒﺎﻋ ﺔ )(current_number
ﻃ
ﺑﻤﺠﺮد دﺧﻮﻟﻨﺎ
ﺗﺪﺧﻞ Pythonﻓ ﻲ ﺣﻠﻘ ﺔ while .
ﺘﻌﻴﻴﻦ current_numberإﱃ 0.وﻷﻧﻪ أﻗﻞ ﻣﻦ 10 ،
ﺑأوﻻ ً ﻗﻤﻨﺎ
ﺒﺎرة ifﻣﻦ ﻧﻤﻮذج current_number
ﺘﺤﻘﻖ ﻋ
ﺗﺑﻤﻘﺪار 1ﻋﻨﺪ u ،ﻟﺬا ﻓﺈن current_numberﻫ ﻲ 1.اﻟﺤﻠﻘ ﺔ ،ﻧﺰﻳﺪ اﻟﻌﺪد
ﺜﻮن
ﺑﺎﻳﺒﺮ
ﺑﻌ ﺔﺗﺨ
ﺘﺎ
ﺒﺎرة اﻟﻤ
ﺑﻞ ﻟﻠﻘ ﺴﻤ ﺔ ﻋﲆ 2) ،ﻓﺈن ﻋ
و 2.إذا ﻛﺎن moduloﻫﻮ )0ﻣﻤﺎﻳﻌﻨ ﻲ أن current_numberﻗﺎ
ﺑﺎﻗ ﻲ اﻟﺤﻠﻘ ﺔ ﺑ ﻼ ً ﻟﻠﻘ ﺴﻤ ﺔ ﻋﲆ 2 ،ﻓ ﺴﻴ
ﺘﻢﺗﻨﻔﻴﺬ ﺒﺪاﻳ ﺔ .إذا ﻟﻢﻳﻜﻦ اﻟﺮﻗﻢ اﻟﺤﺎﻟ ﻲ ﻗﺎ
ﺑﻘﻴ ﺔ اﻟﺤﻠﻘ ﺔ واﻟﻌﻮدة إﱃ اﻟﺘﺠﺎ ﻫﻞ
ﻟ
ﺒﺎﻋ ﺔ اﻟﺮﻗﻢ اﻟﺤﺎﻟ ﻲ:
ﺑﻄﺜﻮن
ﺑﺎﻳﺘﻘﻮم
وﺳ
1
5
3
9
7
ﺘﻢ ﺣ ﺴﺎ ب
ﺜﺎل ،ﻳﺠ ﺐ أنﻳ
ﺒﻴﻞ اﻟﻤ
ﺑﺪ .ﻋﲆﺳ
ﺘﻤﺮ ﻓ ﻲ اﻟﻌﻤﻞ إﱃ اﻷ
ﺘﻰ ﻻﺗ ﺴ
ﺘﻮﻗﻒ ﻋﻦ اﻟﺠﺮي ﺣ
ﺘﺎج ﻛﻞ ﺣﻠﻘ ﺔ إﱃ ﻃﺮﻳﻘ ﺔ ﻟﻠ
ﺗﺤ
ﺣﻠﻘ ﺔ اﻟﻌﺪ ﻫﺬه ﻣﻦ 1إﱃ 5:
counting.py س=1
ﺑﻊ
126اﻟﻔﺼﻞ اﻟ ﺴﺎ
Machine Translated by Google
ﺑﺪ:
ﺘﻤﺮ اﻟﺤﻠﻘ ﺔ إﱃ اﻷ
ﺘﺴﺑﺎﻟﺨﻄﺄ اﻟ ﺴﻄﺮ )x + = 1ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻻﺣ ًﻘﺎ( ،ﺳﻟﻜﻦ إذا ﺣﺬﻓ ﺖ
ﺑﺪ!
#ﻫﺬه اﻟﺤﻠﻘ ﺔﺗﻌﻤﻞ إﱃ اﻷ
س=1
ﺋﻤﺎ إﱃ True
ﺒﺎر اﻟﺸﺮﻃ ﻲ x <= 5دا ً
ﺘﺘﻢﺗﻘﻴﻴﻢ اﻻﺧ
ﺘﻴﺠ ﺔ ﻟﺬﻟﻚ ،ﺳﻴ
ﺑﺪًا .ﻧ
ﺘﻐﻴﺮ أ
ﺒﺪأ ﻗﻴﻤ ﺔ xﻣﻦ 1ﻟﻜﻨﻬﺎ ﻻﺗ
ﺘاﻵنﺳ
ﺘﺎﻟ ﻲ:
ﺒﺎﻋ ﺔﺳﻠ ﺴﻠ ﺔ ﻣﻦ 1s ،ﻋﲆ اﻟﻨﺤﻮ اﻟ
ﺑﺪ ،وﻃ
ﺘﻌﻤﻞ ﺣﻠﻘ ﺔ whileإﱃ اﻷ
وﺳ
1
1
1
1
--ﻗﺺ--
ﺜﻞ Sublime Text ،ﻋﲆ ﻧﺎﻓﺬة إﺧﺮاج ﻣﻀﻤﻨ ﺔ .ﻫﺬاﻳﻤﻜﻦ أنﻳﺠﻌﻞ ﻣﻦ اﻟﺼﻌ ﺐ إﻳﻘﺎف
ﺘﺤﺮﻳﺮ ،ﻣ
ﺑﺮاﻣﺞ اﻟﺑﻌﺾﺘﻮي
ﻣﻼﺣﻈ ﺔ:ﺗﺤ
ﺣﻠﻘ ﺔ ﻻ ﻧﻬﺎﺋﻴ ﺔ ،وﻗﺪﺗﻀﻄﺮ إﱃ إﻏﻼق اﻟﻤﺤﺮر ﻹﻧﻬﺎء اﻟﺤﻠﻘ ﺔ.
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺘﻰﻳﺪﺧﻞ ﻗﻴﻤ ﺔ
ﺘﺰا ﺣ
ﺒﻴﺒﻘﺎ ت اﻟ
ﺑﺈدﺧﺎلﺳﻠ ﺴﻠ ﺔ ﻣﻦ ﻃﺘﺨﺪم
ﺘ ﺐ ﺣﻠﻘ ﺔﺗﻄﺎﻟ ﺐ اﻟﻤ ﺴ
7-4. Pizza Toppings:اﻛ
ﺑﻬﻢ.ﺘﺰا اﻟﺨﺎﺻ ﺔ
ﺒﻴﺒﻘ ﺔ إﱃ اﻟ
ﺘﻀﻴﻒ ﻫﺬه اﻟﻄ
ﺑﺄﻧﻚﺳﺒﻊ رﺳﺎﻟ ﺔﺗﻔﻴﺪ
ﺒﻘ ﺔ ،اﻃ
"quit" .ﻋﻨﺪﻣﺎﻳﺪﺧﻠﻮن ﻛﻞ ﻃ
)واﺻﻠ ﺖ(
واﺣﺪة ﻋﲆ اﻷﻗﻞ:
ﺘﻲ
ﺘﺸﻐﻴﻠﻬﺎ) .ﻹﻧﻬﺎء اﻟﺤﻠﻘ ﺔ ،اﺿﻐﻂ ﻋﲆ ctrl-Cأو أﻏﻠﻖ اﻟﻨﺎﻓﺬة اﻟ
ﺑﺑﺪًا ،وﻗﻢ
ﺘﻬ ﻲ أ
ﺘ ﺐ ﺣﻠﻘ ﺔ ﻻﺗﻨ
ﺘ ﻲ :اﻛ
7-7.إﻧﻔﻴﻨﻴ
ﺗﻌﺮض اﻹﺧﺮاج(.
ﻣﺆﻛﺪ_ ﺘﻮاء
ﺘﺤﻘﻖ # ،وﻗﺎﺋﻤ ﺔ ﻓﺎرﻏ ﺔ ﻻﺣ
ﺘﺎﺟﻮن إﱃ اﻟ
ﺘﺨﺪﻣﻴﻦ اﻟﺬﻳﻦﻳﺤ
ﺑﺎﻟﻤ ﺴﺑﺪأ
#ا
users.py ﺘﺨﺪﻣﻴﻦ اﻟﻤﺆﻛﺪﻳﻦ.
اﻟﻤ ﺴ
]'u unconfirmed_users = ['alice'، 'brian'، 'candace
ﺘﺨﺪﻣﻮن اﻟﻤﺆﻛﺪون ][ =
اﻟﻤ ﺴ
ﺑﻴﻨﻤﺎ unconfirmed_users:
v
)( w current_user = unconfirmed_users.pop
"
ﺘﺨﺪم:
ﺘﺤﻘﻖ ﻣﻦ اﻟﻤ ﺴ
ﺒﺎﻋ ﺔ )"اﻟ
ﻃ ))( + current_user.title
)x Confirm_users.append (current_user
128اﻟﻔﺼﻞ 7
Machine Translated by Google
ﺘﺨﺪﻣﻴﻦ اﻟﻤﺆﻛﺪﻳﻦ.
#ﻋﺮض ﺟﻤﻴﻊ اﻟﻤ ﺴ
ﺘﺎﻟﻴﻦ(":
ﺘﺨﺪﻣﻴﻦ اﻟ
ﺗﻢﺗﺄﻛﻴﺪ اﻟﻤ ﺴ
ﺒﺎﻋ ﺔ ("\ n
ﻃ
ﺘﺨﺪﻣﻴﻦ اﻟﻤﺆﻛﺪﻳﻦ:
ﺘﺨﺪم اﻟﻤﺆﻛﺪ ﻓ ﻲ اﻟﻤ ﺴ
ﻟﻠﻤ ﺴ
ﺘﺨﺪم ))(
ﺒﺎﻋ ﺔ )ﻣﺆﻛﺪ_اﻟﻤ ﺴ
ﻃ
ﺘﺨﺪﻣﻴﻦ
ﺘﻮاء اﻟﻤ ﺴ
ﺘﺨﺪﻣﻴﻦ ﻏﻴﺮ اﻟﻤﺆﻛﺪﻳﻦ ﻓ ﻲ u (Aliceو Brianو )Candaceوﻗﺎﺋﻤ ﺔ ﻓﺎرﻏ ﺔ ﻻﺣ
ﺑﻘﺎﺋﻤ ﺔ اﻟﻤ ﺴﺒﺪأ
ﻧ
اﻟﻤﺆﻛﺪﻳﻦ .ﺣﻠﻘ ﺔ whileﻓ ﻲ v
ﻳﻌﻤﻞ ﻃﺎﻟﻤﺎ أن اﻟﻘﺎﺋﻤ ﺔ unconfirmed_usersﻟﻴ ﺴ ﺖ ﻓﺎرﻏ ﺔ .ﺿﻤﻦ ﻫﺬه اﻟﺤﻠﻘ ﺔ ،ﺗﺰﻳﻞ وﻇﻴﻔ ﺔ )( popﻓ ﻲ w
ﺘﺤﻘﻖ ﻣﻨﻬﻢ واﺣﺪًاﺗﻠﻮ اﻵﺧﺮ ﻣﻦ ﻧﻬﺎﻳ ﺔ unconfirmed_users.ﻫﻨﺎ ،ﻧﻈ ﺮًاﻷن Candace
ﺘﻢ اﻟ
ﺘﺨﺪﻣﻴﻦ اﻟﺬﻳﻦ ﻟﻢﻳ
اﻟﻤ ﺴ
ﺘﻪ
ﺗﺨﺰﻳﻨﻪ ﻓ ﻲ current_userوإﺿﺎﻓ
ﺘﻪ و
ﺘﻢ إزاﻟ
ﻫ ﻲ اﻷﺧﻴﺮة ﻓ ﻲ ﻗﺎﺋﻤ ﺔ unconfirmed_users ،ﺳﻴﻜﻮن اﺳﻤﻬﺎ أول اﺳﻢﺗ
ﺛﻢ أﻟﻴ ﺲ.ﺑﺮاﻳﺎن ،ﺘﺎﻟ ﻲ ﻫﻮ
ﺘﺨﺪﻣﻴﻦ اﻟﻤﺆﻛﺪﻳﻦ ﻓ ﻲ x.اﻟ
إﱃ ﻗﺎﺋﻤ ﺔ اﻟﻤ ﺴ
ﺘﺨﺪم :ﻛﺎﻧﺪﻳ ﺲ
ﺘﺤﻘﻖ ﻣﻦ اﻟﻤ ﺴ
اﻟ
ﺑﺮاﻳﻦﺘﺤﻘﻖ ﻣﻨﻪ:
اﻟﻤ
ﺘﺨﺪم ُ
اﻟﻤ ﺴ
ﺘﺤﻘﻖ ﻣﻨﻪ :أﻟﻴ ﺲ
اﻟﻤ
ﺘﺨﺪم ُ
اﻟﻤ ﺴ
ﺘﺎﻟﻴﻦ:
ﺘﺨﺪﻣﻴﻦ اﻟ
ﺗﻢﺗﺄﻛﻴﺪ اﻟﻤ ﺴ
ﻛﺎﻧﺪﻳ ﺲ
ﺑﺮﻳﺎن
أﻟﻴ ﺲ
اﻟﺤﻴﻮاﻧﺎ ت اﻷﻟﻴﻔ ﺔ ﺒﻴ ﺔ' ' ،ﻗﻄ ﺔ' ' ،أرﻧ ﺐ' ' ،ﻗﻄ ﺔ'[
ﺣﻴﻮاﻧﺎ ت أﻟﻴﻔ ﺔ =]'ﻛﻠ ﺐ' ' ،ﻗﻄ ﺔ' ' ،ﻛﻠ ﺐ' ' ،ﺳﻤﻜ ﺔ ذ ﻫ
ﺒﺎﻋ ﺔ )ﺣﻴﻮاﻧﺎ ت أﻟﻴﻔ ﺔ(
ﻃ
ﺜﺮ
ﺒﺎﻋ ﺔ اﻟﻘﺎﺋﻤ ﺔ ،ﺗﺪﺧﻞ Pythonاﻟﺤﻠﻘ ﺔ whileﻷﻧﻬﺎﺗﻌ
ﺑﻌﺪ ﻃﺘﻌﺪدة ﻣﻦ "اﻟﻘﻂ".
ﺘﻮي ﻋﲆ ﺣﺎﻻ ت ﻣ
ﺑﻘﺎﺋﻤ ﺔﺗﺤﺒﺪأ
ﻧ
ﻋﲆ اﻟﻘﻴﻤ ﺔ ""catﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ
ﺛﻢﺗﻌﻴﺪ إدﺧﺎل
ﺗﻌﻮد إﱃ اﻟ ﺴﻄﺮ while ،
ﺜﻴﻞ اﻷول ﻣﻦ 'cat' ،و
ﺑﻤﺠﺮد دﺧﻮل اﻟﺤﻠﻘ ﺔ ،ﺗﺰﻳﻞ Pythonاﻟﻤﻣﺮة ﻋﲆ اﻻﻗﻞ.
ﺒﺢ اﻟﻘﻴﻤ ﺔ ﻏﻴﺮ ﻣﻮﺟﻮدة ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ ،وﻋﻨﺪ
ﺘﻰﺗﺼ
ﺜﻴﻞ ﻟـ ''catﺣ
اﻟﺤﻠﻘ ﺔ ﻋﻨﺪﻣﺎﺗﺠﺪ أن ''catﻻﺗﺰال ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ.ﻳﺰﻳﻞ ﻛﻞ ﻣ
ﺒﻊ اﻟﻘﺎﺋﻤ ﺔ ﻣﺮة أﺧﺮى:
ﺗﻄﻫﺬه اﻟﻨﻘﻄ ﺔﺗﺨﺮج Pythonﻣﻦ اﻟﺤﻠﻘ ﺔ و
ﺒﻴ ﺔ" " ،ﻗﻄ ﺔ" " ،أرﻧ ﺐ" " ،ﻗﻄ ﺔ"[ ]"ﻛﻠ ﺐ" " ،ﻛﻠ ﺐ" " ،ﺳﻤﻜ ﺔ
]"ﻛﻠ ﺐ" " ،ﻗﻄ ﺔ" " ،ﻛﻠ ﺐ" " ،ﺳﻤﻜ ﺔ ذ ﻫ
ﺒﻴ ﺔ" " ،أرﻧ ﺐ"[
ذﻫ
ﺘﺨﺪم
ﺑﺈدﺧﺎل اﻟﻤ ﺴﻣﻞء ﻗﺎﻣﻮس
ﺘﺎﺟﻪ ﻣﻦ اﻟﻤﺪﺧﻼ ت ﻓ ﻲ ﻛﻞ ﻣﺮة
ﺑﺎﻟﻘﺪر اﻟﺬيﺗﺤﺒﺔ
ﻳﻤﻜﻨﻚ اﻟﻤﻄﺎﻟ
ﺘﻪ.ﺳﻨﺨﺰن
ﺑﺘﺠﺎ
ﺑﺎﺳﻢ اﻟﻤﺸﺎرك واﺳﺒﺔ
ﺑﺎﻟﻤﻄﺎﻟﺒﺮ اﻟﺤﻠﻘ ﺔ
ﺑﺎﻟﻤﺮور ﻋﺘﺮاعﻳﻘﻮم ﻓﻴﻪ ﻛﻞ واﺣﺪ
ﺑﺮﻧﺎﻣﺞ اﻗﺑﻌﻤﻞﺣﻠﻘ ﺔ .ﻟﻨﻘﻢ
ﺘﺨﺪم ﻣﻌﻴﻦ:
ﺑﻤ ﺴﺑﺔ
ﺘﺠﺎ
ﺑﻂ ﻛﻞ اﺳ
ﺘ ﻲ ﻧﺠﻤﻌﻬﺎ ﻓ ﻲ ﻗﺎﻣﻮس ،ﻷﻧﻨﺎ ﻧﺮﻳﺪ ر
ﺒﻴﺎﻧﺎ ت اﻟ
اﻟ
اﻟﺮدود }{ =
ﺘﻄﻼع
ﺒﻞ_اﻻﺳ
ﺟ
ﺘﺮاع ﻧﺸﻂ.
ﺘﻌﻴﻴﻦ ﻋﻼﻣ ﺔ ﻟﻺﺷﺎرة إﱃ أن اﻻﻗ
ﺑ#ﻗﻢ
= polling_activeﺻﺤﻴﺢ
ﺘﻘﺼﺎء_ﻧﺸﻂ:
ﺛﻨﺎء اﻻﺳ
أ
#ﻣﻮﺟﻪ ﻻﺳﻢ اﻟﺸﺨﺺ واﻟﺮد.
u name = input ("\ nﻣﺎ اﺳﻤﻚ؟"(
ﻳﻮﻣﺎ ﻣﺎ؟"(
ﺘ ﺴﻠﻘﻪ ً
ﺒﻞﺗﺮﻳﺪ أنﺗ
")response = inputأي ﺟ
ﺑ ﺔ ﻓ ﻲ اﻟﻘﺎﻣﻮس:
ﺘﺠﺎ
ﺗﺨﺰﻳﻦ اﻻﺳ
#
ردود ]vاﻻﺳﻢ[ =رد
ﺘﻄﻼع.
ﺘﺸﻒ ﻣﺎ إذا ﻛﺎن أي ﺷﺨﺺ آﺧﺮﺳﻴﺸﺎرك ﻓ ﻲ اﻻﺳ
#اﻛ
ﺑﺎﻟﺮد؟ )ﻧﻌﻢ /ﻻ("(ﺘﻜﺮار =اﻹدﺧﺎل )" ﻫﻞﺗﺮﻏ ﺐ ﻓ ﻲ اﻟ ﺴﻤﺎح ﻟﺸﺨﺺ آﺧﺮ
wاﻟ
إذا ﻛﺮر =='ﻻ':
= polling_activeﺧﻄﺄ
ﺘﺎﺋﺞ.
ﺘﻤﻞ .اﻋﺮض اﻟﻨ
ﺘﺮاع اﻛ
#اﻻﻗ
ﺘﻄﻼع )"---
ﺘﺎﺋﺞ اﻻﺳ
ﺒﺎﻋ ﺔ ("\ n ---ﻧ
ﻃ
ﺑ ﺔ ﻓ ﻲ اﻟﺮدود .اﻟﻌﻨﺎﺻﺮ ():
ﺘﺠﺎ
xﻟﻼﺳﻢ واﻻﺳ
" "
ﺑ ﺔ )"+ ".
ﺘﺠﺎ
ﺗﺮﻏ ﺐ ﻓ ﻲ اﻟﺼﻌﻮد +اﺳ
ﺒﺎﻋ ﺔ )اﻻﺳﻢ +
ﻃ
ﺘﺮاع ﻧﺸﻂ.
ﺘﻌﺮﻳﻒ ﻗﺎﻣﻮس ﻓﺎرغ )اﻟﺮدود( وﻳﻀﻊ ﻋﻼﻣ ﺔ )(Polling_activeﻟﻺﺷﺎرة إﱃ أن اﻻﻗ
ﺑﺒﺮﻧﺎﻣﺞ أوﻻ ً
ﻳﻘﻮم اﻟ
ﺘﺸﻐﻴﻞ اﻟﻜﻮد ﻓ ﻲ ﺣﻠﻘ ﺔ while .
ﺑﺘﻘﻮم
ﻃﺎﻟﻤﺎ أن polling_activeﻫﻮ True ،ﻓﺈن Pythonﺳ
ﺘﻢﺗﺨﺰﻳﻦ
ﺒﻞ اﻟﺬيﻳﺮﻏ ﺐ ﻓ ﻲ ﺻﻌﻮده.ﻳ
ﺑﻪ واﻟﺠﺘﺨﺪم اﻟﺨﺎص
ﺘﺨﺪم إدﺧﺎل اﺳﻢ اﻟﻤ ﺴ
ُﻄﻠ ﺐ ﻣﻦ اﻟﻤ ﺴ
داﺧﻞ اﻟﺤﻠﻘ ﺔ ،ﻳ
ﻫﺬه اﻟﻤﻌﻠﻮﻣﺎ ت ﻓ ﻲ اﻟﺮدود
ﺑﺈدﺧﺎل "ﻧﻌﻢ" ،ﻳﺪﺧﻞﺘﻄﻼع أم ﻻ .إذا ﻗﺎﻣﻮا
ﺘﺨﺪم ﻋﻤﺎ إذا ﻛﺎنﺳﻴﺤﺎﻓﻆ ﻋﲆﺗﺸﻐﻴﻞ اﻻﺳ
ﺳ ﺌﻞ اﻟﻤ ﺴ
اﻟﻘﺎﻣﻮس اﻟﺨﺎﻣ ﺲ ،وُ
ﺘﻮﻗﻒ ﺣﻠﻘ ﺔ
ﺗﺘﻢﺗﻌﻴﻴﻦ ﻋﻼﻣ ﺔ ""Polling_activeﻋﲆ False ،و
ﺑﺈدﺧﺎل "ﻻ" ،ﻳﺒﺮﻧﺎﻣﺞ ﺣﻠﻘ ﺔ whileﻣﺮة أﺧﺮى .إذا ﻗﺎﻣﻮا
اﻟ
ﺘﻄﻼع.
ﺘﺎﺋﺞ اﻻﺳ
ﺒﺮﻣﺠﻴ ﺔ اﻟﻨﻬﺎﺋﻴ ﺔ ﻋﻨﺪ xﻧ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻠ ﺔ اﻟ
ﺗﻌﺮض ﻛ
whileﻋﻦ اﻟﻌﻤﻞ ،و
ﺑﻊ
130اﻟﻔﺼﻞ اﻟ ﺴﺎ
Machine Translated by Google
ﺜﻞ ﻫﺬا:
ﺘﺮى اﻹﺧﺮاج ﻣ
ﺑﺎ ت ،ﻓ ﺴ
ﺘﺠﺎ
ﺒﺮﻧﺎﻣﺞ وأدﺧﻠ ﺖ ﻧﻤﺎذج اﻻﺳ
ﺘﺸﻐﻴﻞ ﻫﺬا اﻟ
ﺑإذا ﻗﻤ ﺖ
ﺑﻬﺎم اﻟﺸﻴﻄﺎن.
ﺘﻄﻼع ---ﻳﺮﻏ ﺐ ﻟﻴﻦ ﻓ ﻲﺗ ﺴﻠﻖ إ
ﺘﺎﺋﺞ اﻻﺳ
ﻧ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺑ ﺴﻄﺮﻣ ﺔ" ﻓ ﻲ
ﺗﺄﻛﺪ ﻣﻦ ﻇﻬﻮر ﺷﻄﻴﺮة "
ﺘﻤﺮﻳﻦ 7-8 ،
ﺘﺨﺪام ﻗﺎﺋﻤ ﺔ sandwich_ordersﻣﻦ اﻟ
ﺑﺎﺳ
7-9. No Pastrami:
ﺘﺨﺪم
ﺛﻢ اﺳﺒ ﺴﻄﺮﻣ ﺔ ﻗﺪ ﻧﻔﺪ ،
ﺑﺄن اﻟﺒﺎﻋ ﺔ رﺳﺎﻟ ﺔﺗﻔﻴﺪ
ﺒﺮﻧﺎﻣﺞ ﻟﻄ
ﺑﺪاﻳ ﺔ اﻟﺑﺎﻟﻘﺮ ب ﻣﻦﺛﻼ ث ﻣﺮا ت ﻋﲆ اﻷﻗﻞ .أﺿﻒ رﻣ ًﺰااﻟﻘﺎﺋﻤ ﺔ
ﺒ ﺴﻄﺮﻣ ﺔ إﱃ
ﺗﺄﻛﺪ ﻣﻦ ﻋﺪم وﺻﻮل ﺷﻄﺎﺋﺮ اﻟ
ﺑ ﺴﻄﺮﻣ ﺔ" ﻣﻦ sandwich_orders.
ﺣﻠﻘ ﺔ whileﻹزاﻟ ﺔ ﺟﻤﻴﻊﺗﻜﺮارا ت "
اﻟ ﺴﻨﺪوﻳﺸﺎ ت اﻟﺠﺎ ﻫﺰة.
ﺘ ﺐ ﻣﻮﺟﻬً ﺎ
ﺘﺨﺪﻣﻴﻦ ﺣﻮل إﺟﺎزة أﺣﻼﻣﻬﻢ .اﻛ
ﺘﻄﻼع آراء اﻟﻤ ﺴ
ﺑﺎﺳﺑﺮﻧﺎﻣﺠًﺎﻳﻘﻮمﺘﺐ
7-10. Dream Vacation:اﻛ
ﺘﻌﻠﻴﻤﺎ ت
ﺘﻠ ﺔ ﻣﻦ اﻟ
ﺘﻀﻤﻴﻦ ﻛ
ﺑﺘﺬ ﻫ ﺐ؟ ﻗﻢ
ﺑﺈﻣﻜﺎﻧﻚ زﻳﺎرة ﻣﻜﺎن واﺣﺪ ﻓ ﻲ اﻟﻌﺎﻟﻢ ،ﻓﺄﻳﻦﺳﺑﻬً ﺎ ﻟﻤﺎ إذا ﻛﺎن
ﻣﺸﺎ
ﺘﻄﻼع.
ﺘﺎﺋﺞ اﻻﺳ
ﺒﻊ ﻧ
ﺘ ﻲﺗﻄ
ﺒﺮﻣﺠﻴ ﺔ اﻟ
اﻟ
ﻣﻠﺨﺺ
ﺑﺮاﻣﺠﻚ .ﻟﻘﺪﺗﻬﻢ اﻟﺨﺎﺻ ﺔ ﻓ ﻲ
ﺘﻘﺪﻳﻢ ﻣﻌﻠﻮﻣﺎ
ﺑﺘﺨﺪﻣﻴﻦ
ﺘﺨﺪام اﻹدﺧﺎل )(ﻟﻠ ﺴﻤﺎح ﻟﻠﻤ ﺴ
ﺗﻌﻠﻤ ﺖ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ﻛﻴﻔﻴ ﺔ اﺳ
ﺘﺨﺪﻣﻮن
ﺑﺮاﻣﺠﻚ ﻃﺎﻟﻤﺎ أراد اﻟﻤ ﺴﺛﻨﺎءﺗﺸﻐﻴﻞ
ﺘﻜﺮارا ت أ
ﺘﺨﺪام اﻟ
ﺗﻌﻠﻤ ﺖ اﻟﻌﻤﻞ ﻣﻊ ﻛﻞ ﻣﻦ اﻹدﺧﺎل اﻟﻨﺼ ﻲ واﻟﺮﻗﻤ ﻲ وﻛﻴﻔﻴ ﺔ اﺳ
ﺘﺨﺪامﺗﻌﻠﻴﻤ ﺔ break ،و
ﺑﺎﺳﺘﺤﻜﻢ ﻓ ﻲﺗﺪﻓﻖ ﺣﻠﻘ ﺔ whileﻣﻦ ﺧﻼلﺗﻌﻴﻴﻦ ﻋﻼﻣ ﺔ ﻧﺸﻄ ﺔ ،
ذﻟﻚ .ﻟﻘﺪ رأﻳ ﺖ ﻋﺪة ﻃﺮق ﻟﻠ
ﺛﻨﺎء اﻟﺤﻠﻘﺎ ت
ﺘﺨﺪم وأ
إدﺧﺎل اﻟﻤ ﺴ 131
Machine Translated by Google
ﺑﻊ
132اﻟﻔﺼﻞ اﻟ ﺴﺎ
Machine Translated by Google
8 اﻟﻤﻬﺎم
ﺘﻞ ﻣﻦ
ﺘ ﻲﺗ ﺴﻤﻰ ﻛ
ﺑ ﺔ اﻟﻮﻇﺎﺋﻒ ،واﻟ
ﺘﺎ
ﺘﻌﻠﻢ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ﻛ
ﺘﺳ
ﺑﻌﻤﻞ واﺣﺪ ﻣﺤﺪد.ﺒﺮﻣﺠﻴ ﺔ اﻟﻤﺼﻤﻤ ﺔ ﻟﻠﻘﻴﺎم
ﺘﻌﻠﻴﻤﺎ ت اﻟ
اﻟ
ﺘﺪﻋ ﻲ
ﺘﺤﺪﻳﺪ ﻫﺎ ﻓ ﻲ داﻟ ﺔ ﻣﺎ ،ﻓﺈﻧﻚﺗ ﺴ
ﺑﻋﻨﺪﻣﺎﺗﺮﻳﺪﺗﻨﻔﻴﺬ ﻣﻬﻤ ﺔ ﻣﻌﻴﻨ ﺔ ﻗﻤ ﺖ
ﺑﺤﺎﺟ ﺔ إﱃﺗﻨﻔﻴﺬ ﻫﺬه اﻟﻤﻬﻤ ﺔ ﻋﺪة ﻣﺮا ت ﺧﻼلاﺳﻢ اﻟﻮﻇﻴﻔ ﺔ اﻟﻤ ﺴﺆوﻟ ﺔ ﻋﻨﻬﺎ .إذا ﻛﻨ ﺖ
ﺗﻜﺮا ًرا ؛
ﺒﺮﻣﺠﻴ ﺔ ﻟﻨﻔ ﺲ اﻟﻤﻬﻤ ﺔ ﻣﺮا ًرا و
ﺘﻌﻠﻴﻤﺎ ت اﻟﺑ ﺔ ﻛﻞ اﻟ
ﺘﺎﺘﺎج إﱃ ﻛﺒﺮﻧﺎﻣﺞ ،ﻓﻠﻦﺗﺤ
اﻟ
ﺗﻄﻠ ﺐ ﺘﻌﺎﻣﻞ ﻣﻊ ﻫﺬه اﻟﻤﻬﻤ ﺔ ،و ﺘﺪﻋﺎء اﻟﻮﻇﻴﻔ ﺔ اﻟﻤﺨﺼﺼ ﺔ ﻟﻠ ﻣﺎ ﻋﻠﻴﻚﺳﻮى اﺳ
ﺘﺨﺪام اﻟﻮﻇﺎﺋﻒ ﺘﺠﺪ أن اﺳ ﺗﺸﻐﻴﻞ اﻟﻜﻮد داﺧﻞ اﻟﻮﻇﻴﻔ ﺔ.ﺳ اﻟﻤﻜﺎﻟﻤ ﺔ ﻣﻦ Python
ﺒﺎر واﻹﺻﻼح.
ﺘ ﺑ ﺔ واﻟﻘﺮاءة واﻻﺧ
ﺘﺎ
ﺑﺮاﻣﺠﻚ أﺳﻬﻞ ﻓ ﻲ اﻟﻜﻳﺠﻌﻞ
ﺗﺤﺪﻳﺪ اﻟﻮﻇﻴﻔ ﺔ
ﺘﺤﻴ ﺔ:
ﺒﺎﻋ ﺔ اﻟ
ﺑﻄﺗﻘﻮم
ﺘﺨﺪم )(
ﺘﺮﺣﻴ ﺐ اﻟﻤ ﺴ
ﯩﺑ ﺴﻴﻄ ﺔﺗ ﺴﻤﻓﻴﻤﺎﻳﻠ ﻲ وﻇﻴﻔ ﺔ
ﺘﺨﺪم )(
ﺗﺮﺣﻴ ﺐ_اﻟﻤ ﺴ
x
ﺒﺎ!
ﻣﺮﺣ ً
ﺘﺨﺪم(:
)defreet_userاﺳﻢ اﻟﻤ ﺴ
ﺑ ﺴﻴﻄ ﺔ"" "."""ﻋﺮضﺗﺤﻴ ﺔ
ﺒﺎﻋ ﺔ )"!" ("Hello،" + username.title () +
ﻃ
ﺜﺎﻣﻦ
134اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺘﺪاد
ﺘﺨﺪم" )( وإﻋﻄﺎء اﻟﻮﻇﻴﻔ ﺔ اﻻﻣ
ﺗﺤﻴ ﺔ اﻟﻤ ﺴ
ﺘﺪﻋﺎء "
ﺘﺨﺪم" )"ﺟﻴ ﺴ ﻲ"( إﱃ اﺳ
ﺗﺤﻴ ﺔ ﻣ ﺴ
ﻳﺆدي إدﺧﺎل "
ﺘﺤﻴ ﺔ ﻟﻬﺬا اﻻﺳﻢ:
ﺗﻌﺮض اﻟ
ﺗﻪ و
ﺒﻞ اﻟﻮﻇﻴﻔ ﺔ اﻻﺳﻢ اﻟﺬي ﻣﺮر
ﺒﺎﻋ ﺔ .ﺗﻘ
ﺑﻴﺎن اﻟﻄﺘﻨﻔﻴﺬ
ﺘﺎﺟﻬﺎ ﻟ
ﺘ ﻲﻳﺤ
اﻟﻤﻌﻠﻮﻣﺎ ت اﻟ
ﺒﺎ ﺟﻴ ﺴ ﻲ!
ﻣﺮﺣ
اﻟﺤﺠﺞ واﻟﻤﻌﻠﻤﺎ ت
ﺘﺪﻋﺎء اﻟﻮﻇﻴﻔ ﺔ
ﺑﻤﺠﺮد اﺳﺘﻐﻴﺮ.
ﺘﺨﺪم اﻟﻤ
ﺑﻘﻴﻤ ﺔ ﻻﺳﻢ اﻟﻤ ﺴﺒﺔ
ﺑﻘ ﺔ ،ﺣﺪدﻧﺎﺗﺤﻴ ﺖ_وﺳﺮ )(ﻟﻠﻤﻄﺎﻟ
ﺗﺤﻴ ﺖ اﻟ ﺴﺎ
ﻓ ﻲ اﻟﺪاﻟ ﺔ )(
ﺘﺤﻴ ﺔ اﻟﺼﺤﻴﺤ ﺔ.
ﺒﺎﻋ ﺔ اﻟ
ﺑﻄوإﻋﻄﺎﺋﻬﺎ اﻟﻤﻌﻠﻮﻣﺎ ت )اﺳﻢ اﻟﺸﺨﺺ( ،ﻗﺎﻣ ﺖ
ﺑﻴﻦ ﻗﻮﺳﻴﻦ .ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔ ،ﺗﻢﺗﻤﺮﻳﺮ اﻟﻮﺳﻴﻄ ﺔ ''jesseﺘ ﻲ ﻧﺮﻳﺪ أنﺗﻌﻤﻞ اﻟﺪاﻟ ﺔ ﻣﻌﻬﺎ
ﻋﻨﺪﻣﺎ ﻧ ﺴﻤ ﻲ اﻟﺪاﻟ ﺔ ،ﻧﻀﻊ اﻟﻘﻴﻤ ﺔ اﻟ
ﺗﻢﺗﺨﺰﻳﻦ اﻟﻘﻴﻤ ﺔ ﻓ ﻲ اﻟﻤﻌﺎﻣﻞ username.
إﱃ اﻟﺪاﻟ ﺔ reet_user () ،و
ﺘﻐﻴﺮا ت أو
ﺑﺎﻟﻤُﺸﺎر إﻟﻴﻬﺎ
ﺘﻐﻴﺮا ت ﻓ ﻲﺗﻌﺮﻳﻒ داﻟ ﺔﻳ
ﺒﺎدل .ﻻﺗﻜﻦ ﻣﺆﻛﺪًا إذا رأﻳ ﺖ اﻟﻤ
ﺘﺑﺎﻟﺘﺤﺪ ث اﻟﻨﺎس أﺣﻴﺎﻧًﺎ ﻋﻦ اﻟﺤﺠﺞ واﻟﻤﻌﺎﻳﻴﺮ
ﻻﻳ
ﺑﺎﻟﻤﻌﻠﻤﺎ ت.ُﺸﺎر إﻟﻴﻬﺎ
ﺘﺪﻋﺎء داﻟ ﺔﻳ
ﺘﻐﻴﺮا ت ﻓ ﻲ اﺳ
اﻟﻤ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺘﻌﻠﻤﻪ ﻓ ﻲ
ﺑﻤﺎﺗﺒﺮ اﻟﺠﻤﻴﻊ
ﺒﻊ ﺟﻤﻠ ﺔ واﺣﺪةﺗﺨ
ﺗﻄﺘ ﺐ وﻇﻴﻔ ﺔﺗ ﺴﻤﻰ )( display_message
8-1.اﻟﺮﺳﺎﻟ ﺔ :اﻛ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ.ﺗﺄﻛﺪ ﻣﻦ ﻋﺮض اﻟﺮﺳﺎﻟ ﺔ
ﺑﺎﻟﻮﻇﻴﻔ ﺔ ،وﺗﺼﻞ
ﻫﺬا اﻟﻔﺼﻞ .ا
ﺑﺮة
اﻟﺤﺠﺞ اﻟﻌﺎ
ﺘﻌﺪدة.ﻳﻤﻜﻨﻚ
ﺘﺪﻋﺎء اﻟﺪاﻟ ﺔ إﱃ وﺳﻴﻄﺎ ت ﻣ
ﺘﺎج اﺳ
ﺘﻌﺪدة ،ﻓﻘﺪﻳﺤ
ﺘﻮي ﻋﲆ ﻣﻌﻠﻤﺎ ت ﻣ
ﻧﻈ ﺮًاﻷنﺗﻌﺮﻳﻒ اﻟﺪاﻟ ﺔﻳﻤﻜﻦ أنﻳﺤ
ﺘ ﻲﻳﺠ ﺐ أنﺗﻜﻮن ﻣﻮﺟﻮدة
ﺘﺨﺪام اﻟﺤﺠﺞ اﻟﻤﻮﺿﻌﻴ ﺔ اﻟ
ﺑﻌﺪة ﻃﺮق.ﻳﻤﻜﻨﻚ اﺳﺗﻤﺮﻳﺮ اﻟﺤﺠﺞ إﱃ وﻇﺎﺋﻔﻚ
وﻇﺎﺋﻒ 135
Machine Translated by Google
ﺘﻐﻴﺮ وﻗﻴﻤ ﺔ ؛
ﺘﻜﻮن ﻛﻞ وﺳﻴﻄ ﺔ ﻣﻦ اﺳﻢ ﻣ
ﺋﻴ ﺴﻴ ﺔ ،ﺣﻴ ﺚﺗ
ﺑ ﺔ اﻟﻤﻌﻠﻤﺎ ت ؛ وﺳﻴﻄﺎ ت اﻟﻜﻠﻤﺎ ت اﻟﺮ
ﺘﺎ
ﺗﻴ ﺐﺗﻤ ﺖ ﻛ
ﺘﺮﻧﻔ ﺲ اﻟ
ﺑﺪور ﻫﺎ.وﻗﻮاﺋﻢ وﻣﻌﺎﺟﻢ اﻟﻘﻴﻢ .دﻋﻮﻧﺎ ﻧﻠﻘ ﻲ ﻧﻈﺮة ﻋﲆ ﻛﻞ ﻣﻦ ﻫﺬه
اﻟﺤﺠﺞ اﻟﻤﻮﺿﻌﻴ ﺔ
ﺘﺪﻋﺎء اﻟﻮﻇﻴﻔ ﺔ ﻣﻊ ﻣﻌﻠﻤ ﺔ ﻓ ﻲﺗﻌﺮﻳﻒ اﻟﻮﻇﻴﻔ ﺔ .إن
ﺑﻖ Pythonﻛﻞ وﺳﻴﻄ ﺔ ﻓ ﻲ اﺳ
ﺘﺪﻋﺎء داﻟ ﺔ ،ﻳﺠ ﺐ أنﺗﻄﺎ
ﻋﻨﺪ اﺳ
ﺑﻬﺬه اﻟﻄﺮﻳﻘ ﺔﺗ ﺴﻤﻰ اﻟﺤﺠﺞ اﻟﻤﻮﺿﻌﻴ ﺔ.ﺑﻘ ﺔ
ﺗﻴ ﺐ اﻟﺤﺠﺞ اﻟﻤﻘﺪﻣ ﺔ .اﻟﻘﻴﻢ اﻟﻤﻄﺎ
ﺘﻤﺪ ﻋﲆﺗﺮ
ﺑﺬﻟﻚﺗﻌﺑ ﺴﻂ ﻃﺮﻳﻘ ﺔ ﻟﻠﻘﻴﺎم
أ
ﺒﺮﻧﺎ اﻟﻮﻇﻴﻔ ﺔ
ﺒﺎرك وﻇﻴﻔ ﺔﺗﻌﺮض ﻣﻌﻠﻮﻣﺎ ت ﺣﻮل اﻟﺤﻴﻮاﻧﺎ ت اﻷﻟﻴﻔ ﺔ.ﺗﺨ
ﺘﻟﻤﻌﺮﻓ ﺔ ﻛﻴﻔﻴ ﺔ ﻋﻤﻞ ذﻟﻚ ،ﺿﻊ ﻓ ﻲ اﻋ
ﺜﻠﻪ ﻛﻞ ﺣﻴﻮان أﻟﻴﻒ واﺳﻢ اﻟﺤﻴﻮان اﻷﻟﻴﻒ ،ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻫﻨﺎ:
ﺑﻨﻮع اﻟﺤﻴﻮان اﻟﺬيﻳﻤ
ﺘﺮ.
ﻟﺪي ﻫﺎﻣ ﺴ
ﺑ ﻲ ﻫﻮ ﻫﺎري.ﺘﺮ اﻟﺨﺎص
اﺳﻢ اﻟﻬﺎﻣ ﺴ
ﺘﻌﺪدة اﻟﻮﻇﺎﺋﻒ
ﻣﻜﺎﻟﻤﺎ ت ﻣ
ﺘﻠ ًﻔﺎ ا
ﺗﺼﺎﻻ ً واﺣﺪًا إﺿﺎﻓ ًﻴﺎ ﺘﻠﻒ ﻣﺨ
ﺘﻄﻠ ﺐ وﺻﻒ ﺣﻴﻮان أﻟﻴﻒ ﻣﺨ
ﺘﺪﻋﺎء وﻇﻴﻔ ﺔ ﻋﺪة ﻣﺮا ت ﺣ ﺴ ﺐ اﻟﺤﺎﺟ ﺔ.ﻳ
ﻳﻤﻜﻨﻚ اﺳ
ﻟﻮﺻﻒ_(): teP
ﺜﺎﻣﻦ
136اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺘﺮ.
ﻟﺪي ﻫﺎﻣ ﺴ
ﺑ ﻲ ﻫﻮ ﻫﺎري.ﺘﺮ اﻟﺨﺎص
اﺳﻢ اﻟﻬﺎﻣ ﺴ
ﻟﺪي ﻛﻠ ﺐ.
ﺒ ﻲ ﻫﻮ وﻳﻠ ﻲ.
اﺳﻢ ﻛﻠ
ﻟﺪي ﻫﺎري.
ﺘﺮ.
اﺳﻢ ﻫﺎري ﻫﻮ اﻟﻬﺎﻣ ﺴ
ﺗﻴ ﺐ
ﺑﻖﺗﺮ
ﺘﺪﻋﺎء اﻟﻮﻇﻴﻔ ﺔﻳﻄﺎ
ﺗﻴ ﺐ اﻟﻮﺳﺎﺋﻂ ﻓ ﻲ اﺳ
ﺘﺄﻛﺪ ﻣﻦ أنﺗﺮ
ﺘﺤﻘﻖ ﻟﻠ
ﺜﻞ ﻫﺬه ،ﻓ
ﺘﺎﺋﺞ ﻣﻀﺤﻜ ﺔ ﻣ
إذا ﺣﺼﻠ ﺖ ﻋﲆ ﻧ
اﻟﻤﻌﻠﻤﺎ ت ﻓ ﻲﺗﻌﺮﻳﻒ اﻟﻮﻇﻴﻔ ﺔ.
ﺋﻴ ﺴﻴ ﺔ
وﺳﻴﻄﺎ ت اﻟﻜﻠﻤﺎ ت اﻟﺮ
ﺒﺎﺷﺮة داﺧﻞ اﻟﻮﺳﻴﻄ ﺔ ،
ﺑﻂ اﻻﺳﻢ واﻟﻘﻴﻤ ﺔ ﻣ
ﺑﺮﺘﻤﺮﻳﺮه إﱃ داﻟ ﺔ.ﺗﻘﻮم
ﺑوﺳﻴﻄ ﺔ اﻟﻜﻠﻤ ﺔ اﻷﺳﺎﺳﻴ ﺔ ﻫ ﻲ زوج اﺳﻢ-ﻗﻴﻤ ﺔﺗﻘﻮم
ﺑﻚ اﻷﻣﺮﺘﻬ ﻲ
ﺒﺎك )ﻟﻦﻳﻨ
ﺗﻟﺬﻟﻚ ﻋﻨﺪﻣﺎﺗﻤﺮر اﻟﻮﺳﻴﻄ ﺔ إﱃ اﻟﻮﻇﻴﻔ ﺔ ،ﻻﻳﻮﺟﺪ أي ار
اﻟﻤﻬﺎم 137
Machine Translated by Google
ﺘﺪﻋﺎء
ﺗﻴ ﺐ اﻟﺼﺤﻴﺢ ﻟﻠﻮﺳﻴﻄﺎ ت ﻓ ﻲ اﺳ
ﺘﺮﺑﺸﺄن اﻟﺋﻴ ﺴﻴ ﺔ ﻣﻦ اﻟﻘﻠﻖ
ﺘﺮ(.ﺗﺤﺮرك وﺳﻴﻄﺎ ت اﻟﻜﻠﻤﺎ ت اﻟﺮ
ﻣﻊ ﻫﺎري اﺳﻤﻪ اﻟﻬﺎﻣ ﺴ
ﺘﺪﻋﺎء اﻟﻮﻇﻴﻔ ﺔ.
ﺗﻮﺿﺢ دور ﻛﻞ ﻗﻴﻤ ﺔ ﻓ ﻲ اﺳ
اﻟﻮﻇﻴﻔ ﺔ ،و
ﺘﺎﻟﻴﺎن
ﺗﻌﺮف أﻳﻦﻳﺠ ﺐ أنﺗﺬ ﻫ ﺐ ﻛﻞ ﻗﻴﻤ ﺔ .ﻧﺪاء اﻟﻮﻇﻴﻔ ﺔ اﻟ
ﺋﻴ ﺴﻴ ﺔﻷن Python
ﺗﻴ ﺐ وﺳﻴﻄﺎ ت اﻟﻜﻠﻤﺎ ت اﻟﺮ
ﻻﻳﻬﻢﺗﺮ
ﺘﻜﺎﻓﺌﺎن:
ﻣ
ﺘﺮاﺿﻴ ﺔ
ﻗﻴﻢ اﻓ
ُﺴ
ﺘﺨﺪم ﻟﻮﺻﻒ اﻟﻜﻼ ب ،ﻓﻴﻤﻜﻨﻚ ﺗ
ﺘﺪﻋﺎءا ت )( description_pet
ﺜﺎل ،إذا ﻻﺣﻈ ﺖ أن ﻣﻌﻈﻢ اﺳ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺑﻜﻠ ﺐ أن
ﺑـ )( description_petﺘﺼﻞ
ﺘﺮاﺿﻴ ﺔ ﻟـ animal_typeﻋﲆ "dog".اﻵنﻳﻤﻜﻦﻷي ﺷﺨﺺﻳ
ﺗﻌﻴﻴﻦ اﻟﻘﻴﻤ ﺔ اﻻﻓ
ﻳﺤﺬف ﻫﺬه اﻟﻤﻌﻠﻮﻣﺎ ت:
ﺜﺎﻣﻦ
138اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﻟﺪي ﻛﻠ ﺐ.
ﺒ ﻲ ﻫﻮ وﻳﻠ ﻲ.
اﺳﻢ ﻛﻠ
")description_petوﻳﻠ ﻲ"(
ﺑﻖ.
ﺜﺎل اﻟ ﺴﺎ
ﺜﻞ اﻟﻤ
ﺘﺪﻋﺎء اﻟﻮﻇﻴﻔ ﺔ ﻫﺬا ﻧﻔ ﺲ اﻹﺧﺮاج ﻣ
ﺳﻴﻜﻮن ﻻﺳ
ﺘﻌﺮﻳﻒ pet_name. ،ﻧﻈ ﺮًا ﻟﻌﺪم
ﺘﻬﺎ ﻣﻊ اﻟﻤﻌﺎﻣﻞ اﻷول ﻓ ﻲ اﻟ
ﺑﻘﺘﻢ ﻣﻄﺎ
ﺘﻮﻓﺮة ﻫ ﻲ "willie" ،ﻟﺬﻟﻚﻳ
اﻟﻮﺳﻴﻄ ﺔ اﻟﻮﺣﻴﺪة اﻟﻤ
ﺘﺮاﺿﻴ ﺔ "dog".
ﺘﺨﺪم Pythonاﻟﻘﻴﻤ ﺔ اﻻﻓ
ﺗﺴﺗﻮﻓﻴﺮ وﺳﻴﻄ ﺔ ﻟـ animal_type ،
ﺜﻞ ﻫﺬا:
ﺘﺪﻋﺎء وﻇﻴﻔ ﻲ ﻣ
ﺘﺨﺪام اﺳ
ﻟﻮﺻﻒ ﺣﻴﻮان ﻏﻴﺮ اﻟﻜﻠ ﺐ ،ﻳﻤﻜﻨﻚ اﺳ
ﺑﺬﻟﻚﺘﻘﻮم
ﺘﻮﻓﻴﺮ ﺣﺠ ﺔ ﺻﺮﻳﺤ ﺔ ﻟـ animal_type ،ﻓﺈن Pythonﺳ
ﻧﻈ ﺮًا ﻟ
ﺘﺮاﺿﻴ ﺔ ﻟﻠﻤﻌﻠﻤ ﺔ.
ﺗﺠﺎ ﻫﻞ اﻟﻘﻴﻤ ﺔ اﻻﻓ
ﺘﻮي ﻋﲆ ﻗﻴﻢ
ﺘ ﻲ ﻻﺗﺤ
ﺑﻌﺪ ﺟﻤﻴﻊ اﻟﻤﻌﻠﻤﺎ ت اﻟﺘﺮاﺿﻴ ﺔ
ﺘﺮاﺿﻴ ﺔ ،ﻳﺠ ﺐ إدراج أي ﻣﻌﻠﻤ ﺔ ذا ت ﻗﻴﻤ ﺔ اﻓ
ﺘﺨﺪام اﻟﻘﻴﻢ اﻻﻓ
ﻣﻼﺣﻈ ﺔ ﻋﻨﺪ اﺳ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ.ﺑﻤﻮاﺻﻠ ﺔﺗﻔ ﺴﻴﺮ اﻟﺤﺠﺞ اﻟﻤﻮﺿﻌﻴ ﺔﺜﻮن
ﺒﺎﻳ
ﺘﺮاﺿﻴ ﺔ.ﻳ ﺴﻤﺢ ﻫﺬا ﻟ
اﻓ
وﻇﺎﺋﻒ 139
Machine Translated by Google
ﺑﻘ ﺔ.
ﺜﻠ ﺔ اﻟ ﺴﺎ
ﺜﻞ اﻷﻣ
ﺘﺪﻋﺎءا ت اﻟﻮﻇﺎﺋﻒ ﻫﺬه ﻧﻔ ﺲ اﻹﺧﺮاج ﻣ
ﺳﻴﻜﻮن ﻟﻜﻞ ﻣﻦ اﺳ
ﺘﺨﺪام
ﺘ ﻲﺗﺮﻳﺪ ﻫﺎ ،ﻓﻤﺎ ﻋﻠﻴﻚﺳﻮى اﺳ
ﺘﺮﻓﻴﻦ اﻟﻤﺨﺮﺟﺎ ت اﻟ
ﺘﺪﻋ ﻲ اﻟﻤﺤ
ﺘﻚﺗ ﺴ
ﺘﺨﺪﻣﻪ .ﻃﺎﻟﻤﺎ أن وﻇﻴﻔ ﻻﻳﻬﻢ ﺣ ًﻘﺎ أﺳﻠﻮ ب اﻻ
ﺗﺼﺎل اﻟﺬيﺗ ﺴ
اﻟﻨﻤﻂ اﻟﺬيﺗﺠﺪه أﺳﻬﻞ ﻓ ﻲ اﻟﻔﻬﻢ.
)( description_pet
ﺘﺎن'animal_ :
ﺑﺘﺎن اﻟﻤﻄﻠﻮ
ﺘﺎن اﻟﻤﻮﺿﻌﻴ
)( v description_pet () w TypeError: description_petﻳﻨﻘﺺ اﻟﻮﺳﻴﻄ
ﺜﺎﻣﻦ
140اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺗﻘﺮﻳﺮ أﺳﻤﺎء اﻟﻮﺳﺎﺋﻂ اﻟﻤﻔﻘﻮدة .إذا ﻛﺎﻧ ﺖ ﻫﺬه اﻟﻮﻇﻴﻔ ﺔ ﻓ ﻲ ﻣﻠﻒ ﻣﻨﻔﺼﻞ ،ﻓﻤﻦ
ﺘﻘﺪ إﱃ وﺳﻴﻄﻴﻦ و
ﺒﺮﻧﺎ أن اﻟﻤﻜﺎﻟﻤ ﺔﺗﻔ
ﻳﺨ
ﺘﺢ ﻫﺬا اﻟﻤﻠﻒ وﻗﺮاءة اﻟﻜﻮد اﻟﻮﻇﻴﻔ ﻲ.
ﺑﺸﻜﻞ ﺻﺤﻴﺢ دون اﻟﺤﺎﺟ ﺔ إﱃ ﻓﺑ ﺔ اﻟﻤﻜﺎﻟﻤ ﺔ
ﺘﺎ
ﺘﻤﻞ أن ﻧﻌﻴﺪ ﻛ
اﻟﻤﺤ
ﺒﺮﻧﺎ
ﺗﺨﺗﻌﺪ Pythonﻣﻔﻴﺪةﻷﻧﻬﺎﺗﻘﺮأ رﻣﺰ اﻟﻮﻇﻴﻔ ﺔ ﻟﻨﺎ و
ﺑﺬﻟﻚ ،ﺘﻐﻴﺮا ت واﻟﻮﻇﺎﺋﻒ .إذا ﻗﻤ ﺖ
ﺘﺎج إﱃﺗﻘﺪﻳﻤﻬﺎ .ﻫﺬا داﻓﻊ آﺧﺮ ﻹﻋﻄﺎء أﺳﻤﺎء وﺻﻔﻴ ﺔ ﻟﻠﻤ
ﺘ ﻲ ﻧﺤ
أﺳﻤﺎء اﻟﺤﺠﺞ اﻟ
ﺑﻚ.ﺘﺨﺪم اﻟﺮﻣﺰ اﻟﺨﺎص
ﺜﺮ ﻓﺎﺋﺪة ﻟﻚ وﻷي ﺷﺨﺺ آﺧﺮ ﻗﺪﻳ ﺴ
ﺘﻜﻮن رﺳﺎﺋﻞ ﺧﻄﺄ Pythonأﻛ
ﻓﺴ
ﺑﻘ ﺔ
ﺛﻞﻳﻤﻜﻦ أنﻳ ﺴﺎﻋﺪك ﻓ ﻲ ﻣﻄﺎ
ﺒﻊ ﻣﻤﺎ
ﺘﺒﻴ ًﺮا ﺟﺪًا ﻣﻦ اﻟﻮﺳﻴﻄﺎ ت ،ﻓﻴﺠ ﺐ أنﺗﺤﺼﻞ ﻋﲆﺗ
إذا ﻗﺪﻣ ﺖ ﻋﺪدًا ﻛ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ ﻣﻊﺗﻌﺮﻳﻒ اﻟﻮﻇﻴﻔ ﺔ.ﺘﺪﻋﺎء اﻟﻮﻇﻴﻔ ﺔ
اﺳ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺘﻬﺎ ﻋﲆ اﻟﻘﻤﻴﺺ.
ﺒﺎﻋ
ﺘ ﻲﻳﺠ ﺐ ﻃ
ﺒﻞ اﻟﺤﺠﻢ وﻧﺺ اﻟﺮﺳﺎﻟ ﺔ اﻟ
ﺗﻘﺘ ﺐ وﻇﻴﻔ ﺔﺗ ﺴﻤﻰ )( make_shirt
8-3. T-Shirt:اﻛ
ﺒﻮﻋ ﺔ ﻋﻠﻴﻪ.
ﺒﻊ اﻟﻮﻇﻴﻔ ﺔ ﺟﻤﻠ ﺔﺗﻠﺨﺺ ﺣﺠﻢ اﻟﻘﻤﻴﺺ واﻟﺮﺳﺎﻟ ﺔ اﻟﻤﻄ
ﻳﺠ ﺐ أنﺗﻄ
ﺘﺪﻋﺎء اﻟﻮﻇﻴﻔ ﺔ
ﺑﺎﺳﺘﺨﺪام اﻟﺤﺠﺞ اﻟﻤﻮﺿﻌﻴ ﺔ ﻟﻌﻤﻞ ﻗﻤﻴﺺ .ﻗﻢ
ﺑﺎﺳﺑﺎﻟﻮﻇﻴﻔ ﺔ ﻣﺮة واﺣﺪةﺗﺼﻞ
ا
ﺘﺨﺪام وﺳﻴﻄﺎ ت اﻟﻜﻠﻤﺎ ت اﻷﺳﺎﺳﻴ ﺔ.
ﺑﺎﺳﺛﺎﻧﻴ ﺔﻣﺮة
ﺑﺮﺳﺎﻟ ﺔﺘﺮاﺿ ﻲ
ﺑﺸﻜﻞ اﻓﺒﻴﺮة
ﺑﺤﻴ ﺚﺗﻜﻮن اﻟﻘﻤﺼﺎن ﻛ
ﺘﻌﺪﻳﻞ وﻇﻴﻔ ﺔ )( make_shirt
ﺑﺒﻴﺮة :ﻗﻢ
8-4.اﻟﻘﻤﺼﺎن اﻟﻜ
ﺑﻘﻴﺎسوﻗﻤﻴﺼﺎ ﻣﻦ أي ﺣﺠﻢ
ً ﺘﺮاﺿﻴ ﺔ
ﺑﺮﺳﺎﻟ ﺔ اﻓﺘﻮﺳﻂ اﻟﺤﺠﻢ
وﻗﻤﻴﺼﺎ ﻣ
ً ﺒﻴ ﺮًا
ﻗﻤﻴﺼﺎ ﻛ
ً ﺜﻮن" .اﺻﻨﻊ
ﺑﺎﻳﺗﻘﻮل "أﺣ ﺐ
ﺘﻠﻒ
ﻣﺨ
رﺳﺎﻟ ﺔ.
ﺒﻊ اﻟﻮﻇﻴﻔ ﺔ
ﺑﻠﺪ ﻫﺎ.ﻳﺠ ﺐ أنﺗﻄ
ﺒﻞ اﺳﻢ اﻟﻤﺪﻳﻨ ﺔ و
ﺘ ﻲﺗﻘ
ﺘ ﺐ داﻟ ﺔﺗ ﺴﻤﻰ )( description_cityواﻟ
8-5.اﻟﻤﺪن :اﻛ
ﺘﺮاﺿﻴ ﺔ.
ﺒﻠﺪ ﻗﻴﻤ ﺔ اﻓ
ﺑﺎﻟﺜﻞ أنﺗﻜﻮن رﻳﻜﻴﺎﻓﻴﻚ ﻓ ﻲ أﻳ ﺴﻠﻨﺪا .اﻣﻨﺢ اﻟﻤﻌﻠﻤ ﺔ اﻟﺨﺎﺻ ﺔ
ﺑ ﺴﻴﻄ ﺔ ،ﻣﺟﻤﻠ ﺔ
ﺘﺮاﺿ ﻲ.
ﺒﻠﺪ اﻻﻓ
ﺘﻠﻔ ﺔ ،واﺣﺪة ﻣﻨﻬﺎ ﻋﲆ اﻷﻗﻞ ﻟﻴ ﺴ ﺖ ﻓ ﻲ اﻟ
ﺜﻼ ث ﻣﺪن ﻣﺨ
ﺘﻚ ﻟ
ﺑﻮﻇﻴﻔﺗﺼﻞ
ا
إرﺟﺎع اﻟﻘﻴﻢ
ﺑﺮﻧﺎﻣﺠﻚ.ﺒ ﺴﻂ ﻫﻴﻜﻞ
ﺘ ﻲﻳﻤﻜﻦ أنﺗ
ﺒﺮﻧﺎﻣﺠﻚ إﱃ وﻇﺎﺋﻒ ،واﻟ
ﺜﻴﺮ ﻣﻦ اﻟﻌﻤﻞ اﻟﺸﺎق ﻟ
ﺑﻨﻘﻞ اﻟﻜﺗ ﺴﻤﺢ ﻟﻚ ﻗﻴﻢ اﻹرﺟﺎع
اﻟﻤﻬﺎم 141
Machine Translated by Google
ﺟﻴﻤ ﻲ ﻫﻨﺪرﻳﻜ ﺲ
ﺘﻴﺎرﻳ ﺔ
ﺟﻌﻞ اﻟﺤﺠ ﺔ اﺧ
ﺘﻴﺎر
ﺘﺨﺪﻣﻮن اﻟﻮﻇﻴﻔ ﺔ ﻣﻦ اﺧ
ﺘﻤﻜﻦ اﻷﺷﺨﺎص اﻟﺬﻳﻦﻳ ﺴ
ﺘﻰﻳ
ﺘﻴﺎرﻳ ﺔ ﺣ
ﺑﻌﺾ اﻷﺣﻴﺎنﻳﻜﻮن ﻣﻦ اﻟﻤﻨﻄﻘ ﻲ ﺟﻌﻞ اﻟﺤﺠ ﺔ اﺧﻓﻲ
ﺘﻴﺎرﻳ ﺔ.
ﺘﺮاﺿﻴ ﺔ ﻟﺠﻌﻞ اﻟﻮﺳﻴﻄ ﺔ اﺧ
ﺘﺨﺪام اﻟﻘﻴﻢ اﻻﻓ
ﺗﻘﺪﻳﻢ ﻣﻌﻠﻮﻣﺎ ت إﺿﺎﻓﻴ ﺔ ﻓﻘﻂ إذا أرادوا ذﻟﻚ.ﻳﻤﻜﻨﻚ اﺳ
ﺜﺎﻣﻦ
142اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺒﻨ ﻲ
ﺛﻢﺗﺛ ﺔ ﻣﻦ اﻻﺳﻢ
ﺜﻼﺗﻌﻤﻞ ﻫﺬه اﻟﻮﻇﻴﻔ ﺔ ﻋﻨﺪ إﻋﻄﺎء اﻻﺳﻢ اﻷول واﻷوﺳﻂ واﻷﺧﻴﺮ.ﺗﺄﺧﺬ اﻟﻮﻇﻴﻔ ﺔ اﻷﺟﺰاء اﻟ
ﺗﺤﻮل اﻻﺳﻢ اﻟﻜﺎﻣﻞ إﱃ ﺣﺎﻟ ﺔ اﻟﻌﻨﻮان:
ﺘﻀﺎء و
ﺳﻠ ﺴﻠ ﺔ ﻣﻨﻬﺎ.ﺗﻀﻴﻒ اﻟﻮﻇﻴﻔ ﺔ ﻣ ﺴﺎﻓﺎ ت ﻋﻨﺪ اﻻﻗ
ﺟﻮن ﻟ ﻲ ﻫﻮﻛﺮ
ﺗﺼﺎل
ﺑ ﺔ إذا ﺣﺎوﻟ ﺖ اﻻ
ﺘﻮﺋﻤﺎ إﱃ اﻷﺳﻤﺎء اﻟﻮﺳﻄﻰ ،وﻟﻦﺗﻌﻤﻞ ﻫﺬه اﻟﻮﻇﻴﻔ ﺔ ﻛﻤﺎ ﻫ ﻲ ﻣﻜ
وﻟﻜﻦ ﻟﻴ ﺴ ﺖ ﻫﻨﺎك ﺣﺎﺟ ﺔ دا ً
ﺑﺎﻻﺳﻢ اﻷول واﻻﺳﻢ اﻷﺧﻴﺮ ﻓﻘﻂ.ﺑﻬﺎ
ﺗﺠﺎ ﻫﻞ اﻟﻮﺳﻴﻄ ﺔ ﻣﺎ ﻟﻢ
ﺘﺮاﺿﻴ ﺔ ﻓﺎرﻏ ﺔ و
ﺘﻴﺎرﻳًﺎ ،ﻳﻤﻜﻨﻨﺎ إﻋﻄﺎء اﻟﻮﺳﻴﻄ ﺔ middle_nameﻗﻴﻤ ﺔ اﻓ
ﻟﺠﻌﻞ اﻻﺳﻢ اﻷوﺳﻂ اﺧ
ﺘﺮاﺿﻴ ﺔ ﻟﻼﺳﻢ
ﺘﻌﻴﻴﻦ اﻟﻘﻴﻤ ﺔ اﻻﻓ
ﺑﺑﺪون اﺳﻢ وﺳﻂ ،ﻗﻤﻨﺎﺘﺨﺪم ﻗﻴﻤ ﺔ .ﻟﺠﻌﻞ )( get_formatted_nameﻳﻌﻤﻞ
ﻳﻘﺪم اﻟﻤ ﺴ
اﻷوﺳﻂ إﱃﺳﻠ ﺴﻠ ﺔ ﻓﺎرﻏ ﺔ وﻧﻘﻠﻬﺎ إﱃ ﻧﻬﺎﻳ ﺔ ﻗﺎﺋﻤ ﺔ اﻟﻤﻌﻠﻤﺎ ت:
" "
= full_nameاﻻﺳﻢ_اﻷول + +اﺳﻢ_اﻷﺧﻴﺮ
اﻟﻌﻮدة )( full_name.title
ﺘﻢﺳﺮد ﻫﺬه
ﺋﻤﺎ ،ﻳ
ﺛ ﺔ أﺟﺰاء ﻣﻤﻜﻨ ﺔ .ﻧﻈ ﺮًا ﻟﻮﺟﻮد اﻻﺳﻢ اﻷول واﻷﺧﻴﺮ دا ً
ﺛﻼﺑﻨﺎء اﻻﺳﻢ ﻣﻦﺜﺎل ،ﺗﻢ
ﻓ ﻲ ﻫﺬا اﻟﻤ
ﺘﺮاﺿﻴ ﺔ ﻫ ﻲ
ﺘﻪ اﻻﻓ
ﺘﻌﺮﻳﻒ ،وﻗﻴﻤ اﻟﻤﻌﻠﻤﺎ ت أوﻻ ً ﻓ ﻲﺗﻌﺮﻳﻒ اﻟﻮﻇﻴﻔ ﺔ .اﻻﺳﻢ اﻷوﺳﻂ اﺧ
ﺘﻴﺎري ،ﻟﺬﻟﻚﺗﻢ إدراﺟﻪ أﺧﻴ ﺮًا ﻓ ﻲ اﻟ
ﺳﻠ ﺴﻠ ﺔ ﻓﺎرﻏ ﺔ u.
ﺒﺎر ifواﻵﺧﺮ
ﺘﺘﻢﺗﻮﻓﻴﺮ اﺳﻢ وﺳﻂ ،ﻓﺈن اﻟ ﺴﻠ ﺴﻠ ﺔ اﻟﻔﺎرﻏ ﺔﺗﻔﺸﻞ ﻓ ﻲ اﺧ
إذا ﻟﻢﻳ
ﺗﺼﺎل ﺣﻴ ﺚ
ﺘﻢ إرﺟﺎع اﻻﺳﻢ اﻟﻤﻨ ﺴﻖ إﱃﺳﻄﺮ اﻻ
ﺘﻜﻮن اﻻﺳﻢ اﻟﻜﺎﻣﻞ ﻣﻦ اﻻﺳﻢ اﻷول واﻻﺳﻢ اﻷﺧﻴﺮ ﻓﻘﻂ ،وﻳ
ﺘﻠ ﺔﻳﺪﻳﺮ ث.ﻳ
ﻛ
ﺘﻢﺗﺨﺰﻳﻨﻪ ﻓ ﻲ اﻟﻤﻮﺳﻴﻘ ﻲ
ﻳ
ﺒﻊ.
وﻃ
ﺒﺎﺷﺮ .ﻟﻮ
ﺑﺎﻻﺳﻢ اﻷول واﻷﺧﻴﺮ ﻫﻮ أﻣﺮ ﻣﺘﺪﻋﺎء ﻫﺬه اﻟﻮﻇﻴﻔ ﺔ
اﺳ
ﺘ ﻲﺗﻢ
ﺘﺄﻛﺪ ﻣﻦ أن اﻻﺳﻢ اﻷوﺳﻂ ﻫﻮ اﻟﻮﺳﻴﻄ ﺔ اﻷﺧﻴﺮة اﻟ
ﺘﻌﻴﻦ ﻋﻠﻴﻨﺎ اﻟ
ﺳﻄﺎ ،وﻣﻊ ذﻟﻚ ،ﻳ
ﺘﻮ ً
ﺳﻤﺎ ﻣ
ﺘﺨﺪم ا ً
ﻧﺤﻦ ﻧ ﺴ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ x.ﺑﻖ اﻟﻮﺳﻴﻄﺎ ت اﻟﻤﻮﺿﻌﻴ ﺔ
ﺘﻄﺎ
ﺗﻤﺮﻳﺮ ﻫﺎ ،ﻟﺬا ﻓﺈن Pythonﺳ
وﻇﺎﺋﻒ 143
Machine Translated by Google
ﺟﻴﻤ ﻲ ﻫﻨﺪرﻳﻜ ﺲ
ﺟﻮن ﻟ ﻲ ﻫﻮﻛﺮ
ﺘﺪﻋﺎءا ت
ﺑﺎﺳﺘﺨﺪام ﻣﻊ اﻟ ﺴﻤﺎح
ﺑﻤﻌﺎﻟﺠ ﺔ ﻣﺠﻤﻮﻋ ﺔ واﺳﻌ ﺔ ﻣﻦ ﺣﺎﻻ ت اﻻﺳﺘﻴﺎرﻳ ﺔ ﻟﻠﻮﻇﺎﺋﻒ
ﺗ ﺴﻤﺢ اﻟﻘﻴﻢ اﻻﺧ
ﺑ ﺴﻂ ﻣﺎﻳﻤﻜﻦ.
ﺑﺄاﻟﻮﻇﺎﺋﻒ
إﻋﺎدة اﻟﻘﺎﻣﻮس
ﺜﻞ اﻟﻘﻮاﺋﻢ
ﺒﻴﺎﻧﺎ ت اﻟﻤﻌﻘﺪة ﻣ
ﺑﻤﺎ ﻓ ﻲ ذﻟﻚ اﻟﻤﺰﻳﺪ ﻣﻦ ﻫﻴﺎﻛﻞ اﻟﺘﺎﺟﻬﺎ إﻟﻴﻬﺎ ،
ﺘ ﻲﺗﺤ
ﻳﻤﻜﻦ ﻟﻠﺪاﻟ ﺔ أنﺗﺮﺟﻊ أي ﻧﻮع ﻣﻦ اﻟﻘﻴﻤ ﺔ اﻟ
ﺷﺨﺼﺎ:
ً ﺜﻞ
ﺳﺎﻳﻤ
ﺗﻌﻴﺪ ﻗﺎﻣﻮ ً
ﺜﺎل ،ﺗﺄﺧﺬ وﻇﻴﻔ ﺔ follow ingأﺟﺰا ًء ﻣﻦ اﻻﺳﻢ و
ﺒﻴﻞ اﻟﻤ
واﻟﻘﻮاﻣﻴ ﺲ .ﻋﲆﺳ
ﺘﻢﺗﺨﺰﻳﻦ ﻗﻴﻤ ﺔ
ﺗﺤﺰم ﻫﺬه اﻟﻘﻴﻢ ﻓ ﻲ ﻗﺎﻣﻮس ﻋﲆ u.ﻳ
ﺗﺄﺧﺬ اﻟﻮﻇﻴﻔ ﺔ )( build_personاﻻﺳﻢ اﻷول واﻷﺧﻴﺮ ،و
ﺜﻞ
ﺘﻢ إرﺟﺎع اﻟﻘﺎﻣﻮس اﻟﻜﺎﻣﻞ اﻟﺬيﻳﻤ
ﺘﺎح "last".ﻳ
ﺑﺎﻟﻤﻔ
ﺘﻢﺗﺨﺰﻳﻦ ﻗﻴﻤ ﺔ last_name
ﺘﺎح "first" ،وﻳ
ﺑﺎﻟﻤﻔ
first_name
ﺒﺎﻋ ﺔ اﻟﻘﻴﻤ ﺔ اﻟﻤﻌﺎدة ﻓ ﻲ wﻣﻊ اﻟﺠﺰأﻳﻦ اﻷﺻﻠﻴﻴﻦ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟﻨﺼﻴ ﺔ اﻟﻤﺨﺰﻧ ﺔ اﻵن ﻓ ﻲ ﻗﺎﻣﻮس:
ﺘﻢ ﻃ
ﺗاﻟﺸﺨﺺ ﻓ ﻲ v.
اﻟﻤﻮﺳﻴﻘ ﻲ ")= build_personﺟﻴﻤ ﻲ" " ،ﻫﻨﺪرﻳﻜ ﺲ" ،اﻟﻌﻤﺮ )= 27
ﺒﺎﻋ ﺔ )ﻣﻮﺳﻴﻘ ﻲ(
ﻃ
144اﻟﻔﺼﻞ 8
Machine Translated by Google
ﺘﺪﺧﻴﻦ ﻋﻨﺪﻣﺎﺗﻄﻠ ﺐ
ﻟﻜﻦ ﻫﻨﺎك ﻣﺸﻜﻠ ﺔ واﺣﺪة ﻓ ﻲ ﺣﻠﻘ ﺔ while :ﻟﻢ ﻧﺤﺪد ﺷﺮط إﻧﻬﺎء .أﻳﻦﺗﻀﻊ ﺷﺮط اﻹﻗﻼع ﻋﻦ اﻟ
ﺒﺔ
ﺑﺄﺳﺮع ﻣﺎﻳﻤﻜﻦ ،ﻟﺬﻟﻚﻳﺠ ﺐ أنﺗﻘﺪم ﻛﻞ ﻣﻄﺎﻟﺘﺨﺪم ﻗﺎد ًرا ﻋﲆ اﻹﻗﻼع
ﺳﻠ ﺴﻠ ﺔ ﻣﻦ اﻟﻤﺪﺧﻼ ت؟ ﻧﺮﻳﺪ أنﻳﻜﻮن اﻟﻤ ﺴ
ﺒﺎﺷﺮة إﱃ اﻷﻣﺎم ﻟﻠﺨﺮوج ﻣﻦ اﻟﺤﻠﻘ ﺔ ﻓ ﻲ أي ﻣﻦ اﻟﻤﻮﺟﻬﻴﻦ:
ﻃﺮﻳﻘ ﺔ ﻟﻺﻗﻼع.ﺗﻘﺪمﺗﻌﻠﻴﻤ ﺔ breakﻃﺮﻳﻘ ﺔ ﻣ
اﺣﻴﺎﻧﺎ ﺻﺤﻴﺢ:
اﻟﻤﻬﺎم 145
Machine Translated by Google
ﺗﻴ ﺲ!
ﺒﺎ ،إرﻳﻚ ﻣﺎ
ﻣﺮﺣ ً
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺒﻊ اﻟﻘﻴﻤ ﺔ
ﺒﻠﺪ ،واﻃ
ﺛ ﺔ أزواج ﻋﲆ اﻷﻗﻞ ﻣﻦ اﻟﻤﺪﻳﻨ ﺔ واﻟ
ﺛﻼﺘﻚ ﻣﻊ
ﺑﻮﻇﻴﻔﺗﺼﻞ
ا
ﻋﺎد.
ﺒﻮم .إذاﺗﻀﻤﻦﺳﻄﺮ
ﺘﺨﺰﻳﻦ ﻋﺪد اﻟﻤ ﺴﺎرا ت ﻓ ﻲ اﻷﻟ
ﺑﺗ ﺴﻤﺢ ﻟﻚ
ﺘﻴﺎرﻳ ﺔ إﱃ )( make_album
أﺿﻒ ﻣﻌﻠﻤ ﺔ اﺧ
ﺑﺈﺟﺮاء ﻣﻜﺎﻟﻤ ﺔ وﻇﻴﻔ ﺔ ﺟﺪﻳﺪة واﺣﺪةﺒﻮم .ﻗﻢ
ﺘﺪﻋﺎء ﻗﻴﻤ ﺔ ﻟﻌﺪد اﻟﻤ ﺴﺎرا ت ،أﺿﻒ ﻫﺬه اﻟﻘﻴﻤ ﺔ إﱃ ﻗﺎﻣﻮس اﻷﻟ
اﻻﺳ
ﺒﻮم.
ﺘﻀﻤﻦ ﻋﺪد اﻟﻤ ﺴﺎرا ت اﻟﻤﻮﺟﻮدة ﻓ ﻲ اﻷﻟ
ﻋﲆ اﻷﻗﻞﺗ
ﺜﺎﻣﻦ
146اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺗﻤﺮﻳﺮ ﻗﺎﺋﻤ ﺔ
ﺜﻞ
ﺜﺮﺗﻌﻘﻴﺪًا ،ﻣ
ﺑﺄﺳﻤﺎء أو أرﻗﺎم أو ﻛﺎﺋﻨﺎ ت أﻛﺒﺎ أﻧﻪ ﻣﻦ اﻟﻤﻔﻴﺪﺗﻤﺮﻳﺮ ﻗﺎﺋﻤ ﺔ إﱃ داﻟ ﺔ ،ﺳﻮاء ﻛﺎﻧ ﺖ ﻗﺎﺋﻤ ﺔ
ﺘﺠﺪ ﻏﺎﻟ ً
ﺳ
ﺘﺨﺪم اﻟﺪوال
ﺘﻮﻳﺎ ت اﻟﻘﺎﺋﻤ ﺔ .دﻋﻨﺎ ﻧ ﺴ
ﺒﺎﺷﺮ إﱃ ﻣﺤ
اﻟﻘﻮاﻣﻴ ﺲ .ﻋﻨﺪﺗﻤﺮﻳﺮ ﻗﺎﺋﻤ ﺔ إﱃ وﻇﻴﻔ ﺔ ،ﺗﺤﺼﻞ اﻟﻮﻇﻴﻔ ﺔ ﻋﲆ وﺻﻮل ﻣ
ﺜﺮ ﻛﻔﺎءة.
ﻟﺠﻌﻞ اﻟﻌﻤﻞ ﻣﻊ اﻟﻘﻮاﺋﻢ أﻛ
أﺣﻴﻴﻴﻴﻴﻴﻴ ﻲ )defreet_usersأﺳﻤﺎء(:
ﺘﺨﺪم ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ"" ".
ﺑ ﺴﻴﻄ ﺔ ﻟﻜﻞ ﻣ ﺴﺒﻊﺗﺤﻴ ﺔ
"""اﻃ
ﺑﺎﻷﺳﻤﺎء:ﻋﻦ اﻻﺳﻢ
ﺑﻬﺎﺘ ﻲﻳﺨﺰن
ﺑﺎﻷﺳﻤﺎء اﻟﺘﻮﻗﻊ ﻗﺎﺋﻤ ﺔ
ﺘﺨﺪﻣﻴﻦ ﻟﺬﻟﻚﻳ
ﺗﺤﻴ ﺔ ﻣ ﺴ
ﻧﺤﺪد )(
ﺘﺨﺪﻣﻴﻦ
ﺑﺎﻟﻤ ﺴﺘﺨﺪم .ﻧﺤﺪد ﻓ ﻲ uﻗﺎﺋﻤ ﺔ
ﺒﻊﺗﺤﻴ ﺔ ﻟﻜﻞ ﻣ ﺴ
ﺗﻄﺘﻠﻘﺎ ﻫﺎ و
ﺘ ﻲﺗ
ﺒﺮ اﻟﻘﺎﺋﻤ ﺔ اﻟ
ﺘﻜﺮر اﻟﻮﻇﻴﻔ ﺔ ﻋ
أﺳﻤﺎء اﻟﻤﻌﻠﻤﺎ ت .ﺗ
ﺘﻨﺎ:
ﺘﺪﻋﺎء وﻇﻴﻔ
ﺘﺨﺪﻣﻴﻦ إﱃ ()reet_usersﻓ ﻲ اﺳ
ﺛﻢ ﻧﻤﺮر ﻗﺎﺋﻤ ﺔ أﺳﻤﺎء اﻟﻤ ﺴ
ﺒﺎ ﻫﺎﻧﺎ!
ﻣﺮﺣ
ﺒﺎﺗﺎي!ﻣﺮﺣ
ﺒﺎﻳﺎ ﻣﺎرﻏﻮ!
ﻣﺮﺣ
ﺘﻢ
ﺘﺨﺪﻣﻮن.ﻳ
ﺘ ﻲﻳﺮﺳﻠﻬﺎ اﻟﻤ ﺴ
ﺘﺼﺎﻣﻴﻢ اﻟ
ﺑﻌﺎد ﻣﻦ اﻟ
ﺛﻴ ﺔ اﻷ
ﺛﻼﺒﻮﻋ ﺔ
ﺑﺈﻧﺸﺎء ﻧﻤﺎذج ﻣﻄﺒﺎرك ﺷﺮﻛ ﺔﺗﻘﻮم
ﺘﺿﻊ ﻓ ﻲ اﻋ
ﺑﺬﻟﻚﺘﺎﻟ ﻲ
ﺘﻢ ﻧﻘﻠﻬﺎ إﱃ ﻗﺎﺋﻤ ﺔ ﻣﻨﻔﺼﻠ ﺔ.ﻳﻘﻮم اﻟﻜﻮد اﻟ
ﺘﻬﺎﻳ
ﺒﺎﻋ
ﺑﻌﺪ ﻃ
ﺘﻬﺎ ﻓ ﻲ ﻗﺎﺋﻤ ﺔ ،و
ﺒﺎﻋ
ﺘﺎج إﱃ ﻃ
ﺘ ﻲﺗﺤ
ﺘﺼﻤﻴﻤﺎ ت اﻟ
ﺗﺨﺰﻳﻦ اﻟ
ﺘﺨﺪام اﻟﻮﻇﺎﺋﻒ:
ﺑﺪون اﺳ
Models.py ﺘﻬﺎ.
ﺒﺎﻋ
ﺘﺎج إﱃ ﻃ
ﺘ ﻲﺗﺤ
ﺘﺼﻤﻴﻤﺎ ت اﻟ
ﺒﻌﺾ اﻟ
ﺑﺑﺪأ
#ا
_printing ]'uninted_designs = ['iphone case'، 'robot pendant'، 'dodecahedron
ﺘﻤﻠ ﺔ ][ =
ﻧﻤﺎذج ﻣﻜ
اﻟﻤﻬﺎم 147
Machine Translated by Google
ﺘﻤﻠ ﺔ.
#ﻋﺮض ﺟﻤﻴﻊ اﻟﻨﻤﺎذج اﻟﻤﻜ
ﺘﺎﻟﻴ ﺔ(":
ﺒﺎﻋ ﺔ اﻟﻨﻤﺎذج اﻟ
ﺗﻤ ﺖ ﻃ
ﺒﺎﻋ ﺔ ("\ n
ﻃ
ﺘﻤﻠ ﺔ:
ﺘﻤﻞ ﻓ ﻲ اﻟﻨﻤﺎذج اﻟﻤﻜ
ﻟﻠﻨﻤﻮذج اﻟﻤﻜ
ﺘﻤﻞ(
ﺒﺎﻋ ﺔ )ﻧﻤﻮذج_ﻣﻜ
ﻃ
ﺘﻐﻴﺮ ﻣﻌﻈﻢ
ﺘﻴﻦ ،ﻛﻞ ﻣﻨﻬﻤﺎﺗﺆدي وﻇﻴﻔ ﺔ واﺣﺪة ﻣﺤﺪدة .ﻟﻦﻳ
ﺑ ﺔ وﻇﻴﻔ
ﺘﺎ
ﻳﻤﻜﻨﻨﺎ إﻋﺎدةﺗﻨﻈﻴﻢ ﻫﺬا اﻟﻜﻮد ﻋﻦ ﻃﺮﻳﻖ ﻛ
ﺜﺎﻧﻴ ﺔ
ﺘﻠﺨﺺ اﻟﻮﻇﻴﻔ ﺔ اﻟ
ﺘﺼﻤﻴﻤﺎ ت ،وﺳ
ﺒﺎﻋ ﺔ اﻟ
ﺘﻌﺎﻣﻞ اﻟﻮﻇﻴﻔ ﺔ اﻷوﱃ ﻣﻊ ﻃ
ﺘﺜﺮ ﻛﻔﺎءة.ﺳ
اﻟﻜﻮد ؛ ﻧﺤﻦ ﻓﻘﻂ ﻧﺠﻌﻠﻪ أﻛ
ﺘ ﻲﺗﻢ إﺟﺮاؤ ﻫﺎ:
ﺒﻮﻋﺎ ت اﻟ
اﻟﻤﻄ
ﺒﻮﻋ ﺔ:
ﺘﺼﻤﻴﻤﺎ ت ﻏﻴﺮ اﻟﻤﻄ
ﺛﻨﺎء اﻟ
أ
)( current_design = uninted_designs.pop
ﺘﻤﻠ ﺔ_ﻧﻤﺎذج(:
)v def show_completed_modelsﻣﻜ
ﺘﻬﺎ"" ".
ﺒﺎﻋ
ﺘ ﻲﺗﻢ ﻃ
"""إﻇﻬﺎر ﻛﺎﻓ ﺔ اﻟﻨﻤﺎذج اﻟ
ﺘﺎﻟﻴ ﺔ(":
ﺒﺎﻋ ﺔ اﻟﻨﻤﺎذج اﻟ
ﺗﻤ ﺖ ﻃ
ﺒﺎﻋ ﺔ ("\ n
ﻃ
ﺘﻤﻠ ﺔ:
ﺘﻤﻞ ﻓ ﻲ اﻟﻨﻤﺎذج اﻟﻤﻜ
ﻟﻠﻨﻤﻮذج اﻟﻤﻜ
ﺘﻤﻞ(
ﺒﺎﻋ ﺔ )ﻧﻤﻮذج_ﻣﻜ
ﻃ
ﺜﺎﻣﻦ
148اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺘﻤﻠ ﺔ.
ﺑﺎﻟﻨﻤﺎذج اﻟﻤﻜﺘﻬﺎ وﻗﺎﺋﻤ ﺔ
ﺒﺎﻋ
ﺘ ﻲﻳﺠ ﺐ ﻃ
ﺘﺼﺎﻣﻴﻢ اﻟ
ﺑﺎﻟﺘﻴﻦ :ﻗﺎﺋﻤ ﺔ
ﺑﻤﻌﻠﻤ
ﻧﺤﺪد ﻓ ﻲ uاﻟﻮﻇﻴﻔ ﺔ )( print_models
ﺒﻮﻋ ﺔ وﻣﻞء
ﺘﺼﻤﻴﻤﺎ ت ﻏﻴﺮ اﻟﻤﻄ
ﺒﺎﻋ ﺔ ﻛﻞﺗﺼﻤﻴﻢ ﻋﻦ ﻃﺮﻳﻖ إﻓﺮاغ ﻗﺎﺋﻤ ﺔ اﻟ
ﺘﻴﻦ ،ﺗﺤﺎﻛ ﻲ اﻟﻮﻇﻴﻔ ﺔ ﻃ
ﺗﻴﻦ اﻟﻘﺎﺋﻤ
ﺑﺎﻟﻨﻈﺮ إﱃ ﻫﺎ
ﺘﻤﻠ ﺔ.
ﺑﻤﻌﺎﻣﻞ واﺣﺪ :ﻗﺎﺋﻤ ﺔ اﻟﻨﻤﺎذج اﻟﻤﻜ
ﺘﻤﻠ ﺔ .ﻓ ﻲ vﻧﺤﺪد اﻟﻮﻇﻴﻔ ﺔ )( show_completed_models
ﻗﺎﺋﻤ ﺔ اﻟﻨﻤﺎذج اﻟﻤﻜ
ﺘﻪ.
ﺒﺎﻋ
ﺑﺎﻟﻨﻈﺮ إﱃ ﻫﺬه اﻟﻘﺎﺋﻤ ﺔ ،ﻳﻌﺮض )( show_completed_modelsاﺳﻢ ﻛﻞ ﻧﻤﻮذجﺗﻤ ﺖ ﻃ
ﺘﻤﻜﻦ ﻣﻦ
ﺘﻰﺗ
ﺘﻤﻠ ﺔ ﺣ
ﺛﻢ ﻧ ﺴﻤ ﻲ )( show_completed_modelsوﻧﻤﺮر ﻟﻬﺎ ﻗﺎﺋﻤ ﺔ اﻟﻨﻤﺎذج اﻟﻤﻜﺘﺼﺎﻣﻴﻢ.
ﺒﺎﻋ ﺔ اﻟ
ﻳﺤﺎﻛ ﻲ ﻃ
ﺑﺪونﺘﻰ
ﺑﻘﺮاءة ﻫﺬا اﻟﺮﻣﺰ وﻓﻬﻤﻪ ،ﺣﺘﻬﺎ.ﺗ ﺴﻤﺢ أﺳﻤﺎء اﻟﻮﻇﺎﺋﻒ اﻟﻮﺻﻔﻴ ﺔ ﻟﻶﺧﺮﻳﻦ
ﺒﺎﻋ
ﺘ ﻲﺗﻤ ﺖ ﻃ
ﺑﻼغ ﻋﻦ اﻟﻨﻤﺎذج اﻟ
اﻹ
ﺗﻌﻠﻴﻘﺎ ت.
ﺘﺼﻤﻴﻤﺎ ت
ﺒﺎﻋ ﺔ اﻟﻤﺰﻳﺪ ﻣﻦ اﻟ
ﺘﺠﻨﺎ إﱃ ﻃ
ﺑﺪون وﻇﺎﺋﻒ .إذا اﺣﺘﻤﺪﻳﺪ واﻟﺼﻴﺎﻧ ﺔ ﻣﻦ اﻹﺻﺪار
ﺒﺮﻧﺎﻣﺞ أﺳﻬﻞ ﻓ ﻲ اﻟ
ﻫﺬا اﻟ
ﺑﺤﺎﺟ ﺔ إﱃﺗﻌﺪﻳﻞ ،ﻓﻴﻤﻜﻨﻨﺎﺗﻐﻴﻴﺮﺒﺎﻋ ﺔ
ﺘﺪﻋﺎء )( print_modelsﻣﺮة أﺧﺮى .إذا أدرﻛﻨﺎ أن ﻛﻮد اﻟﻄ
ﺒ ﺴﺎﻃ ﺔ اﺳ
ﺑﻻﺣ ًﻘﺎ ،ﻓﻴﻤﻜﻨﻨﺎ
ﺜﺮ ﻓﺎﻋﻠﻴ ﺔ ﻣﻦ اﻻﺿﻄﺮار إﱃ
ﺘﻘﻨﻴ ﺔ أﻛ
ﺘﺪﻋﺎء اﻟﻮﻇﻴﻔ ﺔ ﻓﻴﻪ .ﻫﺬه اﻟ
ﺘﻢ اﺳ
ﺗﻨﺎ ﻓ ﻲ ﻛﻞ ﻣﻜﺎنﻳ
ﺘﺤﺪ ثﺗﻐﻴﻴﺮا
اﻟﻜﻮد ﻣﺮة واﺣﺪة ،وﺳ
ﺒﺮﻧﺎﻣﺞ.
ﺑﺸﻜﻞ ﻣﻨﻔﺼﻞ ﻓ ﻲ ﻋﺪة أﻣﺎﻛﻦ ﻓ ﻲ اﻟﺗﺤﺪﻳ ﺚ اﻟﻜﻮد
ﺒﺎﻋ ﺔ ﻛﻞ
ﺑﻄ ﺜﺎل أ ً
ﻳﻀﺎ ﻓﻜﺮة أن ﻛﻞ وﻇﻴﻔ ﺔﻳﺠ ﺐ أنﻳﻜﻮن ﻟﻬﺎ وﻇﻴﻔ ﺔ واﺣﺪة ﻣﺤﺪدة.ﺗﻘﻮم اﻟﻮﻇﻴﻔ ﺔ اﻷوﱃ ﻳﻮﺿﺢ ﻫﺬا اﻟﻤ
ﺘﻴﻦ .إذا
ﺘﺎ اﻟﻮﻇﻴﻔ
ﺑﻜﻠﺘﺨﺪام وﻇﻴﻔ ﺔ واﺣﺪة ﻟﻠﻘﻴﺎم
ﺜﺮ ﻓﺎﺋﺪة ﻣﻦ اﺳ
ﺘﻤﻠ ﺔ .ﻫﺬا أﻛ
ﺜﺎﻧﻴ ﺔ اﻟﻨﻤﺎذج اﻟﻤﻜ
ﺗﻌﺮض اﻟﻮﻇﻴﻔ ﺔ اﻟ
ﺗﺼﻤﻴﻢ ،و
ﺘﻴﻦ.
ﺘﻠﻔ ﺔ ،ﻓﺤﺎولﺗﻘ ﺴﻴﻢ اﻟﻜﻮد إﱃ وﻇﻴﻔ
ﺑﺎﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻤﻬﺎم اﻟﻤﺨﺘ ﺐ داﻟ ﺔ وﻻﺣﻈ ﺖ أن اﻟﻮﻇﻴﻔ ﺔﺗﻘﻮم
ﻛﻨ ﺖﺗﻜ
ﺘﺪﻋﺎء داﻟ ﺔ ﻣﻦ وﻇﻴﻔ ﺔ أﺧﺮى ،ﻣﻤﺎ ﻗﺪﻳﻜﻮن ﻣﻔﻴﺪًا ﻋﻨﺪﺗﻘ ﺴﻴﻢ ﻣﻬﻤ ﺔ ﻣﻌﻘﺪة إﱃﺳﻠ ﺴﻠ ﺔ ﻣﻦ
ﺋﻤﺎ اﺳ
ﺗﺬﻛﺮ أﻧﻪﻳﻤﻜﻨﻚ دا ً
اﻟﺨﻄﻮا ت.
اﻟﻤﻬﺎم 149
Machine Translated by Google
ﺒﺎﻋ ﺔ ﺟﻤﻴﻊ
ﺑﻄﺑﻖ .ﻗﺪﺗﻘﺮر أﻧﻪ ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ ﻗﻴﺎﻣﻚ
ﺜﺎل اﻟ ﺴﺎ
ﺘﻤﻠ ﺔ ،ﻛﻤﺎ ﻓ ﻲ اﻟﻤ
ﺗﻌﻤﻞ ﻋﲆ ﻧﻘﻠﻬﺎ إﱃ ﻗﺎﺋﻤ ﺔ اﻟﻨﻤﺎذج اﻟﻤﻜ
ﺑﻨﻘﻞ ﺟﻤﻴﻊﺗﻚ .وﻟﻜﻦ ﻧﻈ ﺮًاﻷﻧﻚ ﻗﻤ ﺖ
ﺒﻮﻋ ﺔ ﻟ ﺴﺠﻼ
ﺘﺼﺎﻣﻴﻢ ﻏﻴﺮ اﻟﻤﻄ
ﺑﺎﻟﻘﺎﺋﻤ ﺔ اﻷﺻﻠﻴ ﺔ ﻟﻠﺘﻔﺎظ
ﺘﺼﻤﻴﻤﺎ ت ،ﻓﺈﻧﻚﺗﺮﻳﺪ اﻻﺣ
اﻟ
ﺘﺼﻤﻴﻢ ﻣﻦ uninted_designs ،ﻓﺈن اﻟﻘﺎﺋﻤ ﺔ ﻓﺎرﻏ ﺔ اﻵن ،واﻟﻘﺎﺋﻤ ﺔ اﻟﻔﺎرﻏ ﺔ ﻫ ﻲ اﻹﺻﺪار اﻟﻮﺣﻴﺪ اﻟﺬي ﻟﺪﻳﻚ ؛
أﺳﻤﺎء اﻟ
ﺘﻤﺮﻳﺮ اﻟﻮﻇﻴﻔ ﺔ ﻧ ﺴﺨ ﺔ ﻣﻦ اﻟﻘﺎﺋﻤ ﺔ ،وﻟﻴ ﺲ اﻟﻨ ﺴﺨ ﺔ اﻷﺻﻠﻴ ﺔ.
ﺑذ ﻫ ﺐ اﻷﺻﻞ .ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔ ،ﻳﻤﻜﻨﻚ ﻣﻌﺎﻟﺠ ﺔ ﻫﺬه اﻟﻤﺸﻜﻠ ﺔ
ﺛﺮ أيﺗﻐﻴﻴﺮا تﺗﺠﺮﻳﻬﺎ اﻟﻮﻇﻴﻔ ﺔ ﻋﲆ اﻟﻘﺎﺋﻤ ﺔ ﻋﲆ اﻟﻨ ﺴﺨ ﺔ ﻓﻘﻂ ،ﻣﻊﺗﺮك اﻟﻘﺎﺋﻤ ﺔ اﻷﺻﻠﻴ ﺔﺳﻠﻴﻤ ﺔ.
ﺘﺆﺳ
ﺜﻞ ﻫﺬا:
ﻳﻤﻜﻨﻚ إرﺳﺎل ﻧ ﺴﺨ ﺔ ﻣﻦ اﻟﻘﺎﺋﻤ ﺔ إﱃ وﻇﻴﻔ ﺔ ﻣ
ﺘﻤﻠ ﺔ(
print_models (uninted_designs [:] ،ﻧﻤﺎذج_ﻣﻜ
ﺘﺪاد
ﺘﻠﻘﻰ اﻻﻣ
ﺑﻌﻤﻠﻬﺎﻷﻧﻬﺎ ﻻﺗﺰالﺗﻳﻤﻜﻦ ﻟﻠﺪاﻟ ﺔ )( print_modelsاﻟﻘﻴﺎم
ﺒﻮﻋ ﺔ ،
ﺘﺼﻤﻴﻤﺎ ت اﻷﺻﻠﻴ ﺔ ﻏﻴﺮ اﻟﻤﻄ
ﺘﺨﺪم ﻧ ﺴﺨ ﺔ ﻣﻦ ﻗﺎﺋﻤ ﺔ اﻟ
ﺒﻮﻋ ﺔ .ﻟﻜﻦ ﻫﺬه اﻟﻤﺮةﺗ ﺴ
ﺘﺼﺎﻣﻴﻢ ﻏﻴﺮ اﻟﻤﻄ
أﺳﻤﺎء ﺟﻤﻴﻊ اﻟ
ﺒﻮﻋ ﺔ ﻛﻤﺎ ﻓﻌﻠ ﺖ ﻣﻦ
ﺑﺄﺳﻤﺎء اﻟﻨﻤﺎذج اﻟﻤﻄﺘﻤﻠ ﺔ
ﺘﻤﻸ ﻗﺎﺋﻤ ﺔ اﻟﻨﻤﺎذج اﻟﻤﻜ
ﺒﻮﻋ ﺔ اﻟﻔﻌﻠﻴ ﺔ .ﺳ
ﺘﺼﺎﻣﻴﻢ ﻏﻴﺮ اﻟﻤﻄ
وﻟﻴ ﺲ ﻗﺎﺋﻤ ﺔ اﻟ
ﺑﺎﻟﻮﻇﻴﻔ ﺔ.ﺛﺮ
ﺘﺄ
ﺒﻮﻋ ﺔ ﻟﻦﺗ
ﺘﺼﺎﻣﻴﻢ ﻏﻴﺮ اﻟﻤﻄ
ﺒﻞ ،ﻟﻜﻦ اﻟﻘﺎﺋﻤ ﺔ اﻷﺻﻠﻴ ﺔ ﻟﻠ
ﻗ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺒﻊ اﺳﻢ
ﺗﻄﺑﺄﺳﻤﺎء اﻟ ﺴﺎﺣﺮ .ﻣﺮر اﻟﻘﺎﺋﻤ ﺔ إﱃ وﻇﻴﻔ ﺔﺗ ﺴﻤﻰ show_magicians () ،8-9.اﻟ ﺴﺤﺮة :ﺿﻊ ﻗﺎﺋﻤ ﺔ
ﻛﻞﺳﺎﺣﺮ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ.
ﺘﻤﺮﻳﻦ 8-9.
ﺑﺮﻧﺎﻣﺠﻚ ﻣﻦ اﻟﺑﻨ ﺴﺨ ﺔ ﻣﻦﺑﺪأ
8-10. Great Magicians:ا
ﺑـﺗﺼﻞ
ﺒﺎرة اﻟﻌﻈﻴﻢ إﱃ اﺳﻢ ﻛﻞﺳﺎﺣﺮ .ا
ﺑﺈﺿﺎﻓ ﺔ ﻋﺗﻌﺪل ﻗﺎﺋﻤ ﺔ اﻟ ﺴﺤﺮة
ﺘ ﺐ وﻇﻴﻔ ﺔﺗ ﺴﻤﻰ )( make_great
اﻛ
ﺑﺎﻟﻔﻌﻞ.ﺘﺮى أن اﻟﻘﺎﺋﻤ ﺔ ﻗﺪﺗﻢﺗﻌﺪﻳﻠﻬﺎ
)( show_magiciansﻟ
ﺜﺎﻣﻦ
150اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺘﺰا
ﺑﻴ ﺒﻘ ﺔ(:
*( def make_pizzaاﻟﻄ
ﺒﻬﺎ"" ".
ﺘ ﻲﺗﻢ ﻃﻠ
ﺒﻊ ﻗﺎﺋﻤ ﺔ اﻹﺿﺎﻓﺎ ت اﻟ
"""اﻃ
ﺒﻘ ﺔ(
ﺒﺎﻋ ﺔ )اﻟﻄ
ﻃ
ﺒﺮوﻧ ﻲ"(
ﺑﻴ")make_pizza
ﺒﻨ ﺔ إﺿﺎﻓﻴ ﺔ"(
")make_pizzaﻓﻄﺮ" " ،ﻓﻠﻔﻞ أﺧﻀﺮ" " ،ﺟ
ﺒﺮ ﻫﺎ
ﺑﺤﻠﻘ ﺔﺗﻤﺮ ﻋ
ﺒﺪالﺗﻌﻠﻴﻤ ﺔ print
ﺘاﻵنﻳﻤﻜﻨﻨﺎ اﺳ
ﺒﻬﺎ:
ﺘﻢ ﻃﻠ
ﺘ ﻲﻳ
ﺘﺰا اﻟ
ﺒﻴﺗﺼﻒ اﻟ
ﻗﺎﺋﻤ ﺔ اﻹﺿﺎﻓﺎ ت و
ﺒﻘ ﺔ(:
*( def make_pizzaاﻟﻄ
ﺘ ﻲ ﻧﺤﻦ ﻋﲆ وﺷﻚ ﺻﻨﻌﻬﺎ"" ".
ﺘﺰا اﻟ
ﺒﻴ"""ﻟﺨﺺ اﻟ
ﺘﺎﻟﻴ ﺔ(":
ﺑﺎﻹﺿﺎﻓﺎ ت اﻟﺘﺰا
ﺑﻴﺒﺎﻋ ﺔ ("\ nﺻﻨﻊ
ﻃ
ﺒﻘ ﺔ:
ﺒ ﺔ اﻷوﱃ ﻓ ﻲ اﻟﻄ
ﺗﺘﻞ اﻟﻤﺮ
ﺘﺤﻟ
ﺘﺼﺪر(
ﺗﺒﺎﻋ ﺔ ("-" +
ﻃ
ﺒﺮوﻧ ﻲ"(
ﺑﻴ")make_pizza
ﺒﻨ ﺔ إﺿﺎﻓﻴ ﺔ"(
")make_pizzaﻓﻄﺮ" " ،ﻓﻠﻔﻞ أﺧﻀﺮ" " ،ﺟ
ﺒﺮوﻧ ﻲ
ﺑﻴﺘﺎﻟﻴ ﺔ- :
ﺑﺎﻹﺿﺎﻓﺎ ت اﻟﺘﺰا
ﺑﻴﺻﻨﻊ
ﺒﻨ ﺔ اﺿﺎﻓﻴ ﺔ
-ﻓﻠﻔﻞ اﺧﻀﺮ -ﺟ
اﻟﻤﻬﺎم 151
Machine Translated by Google
ﺘﻌ ﺴﻔﻴ ﺔ
ﺑﻴﻦ اﻟﺤﺠﺞ اﻟﻤﻮﺿﻌﻴ ﺔ واﻟاﻟﺨﻠﻂ
ﺘﺰا ،ﻓﻬﺬا
ﺒﻴﺘﺎج إﱃ أﺧﺬ ﺣﺠﻢ ﻟﻠ
ﺜﺎل ،إذا ﻛﺎﻧ ﺖ اﻟﻮﻇﻴﻔ ﺔﺗﺤ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺒﻞ إﺿﺎﻓﺎ ت اﻟﻤﻌﻠﻤ ﺔ *:
ﺗ ﻲ اﻟﻤﻌﻠﻤ ﺔ ﻗ
ﻳﺠ ﺐ أنﺗﺄ
ﺘ ﻲ ﻧﺤﻦ ﻋﲆ وﺷﻚ
ﺘﺰا اﻟ
ﺒﻴﺒﻘ ﺔ اﻟﻌﻠﻴﺎ(""" :ﻟﺨﺺ اﻟ
)def make_pizzaاﻟﺤﺠﻢ * ،اﻟﻄ
ﺻﻨﻌﻬﺎ"" ".
"
ﺘﺎﻟﻴ ﺔ") :
ﺑﻮﺻ ﺔ ﻣﻊ اﻹﺿﺎﻓﺎ ت اﻟ
أﻋﲆ(
ﺑﺤﺠﻢ
(" - "+
ﺘﺰا
ﺑﻴ
"+ﺔ
ﺒﺎﻋ)اﻟﺤﺠﻢ(ﻃ
ﺒﻘ ﺔ:
اﻟﻄ
strﻓ +ﻲ a
ﻷوﱃﺻﻨﻊ
\"( ﺔ ا
ﺒﺗاﻟﻤﺮ
ﺘﻞ n
ﺒﺎﻋ ﺔ
ﺘﺤ
ﻟﻃ
ﺒﺮوﻧ ﻲ
ﺑﻴﺘﺎﻟﻴ ﺔ- :
ﺘﺰا ﻣﻘﺎس 16إﻧ ﺶ ﻣﻊ اﻹﺿﺎﻓﺎ ت اﻟ
ﺑﻴﻋﻤﻞ
ﺒﻨ ﺔ اﺿﺎﻓﻴ ﺔ
-ﻓﻠﻔﻞ اﺧﻀﺮ -ﺟ
ﺘﻌ ﺴﻔﻴ ﺔ
ﺋﻴ ﺴﻴ ﺔ اﻟ
ﺘﺨﺪام وﺳﻴﻄﺎ ت اﻟﻜﻠﻤﺎ ت اﻟﺮ
اﺳ
ﺜﺎﻣﻦ
152اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺘﺎﻳﻦ" ،
ﺒﺮ ت" " ،أﻳﻨﺸ
")user_profile = build_profileأﻟ
ﺘﻮن" ،
ﺑﺮﻳﻨ ﺴ
اﻟﻤﻮﻗﻊ ="
اﻟﻤﺠﺎل ="اﻟﻔﻴﺰﻳﺎء"(
ﺘﺨﺪم(
ﺒﺎﻋ ﺔ )ﻣﻠﻒﺗﻌﺮﻳﻒ اﻟﻤ ﺴ
ﻃ
ﺋﻴ ﺴﻴ ﺔ
ﺘﺎﻳﻦ" ،وزوﺟ ﻲ اﻟﻘﻴﻤ ﺔ اﻟﺮ
ﺒﺮ ت" ،واﻻﺳﻢ اﻷﺧﻴﺮ "أﻳﻨﺸ
ﻧ ﺴﻤ ﻲ build_profile () ،وﻧﻤﺮره اﻻﺳﻢ اﻷول "أﻟ
ﺒﻊ
ﺘﺨﺪم وﻧﻄ
ﺘﻌﺮﻳﻒ اﻟﺬيﺗﻢ إرﺟﺎﻋﻪ ﻓ ﻲ ﻣﻠﻒﺗﻌﺮﻳﻒ اﻟﻤ ﺴ
ﺘﺨﺰﻳﻦ ﻣﻠﻒ اﻟ
ﺑﺘﻮن" واﻟﺤﻘﻞ ="ﻓﻴﺰﻳﺎء" .ﻧﻘﻮم
ﺑﺮﻳﻨ ﺴ
اﻟﻤﻮﻗﻊ ="
ﺘﺨﺪم:
ﻣﻠﻒﺗﻌﺮﻳﻒ اﻟﻤ ﺴ
ﺘﺨﺪم و ،
ﺘﻮي اﻟﻘﺎﻣﻮس اﻟﺬيﺗﻢ إرﺟﺎﻋﻪ ﻋﲆ اﻻﺳﻢ اﻷول واﻷﺧﻴﺮ ﻟﻠﻤ ﺴ
ﻳﺤ
ﺘﺎح اﻹﺿﺎﻓﻴ ﺔ
ﺑﻐﺾ اﻟﻨﻈﺮ ﻋﻦ ﻋﺪد أزواج ﻗﻴﻤ ﺔ اﻟﻤﻔﺘﻌﻤﻞ اﻟﻮﻇﻴﻔ ﺔ ﻓ ﻲ ﻫﺬه اﻟﺤﺎﻟ ﺔ ،اﻟﻤﻮﻗﻊ وﻣﺠﺎل اﻟﺪراﺳ ﺔ أ ً
ﻳﻀﺎ.ﺳ
ﺘﺪﻋﺎء اﻟﻮﻇﻴﻔ ﺔ.
ﺘﻮﻓﺮة ﻓ ﻲ اﺳ
اﻟﻤ
ﺑ ﺔ اﻟﺪاﻻ ت اﻟﺨﺎﺻ ﺔ
ﺘﺎ
ﺘﻠﻔ ﺔ ﻋﻨﺪ ﻛ
ﺑﻌﺪة ﻃﺮق ﻣﺨﺘﻌ ﺴﻔﻴ ﺔ
ﺋﻴ ﺴﻴ ﺔ واﻟﻘﻴﻢ اﻟ
ﻳﻤﻜﻨﻚ ﻣﺰج اﻟﻘﻴﻢ اﻟﻤﻮﺿﻌﻴ ﺔ واﻟﻜﻠﻤﺎ ت اﻟﺮ
ﺒﺮﻣﺠﻴ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺒﺪأ ﻓ ﻲ ﻗﺮاءة اﻟ
ﺜﻴ ﺮًا ﻋﻨﺪﻣﺎﺗ
ﺘﺮا ﻫﺎ ﻛ
ﺑﻚ .ﻣﻦ اﻟﻤﻔﻴﺪ أنﺗﻌﺮف أن ﺟﻤﻴﻊ أﻧﻮاع اﻟﻮﺳﺎﺋﻂ ﻫﺬه ﻣﻮﺟﻮدةﻷﻧﻚﺳ
ﺘﺨﺪام ﻛﻞ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ وﻣﻌﺮﻓ ﺔ وﻗ ﺖ اﺳﺘﻠﻔ ﺔ
ﺘﺨﺪام اﻷﻧﻮاع اﻟﻤﺨ
ﺘﻌﻠﻢ اﺳ
ﺒﺎ ﻟ
ﺘﻄﻠ ﺐ اﻷﻣﺮﺗﺪرﻳ ً
ﺑﺄﺷﺨﺎص آﺧﺮﻳﻦ.ﻳاﻟﺨﺎﺻ ﺔ
ﺜﺮ ﻓﺎﻋﻠﻴ ﺔ
ﺘﺨﺪام اﻟﻨﻬﺞ اﻷﻛ
ﺘﻌﻠﻢ اﺳ
ﺘﺑ ﺴﻂ ﻃﺮﻳﻘ ﺔ ﻹﻧﺠﺎز اﻟﻤﻬﻤ ﺔ .ﻛﻠﻤﺎﺗﻘﺪﻣ ﺖ ،ﺳ
ﺘﺨﺪام أ
ﻧﻮع .ﻓ ﻲ اﻟﻮﻗ ﺖ اﻟﺤﺎﻟ ﻲ ،ﺗﺬﻛﺮ اﺳ
ﻓ ﻲ ﻛﻞ ﻣﺮة.
اﻟﻮﻇﺎﺋﻒ 153
Machine Translated by Google
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺘﻮي اﻟﻮﻇﻴﻔ ﺔ
ﺘ ﻲﻳﺮﻳﺪ ﻫﺎ اﻟﺸﺨﺺ ﻋﲆ ﺷﻄﻴﺮة.ﻳﺠ ﺐ أنﺗﺤ
ﺑﺎﻟﻌﻨﺎﺻﺮ اﻟﺒﻞ ﻗﺎﺋﻤ ﺔ
ﺘ ﺐ وﻇﻴﻔ ﺔﺗﻘ
8-12.ﺷﻄﺎﺋﺮ :اﻛ
ﻣﻠﺨﺼﺎ ﻟﻠﺮﻣﻞ
ً ﺒﻊ
ﺘﺪﻋﺎء اﻟﻮﻇﻴﻔ ﺔ ،وﻳﺠ ﺐ أنﺗﻄ
ﻋﲆ ﻣﻌﻠﻤ ﺔ واﺣﺪةﺗﺠﻤﻊ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻌﻨﺎﺻﺮ ﻛﻤﺎﻳﻮﻓﺮ ﻫﺎ اﺳ
ﺘﻠﻒ ﻣﻦ اﻟﻮﺳﻴﻄﺎ ت ﻓ ﻲ ﻛﻞ ﻣﺮة.
ﺘﺨﺪام ﻋﺪد ﻣﺨ
ﺑﺎﺳﺛﻼ ث ﻣﺮا ت ،ﺘﺪع اﻟﺪاﻟ ﺔ
ﺒﻪ .اﺳ
ﺘﻢ ﻃﻠ
اﻟﺬيﻳ
ﺗﺼﻞ
ﺋﻴ ﺴﻴ ﺔ .ا
ﺑﻌﺪ ذﻟﻚ ﻋﺪدًا ﻋﺸﻮاﺋ ًﻴﺎ ﻣﻦ وﺳﻴﻄﺎ ت اﻟﻜﻠﻤﺎ ت اﻟﺮﺒﻞ
اﺳﻢ اﻟﺸﺮﻛ ﺔ اﻟﻤﺼﻨﻌ ﺔ واﻟﻄﺮاز.ﻳﺠ ﺐ أنﻳﻘ
ﺘﻴﺎرﻳ ﺔ.ﻳﺠ ﺐ أن
ﺜﻞ ﻟﻮن أو ﻣﻴﺰة اﺧ
ﺛﻨﻴﻦ ﻣﻦ أزواج اﻻﺳﻢ واﻟﻘﻴﻤ ﺔ اﻷﺧﺮى ،ﻣ
ﺑ ﺔ وا
ﺑﺎﻟﻤﻌﻠﻮﻣﺎ ت اﻟﻤﻄﻠﻮﺑﺎﻟﻮﻇﻴﻔ ﺔ
ﺜﻞ ﻫﺬه:
ﺘﻚ ﻟﻤﻜﺎﻟﻤ ﺔ ﻣ
ﺗﻌﻤﻞ وﻇﻴﻔ
ﺒﺮﻧﺎﻣﺞ ﻗﻴﺪ
ﺣﺎ ﻓ ﻲ ﻣﻠﻒ اﻟ
ﺘﺎ ً
ﺑﺠﻌﻞ اﻟﻜﻮد ﻓ ﻲ وﺣﺪة ﻧﻤﻄﻴ ﺔ ﻣ
ﺘﻴﺮاد Python
ﺑﻴﺎن اﻻﺳﺒﺮ
ﺋﻴ ﺴ ﻲ.ﻳﺨ
ﺑﺮﻧﺎﻣﺠﻚ اﻟﺮﺗﻠﻚ اﻟﻮﺣﺪة ﻓ ﻲ
ﺘﺸﻐﻴﻞ ﺣﺎﻟ ًﻴﺎ.
اﻟ
ﺘﻮى اﻷﻋﲆ.
ﺘﺮﻛﻴﺰ ﻋﲆ ﻣﻨﻄﻘﻪ ذي اﻟﻤ ﺴ
ﺒﺮﻧﺎﻣﺞ واﻟ
ﺘﻴﺢ ﻟﻚﺗﺨﺰﻳﻦ وﻇﺎﺋﻔﻚ ﻓ ﻲ ﻣﻠﻒ ﻣﻨﻔﺼﻞ إﺧﻔﺎءﺗﻔﺎﺻﻴﻞ ﻛﻮد اﻟ
ﻳ
ﺘﺨﺰﻳﻦ وﻇﺎﺋﻔﻚ ﻓ ﻲ ﻣﻠﻔﺎ ت ﻣﻨﻔﺼﻠ ﺔ ،
ﺑﺘﻠﻔ ﺔ .ﻋﻨﺪﻣﺎﺗﻘﻮم
ﺒﺮاﻣﺞ اﻟﻤﺨ
ﺘﺨﺪام اﻟﻮﻇﺎﺋﻒ ﻓ ﻲ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟ
ﺑﺈﻋﺎدة اﺳﻛﻤﺎﻳ ﺴﻤﺢ ﻟﻚ
ﺘﻴﺮاد
ﺘﻴﺢ ﻟﻚ ﻣﻌﺮﻓ ﺔ ﻛﻴﻔﻴ ﺔ اﺳ
ﺑﺎﻟﻜﺎﻣﻞ.ﺗﺑﺮﻧﺎﻣﺠﻚﺒﺮﻣﺠﻴﻦ آﺧﺮﻳﻦ دون اﻟﺤﺎﺟ ﺔ إﱃ ﻣﺸﺎرﻛ ﺔ
ﻳﻤﻜﻨﻚ ﻣﺸﺎرﻛ ﺔ ﻫﺬه اﻟﻤﻠﻔﺎ ت ﻣﻊ ﻣ
ﺒﺮﻣﺠﻮن آﺧﺮون.
ﺒﻬﺎ ﻣ
ﺘﺘ ﻲﻛ
ﺒﺎ ت اﻟﻮﻇﺎﺋﻒ اﻟ
ﺘﺘﺨﺪام ﻣﻜ اﻟﻮﻇﺎﺋﻒ أ ً
ﻳﻀﺎ اﺳ
ﺜﺎﻣﻦ
154اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺘﺰا
ﺑﻴ ﺒﻘ ﺔ(:
)def make_pizzaاﻟﺤﺠﻢ * ،اﻟﻄ
ﺘ ﻲ ﻧﺤﻦ ﻋﲆ وﺷﻚ ﺻﻨﻌﻬﺎ"" ". ﺘﺰا اﻟ
ﺒﻴ"""ﻟﺨﺺ اﻟ
"
ﺒﺎﻋ ﺔ ("\ nﻋﻤﻞ )a + strاﻟﺤﺠﻢ( +ﻃ
ﺘﺎﻟﻴ ﺔ(":
ﺑﻮﺻ ﺔ ﻣﻊ اﻹﺿﺎﻓﺎ ت اﻟﺑﺤﺠﻢﺘﺰا
ﺑﻴ"
ﺒﻘ ﺔ:
ﺒ ﺔ اﻷوﱃ ﻓ ﻲ اﻟﻄ
ﺗﺘﻞ اﻟﻤﺮ
ﺘﺤﻟ
ﺘﺼﺪر(
ﺗﺒﺎﻋ ﺔ ("-" +
ﻃ
ﺘﻮرد ﻫﺬا
ﺜﻞ pizza.py.ﻳ ﺴ
ﺑﺈﻧﺸﺎء ﻣﻠﻒ ﻣﻨﻔﺼﻞﻳ ﺴﻤﻰ making_pizzas.pyﻓ ﻲ ﻧﻔ ﺲ اﻟﺪﻟﻴﻞ ﻣﺳﻨﻘﻮم اﻵن
ﺘﺪﻋﺎﺋﻴﻦ ﻟـ make_pizza ():
ﺛﻢﻳﺠﺮي اﺳﺘﻮ
ﺘ ﻲ أﻧﺸﺄﻧﺎ ﻫﺎ ﻟﻠ
اﻟﻤﻠﻒ اﻟﻮﺣﺪة اﻟ
ﺘﻴﺮاد
ﺘﺰا اﺳ
ﺑﻴ ﺘﺰا
ﺒﻴﺻﻨﻊ اﻟ
ﺒﺮوﻧ ﻲ
ﺑﻴﺘﺎﻟﻴ ﺔ- :
ﺘﺰا ﻣﻘﺎس 16إﻧ ﺶ ﻣﻊ اﻹﺿﺎﻓﺎ ت اﻟ
ﺑﻴﻋﻤﻞ
ﺒﻨ ﺔ اﺿﺎﻓﻴ ﺔ
-ﻓﻠﻔﻞ اﺧﻀﺮ -ﺟ
)( module_name.function_name
اﻟﻤﻬﺎم 155
Machine Translated by Google
ﺘﻴﺮاد
ﺑﻬﺬا اﻟﺸﻜﻞ إذا أردﻧﺎ اﻻﺳ
ﺜﺎل making_pizzas.py
ﺒﺪو ﻣ
ﺳﻴ
ﺘﺨﺪﻣﻬﺎ:
ﺘ ﻲﺳﻨ ﺴ
ﻓﻘﻂ اﻟﻮﻇﻴﻔ ﺔ اﻟ
ﺘﻴﺮاد make_pizza
ﺘﺰا اﺳ
ﺑﻴﻣﻦ
ﺒﺮوﻧ ﻲ"(
ﺑﻴ"make_pizza (16،
ﺒﻨ ﺔ إﺿﺎﻓﻴ ﺔ"(
"make_pizza (12 ،ﻓﻄﺮ" " ،ﻓﻠﻔﻞ أﺧﻀﺮ" " ،ﺟ
ﺘﻴﺮاد
ﺘﻌﺎ ًرا mp () ، ،ﻋﻦ ﻃﺮﻳﻖ اﻻﺳ
ﺳﻤﺎ ﻣ ﺴ
ﻫﻨﺎ ﻧﻌﻄ ﻲ اﻟﺪاﻟ ﺔ )( make_pizzaا ً
ﺘﻌﺎر اﻟﺬيﺗﻮﻓﺮه:
ﺘﺨﺪام اﻻﺳﻢ اﻟﻤ ﺴ
ﺑﺎﺳﺗ ﺴﻤﻴ ﺔ داﻟ ﺔ
ﺜﻞ اﻟﻨﺎﺋ ﺐ.ﺗﻌﻴﺪ اﻟﻜﻠﻤ ﺔ اﻷﺳﺎﺳﻴ ﺔ " "as
make_pizzaﻣ
ﺒﺮوﻧ ﻲ"(ﺑﻴ
اﻟﻨﺎﺋ ﺐ "(16 ،
ﺒﻨ ﺔ إﺿﺎﻓﻴ ﺔ"(
اﻟﻨﺎﺋ ﺐ "(12 ،ﻓﻄﺮ" " ،ﻓﻠﻔﻞ أﺧﻀﺮ" " ،ﺟ
ﺘﻌﺎر ﻫ ﻲ:
ﺘﻘﺪﻳﻢ اﺳﻢ ﻣ ﺴ
اﻟﺼﻴﻐ ﺔ اﻟﻌﺎﻣ ﺔ ﻟ
ﺜﺎﻣﻦ
156اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺘﻌﺎر
ﺘﺨﺪام ﻛـ ﻹﻋﻄﺎء وﺣﺪة ﻧﻤﻄﻴ ﺔ اﺳﻢ ﻣ ﺴ
اﺳ
ﺘﺰا ،
ﺒﻴﺜﻞ pﻟﻠ
ﺘﻌﺎ ًرا ﻗﺼﻴ ﺮًا ،ﻣ
ﺳﻤﺎ ﻣ ﺴ
ﺘﻴﺢ ﻟﻚ إﻋﻄﺎء وﺣﺪة ﻧﻤﻄﻴ ﺔ ا ً
ﺘﻌﺎر ﻻﺳﻢ اﻟﻮﺣﺪة اﻟﻨﻤﻄﻴ ﺔ.ﻳ ﻳﻤﻜﻨﻚ أ ً
ﻳﻀﺎﺗﻮﻓﻴﺮ اﺳﻢ ﻣ ﺴ
ﺒﺮ.
ﺑ ﺴﺮﻋ ﺔ أﻛﺘﺪﻋﺎء وﻇﺎﺋﻒ اﻟﻮﺣﺪة
اﺳ
ﺜﺮ إﻳﺠﺎ ًزا ﻣﻦ اﺳ
ﺘﺪﻋﺎء pizza.make_pizza (): ﺘﺪﻋﺎء )( p.make_pizzaأﻛ
ﻳﻌﺪ اﺳ
ﺜﻞ p
ﺘﺰا ﻣ
ﺑﻴﺘﻴﺮاد
اﺳ
ﺒﺮوﻧ ﻲ"(
ﺑﻴ"p.make_pizza (16 ،
ﺒﻨ ﺔ إﺿﺎﻓﻴ ﺔ"(
"p.make_pizza (12 ،ﻓﻄﺮ" " ،ﻓﻠﻔﻞ أﺧﻀﺮ" " ،ﺟ
*
ﺘﺰا
ﺒﻴﺘﻴﺮاد اﻟ
ﻣﻦ اﺳ
ﺒﺮوﻧ ﻲ"(
ﺑﻴ"make_pizza (16،
ﺒﻨ ﺔ إﺿﺎﻓﻴ ﺔ"(
"make_pizza (12 ،ﻓﻄﺮ" " ،ﻓﻠﻔﻞ أﺧﻀﺮ" " ،ﺟ
ﺘﺨﺪامﺗﺪوﻳﻦ
ﺑﺄﻛﻤﻠﻬﺎ واﺳﺘﻴﺮاد اﻟﻮﺣﺪة اﻟﻨﻤﻄﻴ ﺔ
ﺘ ﻲﺗﺮﻳﺪ ﻫﺎ ،أو اﺳ
ﺘﻴﺮاد اﻟﻮﻇﻴﻔ ﺔ أو اﻟﻮﻇﺎﺋﻒ اﻟ
أﻓﻀﻞ ﻃﺮﻳﻘ ﺔ ﻫ ﻲ اﺳ
ﺜﻞ
ﺘﻴﺮاد ﻣ
ﺒﺎرا ت اﻻﺳ
ﺘﻌﺮف ﻋﲆ ﻋ
ﺘﻰﺗ
ﺘﻀﻤﻴﻦ ﻫﺬا اﻟﻘ ﺴﻢ ﺣ
ﺑﺗﻪ وﻓﻬﻤﻪ .أﻗﻮم
اﻟﻨﻘﻄ ﺔ.ﻳﺆدي ﻫﺬا إﱃ رﻣﺰ واﺿﺢﻳ ﺴﻬﻞ ﻗﺮاء
ﻣﺎﻳﻠ ﻲ ﻋﻨﺪﻣﺎﺗﺮا ﻫﺎ ﻓ ﻲ رﻣﺰ اﻷﺷﺨﺎص اﻵﺧﺮﻳﻦ:
*
ﺘﻴﺮاد module_name
ﻣﻦ اﺳ
اﻟﻮﻇﺎﺋﻒ 157
Machine Translated by Google
ﺘﺼﻤﻴﻢ
وﻇﺎﺋﻒ اﻟ
ﺘﺼﻤﻴﻢ. ﺑﻮﻇﺎﺋﻒ اﻟﺘﻔﺎﺻﻴﻞ ﻋﻨﺪﻣﺎﺗﻘﻮم ﺑﻌﺾ اﻟﺒﺎرك
ﺘﻳﺠ ﺐ أنﺗﻀﻊ ﻓ ﻲ اﻋ
ً
أﺣﺮﻓﺎ ﺻﻐﻴﺮة وﺷﺮﻃﺎ تﺳﻔﻠﻴ ﺔ.ﺗ ﺴﺎﻋﺪك ﺘﺨﺪم ﻫﺬه اﻷﺳﻤﺎء ﺘﻮي اﻟﻮﻇﺎﺋﻒ ﻋﲆ أﺳﻤﺎء وﺻﻔﻴ ﺔ ،وﻳﺠ ﺐ أنﺗ ﺴﻳﺠ ﺐ أنﺗﺤ
ﺘﺨﺪم أﺳﻤﺎء اﻟﻮﺣﺪا ت ﻫﺬه اﻻﺻﻄﻼﺣﺎ ت
ﺑﻪ.ﻳﺠ ﺐ أنﺗ ﺴﺗﻚ اﻟﻘﻴﺎم
اﻷﺳﻤﺎء اﻟﻮﺻﻔﻴ ﺔ واﻵﺧﺮﻳﻦ ﻋﲆ ﻓﻬﻢ ﻣﺎﺗﺤﺎول ﺷﻔﺮ
أ ً
ﻳﻀﺎ.
ﺑﻌﺪﺒﺎﺷﺮة
ﺘﻌﻠﻴﻖ ﻣ
ﺑﺈﻳﺠﺎز ﻣﺎﺗﻔﻌﻠﻪ اﻟﻮﻇﻴﻔ ﺔ.ﻳﺠ ﺐ أنﻳﻈﻬﺮ ﻫﺬا اﻟﺘﻮي ﻛﻞ وﻇﻴﻔ ﺔ ﻋﲆﺗﻌﻠﻴﻖﻳﺸﺮح
ﻳﺠ ﺐ أنﺗﺤ
ﺘﺨﺪام اﻟﻮﻇﻴﻔ ﺔ
ﺒﺮﻣﺠﻴﻦ اﻵﺧﺮﻳﻦ اﺳ
ﺛﻘ ﺔ ﺟﻴﺪًا ،ﻳﻤﻜﻦ ﻟﻠﻤ
ﺘﺨﺪامﺗﻨ ﺴﻴﻖ docstring.ﻓ ﻲ وﻇﻴﻔ ﺔ ﻣﻮ
ﺗﻌﺮﻳﻒ اﻟﻮﻇﻴﻔ ﺔ واﺳ
ﺑﺄن اﻟﻜﻮدﻳﻌﻤﻞ ﻛﻤﺎ ﻫﻮﺛﻮق
ﻣﻦ ﺧﻼل ﻗﺮاءة اﻟﻮﺻﻒ ﻓﻘﻂ ﻓ ﻲﺳﻠ ﺴﻠ ﺔ docstring.ﻳﺠ ﺐ أنﻳﻜﻮﻧﻮا ﻗﺎدرﻳﻦ ﻋﲆ اﻟﻮ
ﺘ ﻲﺗﺮﺟﻌﻬﺎ ،ﻳﺠ ﺐ أنﻳﻜﻮﻧﻮا
ﺘﺎﺟﻬﺎ ،وﻧﻮع اﻟﻘﻴﻤ ﺔ اﻟ
ﺘ ﻲﺗﺤ
ﻣﻮﺻﻮف ،وﻃﺎﻟﻤﺎ أﻧﻬﻢﻳﻌﺮﻓﻮن اﺳﻢ اﻟﻮﻇﻴﻔ ﺔ ،واﻟﺤﺠﺞ اﻟ
ﺑﺮاﻣﺠﻬﻢ.ﺘﺨﺪاﻣﻬﺎ ﻓ ﻲ
ﻗﺎدرﻳﻦ ﻋﲆ اﺳ
ﺘ ﺴﺎوي:
ﺒ ﻲ ﻋﻼﻣ ﺔ اﻟ
ﺘﺨﺪام ﻣ ﺴﺎﻓﺎ ت ﻋﲆ ﺟﺎﻧ
ﺘﺮاﺿﻴ ﺔ ﻟﻠﻤﻌﻠﻤ ﺔ ،ﻓﻼﻳﺠ ﺐ اﺳ
إذا ﺣﺪد ت ﻗﻴﻤ ﺔ اﻓ
ﺘﺮاﺿﻴ ﺔ"(
" = def function_name (parameter_0، parameter_1اﻟﻘﻴﻤ ﺔ اﻻﻓ
( def function_name
اﻟﻤﻌﻠﻤ ﺔ_ ، 0اﻟﻤﻌﻠﻤ ﺔ_ ، 1اﻟﻤﻌﻠﻤ ﺔ_، 2
اﻟﻤﻌﻠﻤ ﺔ_ ، 3اﻟﻤﻌﻠﻤ ﺔ_ ، 4اﻟﻤﻌﻠﻤ ﺔ_:(5
وﻇﻴﻔ ﺔ اﻟﺠ ﺴﻢ ...
ﺑﺪاﻳ ﺔ اﻟﻤﻠﻒ.ﺘﻴﺮاد ﻓ ﻲ
ﺑﻴﺎﻧﺎ ت اﻻﺳﺑ ﺔ ﺟﻤﻴﻊ
ﺘﺎ
ﻳﺠ ﺐ ﻛ
ﺒﺮﻧﺎﻣﺞ ﻛﻜﻞ.
ﺑﺪاﻳ ﺔ اﻟﻤﻠﻒ ﻟﻮﺻﻒ اﻟﺘﻌﻠﻴﻘﺎ ت ﻓ ﻲ
ﺘﺨﺪام اﻟ
ﺜﻨﺎء اﻟﻮﺣﻴﺪ ﻫﻮ اﺳ
ﺘاﻻﺳ
ﺜﺎﻣﻦ
158اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺘﻴﺮاد module_name
اﺳ
ﻣﻦ module_name import function_name
ﺘﻴﺮاد function_nameﻛـ fn
ﻣﻦ module_nameاﺳ
ﺘﻴﺮاد module_nameﻛـ mn
اﺳ
*
ﺘﻴﺮاد module_name
ﻣﻦ اﺳ
ﺘﺼﻤﻴﻢ
ﺒﺎﻋﻬﺎ ﻹرﺷﺎدا ت اﻟ
ﺗﺗﺄﻛﺪ ﻣﻦ ا
ﺘﻬﺎ ﻟﻬﺬا اﻟﻔﺼﻞ ،و
ﺒﺘﺑﺮاﻣﺞ ﻛﺛﺔ
ﺛﻼﺘﺮ أي
ﺘﺼﻤﻴﻢ :اﺧ
8-17.وﻇﺎﺋﻒ اﻟ
اﻟﻤﻮﺿﺤ ﺔ ﻓ ﻲ ﻫﺬا اﻟﻘ ﺴﻢ.
ﻣﻠﺨﺺ
ﺘﻲ
ﺘﻤﻜﻦ وﻇﺎﺋﻔﻚ ﻣﻦ اﻟﻮﺻﻮل إﱃ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟ
ﺘﻰﺗ
ﺗﻤﺮﻳﺮ اﻟﺤﺠﺞ ﺣ
ﺑ ﺔ اﻟﻮﻇﺎﺋﻒ و
ﺘﺎ
ﻟﻘﺪﺗﻌﻠﻤ ﺖ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ﻛﻴﻔﻴ ﺔ ﻛ
ﺒﻮل ﻋﺪدﺗﻌ ﺴﻔ ﻲ
ﺘﺨﺪام اﻟﺤﺠﺞ اﻟﻤﻮﺿﻌﻴ ﺔ واﻟﻜﻠﻤﺎ ت اﻷﺳﺎﺳﻴ ﺔ ،وﻛﻴﻔﻴ ﺔ ﻗ
ﺑﻌﻤﻠﻬﺎ .ﻟﻘﺪﺗﻌﻠﻤ ﺖ ﻛﻴﻔﻴ ﺔ اﺳﺘﺎﺟﻬﺎ ﻟﻠﻘﻴﺎم
ﺗﺤ
ُﺮﺟﻊ اﻟﻘﻴﻢ .ﻟﻘﺪﺗﻌﻠﻤ ﺖ ﻛﻴﻔﻴ ﺔ اﺳ
ﺘﺨﺪام اﻟﻮﻇﺎﺋﻒ ﻣﻊ اﻟﻘﻮاﺋﻢ ﺘ ﻲﺗ
ﻣﻦ اﻟﺤﺠﺞ .ﻟﻘﺪ رأﻳ ﺖ وﻇﺎﺋﻒﺗﻌﺮض اﻹﺧﺮاج واﻟﻮﻇﺎﺋﻒ اﻟ
ﺒﺎرا ت ifو while loops.ﻟﻘﺪ رأﻳ ﺖ أ ً
ﻳﻀﺎ ﻛﻴﻔﻴ ﺔﺗﺨﺰﻳﻦ وﻇﺎﺋﻔﻚ ﻓ ﻲ ﻣﻠﻔﺎ ت ﻣﻨﻔﺼﻠ ﺔﺗ ﺴﻤﻰ اﻟﻮﺣﺪا ت واﻟﻘﻮاﻣﻴ ﺲ وﻋ
ﺑﺤﻴ ﺚﺑ ﺴﻂ وأﺳﻬﻞ ﻓ ﻲ اﻟﻔﻬﻢ .أﺧﻴ ﺮًا ،ﺗﻌﻠﻤ ﺖﺗﺼﻤﻴﻢ وﻇﺎﺋﻔﻚ
ﺑﻚ أﺒﺮاﻣﺞ اﻟﺨﺎﺻ ﺔ
ﺘﻜﻮن ﻣﻠﻔﺎ ت اﻟ
اﻟﻨﻤﻄﻴ ﺔ ،ﻟﺬﻟﻚﺳ
ﺗﻬﺎ ﻗﺪر اﻹﻣﻜﺎن ﻟﻚ وﻟﻶﺧﺮﻳﻦ.
ﺑﺸﻜﻞ ﺟﻴﺪ وﻳ ﺴﻬﻞ ﻗﺮاءﺑﺮاﻣﺠﻚ ﻓ ﻲ أنﺗﻜﻮن ﻣﻨﻈﻤ ﺔﺘﻤﺮ
ﺗﺴ
ﺒﺮﻧﺎﻣﺞ.
ﺗﻠﺨﺺ أﺳﻤﺎء اﻟﻮﻇﺎﺋﻒ اﻟﺠﻴﺪة ﻣﺎﻳﻔﻌﻠﻪ ﻛﻞ ﺟﺰء ﻣﻦ اﻟ
ﺑﺮاﻣﺠﻚ أﺳﻬﻞ ﻓ ﻲ اﻟﻘﺮاءة ،وﺘﺨﺪام اﻟﻮﻇﺎﺋﻒ
ﻳﺠﻌﻞ اﺳ
ﺘﻞ
ﺒﺮﻧﺎﻣﺞ ﻣﻦ ﻗﺮاءةﺳﻠ ﺴﻠ ﺔ ﻃﻮﻳﻠ ﺔ ﻣﻦ ﻛ
ﺑﻤﺎﻳﻔﻌﻠﻪ اﻟﺜﻴﺮ
ﺑﻜﺳﺎ أﺳﺮع
ﺘﺪﻋﺎءا ت اﻟﻮﻇﺎﺋﻒ إﺣ ﺴﺎ ً
ﺗﻤﻨﺤﻚ ﻗﺮاءةﺳﻠ ﺴﻠ ﺔ ﻣﻦ اﺳ
ﺒﺮﻣﺠﻴ ﺔ.
ﺘﻌﻠﻴﻤﺎ ت اﻟ
اﻟ
اﻟﻤﻬﺎم 159
Machine Translated by Google
ﺒﺮ
ﺗﺼﺤﻴﺤﻬﺎ .ﻋﻨﺪﻣﺎﻳﻜﻮن اﻟﺠﺰء اﻷﻛ
ﺒﺮﻣﺠﻴ ﺔ و
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺒﺎر اﻟ
ﺘ ﺗﻌﻤﻞ اﻟﻮﻇﺎﺋﻒ أ ً
ﻳﻀﺎ ﻋﲆﺗ ﺴﻬﻴﻞ اﺧ
ﺘﻲ
ﺒﺎر اﻟﺸﻔﺮة اﻟ
ﺘﺜﻴﺮ اﺧ
ﺑﻜﺘﻢ ﻣﻦ ﺧﻼل ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻟﻮﻇﺎﺋﻒ ،ﻟﻜﻞ ﻣﻨﻬﺎ وﻇﻴﻔ ﺔ ﻣﺤﺪدة ،وﻣﻦ اﻷﺳﻬﻞ
ﺑﺮﻧﺎﻣﺠﻚﻳﻣﻦ ﻋﻤﻞ
ﺘﻬﺎ واﻟﺤﻔﺎظ ﻋﻠﻴﻬﺎ.
ﺒﺘﻛ
ﺘ ﻲ ﻗﺪﺗﻮاﺟﻬﻬﺎ.
ﺒﺮ ﻣﺎ إذا ﻛﺎﻧ ﺖ ﻛﻞ وﻇﻴﻔ ﺔﺗﻌﻤﻞ ﻓ ﻲ ﺟﻤﻴﻊ اﻟﻤﻮاﻗﻒ اﻟ
ﺘﺘﺪﻋ ﻲ ﻛﻞ وﻇﻴﻔ ﺔ وﻳﺨ
ﺑﺮﻧﺎﻣﺞ ﻣﻨﻔﺼﻞﻳ ﺴﺑﺔ
ﺘﺎ
ﻳﻤﻜﻨﻚ ﻛ
ﺑﻬﺎ.ﺘﺼﻞ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ ﻓ ﻲ ﻛﻞ ﻣﺮةﺗ ﺛ ًﻘﺎ ﻣﻦ أن وﻇﺎﺋﻔﻚﺳ
ﺘﻌﻤﻞ ﺑﺬﻟﻚ ،ﻳﻤﻜﻨﻚ أنﺗﻜﻮن واﻋﻨﺪ اﻟﻘﻴﺎم
ﺜﺎﻣﻦ
160اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
9
ﺒﻘﺎ ت
اﻟﻄ
ﺑﻌﺪ ذﻟﻚ إﻋﻄﺎء ﻛﻞ ﻛﺎﺋﻦ أيﺑﺎﻟ ﺴﻠﻮك اﻟﻌﺎم ؛ﻳﻤﻜﻨﻚﺘﻢﺗﺠﻬﻴﺰ ﻛﻞ ﻛﺎﺋﻦﺗﻠﻘﺎﺋ ًﻴﺎ
ﻋﻨﺪ إﻧﺸﺎء ﻛﺎﺋﻨﺎ ت ﻓﺮدﻳ ﺔ ﻣﻦ اﻟﻔﺼﻞ ،ﻳ
ﺒﺮﻣﺠ ﺔ اﻟﻤﻮﺟﻬ ﺔ ﻟﻠﻜﺎﺋﻨﺎ ت.
ﺘﺨﺪام اﻟ
ﺑﺎﺳﺑﺸﻜﻞ ﺟﻴﺪﺘﻨﺪ ﻫ ﺶ ﻣﻦ ﻛﻴﻔﻴ ﺔﺗﺼﻤﻴﻢ ﻣﻮاﻗﻒ اﻟﻌﺎﻟﻢ اﻟﻮاﻗﻌ ﻲ
ﺳﻤﺎ ت ﻓﺮﻳﺪةﺗﺮﻳﺪ ﻫﺎ.ﺳ
ﺘ ﺐ اﻟﻔﺼﻮل
ﺜﻴﻼ ت ﻓﺌ ﺔ .ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞﺳﻮفﺗﻜ
ﺜﻴﻞ ،وﻳﻤﻜﻨﻚ اﻟﻌﻤﻞ ﻣﻊ ﻣ
ﻳ ﺴﻤﻰ إﻧﺸﺎء ﻛﺎﺋﻦ ﻣﻦ ﻓﺌ ﺔ إﻧﺸﺎء ﻣ
ﺘ ﻲﻳﻤﻜﻦ
ﺘﺤﺪد اﻹﺟﺮاءا ت اﻟ
ﺜﻴﻼ ت ،وﺳ
ﺘ ﻲﻳﻤﻜﻦﺗﺨﺰﻳﻨﻬﺎ ﻓ ﻲ اﻟﻤ
ﺘﺤﺪد ﻧﻮع اﻟﻤﻌﻠﻮﻣﺎ ت اﻟ
ﺘﻠﻚ اﻟﻔﺌﺎ ت.ﺳ
ﺜﻴﻼ ت ﻟ
ﺗﻨﺸ ﺊ ﻣ
و
ﺗﺨﺎذ ﻫﺎ ﻣﻊ ﻫﺬه اﻟﺤﺎﻻ ت.
ا
ﺘﺐ أ ً
ﻳﻀﺎ ﻓﺌﺎ تﺗﻌﻤﻞ ﻋﲆﺗﻮﺳﻴﻊ وﻇﺎﺋﻒ اﻟﻔﺌﺎ ت اﻟﺤﺎﻟﻴ ﺔ ،ﻟﺬﻟﻚ ﺘﻜﺳ
Machine Translated by Google
ﺘﻌﻠﻴﻤﺎ ت
ﺒﺮﻣﺞ.ﺳﻴ ﺴﺎﻋﺪك ﻫﺬا ﻓ ﻲ ﻣﻌﺮﻓ ﺔ اﻟ ﺒﺮﻣﺠ ﺔ اﻟﻤﻮﺟﻬ ﺔ ﻟﻠﻜﺎﺋﻨﺎ ت ﻋﲆ رؤﻳ ﺔ اﻟﻌﺎﻟﻢ ﻛﻤﺎﻳﻔﻌﻞ اﻟﻤ
ﺳﻴ ﺴﺎﻋﺪك ﻓﻬﻢ اﻟ
ﺒﺮ وراءه.
ﻳﻀﺎ اﻟﻤﻔﺎ ﻫﻴﻢ اﻷﻛ ﺑﻚ ﺣ ًﻘﺎ ،ﻟﻴ ﺲ ﻓﻘﻂ ﻣﺎﻳﺤﺪ ثﺳﻄﺮا ً
ﺑ ﺴﻄﺮ ،وﻟﻜﻦ أ ً ﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
اﻟ
ﺑﺸﻜﻞﺘ ﻲﺗﻌﺎﻟﺞ
ﺒﺮاﻣﺞ اﻟ
ﺑ ﺔ اﻟ
ﺘﺎ
ﺘﻤﻜﻦ ﻣﻦ ﻛ
ﺘﻰﺗ
ﺘﻔﻜﻴﺮ اﻟﻤﻨﻄﻘ ﻲ ﺣ
ﺑﻚ ﻣﻌﺮﻓ ﺔ اﻟﻤﻨﻄﻖ وراء اﻟﻔﺼﻮل اﻟﺪراﺳﻴ ﺔ ﻋﲆ اﻟ
ﺘﺪر
ﺳ
ﺒﺎ.
ﻓﻌﺎل أي ﻣﺸﻜﻠ ﺔﺗﻮاﺟﻬﻬﺎﺗﻘﺮﻳ ً
ﺒﺮﻣﺠﻴﻦ اﻵﺧﺮﻳﻦ
ﺒ ﺔ ﻟﻚ وﻟﻠﻤ
ﺑﺎﻟﻨ ﺴﺗﻚ أﺳﻬﻞ ﺗﺠﻌﻞ اﻟﻔﺼﻮل اﻟﺪراﺳﻴ ﺔ أ ً
ﻳﻀﺎ ﺣﻴﺎ
ﺘﻌﻠﻴﻤﺎ ت
ﺒﺮﻣﺠﻮن اﻵﺧﺮون اﻟ
ﺘ ﺐ أﻧ ﺖ واﻟﻤ
ﺘﻌﻘﻴﺪ .ﻋﻨﺪﻣﺎﺗﻜ
ﺘﺰاﻳﺪة اﻟ
ﺘﺎج إﱃ اﻟﻌﻤﻞ ﻣﻌﻬﺎ وأﻧ ﺖﺗﻮاﺟﻪﺗﺤﺪﻳﺎ ت ﻣ
ﺗﺤ
ﺑﺮاﻣﺠﻚ ﻣﻨﻄﻘﻴ ﺔﺘﻜﻮن
ﺒﻌﺾ.ﺳ
ﺑﻌﻀﻜﻤﺎ اﻟﺘﻤﻜﻦ ﻣﻦ ﻓﻬﻢ ﻋﻤﻞ
ﺘﺑﻨﺎ ًء ﻋﲆ ﻧﻔ ﺲ اﻟﻨﻮع ﻣﻦ اﻟﻤﻨﻄﻖ ،ﻓ ﺴﺒﺮﻣﺠﻴ ﺔ
اﻟ
ﺑﺈﻧﺠﺎز اﻟﻤﺰﻳﺪ.ﺘﻌﺎوﻧﻴﻦ ،ﻣﻤﺎﻳ ﺴﻤﺢ ﻟﻠﺠﻤﻴﻊ
ﻟﻠﻌﺪﻳﺪ ﻣﻦ اﻟﻤ
ﺘﺨﺪام اﻟﻔﺼﻞ
إﻧﺸﺎء واﺳ
ﺒﺎ واﺣﺪًا ﻋﲆ
ﺒﺎ -ﻟﻴ ﺲ ﻛﻠ ً
ﺜﻞ ﻛﻠ ً
ﺑ ﺴﻴﻂ " ،ﻛﻠ ﺐ" ،ﻳﻤﺑ ﺔ ﻓﺼﻞ
ﺘﺎ
ﺑﻜﺒﺪأ
ﺘﺨﺪام اﻟﻔﺌﺎ ت .ﻟﻨ
ﺑﺎﺳﺒﺎ
ﻳﻤﻜﻨﻚ ﻧﻤﺬﺟ ﺔ أي ﺷ ﻲءﺗﻘﺮﻳ ً
وﺟﻪ اﻟﺨﺼﻮص ،وﻟﻜﻦ أي ﻛﻠ ﺐ.
ﻣﺎذا ﻧﻌﺮف ﻋﻦ ﻣﻌﻈﻢ اﻟﻜﻼ ب اﻻﻟﻴﻔ ﺔ؟ ﺣ ﺴﻨًﺎ ،ﻛﻠﻬﻢ ﻟﺪﻳﻬﻢ اﺳﻢ وﻋﻤﺮ.
ﺘﺎن ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت )اﻻﺳﻢ واﻟﻌﻤﺮ( و ﻫﺬان اﻟ ﺴﻠﻮﻛﺎن
ﺗﺎن اﻟﻘﻄﻌ
ﺘﺬ ﻫ ﺐ ﻫﺎ
ﺘﺪﺣﺮج.ﺳ
ﺗ ﻧﻌﻠﻢ أ ً
ﻳﻀﺎ أن ﻣﻌﻈﻢ اﻟﻜﻼ بﺗﺠﻠ ﺲ و
ﺑﻜﻴﻔﻴ ﺔ ﺻﻨﻊ
ﺒﺮ ﻫﺬا اﻟﻔﺼﻞ Python
ﺘﺪﺣﺮج( ﻓ ﻲ ﻓﺼﻞ اﻟﻜﻼ ب ﻟﺪﻳﻨﺎﻷﻧﻬﻤﺎ ﺷﺎﺋﻌﺎن ﻟﺪى ﻣﻌﻈﻢ اﻟﻜﻼ ب.ﺳﻴﺨ
)اﻟﺠﻠﻮس واﻟ
ﺧﺎﺻﺎ واﺣﺪًا.
ً ﺒﺎ
ﺜﻞ ﻛﻠ ً
ﺜﻠ ﺔ ﻓﺮدﻳ ﺔ ،ﻛﻞ ﻣﻨﻬﺎﻳﻤ
ﺘﺨﺪﻣﻪ ﻟﻌﻤﻞ أﻣ
ﺑ ﺔ اﻟﻔﺼﻞ اﻟﺪراﺳ ﻲ ،ﺳﻨ ﺴ
ﺘﺎ
ﺑﻌﺪ ﻛﺒﺎ.
ﺜﻞ ﻛﻠ ً
ﻛﺎﺋﻦﻳﻤ
إﻧﺸﺎء ﻓﺌ ﺔ اﻟﻜﻼ ب
ﺳﻤﺎ وﻋﻤ ﺮًا ،وﺳﻨﻤﻨﺢ ﻛﻞ ﻛﻠ ﺐ اﻟﻘﺪرة ﻋﲆ اﻟﺠﻠﻮس )(و roll_over ():
ﺜﻴﻞﺗﻢ إﻧﺸﺎؤه ﻣﻦ ﻓﺌ ﺔ Dogا ً
ﺳﻴﺨﺰن ﻛﻞ ﻣ
ﺗ ﻲ =اﻟﻌﻤﺮ
اﻟﻌﻤﺮ اﻟﺬا
ﺗ ﻲ(:
y defاﻟﺠﻠﻮس )ذا
ﺑ ﺔﻷﻣﺮ ﻣﺎ"" ".
ﺘﺠﺎ
"""ﻣﺤﺎﻛﺎة ﻛﻠ ﺐ ﺟﺎﻟ ﺲ اﺳ
"
print (self.name.title () +ﺟﺎﻟ ﺲ اﻵن") .
ﺗ ﻲ(:
)def roll_overذا
ﺑ ﺔﻷﻣﺮ"" " .
ﺘﺠﺎ
ﺘﺪﺣﺮج اﺳ
""ﻣﺤﺎﻛﺎة اﻟ
"
ﺖ!"( ﺗﺪﺣﺮﺟ
(self.name.title ﺒﺎﻋ ﺔ () +
ﻃ
ﺘﺎﺳﻊ
162اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺘﺎد
ﺘﻌﺜﻴﺮ ﻣﻦ اﻟﻮﻗ ﺖ ﻟ
ﺘﺮى ﻫﺬا اﻟﻬﻴﻜﻞ ﻃﻮال ﻫﺬا اﻟﻔﺼﻞ وﻟﺪﻳﻚ اﻟﻜ
ﺘﻼﺣﻈﻪ ﻫﻨﺎ ،ﻟﻜﻦ ﻻﺗﻘﻠﻖ.ﺳ
ﺜﻴﺮ ﻟ
ﻫﻨﺎك اﻟﻜ
ﺜﻮن .اﻷﻗﻮاس ﻓ ﻲﺗﻌﺮﻳﻒ
ﺑﺎﻳﺒﻴﺮة إﱃ اﻟﻔﺌﺎ ت ﻓ ﻲ
ﻋﻠﻴﻪ .ﻓ ﻲ uﻧﺤﺪد ﻓﺌ ﺔﺗ ﺴﻤﻰ Dog.ﺣ ﺴ ﺐ اﻻﺻﻄﻼح ،ﺗﺸﻴﺮ اﻷﺳﻤﺎء اﻟﻜ
ﺑﻪ ﻫﺬه اﻟﻔﺌ ﺔ.ﺗﺼﻒ ﻣﺎﺗﻘﻮم
ﺘ ﺐﺳﻠ ﺴﻠ ﺔ docstring
ﺒﺪاﻳ ﺔ .ﻓ ﻲ vﻧﻜ
اﻟﻔﺌ ﺔ ﻓﺎرﻏ ﺔﻷﻧﻨﺎ ﻧﻨﺸ ﺊ ﻫﺬه اﻟﻔﺌ ﺔ ﻣﻦ اﻟ
ﻃﺮﻳﻘ ﺔ )( __ __init
ﺑﺔ ﻓ ﻲ
ﺗﻴ ﺔ ﻣﻄﻠﻮ
ﺛﻼ ث ﻣﻌﺎﻣﻼ تself :واﻻﺳﻢ واﻟﻌﻤﺮ .اﻟﻤﻌﻠﻤ ﺔ اﻟﺬاﺘﻮي ﻋﲆ
ﺑﺤﻴ ﺚﺗﺤ
ﻧﺤﺪد ﻃﺮﻳﻘ ﺔ )( __ __init
ﺘﺪﻋ ﻲ Python ﺗ ﻲ أوﻻ ً ﻗ
ﺒﻞ اﻟﻤﻌﻠﻤﺎ ت اﻷﺧﺮى.ﻳﺠ ﺐﺗﻀﻤﻴﻨﻪ ﻓ ﻲ def initionﻷﻧﻪ ﻋﻨﺪﻣﺎﺗ ﺴ ﺗﻌﺮﻳﻒ اﻟﻄﺮﻳﻘ ﺔ ،وﻳﺠ ﺐ أنﺗﺄ
ﺗﻴ ﺔﺗﻠﻘﺎﺋ ًﻴﺎ .
ﺘﺪﻋﺎء اﻷﺳﻠﻮ بﺳﻴﻤﺮر اﻟﻮﺳﻴﻄ ﺔ اﻟﺬا ﻃﺮﻳﻘ ﺔ )( __ __initﻫﺬه ﻻﺣ ًﻘﺎ )ﻹﻧﺸﺎء ﻣ
ﺜﻴﻞ ﻟﻠﻜﻠ ﺐ ( ،ﻓﺈن اﺳ
ﻗﻴﻤﺎ
ً ﺜﻴﻞ ﻣﻦ ﻓﺌ ﺔ Dog ،ﺳﻨﻮﻓﺮ
ﺘﻴﺎز ﻫﺎ .ﻋﻨﺪﻣﺎ ﻧﺮﻳﺪ إﻧﺸﺎء ﻣ
ﺘﺎج إﱃ اﺟ
ﺗﻠﻘﺎﺋ ًﻴﺎ ،ﻟﺬﻟﻚ ﻻ ﻧﺤ
ﺘﻢﺗﻤﺮﻳﺮ self
اﺳﻢ وﻋﻤﺮ ﺣﺠﺞ ؛ﻳ
ﺗﻴﻦ ﻓﻘﻂ ،و ﻫﻤﺎ اﻻﺳﻢ واﻟﻌﻤﺮ .
ﻟﻠﻤﻌﻠﻤﺎ ت اﻷﺧﻴﺮ
ﺑﻤﻌﻨﻰ آﺧﺮ ،ﺳﻴﻜﻮﻧﻮن ﻗﺎدرﻳﻦ ﻋﲆ اﻟﺠﻠﻮسﺘ ﻲ أﻧﺸﺄﻧﺎ ﻫﺎ ﻻﺣ ًﻘﺎ ﻣﻦ اﻟﻮﺻﻮل إﱃ ﻫﺬه اﻟﻄﺮق.
ﺘﻤﻜﻦ اﻟﺤﺎﻻ ت اﻟ
ﺘself.ﺳ
ﺜﻴﺮ.
ﺘﺪﺣﺮج .ﻓ ﻲ اﻟﻮﻗ ﺖ اﻟﺤﺎﻟ ﻲ ،ﻻﻳﻔﻌﻞ اﻟﺠﻠﻮس )(و )( roll_overاﻟﻜ
واﻟ
اﻟﻔﺼﻮل 163
Machine Translated by Google
ﺑﺤﺎﺟ ﺔ إﱃ إﺟﺮاءﺗﻐﻴﻴﺮ ﻃﻔﻴﻒ واﺣﺪ.ﺑﺈﻧﺸﺎء ﻓﺼﻞ دراﺳ ﻲ ﻓ ﻲ Python 2.7 ،ﻓﺄﻧ ﺖﻋﻨﺪﻣﺎﺗﻘﻮم
ﺑﻴﻦ ﻗﻮﺳﻴﻦ ﻋﻨﺪ إﻧﺸﺎء ﻓﺌ ﺔ:ﻳﻤﻜﻨﻚﺗﻀﻤﻴﻦ اﻟﻤﺼﻄﻠﺢ ﻛﺎﺋﻦ
ﻓﺌ ﺔ )ClassNameﻛﺎﺋﻦ(:
--ﻗﺺ--
ﺑ ًﺎ ﻣﻌﻴﻨ ﺔ.
ﺜﻞ ﻛﻼ
ﺑﻜﻴﻔﻴ ﺔ ﻋﻤﻞ ﺣﺎﻻ ت ﻓﺮدﻳ ﺔﺗﻤ
ﺒﺮ Python
ﺗﺨ
ﺘﻐﻴﺮ my_dog.اﺻﻄﻼح
ﺜﺎل ﻓ ﻲ اﻟﻤ
ﺘﺨﺰﻳﻦ ﻫﺬا اﻟﻤ
ﺑﺜﻞ ﻫﺬا اﻟﻜﻠ ﺐ .ﻧﻘﻮم
ﺜﻴﻞﻳﻤ
ﺑﺈرﺟﺎع ﻣﺜﻮنﺗﻘﻮمﺗﻠﻘﺎﺋ ًﻴﺎ
ﺑﺎﻳﺒﺎرة ،ﻟﻜﻦ
اﻟﻌ
ﺜﻞ my_dog
ﺜﻞ Dogﻳﺸﻴﺮ إﱃ ﻓﺌ ﺔ ،واﻻﺳﻢ اﻟﺼﻐﻴﺮ ﻣ
ﺒﻴﺮة ﻣ
ﺑﺄﺣﺮف ﻛﺘﺮاض أن اﻻﺳﻢ
ﺘ ﺴﻤﻴ ﺔ ﻣﻔﻴﺪ ﻫﻨﺎ:ﻳﻤﻜﻨﻨﺎ ﻋﺎدة اﻓ
اﻟ
ﺜﻴﻞ واﺣﺪ cre atedﻣﻦ ﻓﺌ ﺔ.
ﻳﺸﻴﺮ إﱃ ﻣ
اﻟﻮﺻﻮل إﱃ اﻟ ﺴﻤﺎ ت
ﺑ ﺔ:
ﺘﺎ
ﺘﺨﺪامﺗﺪوﻳﻦ اﻟﻨﻘﻄ ﺔ .ﻓ ﻲ vﻧﺼﻞ إﱃ ﻗﻴﻤ ﺔ اﺳﻢﺳﻤ ﺔ my_dogﻋﻦ ﻃﺮﻳﻖ ﻛ
ﺜﻴﻞ ،ﻳﻤﻜﻨﻚ اﺳ
ﻟﻠﻮﺻﻮل إﱃﺳﻤﺎ ت ﻣ
my_dog.name
164اﻟﻔﺼﻞ 9
Machine Translated by Google
ﺒ ﻲ ﻫﻮ وﻳﻠ ﻲ.
اﺳﻢ ﻛﻠ
ﺒ ﻲ ﻋﻤﺮه 6ﺳﻨﻮا ت. ﻛﻠ
ﺗﺼﺎل
ﻃﺮق اﻻ
ﺒﻨﺎ
ﺘﺪﻋﺎء أي ﻃﺮﻳﻘ ﺔ ﻣﺤﺪدة ﻓ ﻲ Dog.ﻟﻨﺠﻌﻞ ﻛﻠ
ﺘﺨﺪامﺗﺪوﻳﻦ اﻟﻨﻘﻄ ﺔ ﻻﺳ
ﺜﻴﻞ ﻣﻦ اﻟﻔﺌ ﺔ Dog ،ﻳﻤﻜﻨﻨﺎ اﺳ
ﺑﻌﺪ إﻧﺸﺎء ﻣ
ﺘﺪﺣﺮج:
ﻳﺠﻠ ﺲ وﻳ
ﺘﻌﺪدة
ﺜﻴﻼ ت ﻣ
إﻧﺸﺎء ﻣ
اﻟﻔﺼﻮل 165
Machine Translated by Google
"
ﺒﻚ ﻫﻮ )" + your_dog.name.title () +".
print ("\ nاﺳﻢ ﻛﻠ
" "
ﺒﻠﻎ + str (your_dog.age) +ﺳﻨ ﺔ(".ﺒﻚﻳ")printﻛﻠ
)( your_dog.sit
ﺒ ﻲ ﻫﻮ وﻳﻠ ﻲ.
اﺳﻢ ﻛﻠ
ﺒ ﻲ ﻋﻤﺮه 6ﺳﻨﻮا ت.
ﻛﻠ
وﻳﻠ ﻲ ﺟﺎﻟ ﺲ اﻵن.
ﺘﻈﻞﺗﻨﺸ ﺊ ﻣ ً
ﺜﻴﻼ ﻣﻨﻔﺼ ﻼ ً ﻋﻦ ﻓﺌ ﺔ Dog . ﺜﺎﻧ ﻲ ،ﻓﺈن Pythonﺳ
ﺘﺨﺪﻣﻨﺎ ﻧﻔ ﺲ اﻻﺳﻢ واﻟﻌﻤﺮ ﻟﻠﻜﻠ ﺐ اﻟ
ﺘﻰ ﻟﻮ اﺳ
ﺣ
ﺘﻞ ﻣﻜﺎﻧًﺎ
ﺘﻐﻴﺮ ﻓﺮﻳﺪ أوﻳﺤ
ﺜﻴﻞ اﺳﻢ ﻣ
ﺘﻚ ،ﻃﺎﻟﻤﺎ أﻧﻚﺗﻌﻄ ﻲ ﻛﻞ ﻣ
ﺜﻠ ﺔ ﻣﻦ ﻓﺌ ﺔ واﺣﺪة ﺣ ﺴ ﺐ ﺣﺎﺟ
ﻳﻤﻜﻨﻚ ﻋﻤﻞ اﻟﻌﺪﻳﺪ ﻣﻦ اﻷﻣ
ﻓﺮﻳﺪًا ﻓ ﻲ ﻗﺎﺋﻤ ﺔ أو ﻗﺎﻣﻮس.
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺘﻴﻦ :اﺳﻢ_اﻟﻤﻄﻌﻢ
9-1.اﻟﻤﻄﻌﻢ :اﺻﻨﻊ ﻓﺼﻞ دراﺳ ﻲﻳ ﺴﻤﻰ ﻣﻄﻌﻢ.ﻳﺠ ﺐ أنﻳﺨﺰن اﻷﺳﻠﻮ ب )( __ __initﻟﻠﻤﻄﻌﻢﺳﻤ
ﺒﺦ .
وﻧﻮع_اﻟﻤﻄ
ﺒﻊ رﺳﺎﻟ ﺔﺗﺸﻴﺮ إﱃ أن
ﺗﻄﺘﻴﻦ ،وﻃﺮﻳﻘ ﺔﺗ ﺴﻤﻰ )( "" open
ﺗﻴﻦ اﻟﻤﻌﻠﻮﻣ
ﺒﻊ ﻫﺎ
ﺑﻌﻤﻞ ﻃﺮﻳﻘ ﺔﺗ ﺴﻤﻰ "وﺻﻒ" )(ﺗﻄﻗﻢ
ﺘﻮح.
اﻟﻤﻄﻌﻢ ﻣﻔ
ﺘﻴﻦ.
ﺘﺪﻋﺎء ﻛﻼ اﻟﻄﺮﻳﻘ
ﺑﺎﺳﺛﻢ ﻗﻢﺑﺸﻜﻞ ﻓﺮدي ،ﺗ ﻲ اﻷذﻳﻦ
ﺑﻮﺒﺎﻋ ﺔ
ﺑﻄ اﺻﻨﻊ ﻣ ً
ﺜﻴﻼﻳ ﺴﻤﻰ ﻣﻄﻌﻢ ﻣﻦ ﻓﺼﻠﻚ .ﻗﻢ
ﺜﺎل.
ﻣ
ﺘﺨﺪم.
ﺘﻴﻦ ﻟﻜﻞ ﻣ ﺴ
ﺘﺪع اﻟﻄﺮﻳﻘ
ﺘﻠﻔﻴﻦ ،واﺳ
ﺘﺨﺪﻣﻴﻦ ﻣﺨ
ﺜﻞ ﻣ ﺴ
ﺜﻴﻼ تﺗﻤ
أﻧﺸ ﺊ ﻋﺪة ﻣ
166اﻟﻔﺼﻞ 9
Machine Translated by Google
ﺜﻴﻼ ت
اﻟﻌﻤﻞ ﻣﻊ اﻟﻔﺌﺎ ت واﻟﻤ
ﺘﻚ
ﺘﻘﻀ ﻲ ﻣﻌﻈﻢ وﻗ
ﺑ ﺔ ﻓﺼﻞ دراﺳ ﻲ ،ﺳ
ﺘﺎ
ﺑﻤﺠﺮد ﻛﺜﻴﻞ اﻟﻌﺪﻳﺪ ﻣﻦ ﻣﻮاﻗﻒ اﻟﻌﺎﻟﻢ اﻟﺤﻘﻴﻘ ﻲ.
ﺘﻤﺘﺨﺪام اﻟﻔﺌﺎ ت ﻟ
ﻳﻤﻜﻨﻚ اﺳ
ﺒﻄ ﺔ
ﺗﺑﻬﺎ ﻫ ﻲﺗﻌﺪﻳﻞ اﻟ ﺴﻤﺎ ت اﻟﻤﺮﺘ ﻲﺗﺮﻳﺪ اﻟﻘﻴﺎم
ﺘ ﻲﺗﻢ إﻧﺸﺎؤ ﻫﺎ ﻣﻦﺗﻠﻚ اﻟﻔﺌ ﺔ .إﺣﺪى اﻟﻤﻬﺎم اﻷوﱃ اﻟ
ﻓ ﻲ اﻟﻌﻤﻞ ﻣﻊ اﻟﻨ ﺴﺦ اﻟ
ﺑﻄﺮق ﻣﻌﻴﻨ ﺔ.ﺑ ﺔ ﻃﺮقﺗﻌﻤﻞ ﻋﲆﺗﺤﺪﻳ ﺚ اﻟ ﺴﻤﺎ ت
ﺘﺎ ً
ﺒﺎﺷﺮة أو ﻛ
ﺜﻴﻞ ﻣ
ﺜﻴﻞ ﻣﻌﻴﻦ.ﻳﻤﻜﻨﻚﺗﻌﺪﻳﻞﺳﻤﺎ ت ﻣ
ﺑﻤ
ﻓﺌ ﺔ اﻟ ﺴﻴﺎرة
ﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ ،وﺳﻴﻜﻮن
ﺘ ﻲﻧ
ﺜﻞ اﻟ ﺴﻴﺎرة.ﺳﻴﺨﺰن اﻟﻔﺼﻞ ﻟﺪﻳﻨﺎ ﻣﻌﻠﻮﻣﺎ ت ﺣﻮل ﻧﻮع اﻟ ﺴﻴﺎرة اﻟ
ﺘ ﺐ ﻓﺌ ﺔ ﺟﺪﻳﺪةﺗﻤ
دﻋﻮﻧﺎ ﻧﻜ
ﻟﻬﺎ ﻃﺮﻳﻘ ﺔﺗﻠﺨﺺ ﻫﺬه اﻟﻤﻌﻠﻮﻣﺎ ت:
= self.yearﺳﻨ ﺔ
ﺗ ﻲ(:
)v def get_descriptive_nameذا
ﺑﺪﻗ ﺔ"" "."""إرﺟﺎع اﺳﻢ وﺻﻔ ﻲ ﻣﻨ ﺴﻖ
" " " "
long_name = str (self.year) + + self.make +إرﺟﺎع )( long_name.title ﺗﻲ
+اﻟﻨﻤﻮذج اﻟﺬا
ﺑﺎﻟﺬا ت
ﻓ ﻲ uﻓ ﻲ ﻓﺌ ﺔ اﻟ ﺴﻴﺎرا ت ،ﻧﺤﺪد ﻃﺮﻳﻘ ﺔ )( __ __init
ﺛﻼ ث ﻣﻌﻠﻤﺎ ت أﺧﺮى :اﻟﺼﻨﻊ واﻟﻄﺮاز واﻟ ﺴﻨ ﺔ .ﺗﺄﺧﺬ ﻃﺮﻳﻘ ﺔ )( __ ﺒﻞ ﻣﻊ ﻓﺼﻞ اﻟﻜﻼ ب .ﻧﻌﻄﻴﻬﺎ أ ً
ﻳﻀﺎ ﺗﻤﺎﻣﺎ ﻛﻤﺎ ﻓﻌﻠﻨﺎ ﻣﻦ ﻗ
ً اﻟﻤﻌﻠﻤ ﺔ أوﻻ ً ،
ﺜﻴﻼ ت اﻟﻤﺼﻨﻮﻋ ﺔ ﻣﻦ ﻫﺬه اﻟﻔﺌ ﺔ .ﻋﻨﺪﻣﺎ ﻧﺼﻨﻊﺳﻴﺎرة ﺟﺪﻳﺪة
ﺑﺎﻟﻤﺒﻂ
ﺗﺘﺮ
ﺘ ﻲﺳ
ﺗﺨﺰﻧﻬﺎ ﻓ ﻲ اﻟ ﺴﻤﺎ ت اﻟ
__initﻫﺬه اﻟﻤﻌﻠﻤﺎ ت و
ﺜﺎل.
ﺒﻴﻞ اﻟﻤ
ﺘﺎج إﱃﺗﺤﺪﻳﺪ اﻟﻄﺮاز واﻟﻄﺮاز واﻟ ﺴﻨ ﺔ ﻋﲆﺳ
ﺜﺎل ،ﺳﻨﺤ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺗﻀﻊﺳﻨ ﺔ اﻟ ﺴﻴﺎرة وﺻﻨﻌﻬﺎ وﻧﻤﻮذﺟﻬﺎ ﻓ ﻲﺳﻠ ﺴﻠ ﺔ واﺣﺪةﺗﺼﻒ اﻟ ﺴﻴﺎرة
ﻓ ﻲ vﻧﺤﺪد ﻃﺮﻳﻘ ﺔﺗ ﺴﻤﻰ )( get_descriptive_name
ﺘﺨﺪم self.make
ﺒﺎﻋ ﺔ ﻗﻴﻤ ﺔ ﻛﻞﺳﻤ ﺔ ﻋﲆ ﺣﺪة .ﻟﻠﻌﻤﻞ ﻣﻊ ﻗﻴﻢ اﻟ ﺴﻤﺎ ت ﻓ ﻲ ﻫﺬه اﻟﻄﺮﻳﻘ ﺔ ،ﻧ ﺴ
ﺒﻨﺎ اﻻﺿﻄﺮار إﱃ ﻃ
ﺑﺪﻗ ﺔ .ﻫﺬاﺳﻮفﻳﺠﻨ
و self.modelو self.year.
ﺛﻢ ﻧ ﺴﻤ ﻲ )( get_descriptive_name
ﺘﻐﻴﺮ my_new_car.
ﺗﺨﺰﻳﻨﻪ ﻓ ﻲ اﻟﻤ
ﺜﻴﻞ ﻣﻦ ﻓﺌ ﺔ اﻟ ﺴﻴﺎرة و
ﺑﻌﻤﻞ ﻣﻓ ﻲ w ،ﻧﻘﻮم
ﺘ ﻲ ﻟﺪﻳﻨﺎ:
ﻹﻇﻬﺎر ﻧﻮع اﻟ ﺴﻴﺎرة اﻟ
2016أودي A4
ﺒﻘﺎ ت
اﻟﻄ 167
Machine Translated by Google
ﺘﺮاﺿﻴ ﺔ ﻟ ﺴﻤ ﺔ
ﺗﻌﻴﻴﻦ ﻗﻴﻤ ﺔ اﻓ
ﺑﻌﺾ اﻟﺤﺎﻻ ت ،ﻛﻤﺎ ﻫﻮﺘﻰ ﻟﻮ ﻛﺎﻧ ﺖ ﻫﺬه اﻟﻘﻴﻤ ﺔ 0أوﺳﻠ ﺴﻠ ﺔ ﻓﺎرﻏ ﺔ .ﻓ ﻲ
ﺘﺎج ﻛﻞﺳﻤ ﺔ ﻓ ﻲ ﻓﺌ ﺔ ﻣﺎ إﱃ ﻗﻴﻤ ﺔ أوﻟﻴ ﺔ ،ﺣ
ﺗﺤ
ﺘﺮاﺿﻴ ﺔ ،ﻳﻜﻮن ﻣﻦ اﻟﻤﻨﻄﻘ ﻲﺗﺤﺪﻳﺪ ﻫﺬه اﻟﻘﻴﻤ ﺔ اﻷوﻟﻴ ﺔ ﻓ ﻲ ﻧﺺ ﻃﺮﻳﻘ ﺔ ؛ )( __ __initإذا ﻗﻤ ﺖ
اﻟﺤﺎل ﻋﻨﺪﺗﻌﻴﻴﻦ ﻗﻴﻤ ﺔ اﻓ
ﺘﻠﻚ اﻟ ﺴﻤ ﺔ.
ﺑﺬﻟﻚ ﻹﺣﺪى اﻟ ﺴﻤﺎ ت ،ﻓﻠﻦﺗﻀﻄﺮ إﱃﺗﻀﻤﻴﻦ ﻣﻌﻠﻤ ﺔ ﻟ
ﺑﻘﻴﻤ ﺔ 0.ﺳﻨﻀﻴﻒ أ ً
ﻳﻀﺎ ﻃﺮﻳﻘ ﺔ )( ﺋﻤﺎ
ﺒﺪأ دا ً
ﺘ ﻲﺗ
دﻋﻨﺎ ﻧﻀﻴﻒ ﺧﺎﺻﻴ ﺔﺗ ﺴﻤﻰ ﻗﺮاءة ﻋﺪاد اﻟﻤ ﺴﺎﻓﺎ ت واﻟ
ﺘ ﻲﺗ ﺴﺎﻋﺪﻧﺎ ﻋﲆ ﻗﺮاءة ﻋﺪاد اﻟﻤ ﺴﺎﻓﺎ ت ﻟﻜﻞﺳﻴﺎرة:
read_odometerاﻟ
= self.yearﺳﻨ ﺔ
ش self.odometer_reading = 0
ﺗ ﻲ(:
)def get_descriptive_nameذا
--ﻗﺺ--
ﺗ ﻲ(:
)v def read_odometerذا
ﺑﺎﻟ ﺴﻴﺎرة"" ".ﺑﻴﺎنﻳﻮﺿﺢ اﻟﻤ ﺴﺎﻓ ﺔ اﻟﻤﻘﻄﻮﻋ ﺔ ﺒﺎﻋ ﺔ"""ﻃ
" "
ﺗ ﻲ_ﻗﺮاءة( +ﺑﻬﺎ )+ strﻣﻘﻴﺎس ذا ﺒﺎﻋ ﺔ )" ﻫﺬه اﻟ ﺴﻴﺎرة
ﻃ أﻣﻴﺎل ﻋﻠﻴﻬﺎ") .
2016أودي A4
ﺑﻬﺎ 0ﻣﻴﻞ.ﻫﺬه اﻟ ﺴﻴﺎرة
ﺘﺎﺳﻊ
168اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺒﺎﺷﺮة
ﺗﻌﺪﻳﻞ ﻗﻴﻤ ﺔ اﻟ ﺴﻤ ﺔ ﻣ
ﺒﺮ ً
ﺒﺎﺷﺮة.ﻳﺨ
ﺘﻪ ﻣ
ﺗﻌﻴﻴﻦ ﻗﻴﻤ
ﺘﺨﺪمﺗﺪوﻳﻦ اﻟﻨﻘﻄ ﺔ ﻟﻠﻮﺻﻮل إﱃ ﻧﻤﻮذج ﻗﺮاءة ﻋﺪاد اﻟﻤ ﺴﺎﻓﺎ ت ﻟﻠ ﺴﻴﺎرة و
ﻓ ﻲ u ،ﻧ ﺴ
ﺗﻌﻴﻴﻦ ﻗﻴﻤ ﺔ
ﺑﻪ ،وﺒﻄ ﺔ
ﺗﺜﻮر ﻋﲆﺳﻤ ﺔ ﻗﺮاءة ﻋﺪاد اﻟﻤ ﺴﺎﻓﺎ ت اﻟﻤﺮ
ﺜﺎل my_new_car ،واﻟﻌ
ﺑﺄﺧﺬ اﻟﻤ
ﻫﺬا اﻟ ﺴﻄﺮ Python
ﻫﺬه اﻟ ﺴﻤ ﺔ ﻋﲆ 23:
2016أودي A4
ً
ﺒﺎﺷﺮة ،وﻟﻜﻦ أﺧﺮى
ﺜﻞ ﻫﺬه ﻣ
ﺘﺮﻏ ﺐ ﻓ ﻲ اﻟﻮﺻﻮل إﱃﺳﻤﺎ ت ﻣ
ﺑﻌﺾ اﻷﺣﻴﺎنﺳﻓﻲ
ﺒ ﺔ ﻟﻚ.
ﺑﺎﻟﻨ ﺴﺘﺤﺪﻳ ﺚ اﻟﻘﻴﻤ ﺔ
ﺑﺑ ﺔ ﻃﺮﻳﻘ ﺔﺗﻘﻮم
ﺘﺎ
ﺘ ﻲﺗﺮﻳﺪ ﻓﻴﻬﺎ ﻛ
ﻋﺪد اﻟﻤﺮا ت اﻟ
ﺘﺮا ت(:
ﺗ ﻲ ،ﻋﺪد اﻟﻜﻴﻠﻮﻣ
)u def update_odometerذا
ﺒﻂ ﻗﺮاءة اﻟﻌﺪاد ﻋﲆ اﻟﻘﻴﻤ ﺔ اﻟﻤﺤﺪدة"" ".
"""اﺿ
= self.odometer_readingاﻷﻣﻴﺎل
اﻟﻔﺼﻮل 169
Machine Translated by Google
ﺒﻊ )( read_odometer
ﺘﻌﻴﻴﻦ ﻗﺮاءة ﻋﺪاد اﻟﻤ ﺴﺎﻓﺎ ت ﻋﲆ 23 ،وﻳﻄ
ﺑإﱃ ﻣﻌﻠﻤ ﺔ اﻷﻣﻴﺎل ﻓ ﻲﺗﻌﺮﻳﻒ اﻟﻄﺮﻳﻘ ﺔ(.ﻳﻘﻮم
اﻟﻘﺮاءة:
2016أودي A4
ﺘﺮا ت(:
ﺗ ﻲ ،ﻋﺪد اﻟﻜﻴﻠﻮﻣ
)def update_odometerذا
""
ﺘﻌﻤﻠ ﺔ
ﺘﺮﻳﻨﺎﺳﻴﺎرة ﻣ ﺴ
ﺘﺮض أﻧﻨﺎ اﺷ
ﺗﻤﺎﻣﺎ .ﻟﻨﻔ
ً ﺑﺪﻻ ً ﻣﻦﺗﻌﻴﻴﻦ ﻗﻴﻤ ﺔ ﺟﺪﻳﺪةﺑﻤﻘﺪار ﻣﻌﻴﻦﺘﺎج أﺣﻴﺎﻧًﺎ إﱃ زﻳﺎدة ﻗﻴﻤ ﺔ اﻟ ﺴﻤ ﺔ
ﺘﺤﺳ
ﺑﻴﻦ وﻗ ﺖ ﺷﺮاﺋﻬﺎ ووﻗ ﺖﺗ ﺴﺠﻴﻠﻬﺎ.ووﺿﻌﻨﺎ ﻋﻠﻴﻬﺎ ﻣ ﺴﺎﻓ ﺔ 100ﻣﻴﻞ
ﺘﺮا ت(:
ﺗ ﻲ ،ﻋﺪد اﻟﻜﻴﻠﻮﻣ
)def update_odometerذا
--ﻗﺺ--
ﺗ ﻲ ،أﻣﻴﺎل(:
)u def increment_odometerذا
ﺒﻠﻎ اﻟﻤﺤﺪد ﻟﻘﺮاءة ﻋﺪاد اﻟﻤ ﺴﺎﻓﺎ ت"" ".
"""أﺿﻒ اﻟﻤ
= self.odometer_reading +اﻷﻣﻴﺎل
ﺘﺎﺳﻊ
170اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺒﻴ ﺔ ﻟﺬﻟﻚ ﻻ
ﺑ ﺴﻬﻮﻟ ﺔﺗﻌﺪﻳﻞ ﻫﺬه اﻟﻄﺮﻳﻘ ﺔ ﻟﺮﻓﺾ اﻟﺰﻳﺎدا ت اﻟ ﺴﻠﻳﻤﻜﻨﻚ
ﺘﺮاﺟﻊ ﻋﻦ ﻋﺪاد اﻟﻤ ﺴﺎﻓﺎ ت.
ﺘﺨﺪم اﻟﻤﺮء ﻫﺬه اﻟﻮﻇﻴﻔ ﺔ ﻟﻠ
ﻳﺴ
ﺒﺮﻧﺎﻣﺞ
ﺘﺨﺪﻣ ﻲ اﻟ
ﺘﺤﻜﻢ ﻓ ﻲ ﻛﻴﻔﻴ ﺔﺗﺤﺪﻳ ﺚ ﻗﻴﻢ ﻣ ﺴ
ﺜﻞ ﻫﺬه ﻟﻠ
ﺘﺨﺪام ﻃﺮق ﻣ
ﻻﻳﻤﻜﻨﻚ اﺳ
ﺒﻂ ﻗﺮاءةﺳﺮﻋ ﺔ اﻟﻘﺮاءة ﻋﲆ أي ﻗﻴﻤ ﺔ
ﺒﺮﻧﺎﻣﺞ ﺿ
ﺜﻞ ﻗﺮاءة ﻋﺪاد اﻟﻤ ﺴﺎﻓﺎ ت ،وﻟﻜﻦﻳﻤﻜﻦﻷي ﺷﺨﺺ ﻟﺪﻳﻪ ﺣﻖ اﻟﻮﺻﻮل إﱃ اﻟ
ﻣ
ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ﻋﻤﻠﻴﺎ ت اﻟﻔﺤﺺﺘﻔﺎﺻﻴﻞ
ﺑﺎﻟﺘﻤﺎﻣﺎ ﺷﺪﻳﺪًا
ً ﺒﺎﺷﺮة.ﻳﺄﺧﺬ اﻷﻣﺎن اﻟﻔﻌﺎل ا ﻫ ﻋﻦ ﻃﺮﻳﻖ اﻟﻮﺻﻮل إﱃ اﻟ ﺴﻤ ﺔ ﻣ
ﺜﻞﺗﻠﻚ اﻟﻤﻮﺿﺤ ﺔ ﻫﻨﺎ. اﻷﺳﺎﺳﻴ ﺔ ﻣ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺘﺪع
ﺘﻬﻢ .اﺳ
ﺘﻴﺢ ﻟﻚﺗﻌﻴﻴﻦ ﻋﺪد اﻟﻌﻤﻼء اﻟﺬﻳﻦﺗﻢ ﺧﺪﻣ
ﺗأﺿﻒ ﻃﺮﻳﻘ ﺔﺗ ﺴﻤﻰ )( set_number_served
ﺒﻊ اﻟﻘﻴﻤ ﺔ ﻣﺮة أﺧﺮى.
ﺑﺮﻗﻢ ﺟﺪﻳﺪ واﻃﻫﺬه اﻟﻄﺮﻳﻘ ﺔ
ﺘﻬﻢ.
ﺘﻴﺢ ﻟﻚ زﻳﺎدة ﻋﺪد اﻟﻌﻤﻼء اﻟﺬﻳﻦﺗﻢ ﺧﺪﻣ
ﺗأﺿﻒ ﻃﺮﻳﻘ ﺔﺗ ﺴﻤﻰ )( increment_number_served
ﺒﻴﻞ
ﺜﻞ ﻋﺪد اﻟﻌﻤﻼء اﻟﺬﻳﻦﺗﻢﺗﻘﺪﻳﻢ اﻟﺨﺪﻣ ﺔ ﻟﻬﻢ ،ﻋﲆﺳ
ﺘﺪع ﻫﺬه اﻟﻄﺮﻳﻘ ﺔ ﻣﻊ أي ﻋﺪدﺗﺮﻳﺪهﻳﻤﻜﻦ أنﻳﻤ
اﺳ
ﺜﺎل ،ﻓ ﻲﻳﻮم ﻋﻤﻞ.
اﻟﻤ
ﺑﻚﺘﺨﺪم اﻟﺨﺎص
9-5.ﻣﺤﺎوﻻ تﺗ ﺴﺠﻴﻞ اﻟﺪﺧﻮل :أﺿﻒﺳﻤ ﺔﺗ ﺴﻤﻰ login_attemptsإﱃ اﻟﻤ ﺴ
ﺘ ﺐ ﻋﻤﻠﻴ ﺔﺗ ﺴﻤﻰ _increment
ﺘﻤﺮﻳﻦ )9-3اﻟﺼﻔﺤ ﺔ 166).اﻛ
ﻓﺼﻞ دراﺳ ﻲ ﻣﻦ اﻟ
ﺘ ﺐ ﻃﺮﻳﻘ ﺔ أﺧﺮىﺗ ﺴﻤﻰ )(
ﺑﻤﻘﺪار 1.اﻛ
ﺘ ﻲﺗﺰﻳﺪ ﻣﻦ ﻗﻴﻤ ﺔ login_attempts
)( login_attemptsاﻟ
ﺗﻌﻴﺪﺗﻌﻴﻴﻦ ﻗﻴﻤ ﺔ _login
reset_login_attempts
ﻳﺤﺎول 0.
ﺘﺪﻋﺎء )( increment_login_attempts
ﺘﺨﺪم واﺳ
ﺜﻴﻞ ﻟﻔﺌ ﺔ اﻟﻤ ﺴ
ﺑﻌﻤﻞ ﻣﻗﻢ
ﺑـ ().ﺗﺼﻞ
ﺛﻢ اﺑﺸﻜﻞ ﺻﺤﻴﺢ ،ﺗﻬﺎ
ﺘﺄﻛﺪ ﻣﻦ زﻳﺎد
ﺒﻊ ﻗﻴﻤ ﺔ login_attemptsﻟﻠ
ﻋﺪة ﻣﺮا ت .اﻃ
ﺘﺄﻛﺪ ﻣﻦ إﻋﺎدةﺗﻌﻴﻴﻨﻪ إﱃ 0.
ﺒﻊ login_attemptsﻣﺮة أﺧﺮى ﻟﻠ
reset_login_attemptsاﻃ
ﺒﻘﺎ ت
اﻟﻄ 171
Machine Translated by Google
ﻣﻴﺮا ث
ﺘﺨﺼﺼ ﺔ ﻣﻦ ﻓﺌ ﺔ أﺧﺮى
ﺒﺎرة ﻋﻦ ﻧ ﺴﺨ ﺔ ﻣ
ﺒﻪ ﻋ
ﺘﺑ ﺔ اﻟﻔﺼﻞ .إذا ﻛﺎن اﻟﻔﺼﻞ اﻟﺬيﺗﻜ
ﺘﺎ
ﺒﺪء ﻣﻦ اﻟﺼﻔﺮ ﻋﻨﺪ ﻛ
ﺋﻤﺎ اﻟ
ﻟﻴ ﺲ ﻋﻠﻴﻚ دا ً
ُﻄﻠﻖ
ﺘﺨﺪام اﻟﻤﻴﺮا ث .ﻋﻨﺪﻣﺎﺗﺮ ث ﻓﺌ ﺔ ﻣﻦ أﺧﺮى ،ﻓﺈﻧﻬﺎﺗﺄﺧﺬﺗﻠﻘﺎﺋ ًﻴﺎ ﺟﻤﻴﻊﺳﻤﺎ ت وﻃﺮق اﻟﻔﺌ ﺔ اﻷوﱃ.ﻳ
ﺘﻬﺎ ،ﻓﻴﻤﻜﻨﻚ اﺳ
ﺒﺘﻛ
ُﻄﻠﻖ ﻋﲆ اﻟﻔﺼﻞ اﻟﺠﺪﻳﺪ ﻓﺌ ﺔ ﻓﺮﻋﻴ ﺔ.ﺗﺮ ث اﻟﻔﺌ ﺔ اﻟﻔﺮﻋﻴ ﺔ ﻛﻞﺳﻤ ﺔ وﻃﺮﻳﻘ ﺔ ﻣﻦ
ﺑﻴﻨﻤﺎﻳﻋﲆ اﻟﻔﺼﻞ اﻷﺻﻠ ﻲ ﻓﺌ ﺔ اﻷﺻﻞ ،
ﺑﻬﺎ. ﺻﻨﻔﻬﺎ اﻷﺻﻠ ﻲ وﻟﻜﻨﻬﺎ أ ً
ﻳﻀﺎ ﺣﺮة ﻓ ﻲﺗﺤﺪﻳﺪﺳﻤﺎ ت وﻃﺮق ﺟﺪﻳﺪة ﺧﺎﺻ ﺔ
ﺑﻌ ﺔ
ﻃﺮﻳﻘ ﺔ )( __ __initﻟﻔﺌ ﺔﺗﺎ
ﺜﻴﻞ ﻣﻦ ﻓﺌ ﺔ ﻓﺮﻋﻴ ﺔ ﻫ ﻲﺗﻌﻴﻴﻦ ﻗﻴﻢ ﻟﺠﻤﻴﻊ اﻟ ﺴﻤﺎ ت ﻓ ﻲ اﻟﻔﺌ ﺔ اﻷﺻﻠﻴ ﺔ .ﻟﻠﻘﻴﺎم
ﺑﻬﺎ Pythonﻋﻨﺪ إﻧﺸﺎء ﻣأول ﻣﻬﻤ ﺔﺗﻘﻮم
ﺑﺬﻟﻚ __init __ () ،
ﺘﺎج إﱃ ﻣ ﺴﺎﻋﺪة ﻣﻦ ﺻﻔﻪ اﻷﺻﻞ.
ﻃﺮﻳﻘ ﺔ ﻟﺼﻒ ﻃﻔﻞﻳﺤ
ﺑﺎﺋﻴ ﺔ ﻫ ﻲ ﻣﺠﺮد ﻧﻮع ﺧﺎص ﻣﻦ اﻟ ﺴﻴﺎرا ت ،ﻟﺬﻟﻚﻳﻤﻜﻨﻨﺎ أنﺑﺎﺋﻴ ﺔ .اﻟ ﺴﻴﺎرة اﻟﻜﻬﺮ
ﺟﺎ ﻟ ﺴﻴﺎرة ﻛﻬﺮ
ﺜﺎل ،ﻟﻨﻀﻊ ﻧﻤﻮذ ً
ﻛﻤ
ﺑ ﺔ رﻣﺰ ﻟﻠ ﺴﻤﺎ ت
ﺘﺎ
ﺘﻌﻴﻦ ﻋﻠﻴﻨﺎ ﻓﻘﻂ ﻛ ﺛﻢﺳﻴﺑ ًﻘﺎ.
ﺒﻨﺎ ﻫﺎﺳﺎ
ﺘﺘ ﻲﻛ
ﺒﻨ ﻲ ﻓﺌ ﺔ ElectricCarاﻟﺠﺪﻳﺪة ﻟﺪﻳﻨﺎ ﻋﲆ ﻓﺌ ﺔ اﻟ ﺴﻴﺎرا ت اﻟ ﻧ
ﺑﺎﺋﻴ ﺔ.
ﺑﺎﻟ ﺴﻴﺎرا ت اﻟﻜﻬﺮواﻟ ﺴﻠﻮك اﻟﺨﺎﺻﻴﻦ
ﺘﻲ
ﺑ ﺴﻴﻄ ﺔ ﻣﻦ ﻓﺌ ﺔ ElectricCar ،واﻟﺑﺼﻨﻊ ﻧ ﺴﺨ ﺔﺒﺪأ
ﻟﻨ
ﻳﻔﻌﻞ ﻛﻞ ﺷ ﻲءﺗﻔﻌﻠﻪ ﻓﺌ ﺔ اﻟ ﺴﻴﺎرة :
= self.yearﺳﻨ ﺔ
self.odometer_reading = 0
ﺗ ﻲ(:
)def get_descriptive_nameذا
+ self.make +
" " " "
long_name = str (self.year) +إرﺟﺎع )( ﺗﻲ
+اﻟﻨﻤﻮذج اﻟﺬا
long_name.title
ﺗ ﻲ(:
)def read_odometerذا
" "
ﺒﺎﻋ ﺔ )" ﻫﺬه اﻟ ﺴﻴﺎرة ﻟﺪﻳﻬﺎ
ﻃ + str (self.odometer_reading) + أﻣﻴﺎل ﻋﻠﻴﻬﺎ") .
ﺘﺮا ت(:
ﺗ ﻲ ،ﻋﺪد اﻟﻜﻴﻠﻮﻣ
)def update_odometerذا
إذا اﻷﻣﻴﺎل< = self.odometer_reading:
= self.odometer_readingاﻷﻣﻴﺎل
آﺧﺮ:
ﺗ ﻲ ،أﻣﻴﺎل(:
)def increment_odometerذا
= self.odometer_reading +اﻷﻣﻴﺎل
ﺘﺎﺳﻊ
172اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺒﺪأ ﻣﻊ اﻟ ﺴﻴﺎرة .ﻋﻨﺪ إﻧﺸﺎء ﻓﺼﻞ دراﺳ ﻲ ﻓﺮﻋ ﻲ ،ﻳﺠ ﺐ أنﻳﻜﻮن اﻟﻔﺼﻞ اﻟﺪراﺳ ﻲ اﻷﺻﻞ ﺟﺰءًا ﻣﻦ اﻟﻤﻠﻒ
ﻓ ﻲ uﻧ
ﺘﻢ
ﺒﻞ اﻟﻔﺼﻞ اﻟﺪراﺳ ﻲ اﻟﻔﺮﻋ ﻲ ﻓ ﻲ اﻟﻤﻠﻒ .ﻓ ﻲ vﻧﺤﺪد ﻓﺌ ﺔ اﻟﻄﻔﻞ ElectricCar. ،ﻳﺠ ﺐ أنﻳ
اﻟﺤﺎﻟ ﻲ وﻳﺠ ﺐ أنﻳﻈﻬﺮ ﻗ
ﺑﻴﻦ ﻗﻮﺳﻴﻦ ﻓ ﻲﺗﻌﺮﻳﻒ اﻟﻔﺌ ﺔ اﻟﻔﺮﻋﻴ ﺔ.ﺗﻀﻤﻴﻦ اﺳﻢ اﻟﻔﺌ ﺔ اﻷﺻﻞ
ﺑ ﺔ ﻟﺼﻨﻊﺳﻴﺎرة
ﺗﺄﺧﺬ ﻃﺮﻳﻘ ﺔ )( __ __initﻓ ﻲ wاﻟﻤﻌﻠﻮﻣﺎ ت اﻟﻤﻄﻠﻮ
ﺜﺎل.
ﻣ
ﺜﻮن ﻋﲆ ﺻﻨﻌﻬﺎ
ﺑﺎﻳاﻟﻮﻇﻴﻔ ﺔ )( superﻓ ﻲ xﻫ ﻲ وﻇﻴﻔ ﺔ ﺧﺎﺻ ﺔﺗ ﺴﺎﻋﺪ
ﺋﻴ ﺴﻴ ﺔ ﻟـ
ﺘﺪﻋﺎء ﻃﺮﻳﻘ ﺔ )( __ __initﻣﻦ اﻟﻔﺌ ﺔ اﻟﺮ
ﺑﺎﺳ
ﺒﺮ ﻫﺬا اﻟ ﺴﻄﺮ Python
ﺑﻴﻦ ﻓﺌ ﺔ اﻟﻮاﻟﺪﻳﻦ واﻟﻄﻔﻞ.ﻳﺨﺑﻂ
اﻟﺮوا
ﺑﺮ
ﺜﻴﻞ ElectricCarﺟﻤﻴﻊﺳﻤﺎ ت ﺻﻨﻔﻬﺎ اﻷﺻﻠ ﻲ .اﻻﺳﻢﺳﻮ
ﺘ ﻲﺗﻤﻨﺢ ﻣ
ElectricCar ،واﻟ
ﺑﻨﻔ ﺲ ﻧﻮعﺑﺎﺋﻴ ﺔ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ ﻣﻦ ﺧﻼل ﻣﺤﺎوﻟ ﺔ إﻧﺸﺎءﺳﻴﺎرة ﻛﻬﺮﺛ ﺔﺗﻌﻤﻞ
ﺒﺮ ﻣﺎ إذا ﻛﺎﻧ ﺖ اﻟﻮرا
ﺘﻧﺤﻦ ﻧﺨ
ﺜﻴﻞ ﻟﻔﺌ ﺔ ElectricCar ،وﻧﺨﺰﻧﻪ ﻓ ﻲ my_tesla.
ﺑﻌﻤﻞ ﻣﺘ ﻲ ﻧﻮﻓﺮ ﻫﺎ ﻋﻨﺪ ﺻﻨﻊﺳﻴﺎرة ﻋﺎدﻳ ﺔ .ﻓ ﻲ y ،ﻧﻘﻮم
اﻟﻤﻌﻠﻮﻣﺎ ت اﻟ
ﺘﺪﻋﺎء ﻃﺮﻳﻘ ﺔ )(
ﺑﺎﺳ
ﺒﺮ Python
ﺑﺪور ﻫﺎﺗﺨﺘﻲ
ﺘﺪﻋ ﻲ ﻫﺬا اﻟ ﺴﻄﺮ ﻃﺮﻳﻘ ﺔ )( __ __initاﻟﻤﺤﺪدة ﻓ ﻲ ElectricCar ،واﻟ
ﻳﺴ
__ __initاﻟﻤﺤﺪدة ﻓ ﻲ ﻓﺌ ﺔ par ent .ﻧﺤﻦ ﻧﻘﺪم اﻟﺤﺠﺞ ""teslaو ""model sو 2016.
ﺘﺄﻛﺪ
ﺑﺎﺋﻴ ﺔ .ﻓ ﻲ ﻫﺬه اﻟﻤﺮﺣﻠ ﺔ ،ﻧ
ﺑﺎﻟ ﺴﻴﺎرة اﻟﻜﻬﺮﺘﻰ اﻵن ﺧﺎﺻ ﺔ
ﺑﺼﺮف اﻟﻨﻈﺮ ﻋﻦ __init __ () ،ﻻﺗﻮﺟﺪﺳﻤﺎ ت أو ﻃﺮق ﺣ
ﺒ ﺔ ﻟﻠ ﺴﻴﺎرة :
ﺑﺎﺋﻴ ﺔ ﻟﺪﻳﻬﺎ اﻟ ﺴﻠﻮﻛﻴﺎ ت اﻟﻤﻨﺎﺳ
ﻓﻘﻂ ﻣﻦ أن اﻟ ﺴﻴﺎرة اﻟﻜﻬﺮ
ﺗ ﺴﻼ ﻣﻮدﻳﻞ اس
2016
ﺜﻮن 2.7
ﺑﺎﻳﺛﺔ ﻓ ﻲ
اﻟﻮرا
ﺒﺪو ﻓﺌ ﺔ ElectricCarﻛﻤﺎﻳﻠ ﻲ :
ﺘﺘﻠﻒ اﻟﻤﻴﺮا ث ﻗﻠﻴ ﻼً.ﺳ
ﻓ ﻲ Python 2.7 ،ﻳﺨ
ﻓﺌ ﺔ )ElectricCarﺳﻴﺎرة(:
ﺗ ﻲ ،اﻟﻄﺮاز ،اﻟ ﺴﻨ ﺔ(: __ )def __initذا
ﺗ ﻲ( )init __ __.اﻟﻤﺎرﻛ ﺔ ،اﻟﻤﻮدﻳﻞ ،اﻟ ﺴﻨ ﺔ( ﺑﺎﺋﻴ ﺔ ،ذاﺑﺮ )ﺳﻴﺎرة ﻛﻬﺮ
ﺳﻮ
--ﻗﺺ--
ﺒﻘﺎ ت
اﻟﻄ 173
Machine Translated by Google
ﻓﺌ ﺔ )ElectricCarﺳﻴﺎرة(:
ﺑﺎﺋﻴ ﺔ"" ".
ﺒﺎ ت اﻟﻜﻬﺮ
ﺑﺎﻟﻤﺮﻛﺜﻞ ﺟﻮاﻧ ﺐ ﻣﻦ اﻟ ﺴﻴﺎرة ،ﺧﺎﺻ ﺔ
ﺗﻤ"""
ﺘﺎﺳﻊ
174اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﻃﺮقﺗﺠﺎوز ﻣﻦ ﻓﺌ ﺔ اﻷﺻﻞ
ﺑﺬﻟﻚ ،ﺗﻘﻮمﺘﻨﺎﺳ ﺐ ﻣﻊ ﻣﺎﺗﺤﺎولﺗﺼﻤﻴﻤﻪ ﻣﻊ اﻟﻔﺼﻞ اﻟﺪراﺳ ﻲ اﻟﻔﺮﻋ ﻲ .ﻟﻠﻘﻴﺎم
ﻳﻤﻜﻨﻚﺗﺠﺎوز أي ﻃﺮﻳﻘ ﺔ ﻣﻦ ﻓﺌ ﺔ اﻷﺻﻞ ﻻﺗ
ﺘﺠﺎ ﻫﻞ Python
ﺘﺘ ﻲﺗﺮﻳﺪﺗﺠﺎوز ﻫﺎ ﻓ ﻲ اﻟﻔﺼﻞ اﻟﺪراﺳ ﻲ اﻷﺻﻞ.ﺳ
ﺑﻨﻔ ﺲ اﺳﻢ اﻟﻄﺮﻳﻘ ﺔ اﻟﺘﻌﺮﻳﻒ ﻃﺮﻳﻘ ﺔ ﻓ ﻲ اﻟﻔﺌ ﺔ اﻟﻔﺮﻋﻴ ﺔ
ﺑ
ﺘ ﻲﺗﺤﺪد ﻫﺎ ﻓ ﻲ اﻟﻔﺼﻞ اﻟﻔﺮﻋ ﻲ.
ﺒﻪ ﻓﻘﻂ إﱃ اﻟﻄﺮﻳﻘ ﺔ اﻟ
ﺘﺗﻨ
ﻃﺮﻳﻘ ﺔ اﻟﻔﺌ ﺔ اﻷﺻﻞ و
ﺒ ﺔﺗﻌﻤﻞ
ﺒ ﺔ ﻟﻤﺮﻛ
ﺑﺎﻟﻨ ﺴﺘﺮض أن ﻓﺌ ﺔ اﻟ ﺴﻴﺎرة ﻟﺪﻳﻬﺎ ﻃﺮﻳﻘ ﺔﺗ ﺴﻤﻰ fill_gas_tank ().ﻫﺬه اﻟﻄﺮﻳﻘ ﺔ ﻻ ﻣﻌﻨﻰ ﻟﻬﺎ
ﻟﻨﻔ
ﺑﺬﻟﻚ:ﺑﺎﻟﻜﺎﻣﻞ ،ﻟﺬﻟﻚ ﻗﺪﺗﺮﻏ ﺐ ﻓ ﻲﺗﺠﺎوز ﻫﺬه اﻟﻄﺮﻳﻘ ﺔ .إﻟﻴﻚ ﻃﺮﻳﻘ ﺔ واﺣﺪة ﻟﻠﻘﻴﺎمﺑﺎء
ﺑﺎﻟﻜﻬﺮ
)def ElectricCarﺳﻴﺎرة(:
--ﻗﺺ--
ﺜﻴﻼ ت ﻛ ﺴﻤﺎ ت
اﻟﻤ
ﺘﻔﺎﺻﻴﻞ إﱃ
ﺒﺮﻣﺠﻴ ﺔ ،ﻗﺪﺗﺠﺪ أﻧﻚﺗﻀﻴﻒ اﻟﻤﺰﻳﺪ واﻟﻤﺰﻳﺪ ﻣﻦ اﻟ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﻋﻨﺪ ﻧﻤﺬﺟ ﺔ ﺷ ﻲء ﻣﺎ ﻣﻦ اﻟﻌﺎﻟﻢ اﻟﺤﻘﻴﻘ ﻲ ﻓ ﻲ اﻟ
ﺒﺤ ﺖ ﻃﻮﻳﻠ ﺔ .ﻓ ﻲ ﻫﺬه اﻟﻤﻮاﻗﻒ ،ﻗﺪﺗﺪرك أﻧﻪ
ﺗﻚ أﺻ
ﺘﺰاﻳﺪة ﻣﻦ اﻟ ﺴﻤﺎ ت واﻟﻄﺮق وأن ﻣﻠﻔﺎ
ﺘﺠﺪ أن ﻟﺪﻳﻚ ﻗﺎﺋﻤ ﺔ ﻣ
اﻟﻔﺼﻞ.ﺳ
ﺒﻴﺮ إﱃ ﻓﺼﻮل أﺻﻐﺮﺗﻌﻤﻞ ﻣﻌً ﺎ.
ﺑ ﺔ ﺟﺰء ﻣﻦ ﻓﺼﻞ دراﺳ ﻲ واﺣﺪ ﻛﻔﺼﻞ ﻣﻨﻔﺼﻞ.ﻳﻤﻜﻨﻚﺗﻘ ﺴﻴﻢ ﻓﺼﻠﻚ اﻟﻜ
ﺘﺎ
ﻳﻤﻜﻦ ﻛ
ﺒﻄﺎرﻳ ﺔ = 70):
ﺗ ﻲ ،ﺣﺠﻢ اﻟ __ )v def __initذا
ﺒﻄﺎرﻳ ﺔ"" ".ﺗﻬﻴﺌ ﺔﺳﻤﺎ ت اﻟ"""
self.battery_size = battery_size
اﻟﻔﺼﻮل 175
Machine Translated by Google
ﻓﺌ ﺔ )ElectricCarﺳﻴﺎرة(:
ﺑﺎﺋﻴ ﺔ"" ".
ﺒﺎ ت اﻟﻜﻬﺮ
ﺑﺎﻟﻤﺮﻛﺜﻞ ﺟﻮاﻧ ﺐ ﻣﻦ اﻟ ﺴﻴﺎرة ،ﺧﺎﺻ ﺔ
ﺗﻤ"""
)( my_tesla.battery.describe_battery
ﺘﻪ
ﺑﻄﺎرﻳﺜﻮر ﻋﲆ
ﺜﺎل my_tesla ،واﻟﻌ
ﺒﺮ ﻫﺬا اﻟﺨﻂ Pythonأنﺗﻨﻈﺮ ﻓ ﻲ اﻟﻤ
ﻳﺨ
ﺒﻄﺎرﻳ ﺔ اﻟﻤﺨﺰن ﻓ ﻲ اﻟ ﺴﻤ ﺔ.
ﺜﻴﻞ اﻟ
ﺑﻤﺒﻄ ﺔ
ﺗﺘﺪﻋﺎء اﻟﻄﺮﻳﻘ ﺔ )( description_batteryاﻟﻤﺮ
،واﺳ
ﺑ ًﻘﺎ:
ﺑﻖ ﻟﻤﺎ رأﻳﻨﺎهﺳﺎ
اﻹﺧﺮاج ﻣﻄﺎ
ﺗ ﺴﻼ ﻣﻮدﻳﻞ اس
2016
ﺑﻄﺎرﻳ ﺔ 70ﻛﻴﻠﻮ واط ﻓ ﻲ اﻟ ﺴﺎﻋ ﺔ.ﺘﻮي ﻫﺬه اﻟ ﺴﻴﺎرة ﻋﲆ
ﺗﺤ
ﺘﺎﺳﻊ
176اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺘﻔﺎﺻﻴﻞ
ﺑﻘﺪر ﻣﺎ ﻧﺮﻳﺪ ﻣﻦ اﻟﺒﻄﺎرﻳ ﺔ
ﺜﻴﺮ ﻣﻦ اﻟﻌﻤﻞ اﻹﺿﺎﻓ ﻲ ،وﻟﻜﻦﻳﻤﻜﻨﻨﺎ اﻵن وﺻﻒ اﻟ
ﺘﻄﻠ ﺐ اﻟﻜ
ﺒﺪو أن ﻫﺬاﻳ
ﻳ
ﺒﻄﺎرﻳ ﺔ:
ﺑﻨﺎ ًء ﻋﲆ ﺣﺠﻢ اﻟﺒﻄﺎرﻳ ﺔﺗﺤﺪد ﻧﻄﺎق اﻟ ﺴﻴﺎرة
دونﺗﺸﻮﻳ ﺶ ﻓﺌ ﺔ ElectricCar .دﻋﻨﺎ ﻧﻀﻴﻒ ﻃﺮﻳﻘ ﺔ أﺧﺮى ﻟﻠ
ﺒﻄﺎرﻳ ﺔ ():
ﻓﺌ ﺔ اﻟ
--ﻗﺺ--
ﺗ ﻲ(:
)u def get_rangeذا
ﺑﻴﺎﻧًﺎ ﺣﻮل اﻟﻨﻄﺎق اﻟﺬيﺗﻮﻓﺮه ﻫﺬه اﻟ
ﺒﻄﺎرﻳ ﺔ"" ". ﺒﻊ
"""اﻃ
إذا ﻛﺎﻧ ﺖ self.battery_size == 70:
اﻟﻨﻄﺎق = 240
elif self.battery_size == 85:
اﻟﻨﻄﺎق = 270
"
ﺑﻌﺪ ﺷﺤﻨﻬﺎ = "messageﻳﻤﻜﻦ ﻟﻬﺬه اﻟ ﺴﻴﺎرة أنﺗﻘﻄﻊ أﻣﻴﺎﻻ ًﺗﻘﺮﻳ ً
ﺒﺎ
"
+ﺷﺎرع )اﻟﻨﻄﺎق(
ﺒﺎﻋ ﺔ )رﺳﺎﻟ ﺔ(
messageﻃ =+
ﺑﺎﻟﻜﺎﻣﻞ".
ﻓﺌ ﺔ )ElectricCarﺳﻴﺎرة(:
--ﻗﺺ--
ﺘﻬﺎ:
ﺑﻄﺎرﻳﺑﻨﺎ ًء ﻋﲆ ﺣﺠﻢﺒﺮﻧﺎ اﻹﺧﺮاج ﻣﺪى اﻟ ﺴﻴﺎرة
ﻳﺨ
ﺑﺎﻟﻜﺎﻣﻞ ،ﻓﻨﺤﻦ ﻧﺮﻏ ﺐ ﻓ ﻲ ﻧﻘﻞ )( get_rangeإﱃ ﻓﺌ ﺔﻓﺼﻞ .وﻟﻜﻦ إذا ﻛﻨﺎ ﻧﺼﻒ ﺧﻂﺳﻴﺎرا ت اﻟﺸﺮﻛ ﺔ اﻟﻤﺼﻨﻌ ﺔ
ElectricCar .ﻃﺮﻳﻘ ﺔ )( get_range
اﻟﻔﺼﻮل 177
Machine Translated by Google
ﺑﺪﻻ ً ﻣﻦﺑﻪ.ﺒﻄ ﺔ
ﺗﺒﻠﻎ ﻋﻦ ﻧﻄﺎق ﻣﺤﺪد ﻟﻨﻮع اﻟ ﺴﻴﺎرة اﻟﻤﺮ
ﺒﻞﺗﺤﺪﻳﺪ اﻟﻨﻄﺎق ،وﻟﻜﻨﻪﺳﻴ
ﺒﻄﺎرﻳ ﺔ ﻗ
ﺘﺤﻘﻖ ﻣﻦ ﺣﺠﻢ اﻟ
ﺳﻴﻈﻞﻳ
ﺘﻘﻮم ﺒﺎط ﻃﺮﻳﻘ ﺔ )( get_rangeﻣﻊ bat teryوﻟﻜﻨﻨﺎ ﻧﻤﺮر ﻫﺎ ﻣﻌﺎﻣ ﻼ ً ﻣ
ﺜﻞ car_model.ﺳ ﺗذﻟﻚ ،ﻳﻤﻜﻨﻨﺎ اﻟﺤﻔﺎظ ﻋﲆ ار
ﺒﻄﺎرﻳ ﺔ وﻃﺮاز اﻟ ﺴﻴﺎرة .
ﺑﻨﺎ ًء ﻋﲆ ﺣﺠﻢ اﻟﺑﻼغ ﻋﻦ ﻧﻄﺎق
ﺑﺎﻹ
ﻃﺮﻳﻘ ﺔ )( get_range
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ً
ﻓﺼﻼﻳ ﺴﻤﻰ IceCreamStand ﺘﺐ
9-6.ﺣﺎﻣﻞ اﻵﻳ ﺲ ﻛﺮﻳﻢ :ﺣﺎﻣﻞ اﻵﻳ ﺲ ﻛﺮﻳﻢ ﻫﻮ ﻧﻮع ﻣﻌﻴﻦ ﻣﻦ اﻟﻤﻄﺎﻋﻢ .اﻛ
ﺘﻤﺮﻳﻦ )9-4اﻟﺼﻔﺤ ﺔ 171).ﺳﻴﻌﻤﻞ
ﺘﻤﺮﻳﻦ )9-1اﻟﺼﻔﺤ ﺔ )166أو اﻟ
ﺘﻪ ﻓ ﻲ اﻟ
ﺒﺘﻳﺮ ث ﻣﻦ ﻓﺼﻞ اﻟﻤﻄﻌﻢ اﻟﺬي ﻛ
ﺑﺸﻜﻞ أﻓﻀﻞ .أﺿﻒ ﺧﺎﺻﻴ ﺔﺗ ﺴﻤﻰ اﻟﻨﻜﻬﺎ تﺒﻚ
ﺘﺮ اﻟﺸﺨﺺ اﻟﺬيﻳﻌﺠ
أي إﺻﺪار ﻣﻦ اﻟﻔﺼﻞ اﻟﺪراﺳ ﻲ ؛ ﻓﻘﻂ اﺧ
ﺜﻴﻞ ﻟـ
ﺑﺈﻧﺸﺎء ﻣﺘ ﺐ ﻃﺮﻳﻘ ﺔﺗﻌﺮض ﻫﺬه اﻟﻨﻜﻬﺎ ت .ﻗﻢ
ﺘ ﻲﺗﺨﺰن ﻗﺎﺋﻤ ﺔ ﻣﻦ ﻧﻜﻬﺎ ت اﻵﻳ ﺲ ﻛﺮﻳﻢ .اﻛ
اﻟ
ﺘﺪع ﻫﺬه اﻟﻄﺮﻳﻘ ﺔ.
IceCreamStand ،واﺳ
ﺘﺨﺪم ً
ﻓﺼﻼﻳ ﺴﻤﻰ Adminﻳﺮ ث ﻣﻦ ﻓﺌ ﺔ اﻟﻤ ﺴ ﺘﺐ
ﺘﺨﺪﻣﻴﻦ .اﻛ
9-7.اﻟﻤ ﺴﺆول :اﻟﻤ ﺴﺆول ﻫﻮ ﻧﻮع ﺧﺎص ﻣﻦ اﻟﻤ ﺴ
ﺘﻴﺎزا ت ،ﺗﺨﺰن ﻗﺎﺋﻤ ﺔ
ﺘﻤﺮﻳﻦ )9-5ﺻﻔﺤ ﺔ 171).أﺿﻒﺳﻤ ﺔ ،اﻣ
ﺘﻤﺮﻳﻦ )9-3ﺻﻔﺤ ﺔ )166أو اﻟ
ﺘﻬﺎ ﻓ ﻲ اﻟ
ﺒﺘﺘ ﻲﻛ
اﻟ
ﺘﺨﺪم" ،وﻣﺎ إﱃ ذﻟﻚ.
ﺜﻞ "ﻳﻤﻜﻦ إﺿﺎﻓ ﺔ ﻣﻨﺸﻮر" " ،ﻳﻤﻜﻦ ﺣﺬف اﻟﻤﻨﺸﻮر" " ،ﻳﻤﻜﻦ ﺣﻈﺮ اﻟﻤ ﺴ
ﻣﻦ اﻟ ﺴﻼﺳﻞ ﻣ
ﺘﻴﺎزا ت ،ﺗﻘﻮم
ﺑﺨﺎﺻﻴ ﺔ واﺣﺪة ،اﻣﺘﻊ اﻟﻔﺼﻞ
ﺘﻤﺘﻴﺎزا ت ﻣﻨﻔﺼﻠ ﺔ .ﻳﺠ ﺐ أنﻳ
ﺘ ﺐ ﻓﺌ ﺔ اﻣ
ﺘﻴﺎزا ت :اﻛ
9-8.اﻻﻣ
ﺘﻤﺮﻳﻦ 9-7.
ﺘﺨﺰﻳﻦ ﻗﺎﺋﻤ ﺔ ﻣﻦ اﻟ ﺴﻼﺳﻞ ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓ ﻲ اﻟ
ﺑ
ﺘﻴﺎزا ت ﻛ ﺴﻤ ﺔ ﻓ ﻲ ﻓﺌ ﺔ اﻟﻤ ﺴﺆول .
ﺑﻌﻤﻞ ﻧ ﺴﺨ ﺔ ﻣﻦ اﻻﻣاﻧﻘﻞ ﻃﺮﻳﻘ ﺔ )( show_privilegesإﱃ ﻫﺬه اﻟﻔﺌ ﺔ .ﻗﻢ
ﺗﻪ.
ﺘﻴﺎزا
ﺘﻚ ﻹﻇﻬﺎر اﻣ
ﺘﺨﺪم ﻃﺮﻳﻘ
ﺜﻴﻞ ﺟﺪﻳﺪ ﻟﻠﻤ ﺴﺆول واﺳ
ﺑﺈﻧﺸﺎء ﻣﻗﻢ
178اﻟﻔﺼﻞ 9
Machine Translated by Google
ﺘﻴﺮاد اﻷﺻﻨﺎف
اﺳ
ﺑﺸﻜﻞﺛﺔ
ﺘﺨﺪم اﻟﻮرا
ﺘﻰ ﻋﻨﺪﻣﺎﺗ ﺴ
ﺗﻚ ،ﺣ
ﻛﻠﻤﺎ أﺿﻔ ﺖ اﻟﻤﺰﻳﺪ ﻣﻦ اﻟﻮﻇﺎﺋﻒ إﱃ ﻓﺼﻮﻟﻚ اﻟﺪراﺳﻴ ﺔ ،ﻳﻤﻜﻦ أنﺗﻄﻮل ﻣﻠﻔﺎ
ﺘﻴﺢ ﻟﻚ
ﺑﻘﺪر اﻹﻣﻜﺎن .ﻟﻠﻤ ﺴﺎﻋﺪة ،ﺗﺒﺔ
ﺗﺗﻚ ﻣﺮ
ﺑﻤﻠﻔﺎﺘﻔﺎظ
ﺘﺮﻏ ﺐ ﻓ ﻲ اﻻﺣ
ﺻﺤﻴﺢ.ﺗﻤﺸﻴﺎ ﻣﻊ ﻓﻠ ﺴﻔ ﺔ Pythonاﻟﺸﺎﻣﻠ ﺔ ،ﺳ
ﺋﻴ ﺴ ﻲ.
ﺑﺮﻧﺎﻣﺠﻚ اﻟﺮﺘﺎﺟﻬﺎ إﱃ
ﺘ ﻲﺗﺤ
ﺘﻴﺮاد اﻟﻔﺌﺎ ت اﻟ
ﺛﻢ اﺳﺗﺨﺰﻳﻦ اﻟﻔﺌﺎ ت ﻓ ﻲ وﺣﺪا ت
Python
ﺜﻴﻞﺳﻴﺎرة"" ".
ﺘﻤﺘﺨﺪاﻣﻬﺎ ﻟ
"" "car.py uﻓﺌ ﺔﻳﻤﻜﻦ اﺳ
= self.yearﺳﻨ ﺔ
self.odometer_reading = 0
ﺗ ﻲ(:
)def get_descriptive_nameذا
ﺑﺪﻗ ﺔ"" "."""إرﺟﺎع اﺳﻢ وﺻﻔ ﻲ ﻣﻨ ﺴﻖ
" " " "
long_name = str (self.year) + + self.make +إرﺟﺎع )( long_name.title ﺗﻲ
+اﻟﻨﻤﻮذج اﻟﺬا
ﺗ ﻲ(:
)def read_odometerذا
ﺑﺎﻟ ﺴﻴﺎرة"" ".ﺑﻴﺎنﻳﻮﺿﺢ اﻟﻤ ﺴﺎﻓ ﺔ اﻟﻤﻘﻄﻮﻋ ﺔ ﺒﺎﻋ ﺔ"""ﻃ
" "
ﺗ ﻲ_ﻗﺮاءة( +ﺑﻬﺎ )+ strﻣﻘﻴﺎس ذا ﺒﺎﻋ ﺔ )" ﻫﺬه اﻟ ﺴﻴﺎرة
ﻃ أﻣﻴﺎل ﻋﻠﻴﻬﺎ") .
ﺘﺮا ت(:
ﺗ ﻲ ،ﻋﺪد اﻟﻜﻴﻠﻮﻣ
)def update_odometerذا
""
ﺗ ﻲ ،أﻣﻴﺎل(:
)def increment_odometerذا
ﺒﻠﻎ اﻟﻤﺤﺪد ﻟﻘﺮاءة ﻋﺪاد اﻟﻤ ﺴﺎﻓﺎ ت"" ".
"""أﺿﻒ اﻟﻤ
= self.odometer_reading +اﻷﻣﻴﺎل
ﺒﻘﺎ ت
اﻟﻄ 179
Machine Translated by Google
ﺜﻴﻞ
ﺛﻢ إﻧﺸﺎء ﻣﺘﻴﺮاد ﻓﺌ ﺔ اﻟ ﺴﻴﺎرة
ﺑﺎﺳﺑﺈﻧﺸﺎء ﻣﻠﻒ ﻣﻨﻔﺼﻞﻳ ﺴﻤﻰ my_car.py.ﺳﻴﻘﻮم ﻫﺬا اﻟﻤﻠﻒ اﻵن ﻧﻘﻮم
ﻣﻦﺗﻠﻚ اﻟﻔﺌ ﺔ:
ﺘﻴﺮاد اﻟ ﺴﻴﺎرا ت
my_car.py uﻣﻦﺳﻴﺎرة اﺳ
my_new_car.odometer_reading = 23
)( my_new_car.read_odometer
ﺘﺨﺪام ﻓﺌ ﺔ اﻟ ﺴﻴﺎرة
ﺘﻴﺮاد اﻟﻔﺌ ﺔ Car.اﻵنﻳﻤﻜﻨﻨﺎ اﺳ
ﺘﺢ وﺣﺪة اﻟ ﺴﻴﺎرة واﺳ
ﺑﻔﺒﺮ Python
ﺘﻴﺮاد ﻓ ﻲ uﻳﺨ
ﺑﻴﺎن اﻻﺳ
ﺑ ًﻘﺎ:
ﻛﻤﺎ ﻟﻮﺗﻢﺗﻌﺮﻳﻔﻬﺎ ﻓ ﻲ ﻫﺬا اﻟﻤﻠﻒ .اﻹﺧﺮاج ﻫﻮ ﻧﻔ ﺴﻪ ﻛﻤﺎ رأﻳﻨﺎﺳﺎ
ﺒﻄﺎرﻳ ﺔ ():
ﻓﺌ ﺔ اﻟ
ﺑﺎﺋﻴ ﺔ"" ".
ﺑﻄﺎرﻳ ﺔ ﻟ ﺴﻴﺎرة ﻛﻬﺮﺘﺼﻤﻴﻢ
ﺑ ﺴﻴﻄ ﺔ ﻟ"""ﻣﺤﺎوﻟ ﺔ
ﺒﻄﺎرﻳ ﺔ = 60):
ﺗ ﻲ ،ﺣﺠﻢ اﻟ
__ )def __initذا
ﺗﻬﻴﺌ ﺔﺳﻤﺎ ت اﻟﻤﻌﺠﻨﺎ ت"" ".
"""
self.battery_size = battery_size
ﺗ ﻲ(:
)def get_rangeذا
ﺘﺎﺳﻊ
180اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
"
ﺑﻌﺪ ﺷﺤﻨﻬﺎ = "messageﻳﻤﻜﻦ ﻟﻬﺬه اﻟ ﺴﻴﺎرة أنﺗﻘﻄﻊ أﻣﻴﺎﻻ ًﺗﻘﺮﻳ ً
ﺒﺎ
"
+ﺷﺎرع )اﻟﻨﻄﺎق(
ﺒﺎﻋ ﺔ )رﺳﺎﻟ ﺔ(
messageﻃ =+
ﺑﺎﻟﻜﺎﻣﻞ".
ﻓﺌ ﺔ )ElectricCarﺳﻴﺎرة(:
ﺑﺎﺋﻴ ﺔ"" ".
ﺒﺎ ت اﻟﻜﻬﺮ
ﺑﺎﻟﻤﺮﻛ"""ﻧﻤﺎذج ﺟﻮاﻧ ﺐ اﻟ ﺴﻴﺎرة ،ﺧﺎﺻ ﺔ
ﺘﻴﺮاد ﻓﺌ ﺔ ElectricCarوإﻧﺸﺎءﺳﻴﺎرة
ﻳﻤﻜﻨﻨﺎ اﻵن إﻧﺸﺎء ﻣﻠﻒ ﺟﺪﻳﺪﻳ ﺴﻤﻰ my_electric_car.pyواﺳ
ﺑﺎﺋﻴ ﺔ:
ﻛﻬﺮ
ﺑﺎﺋﻴ ﺔ
ﺑﻠﺪي اﻟﻜﻬﺮ ﺘﻴﺮاد اﻟ ﺴﻴﺎرا ت
ﻣﻦ ﺷﺮﻛ ﺔ ElectricCarﻻﺳ
car.py
)my_tesla = ElectricCar ('tesla'، 'model s'، 2016
ﺒﻘﺎ ت
اﻟﻄ 181
Machine Translated by Google
ﺘﻴﺮاد اﻟﻔﺌﺎ ت
ﺑﺎﺳﺑﻤﺠﺮد ﻗﻴﺎﻣﻚ
ﺑﻔﺎﺻﻠ ﺔ u.ﺘﻌﺪدة ﻣﻦ وﺣﺪة ﻧﻤﻄﻴ ﺔ ﻋﻦ ﻃﺮﻳﻖ ﻓﺼﻞ ﻛﻞ ﻓﺌ ﺔ
ﺘﻴﺮاد ﻓﺌﺎ ت ﻣ
ﻳﻤﻜﻨﻚ اﺳ
ﺘﻚ.
ﺜﻠ ﺔ ﻟﻜﻞ ﻓﺌ ﺔ ﺣ ﺴ ﺐ ﺣﺎﺟ
اﻟﻀﺮورﻳ ﺔ ،ﻓﺄﻧ ﺖ ﺣﺮ ﻓ ﻲ ﻋﻤﻞ اﻟﻌﺪﻳﺪ ﻣﻦ اﻷﻣ
ﺘﻞ
ﺑﻴ2016ﻓﻮﻟﻜ ﺲ ﻓﺎﺟﻦ
ﺘﺮ
ﺗﻴ ﺴﻼ رودﺳ
2016
ﺘﻴﺮاد اﻟ ﺴﻴﺎرة
my_cars.pyاﺳ
*
ﺘﻴﺮاد module_name
ﻣﻦ اﺳ
ﺘﻴﺮاد أﻋﲆ اﻟﻤﻠﻒ واﻟﺤﺼﻮل ﻋﲆ ﺒﻴﻦ .أوﻻ ً ،ﻣﻦ اﻟﻤﻔﻴﺪ أنﺗﻜﻮن ﻗﺎد ًرا ﻋﲆ ﻗﺮاءة ﻋ
ﺒﺎرا ت اﻻﺳ ﺒﺑﻬﺬه اﻟﻄﺮﻳﻘ ﺔ ﻟ ﺴﻻﻳﻨﺼﺢ
ﺘﺨﺪﻣﻬﺎ ﻣﻦ اﻟﻮﺣﺪة.ﻳﻤﻜﻦ
ﺘ ﻲﺗ ﺴ
ﺘﺨﺪام ﻫﺬا اﻟﻨﻬﺞ ،ﻣﻦ ﻏﻴﺮ اﻟﻮاﺿﺢ اﻟﻔﺌﺎ ت اﻟ
ﺑﺎﺳﺒﺮﻧﺎﻣﺞ.
ﺘﺨﺪﻣﻬﺎ اﻟ
ﺘ ﻲﻳ ﺴ
ﻓﻜﺮة واﺿﺤ ﺔ ﻋﻦ اﻟﻔﺌﺎ ت اﻟ
ﺑﻨﻔ ﺲ اﺳﻢ ﺷ ﻲءﺘﻴﺮاد ﻓﺌ ﺔ
ﺑﺎﺳﺑﻄﺮﻳﻖ اﻟﺨﻄﺄ أنﻳﺆدي ﻫﺬا اﻷﺳﻠﻮ ب أ ً
ﻳﻀﺎ إﱃ اﻟﺨﻠﻂ ﻣﻊ اﻷﺳﻤﺎء اﻟﻤﻮﺟﻮدة ﻓ ﻲ اﻟﻤﻠﻒ .إذا ﻗﻤ ﺖ
ﺑﻚ ،ﻓﻴﻤﻜﻨﻚ إﻧﺸﺎء أﺧﻄﺎءﻳﺼﻌ ﺐﺗﺸﺨﻴﺼﻬﺎ .أﻋﺮض ﻫﺬا ﻫﻨﺎﻷﻧﻪ ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أﻧﻪ ﻟﻴ ﺲ ﻧﻬﺠًﺎﺒﺮﻧﺎﻣﺞ اﻟﺨﺎص
آﺧﺮ ﻓ ﻲ ﻣﻠﻒ اﻟ
ﺘﻤﻞ أنﺗﺮاه ﻓ ﻲ ﻛﻮد اﻵﺧﺮﻳﻦ.
ﺑﻪ ،ﻓﻤﻦ اﻟﻤﺤﻣﻮﺻﻰ
ﺘﺨﺪام
ﺑﺄﻛﻤﻠﻬﺎ واﺳﺘﻴﺮاد اﻟﻮﺣﺪة
ﺘﻴﺮاد اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻔﺌﺎ ت ﻣﻦ وﺣﺪة ﻧﻤﻄﻴ ﺔ ،ﻓﻤﻦ اﻷﻓﻀﻞ ﻟﻚ اﺳ
ﺑﺤﺎﺟ ﺔ إﱃ اﺳإذا ﻛﻨ ﺖ
ﺑﻨﺎء ﺟﻤﻠ ﺔ module_name.class_name .
ﺘﺎﺳﻊ
182اﻟﻔﺼﻞ اﻟ
Machine Translated by Google
ﺒﺮﻧﺎﻣﺞ.
ﺘﺨﺪام اﻟﻮﺣﺪة ﻓ ﻲ اﻟ
ﺑﻮﺿﻮح ﻣﻜﺎن اﺳﺘﺮى
ﺘﺨﺪﻣ ﺔ ﻓ ﻲ اﻟﺠﺰء اﻟﻌﻠﻮي ﻣﻦ اﻟﻤﻠﻒ ،ﻟﻜﻨﻚﺳ
ﻟﻦﺗﺮى ﺟﻤﻴﻊ اﻟﻔﺌﺎ ت اﻟﻤ ﺴ
ﺘﻴﺮاد ﻛﻞ ﻓﺌ ﺔ ﻓ ﻲ وﺣﺪة ﻧﻤﻄﻴ ﺔ.
ﺘ ﻲﻳﻤﻜﻦ أنﺗﻨﺸﺄ ﻋﻨﺪ اﺳ
ﺘﻤﻠ ﺔ اﻟ
ﺘ ﺴﻤﻴ ﺔ اﻟﻤﺤ ﺘﺠﻨ ﺐ أ ً
ﻳﻀﺎﺗﻌﺎرﺿﺎ ت اﻟ ﺘﺳ
ﺑﺎﺋﻴ ﺔ
ﺜﺎل ،دﻋﻨﺎ ﻧﺨﺰن ﻓﺌ ﺔ اﻟ ﺴﻴﺎرة ﻓ ﻲ وﺣﺪة واﺣﺪة واﻟ ﺴﻴﺎرة اﻟﻜﻬﺮ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺘﺤﻞ ﻣﺤﻞ ﻣﻠﻒ electric_car.py
ﺒﻄﺎرﻳ ﺔ ﻓ ﻲ وﺣﺪة ﻣﻨﻔﺼﻠ ﺔ.ﺳﻨﻨﺸ ﺊ وﺣﺪة ﺟﺪﻳﺪةﺗ ﺴﻤﻰ electric_car.py -ﻟ
وﻓﺌﺎ ت اﻟ
ﺑ ًﻘﺎ -وﻧ ﺴﺦ ﻓﺌ
ﺘ ﻲ Batteryو ElectricCarﻓﻘﻂ ﻓ ﻲ ﻫﺬا اﻟﻤﻠﻒ: اﻟﺬي أﻧﺸﺄﻧﺎهﺳﺎ
ﺘﻴﺮاد اﻟ ﺴﻴﺎرا ت
ش ﻣﻦﺳﻴﺎرة اﺳ
ﻓﺌ ﺔ )ElectricCarﺳﻴﺎرة(:
--ﻗﺺ--
ﺒﺎﺷﺮة إﱃ اﻟﻮﺣﺪة
ﺘﻴﺮاد اﻟ ﺴﻴﺎرة ﻣ
ﺑﺎﺳﺘﺎج ﻓﺌ ﺔ ElectricCarإﱃ اﻟﻮﺻﻮل إﱃ ﻓﺌ ﺔ اﻟ ﺴﻴﺎرة اﻷﺻﻠﻴ ﺔ ،ﻟﺬﻟﻚ ﻧﻘﻮم
ﺗﺤ
ﺘﺎج أ ً
ﻳﻀﺎ إﱃ ﺜﻴﻞ ElectricCar .ﻧﺤ
ﺜﻴﺮ ﺧﻄﺄ ﻋﻨﺪﻣﺎ ﻧﺤﺎول إﻧﺸﺎء ﻣ
ﺘاﻟﻨﻤﻄﻴ ﺔ ﻓ ﻲ u.إذا ﻧ ﺴﻴﻨﺎ ﻫﺬا اﻟ ﺴﻄﺮ ،ﻓﺈن Pythonﺳ
ﺘﻮي ﻋﲆ ﻓﺌ ﺔ اﻟ ﺴﻴﺎرة ﻓﻘﻂ :
ﺑﺤﻴ ﺚﺗﺤﺗﺤﺪﻳ ﺚ وﺣﺪة اﻟ ﺴﻴﺎرة
ﺘﺎﺟﻬﺎ:
ﺘ ﻲ ﻧﺤ
ﺘﻴﺮاد ﻣﻦ ﻛﻞ وﺣﺪة ﻋﲆ ﺣﺪة وإﻧﺸﺎء أي ﻧﻮع ﻣﻦ اﻟ ﺴﻴﺎرا ت اﻟ
اﻵنﻳﻤﻜﻨﻨﺎ اﻻﺳ
ﺘﻴﺮاد اﻟ ﺴﻴﺎرا ت
my_cars.py uﻣﻦﺳﻴﺎرة اﺳ
ﻣﻦ electric_car import ElectricCar
اﻟﻔﺼﻮل 183
Machine Translated by Google
ﺗﻬﺎ.
ﺗﻬﺎ ،و ElectricCarﻣﻦ وﺣﺪ
ﺘﻮرد اﻟ ﺴﻴﺎرة ﻣﻦ وﺣﺪ
ﻓ ﻲ uﻧﺤﻦ ﻧ ﺴ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ:ﺑﺎﺋﻴ ﺔ واﺣﺪة.ﺗﻢ إﻧﺸﺎء ﻛﻼ اﻟﻨﻮﻋﻴﻦ ﻣﻦ اﻟ ﺴﻴﺎرا ت
ﺛﻢ ﻧﺼﻨﻊﺳﻴﺎرة ﻋﺎدﻳ ﺔ واﺣﺪة وﺳﻴﺎرة ﻛﻬﺮ
ﺘﻞ
ﺑﻴ2016ﻓﻮﻟﻜ ﺲ ﻓﺎﺟﻦ
ﺘﺮ
ﺗﻴ ﺴﻼ رودﺳ2016
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺜﻮن اﻟﻘﻴﺎﺳﻴ ﺔ
ﺑﺎﻳﺒﺔ
ﺘﻣﻜ
ﺒﺢ ﻟﺪﻳﻚ ﻓﻬﻢ
ﺑﻌﺪ أن أﺻﺜﻮن .اﻵن
ﺒﻴﺒﻴ ﺖ ﻟ
ﺜﺒ ﺔ Pythonاﻟﻘﻴﺎﺳﻴ ﺔ ﻫ ﻲ ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻟﻮﺣﺪا ت اﻟﻤﻀﻤﻨ ﺔ ﻓ ﻲ ﻛﻞﺗ
ﺘﻣﻜ
ﺒﺮﻣﺠﻮن اﻵﺧﺮون
ﺘ ﺐ اﻟﻤ
ﺘ ﻲﻛ
ﺜﻞ ﻫﺬه اﻟ
ﺘﺨﺪام وﺣﺪا ت ﻣ
ﺒﺪء ﻓ ﻲ اﺳ
أﺳﺎﺳ ﻲ ﻟﻜﻴﻔﻴ ﺔ ﻋﻤﻞ اﻟﻔﺼﻮل اﻟﺪراﺳﻴ ﺔ ،ﻳﻤﻜﻨﻚ اﻟ
ﺑ ﺴﻴﻂ ﻓ ﻲ اﻟﺠﺰءﺘﻴﺮاد
ﺑﻴﺎن اﺳﺒ ﺔ اﻟﻘﻴﺎﺳﻴ ﺔ ﻋﻦ ﻃﺮﻳﻖﺗﻀﻤﻴﻦ
ﺘﺘﺨﺪام أي وﻇﻴﻔ ﺔ أو ﻓﺌ ﺔ ﻓ ﻲ اﻟﻤﻜ
ﻋﻨﻬﺎ ﻋﺸﺮة.ﻳﻤﻜﻨﻚ اﺳ
ﺑﻚ .ﻟﻨﻠﻖ ﻧﻈﺮة ﻋﲆ ﻓﺼﻞ دراﺳ ﻲ واﺣﺪ OrderedDict ، ،ﻣﻦ ﻣﺠﻤﻮﻋﺎ ت اﻟﻮﺣﺪا ت اﻟﻨﻤﻄﻴ ﺔ.اﻟﻌﻠﻮي ﻣﻦ اﻟﻤﻠﻒ اﻟﺨﺎص
184اﻟﻔﺼﻞ 9
Machine Translated by Google
ﺘﺎح
ﺑﻪ إﺿﺎﻓ ﺔ أزواج اﻟﻤﻔﺘﻢ
ﺗﻴ ﺐ اﻟﺬيﺗ
ﺘﺮﺒﻊ اﻟ
ﺘﺜﻨﺎء أﻧﻬﺎﺗ
ﺘﺑﺎﺳﺜﻞ اﻟﻘﻮاﻣﻴ ﺲ
ﺗﻤﺎﻣﺎ ﻣ
ً ﺜﻴﻼ ت ﻓﺌ ﺔ OrderedDict
ﺘﺼﺮف ﻣ
ﺗ
واﻟﻘﻴﻤ ﺔ.
ﺜﺎل favour_languages.pyﻣﻦ اﻟﻔﺼﻞ 6.ﻫﺬه اﻟﻤﺮة
دﻋﻨﺎ ﻧﻌﻴﺪ اﻟﻨﻈﺮ ﻓ ﻲ ﻣ
ﺘﻄﻼع:
ﺑﻪ اﻷﺷﺨﺎص ﻟﻼﺳﺘﺠﻴ ﺐ
ﺗﻴ ﺐ اﻟﺬيﻳ ﺴ
ﺘﺮﺒﻊ اﻟ
ﺘﺘﺳﻨ
ﺘﻴﺮاد OrderedDict
favourite_ uﻣﻦ ﻣﺠﻤﻮﻋﺎ ت اﺳ
languages.py
)( v favourite_languages = OrderedDict
ﺜﻴﻞ ﻟﻔﺌ ﺔﺑﺈﻧﺸﺎء ﻣﺘﻴﺮاد ﻓﺌ ﺔ OrderedDictﻣﻦ ﻣﺠﻤﻮﻋﺎ ت اﻟﻮﺣﺪا ت اﻟﻨﻤﻄﻴ ﺔ ﻓ ﻲ u.ﻓ ﻲ v ،ﻧﻘﻮم
ﺑﺎﺳﺒﺪأ
ﻧ
ﺘﻌﺮﺟ ﺔ ؛ﺗﻨﺸ ﺊ اﻟﻤﻜﺎﻟﻤ ﺔ إﱃ )(
ﺜﺎل ﻓ ﻲ اﻟﻠﻐ ﺔ اﻟﻤﻔﻀﻠ ﺔ .ﻻﺣﻆ ﻋﺪم وﺟﻮد أﻗﻮاس ﻣ
ﺗﺨﺰﻳﻦ ﻫﺬا اﻟﻤ
OrderedDictو
ﺘﺎج إﱃ وﺣﺪا ت
ﺜﺎﻧ ﻲ ،ﺣﻴ ﺚﺳﻨﺤ
ﺜﻠ ﺔ ﻓ ﻲ اﻟﺠﺰء اﻟ
ﺘﺮى ﻋﺪدًا ﻣﻦ ﻫﺬه اﻷﻣ ﻻﻳﻤﻜﻨﻚ أ ً
ﻳﻀﺎﺗﻨﺰﻳﻞ اﻟﻮﺣﺪا ت اﻟﻨﻤﻄﻴ ﺔ ﻣﻦ ﻣﺼﺎدر ﺧﺎرﺟﻴ ﺔ.ﺳ
ﺧﺎرﺟﻴ ﺔ ﻹﻛﻤﺎل ﻛﻞ ﻣﺸﺮوع.
اﻟﻔﺼﻮل 185
Machine Translated by Google
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺒﺮﻧﺎﻣﺞ
ﺑ ﺔ اﻟ
ﺘﺎ
ﺜﻴﻞ ﻣ ﺴﺮد .أﻋﺪ ﻛ
ﺘﻤﺳﺎ ﻗﻴﺎﺳ ًﻴﺎ ﻟ
ﺘﺨﺪﻣ ﺖ ﻗﺎﻣﻮ ً
ﺘﻤﺮﻳﻦ )6-4ﺻﻔﺤ ﺔ 108) ،ﺣﻴ ﺚ اﺳ
ﺑﺎﻟﺑﺪأ
ﺑ ﺔ OrderedDict:ا
ﺘﺎ
9-13.إﻋﺎدة ﻛ
ﺘﻴﺮاد اﻟﻌﺸﻮاﺋ ﻲ
ﻣﻦ راﻧﺪﻧ ﺖ اﻻﺳ
س )= randint (1 ، 6
رﻗﻤﺎ
ً ﺒﻊ
ﺗﻄﺘ ﺐ ﻋﻤﻠﻴ ﺔﺗ ﺴﻤﻰ )( roll_die
ﺘﺮاﺿﻴ ﺔ 6.اﻛ
ﺘ ﻲ ﻟﻬﺎ ﻗﻴﻤ ﺔ اﻓ
ﺑﺨﺎﺻﻴ ﺔ واﺣﺪةﺗ ﺴﻤﻰ اﻟﺠﻮاﻧ ﺐ ،واﻟاﺻﻨﻊ ﺻﻨ ًﻔﺎﻳﻤﻮ ت
ﺑﻴﻦ 1وﻋﺪد ﺟﻮاﻧ ﺐ اﻟﻘﺎﻟ ﺐ .اﺻﻨﻊ ﻧﺮدًاﺳﺪاﺳ ﻲ اﻟﺠﻮاﻧ ﺐ وﻟﻔﻪ 10ﻣﺮا ت.ﻋﺸﻮاﺋ ًﻴﺎ
ﺘﺼﻤﻴﻢ
ﻓﺌﺎ ت اﻟ
ﺜﺮﺗﻌﻘﻴﺪًا.
ﺒﺢ أﻛ
ﺑﺮاﻣﺠﻚﺗﺼﺘﻮﺿﻴﺢ ،ﺧﺎﺻ ﺔ وأن
ﺑﺎﻟﻔﺼﻮل اﻟﺪراﺳﻴ ﺔ اﻟﺘﻌﻠﻘ ﺔ
ﺘﺼﻤﻴﻢ اﻟﻤ
ﺑﻌﺾ ﻣﺸﻜﻼ ت اﻟﺘﺤﻖ
ﺗﺴ
ﺑﻌﺪﺗﻌﺮﻳﻒ اﻟﻔﺼﻞﺒﺎﺷﺮة
ﻳﺠ ﺐ أنﻳﻜﻮن ﻟﻜﻞ ﻓﺼﻞﺳﻠ ﺴﻠ ﺔ docstringﻣ
ﺘﻲ
ﺘﻨ ﺴﻴﻖ اﻟ
ﺒﺎع ﻧﻔ ﺲ اﺻﻄﻼﺣﺎ ت اﻟ
ﺗnition.ﻳﺠ ﺐ أنﻳﻜﻮن docstringوﺻ ًﻔﺎ ﻣﻮﺟ ًﺰا ﻟﻤﺎﻳﻔﻌﻠﻪ اﻟﻔﺼﻞ ،وﻳﺠ ﺐ ﻋﻠﻴﻚ ا
ﺘﻨﺪا تﺗﺼﻒ اﻟﻐﺮض ﺘﻮي ﻛﻞ وﺣﺪة أ ً
ﻳﻀﺎ ﻋﲆﺳﻠ ﺴﻠ ﺔ ﻣ ﺴ ﺘﻨﺪا ت ﻓ ﻲ اﻟﻮﻇﺎﺋﻒ.ﻳﺠ ﺐ أنﺗﺤ
ﺑ ﺔﺳﻼﺳﻞ اﻟﻤ ﺴ
ﺘﺎ
ﺘﻬﺎ ﻟﻜ
ﺘﺨﺪﻣ
اﺳ
ﺘﺨﺪام اﻟﻔﺌﺎ ت ﻓ ﻲ اﻟﻮﺣﺪة اﻟﻨﻤﻄﻴ ﺔ.
ﻣﻦ اﺳ
ﺘﻴﺮاد
ﺑﻴﺎن اﻻﺳﺘﻬﺎ ،ﻓﻀﻊ
ﺑﺘﺎ
ﺑﻜﺒ ﺔ اﻟﻘﻴﺎﺳﻴ ﺔ ووﺣﺪة ﻧﻤﻄﻴ ﺔ ﻗﻤ ﺖ
ﺘﺘﻴﺮاد وﺣﺪة ﻧﻤﻄﻴ ﺔ ﻣﻦ اﻟﻤﻜ
ﺑﺤﺎﺟ ﺔ إﱃ اﺳإذا ﻛﻨ ﺖ
ﺒ ﺔ اﻟﻘﻴﺎﺳﻴ ﺔ
ﺘﻟﻮﺣﺪة اﻟﻤﻜ
186اﻟﻔﺼﻞ 9
Machine Translated by Google
ﻣﻠﺨﺺ
ﺑﻚ .ﻟﻘﺪﺗﻌﻠﻤ ﺖ ﻛﻴﻔﻴ ﺔﺗﺨﺰﻳﻦ اﻟﻤﻌﻠﻮﻣﺎ ت ﻓ ﻲ اﻟﻔﺼﻞﺑ ﺔ اﻟﻔﺼﻮل اﻟﺪراﺳﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﺎ
ﺗﻌﻠﻤ ﺖ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ﻛﻴﻔﻴ ﺔ ﻛ
ﺑ ﺔ أﺳﺎﻟﻴ ﺐ )( __
ﺘﺎ
ﺘﺎﺟﻮن إﻟﻴﻪ .ﻟﻘﺪﺗﻌﻠﻤ ﺖ ﻛ
ﺘ ﻲﺗﻌﻄ ﻲ ﻓﺼﻮﻟﻚ اﻟ ﺴﻠﻮك اﻟﺬيﻳﺤ
ﺑ ﺔ اﻟﻄﺮق اﻟ
ﺘﺎ
ﺘﺨﺪام اﻟ ﺴﻤﺎ ت وﻛﻴﻔﻴ ﺔ ﻛ
ﺑﺎﺳ
ﺒﺎﺷﺮ
ﺑﺸﻜﻞ ﻣﺜﻴﻞ
ﺒﻂ .ﻟﻘﺪ رأﻳ ﺖ ﻛﻴﻔﻴ ﺔﺗﻌﺪﻳﻞﺳﻤﺎ ت ﻣ
ﺑﺎﻟﻀﺘ ﻲﺗﺮﻳﺪ ﻫﺎ
ﺑﺎﻟ ﺴﻤﺎ ت اﻟﺗﻚ
ﺜﻴﻼ ت ﻣﻦ ﻓﺌﺎ
ﺘ ﻲﺗﻨﺸ ﺊ ﻣ
__initاﻟ
ﺘﺨﺪام
ﺗﻌﻠﻤ ﺖ اﺳ
ﺒﻌﺾ ،و
ﺒﻌﻀﻬﺎ اﻟ
ﺑﺒﻄ ﺔ
ﺗﺒ ﺴﻂ إﻧﺸﺎء اﻟﻔﺌﺎ ت اﻟﻤﺮ
ﺛ ﺔﻳﻤﻜﻦ أنﺗ
وﻣﻦ ﺧﻼل اﻟﻄﺮق .ﻟﻘﺪﺗﻌﻠﻤ ﺖ أن اﻟﻮرا
ﺑ ﺴﺎﻃ ﺔ ﻛﻞ ﻓﺌ ﺔ.ﺜﻴﻼ ت ﻓﺌ ﺔ واﺣﺪة ﻛ ﺴﻤﺎ ت ﻓ ﻲ ﻓﺌ ﺔ أﺧﺮى ﻟﻠﺤﻔﺎظ ﻋﲆ
ﻣ
ﺘﺎﺟﻬﺎ
ﺘ ﻲﺗﺤ
ﺘﻴﺮاد اﻟﻔﺌﺎ ت اﻟ
ﻟﻘﺪ رأﻳ ﺖ ﻛﻴﻔﻴ ﺔﺗﺨﺰﻳﻦ اﻟﻔﺼﻮل ﻓ ﻲ وﺣﺪا ت واﺳ
ﺒ ﺔ Python ﺘﺘﻌﺮف ﻋﲆ ﻣﻜ
ﺑﺪأ ت ﻓ ﻲ اﻟ ﺘﺨﺪاﻣﻬﺎﻳﻤﻜﻦ أنﻳﺤﺎﻓﻆ ﻋﲆﺗﻨﻈﻴﻢ ﻣﺸﺎرﻳﻌﻚ .ﻟﻘﺪ ﺘﻢ اﺳﻓ ﻲ اﻟﻤﻠﻔﺎ ت ﺣﻴ ﺚﺳﻴ
ﺘﻤﺪ ﻋﲆ ﻓﺌ ﺔ OrderedDictﻣﻦ وﺣﺪة اﻟﻤﺠﻤﻮﻋﺎ ت .أﺧﻴ ﺮًا ،ﺗﻌﻠﻤ ﺖﺗﺼﻤﻴﻢ ﻓﺼﻮﻟﻚ اﻟﺪراﺳﻴ ﺔ اﻟﻘﻴﺎﺳﻴ ﺔ ،ورأﻳ ﺖ ﻣ ً
ﺜﺎﻻﻳﻌ
ﺜﻮن.
ﺑﺎﻳﺘﺨﺪام اﺻﻄﻼﺣﺎ ت
ﺑﺎﺳ
اﻟﻔﺼﻮل 187
Machine Translated by Google
Machine Translated by Google
10
أﻳﻮﻧﺎ ت ﻓﺎي ﻟﻴﻪ دي إي إﻛ ﺲﺳ ﻲ إيﺗ ﻲ
ﺑﺮاﻣﺞﺑﺔ
ﺘﺎ
ﺘﺎﺟﻬﺎ ﻟﻜ
ﺘ ﻲﺗﺤ
ﺗﻘﻨ ﺖ اﻟﻤﻬﺎرا ت اﻷﺳﺎﺳﻴ ﺔ اﻟ
ﺑﻌﺪ أن أاﻵن
ﺜﺮ
ﺑﺮاﻣﺠﻚ أﻛﺘﻔﻜﻴﺮ ﻓ ﻲ ﺟﻌﻞ
ﺘﺨﺪام ،ﺣﺎن اﻟﻮﻗ ﺖ ﻟﻠ
ﻣﻨﻈﻤ ﺔﺳﻬﻠ ﺔ اﻻﺳ
ﺘﻌﻠﻢ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ اﻟﻌﻤﻞ ﻣﻊ اﻟﻤﻠﻔﺎ ت
ﺘﺘﺨﺪام.ﺳ
ﺑﻠ ﺔ ﻟﻼﺳ
ﺻﻠ ﺔ وﻗﺎ
ﺑ ﺴﺮﻋ ﺔ.ﺒﻴﺎﻧﺎ ت
ﺜﻴﺮ ﻣﻦ اﻟ
ﺑﺮاﻣﺠﻚ ﻣﻦﺗﺤﻠﻴﻞ اﻟﻜﺘﻤﻜﻦ
ﺘﻰﺗ
ﺣ
ﺜﻨﺎءا ت ،
ﺘﺘﻌﺮف ﻋﲆ اﻻﺳ
ﺘﺘﻮﻗﻌ ﺔ.ﺳ
ﺑﺮاﻣﺠﻚ ﻋﻨﺪﻣﺎﺗﻮاﺟﻪ ﻣﻮاﻗﻒ ﻏﻴﺮ ﻣﺘﻌﻄﻞ
ﺘﻰ ﻻﺗ
ﺘﻌﺎﻣﻞ ﻣﻊ اﻷﺧﻄﺎء ﺣ
ﺘﻌﻠﻢ ﻛﻴﻔﻴ ﺔ اﻟ
ﺘﺳ
ﺘﻌﺮف أ ً
ﻳﻀﺎ ﻋﲆ وﺣﺪة json ، ﺘﺒﺮﻧﺎﻣﺞ.ﺳ
ﺛﻨﺎءﺗﺸﻐﻴﻞ اﻟ
ﺘ ﻲﺗﻈﻬﺮ أ
و ﻫ ﻲ ﻛﺎﺋﻨﺎ ت ﺧﺎﺻ ﺔﺗﻨﺸﺌﻬﺎ Pythonﻹدارة اﻷﺧﻄﺎء اﻟ
ﺒﺮﻧﺎﻣﺞ ﻋﻦ اﻟﻌﻤﻞ.
ﺘﻰ ﻻﺗﻀﻴﻊ ﻋﻨﺪﺗﻮﻗﻒ اﻟ
ﺘﺨﺪم ﺣ
ﺑﻴﺎﻧﺎ ت اﻟﻤ ﺴﺘﻴﺢ ﻟﻚ ﺣﻔﻆ
ﺘ ﻲﺗ
واﻟ
ﺘﺨﺪﻣﻮن
ﺘﻤﻜﻦ اﻟﻤ ﺴ
ﺒﺮاﻣﺠﻚ.ﺳﻴ
ﺘﺨﺪام اﻷﺷﺨﺎص ﻟ
ﺒﻴﺎﻧﺎ ت إﱃﺗ ﺴﻬﻴﻞ اﺳ
ﺳﻴﺆديﺗﻌﻠﻢ اﻟﻌﻤﻞ ﻣﻊ اﻟﻤﻠﻔﺎ ت وﺣﻔﻆ اﻟ
ﺛﻢﺒﻌﺾ اﻷﻋﻤﺎل ،
ﺑﺑﺮﻧﺎﻣﺠﻚ ،واﻟﻘﻴﺎمﺘﻢ إدﺧﺎﻟﻬﺎ.ﻳﻤﻜﻦ ﻟﻸﺷﺨﺎصﺗﺸﻐﻴﻞ
ﺘﻰﻳ
ﺘ ﻲﻳﺠ ﺐ إدﺧﺎﻟﻬﺎ وﻣ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺘﻴﺎر اﻟ
ﻣﻦ اﺧ
ﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻮاﻗﻒ
ﺜﻨﺎءا ت ﻋﲆ اﻟ
ﺘ ﺑﻌ ﺔ ﻣﻦ ﺣﻴ ﺚﺗﻮﻗﻔﻮا ﻻﺣ ًﻘﺎ.ﺳﻴ ﺴﺎﻋﺪكﺗﻌﻠﻢ اﻟ
ﺘﻌﺎﻣﻞ ﻣﻊ اﻻﺳ ﺘﺎ
ﺒﺮﻧﺎﻣﺞ واﻟﻤ
إﻏﻼق اﻟ
ﺑﺮاﻣﺠﻚ .ﻫﺬاﺳﻴﺠﻌﻞﺒ ﺐ ﻓ ﻲﺗﻌﻄﻞ
ﺘﺴﺘ ﻲﻳﻤﻜﻦ أنﺗ
ﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﺸﻜﻼ ت اﻷﺧﺮى اﻟ
ﺘ ﻲ ﻻﺗﻮﺟﺪ ﻓﻴﻬﺎ اﻟﻤﻠﻔﺎ ت واﻟ
اﻟ
ﺑﻴﺎﻧﺎ تﺳﻴﺌ ﺔ ،ﺳﻮاءﺜﺮ ﻗﻮة ﻋﻨﺪﻣﺎﺗﻮاﺟﻪ
ﺑﺮاﻣﺠﻚ أﻛ
Machine Translated by Google
ﺘﺠﻌﻞ
ﺘﻌﻠﻤﻬﺎ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ،ﺳ
ﺘﺘ ﻲﺳ
ﺑﺮاﻣﺠﻚ .ﻣﻦ ﺧﻼل اﻟﻤﻬﺎرا ت اﻟﺜ ﺔ ﻟﻜ ﺴﺮ
ﺒﻴﺑﺮﻳﺌ ﺔ أو ﻣﻦ ﻣﺤﺎوﻻ ت ﺧﺗ ﻲ ﻣﻦ أﺧﻄﺎء
ﺗﺄ
ﺘﻘﺮا ًرا.
ﺘﺨﺪام واﺳ
ﺑﻠﻴ ﺔ ﻟﻼﺳ
ﺒﻴﻖ وﻗﺎ
ﺘﻄﺑﻠﻴ ﺔ ﻟﻠ
ﺜﺮ ﻗﺎ
ﺘﺮﻓﻴﻦ أﻛ
اﻟﻤﺤ
اﻟﻘﺮاءة ﻣﻦ ﻣﻠﻒ
ﺑﻴﺎﻧﺎ ت اﻟﻤﺮور
ﺑﻴﺎﻧﺎ ت اﻟﻄﻘ ﺲ وﺘﻮي اﻟﻤﻠﻔﺎ ت اﻟﻨﺼﻴ ﺔ ﻋﲆ
ﺒﻴﺎﻧﺎ ت ﻓ ﻲ ﻣﻠﻔﺎ ت ﻧﺼﻴ ﺔ.ﻳﻤﻜﻦ أنﺗﺤ
ﺘﻮﻓﺮ ﻛﻤﻴ ﺔ ﻻﺗﺼﺪق ﻣﻦ اﻟ
ﺗ
ﺒﻴﺎﻧﺎ ت ،
ﺒﻴﻘﺎ تﺗﺤﻠﻴﻞ اﻟ
ﺑﺸﻜﻞ ﺧﺎص ﻓ ﻲﺗﻄﺑﻴ ﺔ واﻟﻤﺰﻳﺪ .اﻟﻘﺮاءة ﻣﻦ ﻣﻠﻒ ﻣﻔﻴﺪة
ﺘﺼﺎدﻳ ﺔ واﻷﻋﻤﺎل اﻷد
ﺘﻤﺎﻋﻴ ﺔ واﻻﻗ
ﺒﻴﺎﻧﺎ ت اﻻﺟ
واﻟ
ﺑﺔ
ﺘﺎ
ﺜﺎل ،ﻳﻤﻜﻨﻚ ﻛ
ﺒﻴﻞ اﻟﻤ ﺒﻖ أ ً
ﻳﻀﺎ ﻋﲆ أي ﻣﻮﻗﻒﺗﺮﻳﺪ ﻓﻴﻪﺗﻌﺪﻳﻞ أوﺗﻌﺪﻳﻞ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟﻤﺨﺰﻧ ﺔ ﻓ ﻲ ﻣﻠﻒ .ﻋﲆﺳ وﻟﻜﻨﻬﺎﺗﻨﻄ
ﺑﻌﺮﺿﻪ.ﺘﺼﻔﺢ
ﺘﻨ ﺴﻴﻖﻳ ﺴﻤﺢ ﻟﻠﻤ
ﺑﺑ ﺔ اﻟﻤﻠﻒ
ﺘﺎ
ﺘﻮﻳﺎ ت ﻣﻠﻒ ﻧﺼ ﻲ وﻳﻌﻴﺪ ﻛ
ﺑﺮﻧﺎﻣﺞﻳﻘﺮأ ﻣﺤ
ﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟﻤﻮﺟﻮدة ﻓ ﻲ ﻣﻠﻒ ﻧﺼ ﻲ ،ﻓﺈن اﻟﺨﻄﻮة اﻷوﱃ ﻫ ﻲ ﻗﺮاءة اﻟﻤﻠﻒ ﻓ ﻲ اﻟﺬاﻛﺮة.ﻳﻤﻜﻨﻚ
ﻋﻨﺪﻣﺎﺗﺮﻳﺪ اﻟ
ﺑﺎﻟﻜﺎﻣﻞ ،أوﻳﻤﻜﻨﻚ اﻟﻌﻤﻞ ﻣﻦ ﺧﻼل اﻟﻤﻠﻒﺳﻄ ﺮًا واﺣﺪًا ﻓ ﻲ ﻛﻞ ﻣﺮة.ﺘﻮﻳﺎ ت اﻟﻤﻠﻒ
ﻗﺮاءة ﻣﺤ
ﺑﻨﻔ ﺴﻚ ،ﻳﻤﻜﻨﻚ إدﺧﺎل ﻫﺬه اﻟ ﺴﻄﻮر ﻓ ﻲ ﻣﺤﺮر وﺣﻔﻆ اﻟﻤﻠﻒ ﻛـ pi_digits.txt ،أوﻳﻤﻜﻨﻚﺗﻨﺰﻳﻞﺘﺎﻟﻴ ﺔ
ﺜﻠ ﺔ اﻟ
ﺑ ﺔ اﻷﻣ
ﺘﺠﺮ
ﻟ
ﺘﺎ ب ﻣﻦ ﺧﻼل https://www.nostarch.com/pythoncrashcourse/.اﺣﻔﻆ اﻟﻤﻠﻒ ﻓ ﻲ ﻧﻔ ﺲ اﻟﺪﻟﻴﻞ
اﻟﻤﻠﻒ ﻣﻦ ﻣﻮارد اﻟﻜ
ﺑﺮاﻣﺞ ﻫﺬا اﻟﻔﺼﻞ.ﺘﺨﺰن
ﺣﻴ ﺚﺳ
ﺗﻪ
ﺘﻮﻳﺎ
ﺒﻊ ﻣﺤ
ﺘﺢ ﻫﺬا اﻟﻤﻠﻒ وﻳﻘﺮأه وﻳﻄ
ﺑﺮﻧﺎﻣﺞﻳﻔ ﻫﺬا
ﻣﻦ اﻟﻤﻠﻒ إﱃ اﻟﺸﺎﺷ ﺔ:
ﺘﻰ ﻟﻮ ﻛﺎن
ﺑﺄي ﻋﻤﻞ ﻣﻊ ﻣﻠﻒ ،ﺣﺑﺎﻟﻨﻈﺮ إﱃ اﻟﺪاﻟ ﺔ open () .ﻟﻠﻘﻴﺎمﺒﺪأ
ﺜﻴﺮﻳﺤﺪ ث .ﻟﻨ
ﺑﻪ اﻟﻜﺒﺮﻧﺎﻣﺞ
اﻟ ﺴﻄﺮ اﻷول ﻣﻦ ﻫﺬا اﻟ
ﺘﺎج اﻟﺪاﻟ ﺔ )( openإﱃ وﺳﻴﻄ ﺔ واﺣﺪة :اﺳﻢ اﻟﻤﻠﻒ اﻟﺬي ﺘﺎج أوﻻ ً إﱃ ﻓ
ﺘﺢ اﻟﻤﻠﻒ ﻟﻠﻮﺻﻮل إﻟﻴﻪ.ﺗﺤ ﺗﻪ ،ﺗﺤ
ﺘﻮﻳﺎ
ﺒﺎﻋ ﺔ ﻣﺤ
ﻣﺠﺮد ﻃ
ﺜﺎل ،
ﺒﺮﻧﺎﻣﺞ اﻟﺠﺎريﺗﻨﻔﻴﺬه ﺣﺎﻟ ًﻴﺎ .ﻓ ﻲ ﻫﺬا اﻟﻤ
ﺘﻢﺗﺨﺰﻳﻦ اﻟ
ﺒﺤ ﺚ Pythonﻋﻦ ﻫﺬا اﻟﻤﻠﻒ ﻓ ﻲ اﻟﺪﻟﻴﻞ ﺣﻴ ﺚﻳ
ﺘﺤﻪ.ﺗ
ﺗﺮﻳﺪ ﻓ
ﺘﻢﺗﺨﺰﻳﻦ file_reader.py .
ﺒﺤ ﺚ Pythonﻋﻦ pi_digits.txtﻓ ﻲ اﻟﺪﻟﻴﻞ ﺣﻴ ﺚﻳ
ﺘﺸﻐﻴﻞ ﺣﺎﻟ ًﻴﺎ ،ﻟﺬاﺗ
file_reader.pyﻗﻴﺪ اﻟ
ﺘﺢ )(
اﻟﻔ
ﺘﺢ )"("pi_digits.txt
ﺜﻞ اﻟﻤﻠﻒ .ﻫﻨﺎ ،اﻓ
ﺑﺈرﺟﺎع ﻛﺎﺋﻦﻳﻤﺗﻘﻮم اﻟﺪاﻟ ﺔ
ﺜﻞ pi_digits.txt.ﻳﺨﺰن Pythonﻫﺬا اﻟﻜﺎﺋﻦ ﻓ ﻲ file_object ،واﻟﺬيﺳﻨﻌﻤﻞ ﻣﻌﻪ ﻻﺣ ًﻘﺎ ﻓ ﻲ اﻟ
ﺒﺮﻧﺎﻣﺞ. إرﺟﺎع ﻛﺎﺋﻦﻳﻤ
190اﻟﻔﺼﻞ اﻟﻌﺎﺷﺮ
Machine Translated by Google
2643383279
8979323846
3.1415926535
ﺑﻴﻦ ﻫﺬا اﻹﺧﺮاج واﻟﻤﻠﻒ اﻷﺻﻠ ﻲ ﻫﻮﺳﻄﺮ ﻓﺎرغ إﺿﺎﻓ ﻲ ﻓ ﻲ ﻧﻬﺎﻳ ﺔ اﻹﺧﺮاج.ﻳﻈﻬﺮ اﻟ ﺴﻄﺮ اﻟﻔﺎرغﻷنﺘﻼف اﻟﻮﺣﻴﺪ
اﻻﺧ
ﺗﺮﺟﻊﺳﻠ ﺴﻠ ﺔ ﻓﺎرﻏ ﺔ ﻋﻨﺪﻣﺎﺗﺼﻞ إﱃ ﻧﻬﺎﻳ ﺔ اﻟﻤﻠﻒ ؛ﺗﻈﻬﺮ ﻫﺬه اﻟ ﺴﻠ ﺴﻠ ﺔ اﻟﻔﺎرﻏ ﺔ ﻛ ﺴﻄﺮ ﻓﺎرغ .إذا ﻛﻨ ﺖﺗﺮﻳﺪ إزاﻟ ﺔ
)( read
ﺒﺎﻋ ﺔ :
ﺑﻴﺎن اﻟﻄﺘﺨﺪام )( rstripﻓ ﻲ
اﻟ ﺴﻄﺮ اﻟﻔﺎرغ اﻹﺿﺎﻓ ﻲ ،ﻓﻴﻤﻜﻨﻚ اﺳ
ﻣ ﺴﺎرا ت اﻟﻤﻠﻔﺎ ت
ﺘﻢﺗﺨﺰﻳﻦ اﻟﻤﻠﻒ
ﺒﺤ ﺚ Pythonﻓ ﻲ اﻟﺪﻟﻴﻞ ﺣﻴ ﺚﻳ
ﺜﻞ pi_digits.txtإﱃ اﻟﻮﻇﻴﻔ ﺔ open () ،ﻳ
ﺑ ﺴﻴﻂ ﻣﻋﻨﺪﺗﻤﺮﻳﺮ اﺳﻢ ﻣﻠﻒ
ﺑﻚ(.ﺑﺮﻧﺎﻣﺞ yp.اﻟﺨﺎصاﻟﺠﺎريﺗﻨﻔﻴﺬه ﺣﺎﻟ ًﻴﺎ )أي ﻣﻠﻒ
ﺜﻞ ﻣﻠﻒ
ﺘﺤﻪ ﻓ ﻲ ﻧﻔ ﺲ اﻟﺪﻟﻴﻞ ﻣ
ﺑﻨﺎ ًء ﻋﲆ ﻛﻴﻔﻴ ﺔﺗﻨﻈﻴﻢ ﻋﻤﻠﻚ ،ﻟﻦﻳﻜﻮن اﻟﻤﻠﻒ اﻟﺬيﺗﺮﻳﺪ ﻓﺑﻌﺾ اﻷﺣﻴﺎن ،ﻓﻲ
ﺒﺮﻧﺎﻣﺞ ﻓ ﻲ ﻣﺠﻠﺪﻳ ﺴﻤﻰ ؛ python_workداﺧﻞ
ﺜﺎل ،ﻳﻤﻜﻨﻚﺗﺨﺰﻳﻦ ﻣﻠﻔﺎ ت اﻟ
ﺒﻴﻞ اﻟﻤ
ﺑﻚ .ﻋﲆﺳﺒﺮﻧﺎﻣﺞ اﻟﺨﺎص
اﻟ
ﺘﻢ
ﺘ ﻲﻳ
ﺒﺮﻧﺎﻣﺞ ﻋﻦ اﻟﻤﻠﻔﺎ ت اﻟﻨﺼﻴ ﺔ اﻟ
ﺘﻤﻴﻴﺰ ﻣﻠﻔﺎ ت اﻟ
python_work ،ﻗﺪﻳﻜﻮن ﻟﺪﻳﻚ ﻣﺠﻠﺪ آﺧﺮﻳ ﺴﻤﻰ text_filesﻟ
ﺘﻬﺎ .ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ ﻣﻠﻔﺎ ت text_files
ﻣﻌﺎﻟﺠ
ﺒﺤ ﺚ ﻓﻘﻂ
ﺘﻣﻮﺟﻮد ﻓ ﻲ python_work ،ﻓﻤﺠﺮدﺗﻤﺮﻳﺮ )( openاﺳﻢ اﻟﻤﻠﻒ ﻓ ﻲ text_filesﻟﻦﻳﻌﻤﻞ ،ﻷن Pythonﺳ
ﺘﻤﺮ
ﺘﻮﻗﻒ ﻋﻨﺪ ﻫﺬا اﻟﺤﺪ ؛ ﻟﻦﻳ ﺴ
ﺗﻓ ﻲ python_workو
ﺜﻨﺎءا ت
ﺘاﻟﻤﻠﻔﺎ ت واﻻﺳ 191
Machine Translated by Google
ﺘﺎج
ﺒﺮﻧﺎﻣﺞ ﻓﻴﻪ ،ﺗﺤ
ﺘﺢ اﻟﻤﻠﻔﺎ ت ﻣﻦ دﻟﻴﻞ آﺧﺮ ﻏﻴﺮ اﻟﺪﻟﻴﻞ اﻟﺬيﺗﻢﺗﺨﺰﻳﻦ ﻣﻠﻒ اﻟ
ﺗﻔﺑﺤ ﺚ ﻓ ﻲ text_files.ﻟﺠﻌﻞ Python
وا
ﺒﺤ ﺚ ﻓ ﻲ ﻣﻮﻗﻊ ﻣﻌﻴﻦ ﻋﲆ ﻧﻈﺎﻣﻚ.
ﺑﺎﻟ
ﺒﺮ Python
إﱃﺗﻮﻓﻴﺮ ﻣ ﺴﺎر ﻣﻠﻒ ،واﻟﺬيﻳﺨ
ﺘﺮض أن text_filesﻣﻮﺟﻮد
ﺒﺤ ﺚ ﻋﻦ ﻣﻠﻒ txt.اﻟﻤﻄﻠﻮ ب ﻓ ﻲ اﻟﻤﺠﻠﺪ text_filesوﻳﻔ
ﺑﺎﻟ
ﺒﺮ ﻫﺬا اﻟ ﺴﻄﺮ Python
ﻳﺨ
داﺧﻞ )python_workو ﻫﻮ ﻛﺬﻟﻚ(.
ﺑﺪﻻ ً ﻣﻦ اﻟﺸﺮﻃ ﺔ اﻟﻤﺎﺋﻠ ﺔ ﻟﻸﻣﺎم )(/ﻓ ﻲ ﻣ ﺴﺎر اﻟﻤﻠﻒ:
ﺘﺨﺪام اﻟﺸﺮﻃ ﺔ اﻟﻤﺎﺋﻠ ﺔ ﻟﻠﺨﻠﻒ )\(
ﻓ ﻲ أﻧﻈﻤ ﺔ Windows ،ﻳﻤﻜﻨﻚ اﺳ
ﺛﻢﺗﻤﺮﻳﺮ ﻫﺬاﺘﻐﻴﺮ
ﺒﻴ ﺔ ،ﻟﺬﻟﻚ ﻣﻦ اﻟﻤﻔﻴﺪﺗﺨﺰﻳﻨﻬﺎ ﻓ ﻲ ﻣ ً
ﻋﺎدة ﻣﺎﺗﻜﻮن اﻟﻤ ﺴﺎرا ت اﻟﻤﻄﻠﻘ ﺔ أﻃﻮل ﻣﻦ اﻟﻤ ﺴﺎرا ت اﻟﻨ ﺴ
ﺒﺪو اﻟﻤ ﺴﺎرا ت اﻟﻤﻄﻠﻘ ﺔ ﻛﻤﺎﻳﻠ ﻲ:
ﺗﺘﺢ ().ﻓ ﻲ ﻧﻈﺎﻣ ﻲ Linuxو OS X ،
ﺘﻐﻴﺮ ﻟﻔ
اﻟﻤ
'file_path = '/home/ehmatthes/other_files/text_files/filename.txt
ﺘﺢ )(file_pathﻛـ file_object:
ﻣﻊ ﻓ
ﺒﺪو ﻫﻜﺬا:
ﺗﺘﺸﻐﻴﻞ Windows
وﻋﲆ ﻧﻈﺎم اﻟ
ﺘﺨﺪام اﻟﻤ ﺴﺎرا ت اﻟﻤﻄﻠﻘ ﺔ ،ﻳﻤﻜﻨﻚ ﻗﺮاءة اﻟﻤﻠﻔﺎ ت ﻣﻦ أي ﻣﻜﺎن ﻓ ﻲ ﻧﻈﺎﻣﻚ .ﻓ ﻲ اﻟﻮﻗ ﺖ اﻟﺤﺎﻟ ﻲ ،ﻣﻦ اﻷﺳﻬﻞ
ﺑﺎﺳ
ﺜﻞ text_filesداﺧﻞ اﻟﺪﻟﻴﻞ اﻟﺬيﻳﺨﺰن ﻣﻠﻔﺎ ت
ﺒﺮﻧﺎﻣﺞ أو ﻓ ﻲ ﻣﺠﻠﺪ ﻣ
ﺜﻞ ﻣﻠﻔﺎ ت اﻟ
ﺗﺨﺰﻳﻦ اﻟﻤﻠﻔﺎ ت ﻓ ﻲ ﻧﻔ ﺲ اﻟﺪﻟﻴﻞ ﻣ
pro gram.
ﺑﺸﻜﻞ ﺻﺤﻴﺢ .ﻟﻮأﺣﻴﺎﻧًﺎﺗﻔ ﺴﺮ أﻧﻈﻤ ﺔ N ote Windowsاﻟﺨﻄﻮط اﻟﻤﺎﺋﻠ ﺔ ﻟﻸﻣﺎم ﻓ ﻲ ﻣ ﺴﺎرا ت اﻟﻤﻠﻔﺎ ت
ﺘﺨﺪام اﻟﺨﻄﻮط اﻟﻤﺎﺋﻠ ﺔ اﻟﻌﻜ ﺴﻴ ﺔ.
ﺘﻮﻗﻌﻬﺎ ،ﺗﺄﻛﺪ ﻣﻦ ﻣﺤﺎوﻟ ﺔ اﺳ
ﺘ ﻲﺗ
ﺘﺎﺋﺞ اﻟ
ﺘﺨﺪم Windowsوﻻﺗﺤﺼﻞ ﻋﲆ اﻟﻨ
أﻧ ﺖﺗ ﺴ
192اﻟﻔﺼﻞ 10
Machine Translated by Google
ﺑ ﺴﻄﺮﻗﺮاءةﺳﻄﺮا
ﺒﺎ ﻓ ﻲ ﻓﺤﺺ ﻛﻞﺳﻄﺮ ﻣﻦ اﻟﻤﻠﻒ. ﻋﻨﺪﻣﺎﺗﻘﺮأ ﻣﻠ ًﻔﺎ ،ﺳ
ﺘﺮﻏ ﺐ ﻏﺎﻟ ً
ﺜﺎل ،ﻗﺪ
ﺒﻴﻞ اﻟﻤ
ﺑﻄﺮﻳﻘ ﺔ ﻣﺎ .ﻋﲆﺳﺒﺤ ﺚ ﻋﻦ ﻣﻌﻠﻮﻣﺎ ت ﻣﻌﻴﻨ ﺔ ﻓ ﻲ اﻟﻤﻠﻒ ،أو ﻗﺪﺗﺮﻏ ﺐ ﻓ ﻲﺗﻌﺪﻳﻞ اﻟﻨﺺ ﻓ ﻲ اﻟﻤﻠﻒ
ﻗﺪﺗ
ﺘﻀﻤﻦ ﻛﻠﻤ ﺔ sunnyﻓ ﻲ وﺻﻒ اﻟﻄﻘ ﺲ ﻓ ﻲ ذﻟﻚ اﻟﻴﻮم .ﻓ ﻲﺗﻘﺮﻳﺮ
ﺑﺄيﺳﻄﺮﻳﺑﻴﺎﻧﺎ ت اﻟﻄﻘ ﺲ واﻟﻌﻤﻞﺗﺮﻏ ﺐ ﻓ ﻲ ﻗﺮاءة ﻣﻠﻒ
ﺘﻨ ﺴﻴﻖ.
ﺑﻨﻮع ﻣﻌﻴﻦ ﻣﻦ اﻟﺑ ﺔ ﻫﺬا اﻟ ﺴﻄﺮ
ﺘﺎ
ﺗﻌﻴﺪ ﻛ
ﺑﺎﻟﻌﻼﻣ ﺔ ><headlineوﺒﺤ ﺚ ﻋﻦ أيﺳﻄﺮ
ﺒﺎري ،ﻗﺪﺗ
إﺧ
ﺘﺨﺪام ﺣﻠﻘ ﺔ forﻓ ﻲ ﻛﺎﺋﻦ اﻟﻤﻠﻒ ﻟﻔﺤﺺ ﻛﻞﺳﻄﺮ ﻣﻦ ﻣﻠﻒ واﺣﺪًاﺗﻠﻮ اﻵﺧﺮ:
ﻳﻤﻜﻨﻚ اﺳ
ﺘﻐﻴﺮ
ﺗﻪ ﻓ ﻲ اﻟﻤ
ﺘﻮﻳﺎ
ﺜﻞ اﻟﻤﻠﻒ وﻣﺤ
ﺘﻢﺗﺨﺰﻳﻦ ﻛﺎﺋﻦﻳﻤ
ﺑﻌﺪ أن ﻧ ﺴﻤ ﻲ open () ،ﻳﻋﻦ اﺳﻢ اﻟﻤﻠﻒ اﻵﺧﺮ اﻟﺬيﺗﺮﻳﺪ اﻟﻌﻤﻞ ﻣﻌﻪ.
ﺘﻮﻳﺎ ت
ﺑﺸﻜﻞ ﺻﺤﻴﺢ .ﻟﻔﺤﺺ ﻣﺤﺘﺢ اﻟﻤﻠﻒ وإﻏﻼﻗﻪ
ﺑﻔﺜﻮن
ﺒﺎﻳ
ﺘﺨﺪم اﻟﺼﻴﻐ ﺔ withﻟﻠ ﺴﻤﺎح ﻟ
file_object v.ﻣﺮة أﺧﺮى ﻧ ﺴ
اﻟﻤﻠﻒ ،ﻧﻌﻤﻞ ﻣﻦ ﺧﻼل ﻛﻞﺳﻄﺮ ﻓ ﻲ اﻟﻤﻠﻒ ﻋﻦ ﻃﺮﻳﻖﺗﻜﺮار ﺣﻠﻘﺎ ت ﻛﺎﺋﻦ اﻟﻤﻠﻒ w.
3.1415926535
8979323846
2643383279
ﺜﻨﺎءا ت 193
ﺘاﻟﻤﻠﻔﺎ ت واﻻﺳ
Machine Translated by Google
2643383279
8979323846
3.1415926535
ﺘﻮح ﻛـ file_object:
ﻣﻊ )اﺳﻢ ﻣﻠﻒ( ﻣﻔ
uﺧﻄﻮط )( = file_object.readlines
vﻟﻠﺨﻂ ﻓ ﻲ اﻷﺳﻄﺮ:
ﺘﻮﻳﺎ ت اﻟﻤﻠﻒ
ﺘﻌﺎﻣﻞ ﻣﻊ ﻣﺤ
اﻟ
ﺑﺈﻳﺠﺎز أرﻗﺎم pi.أوﻻ ً ،ﺳﻨﺤﺎولﺘﻜﺸﻒ
ﺒﻴﺎﻧﺎ ت ،ﻟﺬﻟﻚ دﻋﻮﻧﺎ ﻧ ﺴ
ﺑﻬﺬه اﻟﺑﻌﺪ أنﺗﻘﺮأ ﻣﻠ ًﻔﺎ ﻓ ﻲ اﻟﺬاﻛﺮة ،ﻳﻤﻜﻨﻚ ﻓﻌﻞ ﻣﺎﺗﺮﻳﺪ
ﺑﻴﻀﺎء ﻓﻴﻬﺎ:ﺑﺪون ﻣ ﺴﺎﻓ ﺔﺘﻮي ﻋﲆ ﺟﻤﻴﻊ اﻷرﻗﺎم ﻓ ﻲ اﻟﻤﻠﻒ
إﻧﺸﺎءﺳﻠ ﺴﻠ ﺔ واﺣﺪةﺗﺤ
"
u pi_string = vﻟﻠﺨﻂ ﻓ ﻲ اﻟ ﺴﻄﻮر:
194اﻟﻔﺼﻞ 10
Machine Translated by Google
"
= pi_stringﻟﻠﺨﻂ ﻓ ﻲ اﻟ ﺴﻄﻮر:
ﺒﺎﻋ ﺔ )(pi_stringﻃ
ﺒﺎﻋ ﺔ )ﻟﻴﻦ ))(pi_string
ﻃ
ﺒﺎدﺋ ﺔ ﺘﻀﻤﻦ أ ً
ﻳﻀﺎ اﻟ ﺘﻜﻮن اﻟ ﺴﻠ ﺴﻠ ﺔ ﻣﻦ ً 32
ﺣﺮﻓﺎﻷﻧﻬﺎﺗ ﺘﻰ 30ﻣﻨﺰﻟ ﺔ ﻋﺸﺮﻳ ﺔ.ﺗ
ﺘﻮي ﻋﲆ piﺣ
اﻵن ﻟﺪﻳﻨﺎﺳﻠ ﺴﻠ ﺔﺗﺤ
3وﻋﻼﻣ ﺔ ﻋﺸﺮﻳ ﺔ:
3.141592653589793238462643383279 32
ﺑﻬﺬه اﻟﻘﻴﻤ ﺔ ﻓ ﻲﺳﻴﺎقﺜﻮن ﻣﻦ ﻣﻠﻒ ﻧﺼ ﻲ ،ﻓﺈﻧﻬﺎﺗﻔ ﺴﺮ ﻛﻞ اﻟﻨﺺ ﻓ ﻲ اﻟﻤﻠﻒ ﻛ ﺴﻠ ﺴﻠ ﺔ .إذا ﻗﺮأ ت ﻓ ﻲ رﻗﻢ وأرد ت اﻟﻌﻤﻞ
ﺑﺎﻳﻋﻨﺪﻣﺎﺗﻘﺮأ
ﺘﺨﺪام اﻟﺪاﻟ ﺔ float () .
ﺑﺎﺳﺘﺨﺪام اﻟﺪاﻟ ﺔ ) ( intأوﺗﺤﻮﻳﻠﻬﺎ إﱃ ﻋﺪد ﻋﺸﺮي
ﺑﺎﺳﺘﻌﻴﻦ ﻋﻠﻴﻚﺗﺤﻮﻳﻠﻬﺎ إﱃ ﻋﺪد ﺻﺤﻴﺢ
رﻗﻤ ﻲ ،ﻓ ﺴﻴ
ﺘﻠﻒ.
ﺜﻨﺎءﺗﻤﺮﻳﺮه إﱃ ﻣﻠﻒ ﻣﺨ
ﺘﺑﺎﺳﺑﺮﻧﺎﻣﺠﻨﺎ ﻋﲆ اﻹﻃﻼقﺘﺎج إﱃﺗﻐﻴﻴﺮ
ﻻ ﻧﺤ
ﺘﻌﻴﻦ ﻋﻠﻴﻨﺎ ﻣﺸﺎ ﻫﺪةﺗﻤﺮﻳﺮ ﻣﻠﻴﻮن رﻗﻢ ﻓ ﻲ اﻟﻤﺤﻄ ﺔ:
ﺒﺎﻋ ﺔ أول 50ﺧﺎﻧ ﺔ ﻋﺸﺮﻳ ﺔ ﻓﻘﻂ ،ﻟﺬﻟﻚ ﻻﻳ
ﺑﻄ ﺳﻨﻘﻮم أ ً
ﻳﻀﺎ
ﺜﻨﺎءا ت
ﺘاﻟﻤﻠﻔﺎ ت واﻻﺳ 195
Machine Translated by Google
"
= pi_stringﻟﻠﺨﻂ ﻓ ﻲ اﻟ ﺴﻄﻮر:
ﺘﺎﺣ ﺔ ﻋﲆ pythoncrashcourse/.
ﺘﺎج إﱃﺗﻨﺰﻳﻞ اﻟﻤﻮارد اﻟﻤ
ﺘﺤﺘﺎﻟﻴ ﺔ( ،ﺳ
ﺜﻠ ﺔ اﻟ
ﺒﺮﻧﺎﻣﺞ )واﻟﻌﺪﻳﺪ ﻣﻦ اﻷﻣ
ﺘﺸﻐﻴﻞ ﻫﺬا اﻟ
ﻻﻟ
https://www.nostarch.com/
ﺘﻮح ﻛـ file_object:
ﻣﻊ )اﺳﻢ ﻣﻠﻒ( ﻣﻔ
ﺧﻄﻮط )( = file_object.readlines
"
= pi_stringﻟﻠﺨﻂ ﻓ ﻲ اﻟ ﺴﻄﻮر:
ﺑﺎﻟﺸﻜﻞ mmddyy: 120372ﻋﻴﺪ ﻣﻴﻼدكﻳﻈﻬﺮ ﻓ ﻲ أول ﻣﻠﻴﻮن رﻗﻢ ﻣﻦ !piأدﺧﻞﺗﺎرﻳﺦ ﻣﻴﻼدك ،
196اﻟﻔﺼﻞ اﻟﻌﺎﺷﺮ
Machine Translated by Google
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺘﻪ ﻋﻦ Python
ﺑﻀﻌ ﺔ أﺳﻄﺮﺗﻠﺨﺺ ﻣﺎﺗﻌﻠﻤﺘﺐ ً
ﻓﺎرﻏﺎ ﻓ ﻲ ﻣﺤﺮر اﻟﻨﺼﻮص واﻛ ﺘﺢ ﻣﻠ ًﻔﺎ
ﺗﻌﻠﻢ Python:اﻓ
10-1.
ﺑﺎﺳﻢ learning_python.txtﻓ ﻲ ﻧﻔ ﺲﺜﻮنﻳﻤﻜﻨﻚ ....اﺣﻔﻆ اﻟﻤﻠﻒ
ﺑﺎﻳﺒﺎرة ﻓ ﻲ
ﺑﺎﻟﻌﺑﺪأ ﻛﻞﺳﻄﺮ
ﺘﻰ اﻵن .ا
ﺣ
ﺘﻮﻳﺎ ت
ﺒﻊ اﻟﻤﺤ
ﺛﻼ ث ﻣﺮا ت .اﻃﺘﻪ
ﺒﺘﺒﻊ ﻣﺎ ﻛ
ﺑﺮﻧﺎﻣﺠًﺎﻳﻘﺮأ اﻟﻤﻠﻒ وﻳﻄﺘﺐ
ﺜﻞﺗﻤﺎرﻳﻨﻚ ﻣﻦ ﻫﺬا اﻟﻔﺼﻞ .اﻛ
اﻟﺪﻟﻴﻞ ﻣ
ﺘﻜﺮار ﻓﻮق ﻛﺎﺋﻦ اﻟﻤﻠﻒ ،وﻣﺮة ﻋﻦ ﻃﺮﻳﻖﺗﺨﺰﻳﻦ اﻷﺳﻄﺮ ﻓ ﻲ
ﺑﺎﻟﺑﺄﻛﻤﻠﻪ ،وﻣﺮةﻣﺮة واﺣﺪة ﻋﻦ ﻃﺮﻳﻖ ﻗﺮاءة اﻟﻤﻠﻒ
ﺘﻠ ﺔ .
ﺛﻢ اﻟﻌﻤﻞ ﻣﻌﻬﻢ ﺧﺎرج اﻟﻜﻗﺎﺋﻤ ﺔ
ﺜﺎل
ﺘﻠﻔ ﺔ .إﻟﻴﻚ ﻣ
ﺑﻜﻠﻤ ﺔ ﻣﺨﺒﺪال أي ﻛﻠﻤ ﺔ ﻓ ﻲﺳﻠ ﺴﻠ ﺔ
ﺘﺘﺨﺪام ﻃﺮﻳﻘ ﺔ )( replaceﻻﺳ
ﺘﻌﻠﻢ C:ﻳﻤﻜﻨﻚ اﺳ
10-2.اﻟ
ﺑﻜﻠﻤ ﺔ "ﻗﻄ ﺔ" ﻓ ﻲ ﺟﻤﻠ ﺔ:ﺒﺪال ﻛﻠﻤ ﺔ "ﻛﻠ ﺐ"
ﺘﺳﺮﻳﻊﻳﻮﺿﺢ ﻛﻴﻔﻴ ﺔ اﺳ
ﺑ ﺔ ﻓ ﻲ ﻣﻠﻒ
ﺘﺎ
اﻟﻜ
ﺑﻌﺪ إﻏﻼقﺣﺎ
ﺘﺎ ً
ﻧﺼﺎ إﱃ ﻣﻠﻒ ،ﺳﻴﻈﻞ اﻹﺧﺮاج ﻣ
ﺘﺐ ً
ﺘﻬﺎ ﻓ ﻲ ﻣﻠﻒ .ﻋﻨﺪﻣﺎﺗﻜ
ﺑﺘﺎ
ﺒﻴﺎﻧﺎ ت ﻫ ﻲ ﻛ
ﺑ ﺴﻂ اﻟﻄﺮق ﻟﺤﻔﻆ اﻟ
ﻣﻦ أ
ﺒﺮﻧﺎﻣﺞ ،ﻛﻤﺎﻳﻤﻜﻨﻚ ﻣﺸﺎرﻛ ﺔ
ﺘﻬﺎءﺗﺸﻐﻴﻞ اﻟ
ﺑﻌﺪ اﻧﺒﺮﻧﺎﻣﺞ.ﻳﻤﻜﻨﻚ ﻓﺤﺺ اﻹﺧﺮاج
ﺘﻮي ﻋﲆ إﺧﺮاج اﻟ
ﺘ ﻲﺗﺤ
اﻟﻤﺤﻄ ﺔ اﻟﻄﺮﻓﻴ ﺔ اﻟ
ﺑﻘﺮاءة اﻟﻨﺺ ﻣﺮة أﺧﺮى ﻓ ﻲ اﻟﺬاﻛﺮة واﻟﻌﻤﻞ ﻣﻌﻬﺎ ﻣﺮة أﺧﺮىﺑﺮاﻣﺞﺗﻘﻮمﺑﺔ
ﺘﺎ ﻳﻀﺎ.ﻳﻤﻜﻨﻚ أ ً
ﻳﻀﺎ ﻛ ﻣﻠﻔﺎ ت اﻹﺧﺮاج ﻣﻊ اﻵﺧﺮﻳﻦ أ ً
ﻻﺣ ًﻘﺎ.
ﺑ ﺔ ﻓ ﻲ ﻣﻠﻒ ﻓﺎرغ
ﺘﺎ
اﻟﻜ
ﺑ ﺔ إﱃ اﻟﻤﻠﻒ.
ﺘﺎ
ﺒﺮ Pythonأﻧﻚﺗﺮﻳﺪ اﻟﻜ
ﺛﺎﻧﻴ ﺔﺗﺨﺘﺨﺪام وﺳﻴﻄ ﺔ
ﺑﺎﺳ
ﺘﺪﻋﺎء )( open
ﺘﺎج إﱃ اﺳ
ﺑ ﺔ ﻧﺺ إﱃ ﻣﻠﻒ ،ﺗﺤ
ﺘﺎ
ﻟﻜ
ﺘﻬﺎ ﻋﲆ اﻟﺸﺎﺷ ﺔ: ﺑﺪﻻ ً ﻣﻦ ﻃ
ﺒﺎﻋ ﺑ ﺴﻴﻄ ﺔ وﻧﺨﺰﻧﻬﺎ ﻓ ﻲ ﻣﻠﻒﺘ ﺐ رﺳﺎﻟ ﺔ
ﻟﻤﻌﺮﻓ ﺔ ﻛﻴﻔﻴ ﺔ ﻋﻤﻞ ذﻟﻚ ،دﻋﻨﺎ ﻧﻜ
ﺘ ﺐ_
ﻳﻜ اﺳﻢ اﻟﻤﻠﻒ '= 'programming.txt
message.py
ﺘﻮح )اﺳﻢ اﻟﻤﻠﻒ "w") ،ﻛـ file_object:
uﻣﻔ
ﺒﺮﻣﺠ ﺔ(".
")v file_object.writeأﺣ ﺐ اﻟ
ﺘﺤﻪ .اﻟﻮﺳﻴﻄ ﺔ
ﺜﺎل ﻟﻪ وﺳﻴﻄﺎن u.ﻻﺗﺰال اﻟﻮﺳﻴﻄ ﺔ اﻷوﱃ ﻫ ﻲ اﺳﻢ اﻟﻤﻠﻒ اﻟﺬي ﻧﺮﻳﺪ ﻓ
ﺘﺢ )(ﻓ ﻲ ﻫﺬا اﻟﻤ
ﺘﺪﻋﺎء اﻟﻔ
اﺳ
ﺘﺢ ﻣﻠﻒ
ﺑ ﺔ.ﻳﻤﻜﻨﻚ ﻓ
ﺘﺎ
ﺘﺢ اﻟﻤﻠﻒ ﻓ ﻲ وﺿﻊ اﻟﻜ
ﺒﺮ Pythonأﻧﻨﺎ ﻧﺮﻳﺪ ﻓ
ﺗﺨﺜﺎﻧﻴ ﺔ 'w' ، ،
اﻟ
ﺜﻨﺎءا ت
ﺘاﻟﻤﻠﻔﺎ ت واﻻﺳ 197
Machine Translated by Google
ﺑ ﺔ إﱃ اﻟﻤﻠﻒ +').
ﺘﺎ
ﺑﺎﻟﻘﺮاءة واﻟﻜﺑ ﺔ )'('wأو وﺿﻊ اﻹﻟﺤﺎق )'('aأو اﻟﻮﺿﻊ اﻟﺬيﻳ ﺴﻤﺢ ﻟﻚ
ﺘﺎ
ﻓ ﻲ وﺿﻊ اﻟﻘﺮاءة )'('rأو وﺿﻊ اﻟﻜ
ﺘﺮاﺿ ًﻴﺎ.
ﺘﺢ Pythonاﻟﻤﻠﻒ ﻓ ﻲ وﺿﻊ اﻟﻘﺮاءة ﻓﻘﻂ اﻓ
('rإذا ﺣﺬﻓ ﺖ وﺳﻴﻄ ﺔ اﻟﻮﺿﻊ ،ﺗﻔ
ﺑﺎﻟﻔﻌﻞ .وﻣﻊ ذﻟﻚ ،ﻛﻦ ﺣﺬ ًرا ﻋﻨﺪﺘ ﺐ إﻟﻴﻪ إذا ﻟﻢﻳﻜﻦ ﻣﻮﺟﻮدًا
ﺑﺈﻧﺸﺎء اﻟﻤﻠﻒ اﻟﺬيﺗﻜﺗﻠﻘﺎﺋ ًﻴﺎ
ﺗﻘﻮم اﻟﻮﻇﻴﻔ ﺔ )( open
ﺒﻞ إرﺟﺎع ﻛﺎﺋﻦ اﻟﻤﻠﻒ.
ﺑﻤ ﺴﺢ اﻟﻤﻠﻒ ﻗ
ﺑ ﺔ )'('wﻷﻧﻪ إذا ﻛﺎن اﻟﻤﻠﻒ ﻣﻮﺟﻮدًا ،ﻓ ﺴﻴﻘﻮم Python
ﺘﺎ
ﺘﺢ ﻣﻠﻒ ﻓ ﻲ وﺿﻊ اﻟﻜ
ﻓ
ﺒﺮﻧﺎﻣﺞ ﻋﲆ ﻣﺨﺮج
ﺘﻮي ﻫﺬا اﻟ
ﺑ ﺔﺳﻠ ﺴﻠ ﺔ ﻓ ﻲ اﻟﻤﻠﻒ .ﻻﻳﺤ
ﺘﺎ
ﺘﺨﺪم ﻃﺮﻳﻘ ﺔ )( writeﻋﲆ ﻛﺎﺋﻦ اﻟﻤﻠﻒ ﻟﻜ
ﻓ ﻲ v ،ﻧ ﺴ
ﺘﺮىﺳﻄ ﺮًا واﺣﺪًا:
ﺘﺤ ﺖ ﻣﻠﻒ program.txt ،ﻓ ﺴ
ﻃﺮﻓ ﻲ ،وﻟﻜﻦ إذا ﻓ
ﺒﺮﻣﺠ ﺔ.
program.txtأﻧﺎ أﺣ ﺐ اﻟ
ﺘﻌﺪدة
ﺑ ﺔ أﺳﻄﺮ ﻣ
ﺘﺎ
ﻛ
ﺜﺮ ﻣﻦﺳﻄﺮ واﺣﺪ دونﺗﻀﻤﻴﻦ
ﺒ ﺖ أﻛ
ﺘﺒﻪ .ﻟﺬﻟﻚ إذا ﻛ
ﺘﺑ ﺔ )(أي أﺳﻄﺮ ﺟﺪﻳﺪة إﱃ اﻟﻨﺺ اﻟﺬيﺗﻜ
ﺘﺎ
ﻻﺗﻀﻴﻒ وﻇﻴﻔ ﺔ اﻟﻜ
ﺑﺎﻟﺸﻜﻞ اﻟﺬيﺗﺮﻳﺪه:أﺣﺮفﺳﻄﺮ ﺟﺪﻳﺪ ،ﻓﻘﺪ ﻻﻳﻈﻬﺮ اﻟﻤﻠﻒ
ﺒﺮﻣﺠ ﺔ.
اﺣ ﺐ اﻟ
أﻧﺎ أﺣ ﺐ إﻧﺸﺎء أﻟﻌﺎ ب ﺟﺪﻳﺪة.
198اﻟﻔﺼﻞ اﻟﻌﺎﺷﺮ
Machine Translated by Google
إﻟﺤﺎق ﻣﻠﻒ
ﺘﺢ اﻟﻤﻠﻒ ﻓ ﻲ وﺿﻊ اﻹﻟﺤﺎق .ﻋﻨﺪﻣﺎ
ﺘﻮى ﻣﻮﺟﻮد ،ﻳﻤﻜﻨﻚ ﻓ
ﺑ ﺔ ﻓﻮق ﻣﺤﺑﺪﻻ ً ﻣﻦ اﻟﻜ
ﺘﺎ ﺘﻮى إﱃ ﻣﻠﻒ
إذا ﻛﻨ ﺖﺗﺮﻳﺪ إﺿﺎﻓ ﺔ ﻣﺤ
ﺒﻬﺎ إﱃ
ﺘﺘﻢ إﺿﺎﻓ ﺔ أي أﺳﻄﺮﺗﻜ
ﺘ ﺘﺢ ﻣﻠ ًﻔﺎ ﻓ ﻲ وﺿﻊ اﻹﻟﺤﺎق ،ﻓﺈن Pythonﻻﺗﻤ ﺴﺢ اﻟﻤﻠﻒ ﻗ
ﺒﻞ إرﺟﺎع ﻛﺎﺋﻦ اﻟﻤﻠﻒ.ﺳ ﺗﻔ
ﺑﺈﻧﺸﺎء ﻣﻠﻒ ﻓﺎرغ ﻟﻚ.
ﺑﻌﺪ ،ﻓ ﺴﻴﻘﻮم Pythonاﻟﻤﻠﻒ ﻓ ﻲ ﻧﻬﺎﻳ ﺔ اﻟﻤﻠﻒ .إذا ﻟﻢﻳﻜﻦ اﻟﻤﻠﻒ ﻣﻮﺟﻮدًا
ﺘ ﺐ_
ﻳﻜ اﺳﻢ اﻟﻤﻠﻒ '= 'programming.txt
message.py
ﺘﻮح )اﺳﻢ اﻟﻤﻠﻒ " ،أ"( ﻛـ file_object:
uﻣﻔ
ﺒﻴﺮة\ n") .
ﺒﻴﺎﻧﺎ ت اﻟﻜ ")v file_object.writeأﺣ ﺐ أ ً
ﻳﻀﺎ إﻳﺠﺎد اﻟﻤﻌﻨﻰ ﻓ ﻲ ﻣﺠﻤﻮﻋﺎ ت اﻟ
ﺘﺼﻔﺢ\ n") .
ﺒﻴﻘﺎ تﻳﻤﻜﻦﺗﺸﻐﻴﻠﻬﺎ ﻓ ﻲ ﻣ
")file_object.writeأﺣ ﺐ إﻧﺸﺎءﺗﻄ
ﺘ ﺐﺳﻄﺮﻳﻦ
ﺑ ﺔ ﻓﻮق اﻟﻤﻠﻒ اﻟﻤﻮﺟﻮد .ﻓ ﻲ vﻧﻜﺑﺪﻻ ً ﻣﻦ اﻟﻜ
ﺘﺎ ﺘﺢ اﻟﻤﻠﻒ ﻟﻺﻟﺤﺎق
ﺘﺨﺪم اﻟﻮﺳﻴﻄ ﺔ ""aﻟﻔ
ﻓ ﻲ uﻧ ﺴ
ﺟﺪﻳﺪﻳﻦﻳﻀﺎﻓﺎن إﱃ program.txt:
ﺒﺮﻣﺠ ﺔ.
program.txtأﻧﺎ أﺣ ﺐ اﻟ
أﻧﺎ أﺣ ﺐ إﻧﺸﺎء أﻟﻌﺎ ب ﺟﺪﻳﺪة.
ﺒﻴﺮة.
ﺒﻴﺎﻧﺎ ت اﻟﻜ أﻧﺎ أ ً
ﻳﻀﺎ أﺣ ﺐ إﻳﺠﺎد اﻟﻤﻌﻨﻰ ﻓ ﻲ ﻣﺠﻤﻮﻋﺎ ت اﻟ
ﺘﺼﻔﺢ.
ﺒﻴﻘﺎ تﻳﻤﻜﻦﺗﺸﻐﻴﻠﻬﺎ ﻓ ﻲ ﻣ
أﺣ ﺐ إﻧﺸﺎءﺗﻄ
ﺘﻮ.
ﺘﻮى اﻟﺠﺪﻳﺪ اﻟﺬي أﺿﻔﻨﺎه ﻟﻠ
ﺑﺎﻟﻤﺤﺒﻮﻋ ﺔ
ﺘﺘﻮﻳﺎ ت اﻷﺻﻠﻴ ﺔ ﻟﻠﻤﻠﻒ ،ﻣ
ﺑﺎﻟﻤﺤﺑﻨﺎ اﻷﻣﺮﺘﻬ ﻲ
ﻳﻨ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺒﻊﺗﺤﻴ ﺔ ﻋﲆ
ﺑﺈدﺧﺎل أﺳﻤﺎﺋﻬﻢ .ﻋﻨﺪﻣﺎﻳﺪﺧﻠﻮن اﺳﻤﻬﻢ ،اﻃﺘﺨﺪﻣﻴﻦ
ﺘ ﺐ ﺣﻠﻘ ﺔﺗﻜﺮارﻳ ﺔﺗﻄﺎﻟ ﺐ اﻟﻤ ﺴ
ﺘﺮ اﻟﺰوار :اﻛ
10-4.دﻓ
ﺗﺄﻛﺪ ﻣﻦ ﻇﻬﻮر ﻛﻞ إدﺧﺎل ﻓ ﻲﺳﻄﺮ ﺟﺪﻳﺪ ﻓ ﻲ
ﺗﻬﻢ ﻓ ﻲ ﻣﻠﻒﻳ ﺴﻤﻰ guest_book.txt.
اﻟﺸﺎﺷ ﺔ وأﺿﻒﺳﻄ ﺮًاﻳ ﺴﺠﻞ زﻳﺎر
اﻟﻤﻠﻒ.
ُﺪﺧﻞ ﻓﻴﻬﺎ
ﺒﺮﻣﺠ ﺔ .ﻓ ﻲ ﻛﻞ ﻣﺮةﻳ
ﺑﺎﻟﺑﻬﻢ
ﺒ ﺐ إﻋﺠﺎ
ﺘ ﻲﺗ ﺴﺄل اﻟﻨﺎس ﻋﻦﺳ
ﺘ ﺐ ﺣﻠﻘ ﺔ whileاﻟ
ﺒﺮﻣﺠ ﺔ :اﻛ
ﺘﻄﻼع اﻟ
10-5.اﺳ
ﺒﺎ إﱃ ﻣﻠﻒﻳﺨﺰن ﺟﻤﻴﻊ اﻟﺮدود.
ﺒً
ﺒﺎ ،أﺿﻒﺳ
ﺒً
ﺷﺨﺺﺳ
ﺜﻨﺎءا ت 199
ﺘاﻟﻤﻠﻔﺎ ت واﻻﺳ
Machine Translated by Google
ﺜﻨﺎءا ت
ﺘاﺳ
ﺒﺮﻧﺎﻣﺞ .ﻋﻨﺪﻣﺎﻳﺤﺪ ث ﺧﻄﺄ
ﺛﻨﺎءﺗﻨﻔﻴﺬ اﻟ
ﺘ ﻲﺗﻈﻬﺮ أ
ﺜﻨﺎءا ت ﻹدارة اﻷﺧﻄﺎء اﻟ
ﺘﺘﺨﺪم Pythonﻛﺎﺋﻨﺎ ت ﺧﺎﺻ ﺔﺗ ﺴﻤﻰ اﻻﺳ
ﺗﺴ
ﺘﻤﺮ
ﺜﻨﺎء ،ﻓ ﺴﻴ ﺴ
ﺘﺒ ﺖ رﻣ ًﺰاﻳﻌﺎﻟﺞ اﻻﺳ
ﺘﺜﻨﺎﺋ ًﻴﺎ .إذا ﻛ
ﺘﺑﻌﺪ ذﻟﻚ ،ﻓﺈﻧﻪﻳﻨﺸ ﺊ ﻛﺎﺋﻨًﺎ اﺳﺘﺄﻛﺪ ﻣﻤﺎﻳﺠ ﺐ ﻓﻌﻠﻪ
ﻳﺠﻌﻞ Pythonﻏﻴﺮ ﻣ
ﺘﻀﻤﻦﺗﻘﺮﻳ ﺮًا ﻋﻦ
ﺒﻊ ،واﻟﺬيﻳ
ﺘﺘﺒﻊ اﻟ
ﺘﺒﺮﻧﺎﻣﺞ وﻳﻌﺮضﺗ
ﺘﻮﻗﻒ اﻟ
ﺜﻨﺎء ،ﻓ ﺴﻴ
ﺘﺘﻌﺎﻣﻞ ﻣﻊ اﻻﺳ
ﺒﺮﻧﺎﻣﺞ ﻓ ﻲ اﻟﻌﻤﻞ .إذا ﻟﻢﺗ
اﻟ
ﺜﻨﺎء اﻟﺬيﺗﻢ ﻃﺮﺣﻪ.
ﺘاﻻﺳ
ﺜﻨﺎء ZeroDivisionError
ﺘﻣﻌﺎﻟﺠ ﺔ اﺳ
ﺘﺤﻴﻞ ﻗ ﺴﻤ ﺔ رﻗﻢ ﻋﲆ ﺻﻔﺮ ،
ﺑﻤﺎﺗﻌﻠﻢ أﻧﻪ ﻣﻦ اﻟﻤ ﺴ
ﺜﻨﺎء .ر
ﺘﺛﺎرة اﺳ
ﺑﺈﺜﻮن
ﺑﺎﻳﺒ ﺐ ﻓ ﻲ ﻗﻴﺎم
ﺘﺴﺑ ﺴﻴﻂﻳﻟﻨﻠﻖ ﻧﻈﺮة ﻋﲆ ﺧﻄﺄ
ِ
ﺑﺬﻟﻚ ﻋﲆ أي ﺣﺎل:ﺜﻮن اﻟﻘﻴﺎم
ﺑﺎﻳﻟﻜﻦ دﻋﻨﺎ ﻧﻄﻠ ﺐ ﻣﻦ
)(5/0
ﺴﺎمﺒﺎﻋ ﺔ
ﻃ
اﻻﻧﻘ
ﺒﻊ:
ﺘﺑﺬﻟﻚ ،ﻟﺬﻟﻚ ﻧﺤﺼﻞ ﻋﲆﺗﺜﻮن اﻟﻘﻴﺎم
ﺑﺎﻳﺘﻄﻴﻊ
ﺒﻊ ﻻﺗ ﺴ
ﺑﺎﻟﻄ
ﻳﺤﺎول:
ﺒﺎﻋ ﺔ )(5/0
ﻃ
ﺜﻨﺎء ZeroDivisionError: ﺘﺑﺎﺳ
")printﻻﻳﻤﻜﻨﻚ اﻟﻘ ﺴﻤ ﺔ ﻋﲆ ﺻﻔﺮ!"(
200اﻟﻔﺼﻞ اﻟﻌﺎﺷﺮ
Machine Translated by Google
ﺒﺮﻣﺠﻴ ﺔ اﻟﻤﻮﺟﻮدة ﻓ ﻲ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻠ ﺔ try .إذا ﻛﺎﻧ ﺖ اﻟ
ﺒ ﺐ ﻓ ﻲ اﻟﺨﻄﺄ ،داﺧﻞ ﻛ
ﻧﻀﻊ print (5/0) ،اﻟ ﺴﻄﺮ اﻟﺬيﺗ ﺴ
ﺘﻠ ﺔ tryﻓ ﻲ ﺣﺪو ث ﺧﻄﺄ ،ﻓﺈن
ﺒ ﺐ اﻟﻜﻮد اﻟﻤﻮﺟﻮد ﻓ ﻲ ﻛ
ﺜﻨﺎء .إذاﺗ ﺴ
ﺘﺘﻠ ﺔ اﻻﺳ
ﺘﺨﻄﻰ ﻛ
ﺗﺗﻌﻤﻞ ،ﻓﺈن Python
ﺘﻠ ﺔ try
ﻛ
ﺘﻠ ﺔ.
ﺘﺸﻐﻴﻞ اﻟﻜﻮد ﻓ ﻲﺗﻠﻚ اﻟﻜ
ﺑﺑﻖ ﺧﻄﺄ ﻫﺎ ﻣﻊ اﻟﺨﻄﺄ اﻟﺬيﺗﻢ رﻓﻌﻪ وﻳﻘﻮم
ﺘﻄﺎ
ﺘ ﻲﻳ
ﺜﻨﺎء اﻟ
ﺘﺑﺎﺳﺘﻠ ﺔ
ﺒﺤ ﺚ ﻋﻦ ﻛ
ﺗPython
ﺘﻠ ﺔ
ﺒﺤ ﺚ Pythonﻋﻦ ﻛ
ﺘﻠ ﺔ tryﺧﻄﺄ ZeroDivisionError ،ﻟﺬﻟﻚﺗ
ﺘﺞ ﻋﻦ اﻟﻜﻮد اﻟﻤﻮﺟﻮد ﻓ ﻲ ﻛ
ﺜﺎل ،ﻳﻨ
ﻓ ﻲ ﻫﺬا اﻟﻤ
ﺑﺪﻻ ًﺘﺨﺪم رﺳﺎﻟ ﺔ ﺧﻄﺄ ودﻳ ﺔ
ﺘﻠ ﺔ ،وﻳﺮى اﻟﻤ ﺴ
ﺘﺸﻐﻴﻞ اﻟﻜﻮد ﻓ ﻲﺗﻠﻚ اﻟﻜ
ﺑﺛﻢﺗﻘﻮم Pythonﺑ ﺔ.
ﺘﺠﺎ
ﺑﻜﻴﻔﻴ ﺔ اﻻﺳﺒﺮ ﻫﺎ
ﺜﻨﺎءﺗﺨ
ﺘﺑﺎﺳ
ﻣﻦ traceback:
ﺒﺮﻧﺎ Python
ﺒﺮﻧﺎﻣﺞ ﻓ ﻲ اﻟﻌﻤﻞﻷﻧﻨﺎ أﺧ
ﺘﻤﺮ اﻟ
ﺘﻠ ﺔ try-except ،ﻓ ﺴﻴ ﺴ
ﺒﺮﻣﺠﻴ ﺔ ﻛ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺒﻌ ﺖ اﻟﻤﺰﻳﺪ ﻣﻦ اﻟ
ﺗإذا ا
ﺑﻤﻮاﺻﻠ ﺔ اﻟﻌﻤﻞ.ﺒﺮﻧﺎﻣﺞ ﻣﺎ
ﺘﺸﺎف اﻟﺨﻄﺄ ﻟ
ﺜﺎلﻳﻤﻜﻦ أنﻳ ﺴﻤﺢ ﻓﻴﻪ اﻛ
ﻟﻨﻠﻖ ﻧﻈﺮة ﻋﲆ ﻣ
ﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺨﻄﺄِ .
ﺑﻜﻴﻔﻴ ﺔ اﻟ
اﺣﻴﺎﻧﺎ ﺻﺤﻴﺢ:
ﺜﺎﻧ ﻲ(":
")v second_number = inputاﻟﺮﻗﻢ اﻟ
if second_number == 'q':
ﺘﺮاﺣ ﺔ
اﺳ
ﺛﻢ
ﺛﺎن v.
ﺑﺈدﺧﺎل qﻟﻠﺨﺮوج ،رﻗﻢ ٍ ﺘﺨﺪم ﺑﺈدﺧﺎل أول رﻗﻢ u ،وإذا ﻟﻢﻳﻘﻢ اﻟﻤ ﺴ ﺘﺨﺪمﺒﺮﻧﺎﻣﺞ اﻟﻤ ﺴ
ﻳﻄﺎﻟ ﺐ ﻫﺬا اﻟ
ﺑﺎﻟﻘ ﺴﻤ ﺔﺘﻚﺒﺒﺮﻧﺎﻣﺞ ﻻﻳﻔﻌﻞ ﺷﻴ ًﺌﺎ ﻟﻤﻌﺎﻟﺠ ﺔ اﻷﺧﻄﺎء ،ﻟﺬا ﻓﺈن ﻣﻄﺎﻟ ﺑ ﺔ ث .ﻫﺬا اﻟ
ﻧﻘ ﺴﻢ ﻫﺬﻳﻦ اﻟﺮﻗﻤﻴﻦ ﻟﻠﺤﺼﻮل ﻋﲆ إﺟﺎ
ﻋﲆ ﺻﻔﺮﻳﺆدي إﱃﺗﻌﻄﻠﻪ:
ﺜﻨﺎءا ت 201
ﺘاﻟﻤﻠﻔﺎ ت واﻻﺳ
Machine Translated by Google
ﺑﻚ
ﺒﻊ.ﺳﻮفﻳﺮ
ﺘﺘﺑﺮؤﻳ ﺔ ﻋﻤﻠﻴﺎ ت اﻟﺘﺨﺪﻣﻴﻦ ﺒﺮﻧﺎﻣﺞ ،وﻟﻜﻦ ﻟﻴ ﺲ ﻣﻦ اﻟﺠﻴﺪ أ ً
ﻳﻀﺎ اﻟ ﺴﻤﺎح ﻟﻠﻤ ﺴ ﻣﻦ اﻟ ﺴ ﻲءﺗﻌﻄﻞ اﻟ
ﺒﻊ .ﻋﲆ
ﺘﺘﺜﺮ ﻣﻤﺎﺗﺮﻳﺪ أنﻳﻌﺮﻓﻮه ﻣﻦ اﻟ
ﺘﻌﻠﻢ اﻟﻤﻬﺎﺟﻤﻮن أﻛ
ﺑﻴﺌ ﺔ ﺿﺎرة ،ﺳﻴﺒﻠﻬﻢ ،وﻓ ﻲ
ﺘﻘﻨﻴﻴﻦ ﻣﻦ ﻗ
ﺘﺨﺪﻣﻮن ﻏﻴﺮ اﻟ
اﻟﻤ ﺴ
ﺑﻚ ﻻﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑﻚ ،وﺳﻮفﻳﺮون ﺟﺰءًا ﻣﻦ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺨﺎص
ﺜﺎل ،ﺳﻴﻌﺮﻓﻮن اﺳﻢ ﻣﻠﻒ اﻟ
ﺒﻴﻞ اﻟﻤ
ﺳ
ﺘﺨﺪاﻣﻬﺎ
ﺘ ﻲﻳﺠ ﺐ اﺳ
ﺘﺤﺪﻳﺪ ﻧﻮع اﻟﻬﺠﻤﺎ ت اﻟ ﺑﺸﻜﻞ ﺻﺤﻴﺢ.ﻳﻤﻜﻦ ﻟﻠﻤﻬﺎﺟﻢ اﻟﻤﺎ ﻫﺮ أﺣﻴﺎﻧًﺎ اﺳ
ﺘﺨﺪام ﻫﺬه اﻟﻤﻌﻠﻮﻣﺎ ت ﻟ ﻳﻌﻤﻞ
ﺑﻚ.ﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺿﺪ اﻟ
ﺑﻠﻮكآﺧﺮ
ﺘﻠ ﺔ except .
ﺘﺞ ﻋﻨﻪ أﺧﻄﺎء ﻓ ﻲ ﻛ
ﺜﺮ ﻣﻘﺎوﻣ ﺔ ﻟﻸﺧﻄﺎء ﻋﻦ ﻃﺮﻳﻖﺗﻐﻠﻴﻒ اﻟ ﺴﻄﺮ اﻟﺬي ﻗﺪﻳﻨ
ﺒﺮﻧﺎﻣﺞ أﻛ
ﻳﻤﻜﻨﻨﺎ أن ﻧﺠﻌﻞ ﻫﺬا اﻟ
ﺘﻠ ﺔ try-except .
ﺑﺈﺟﺮاء اﻟﻘ ﺴﻤ ﺔ ،ﻟﺬﻟﻚﺳﻨﻀﻊ ﻛtry-ﻳﺤﺪ ث اﻟﺨﻄﺄ ﻓ ﻲ اﻟ ﺴﻄﺮ اﻟﺬيﻳﻘﻮم
ﺘﻤﺪ ﻋﲆ اﻟﻤﺤﺎوﻟ ﺔ
ﺘﻠ ﺔ أﺧﺮى .أي ﻛﻮدﻳﻌ ﺜﺎل أ ً
ﻳﻀﺎ ﻛ ﺘﻀﻤﻦ ﻫﺬا اﻟﻤ
ﻳ
ﺘﻠ ﺔ else :
ﺑﻨﺠﺎح ﻓ ﻲ ﻛﺘﻢﺗﻨﻔﻴﺬ اﻟﺤﻈﺮ
ﻳ
اﺣﻴﺎﻧﺎ ﺻﺤﻴﺢ:
ﺜﺎﻧ ﻲ(":
")second_number = inputاﻟﺮﻗﻢ اﻟ
ش ﻣﺤﺎوﻟ ﺔ:
ﺑ ﺔ )= int (first_number) / int (second_number
اﻹﺟﺎ
ﺜﻨﺎء ZeroDivisionError:
ﺘﺑﺎﺳ
v
ﺒﺎﻋ ﺔ )"ﻻﻳﻤﻜﻨﻚ اﻟﻘ ﺴﻤ ﺔ ﻋﲆ )"!0
ﻃ
wآﺧﺮ:
ﺑ ﺔ(
ﺒﺎﻋ ﺔ )إﺟﺎ
ﻃ
202اﻟﻔﺼﻞ اﻟﻌﺎﺷﺮ
Machine Translated by Google
2.5
ﺜﻨﺎء FileNotFoundError
ﺘﻣﻌﺎﻟﺠ ﺔ اﺳ
ﺒﺤ ﺚ ﻋﻨﻪ
ﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻠﻔﺎ ت اﻟﻤﻔﻘﻮدة .ﻗﺪﻳﻜﻮن اﻟﻤﻠﻒ اﻟﺬيﺗ
إﺣﺪى اﻟﻤﺸﻜﻼ ت اﻟﺸﺎﺋﻌ ﺔ ﻋﻨﺪ اﻟﻌﻤﻞ ﻣﻊ اﻟﻤﻠﻔﺎ ت ﻫ ﻲ اﻟ
ﺘﻠﻒ ،أو ﻗﺪﻳﻜﻮن ﻫﻨﺎك ﺧﻄﺄ إﻣﻼﺋ ﻲ ﻓ ﻲ اﺳﻢ اﻟﻤﻠﻒ ،أو ﻗﺪ ﻻﻳﻜﻮن اﻟﻤﻠﻒ ﻣﻮﺟﻮدًا ﻋﲆ اﻹﻃﻼق.ﻳﻤﻜﻨﻚ
ﻓ ﻲ ﻣﻮﻗﻊ ﻣﺨ
ﺘﻠ ﺔ try-except .
ﺘﺨﺪام ﻛ
ﺑﺎﺳﺒﺎﺷﺮة
ﺑﻄﺮﻳﻘ ﺔ ﻣﺘﻌﺎﻣﻞ ﻣﻊ ﻛﻞ ﻫﺬه اﻟﻤﻮاﻗﻒ
اﻟ
ﺘﻮح ﻛـ f_obj:
ﻣﻊ )اﺳﻢ ﻣﻠﻒ( ﻣﻔ
ﺘﻮﻳﺎ ت )( = f_obj.read
اﻟﻤﺤ
ﺜﻨﺎءً:
ﺘﺜﻴﺮ اﺳ
ﺘﻄﻴﻊ Pythonاﻟﻘﺮاءة ﻣﻦ ﻣﻠﻒ ﻣﻔﻘﻮد ،ﻟﺬا ﻓﺈﻧﻬﺎﺗ
ﻻﺗ ﺴ
ﺘﻌﺬر
ﺜﻨﺎء اﻟﺬيﺗﻨﺸﺌﻪ Pythonﻋﻨﺪﻣﺎﻳ
ﺘﺒﻠﻎ اﻟ ﺴﻄﺮ اﻷﺧﻴﺮ ﻣﻦ tracebackﻋﻦ ﺧﻄﺄ FileNotFoundError:ﻫﺬا ﻫﻮ اﻻﺳ
ﻳ
ُ
ﺘﻪ
ﺘﺞ اﻟﺪاﻟ ﺔ )( openاﻟﺨﻄﺄ ،ﻟﺬاﻳﺠ ﺐ ﻣﺤﺎوﻟ ﺔ ﻣﻌﺎﻟﺠ
ﺜﺎل ،ﺗﻨ
ﺘﺤﻪ .ﻓ ﻲ ﻫﺬا اﻟﻤ
ﺜﻮر ﻋﲆ اﻟﻤﻠﻒ اﻟﺬيﺗﺤﺎول ﻓ
ﻋﻠﻴﻬﺎ اﻟﻌ
ﻳﺤﺎول:
ﺘﻮح ﻛـ f_obj:
ﻣﻊ )اﺳﻢ ﻣﻠﻒ( ﻣﻔ
ﺘﻮﻳﺎ ت )( = f_obj.read
اﻟﻤﺤ
ﺜﻨﺎءا ت 203
ﺘاﻟﻤﻠﻔﺎ ت واﻻﺳ
Machine Translated by Google
ﺜﻨﺎء FileNotFoundError:
ﺘﺑﺎﺳ
" "
ﺒﺎﻋ ﺔ اﻟﻤﻠﻒ )(msg
= "msgﻋﺬ ًرا ،ﻃ +اﺳﻢ اﻟﻤﻠﻒ + ﻏﻴﺮ ﻣﻮﺟﻮد".
ﺜﻴﺮ إﱃ ﻫﺬا
ﺜﺮ إذا ﻟﻢﻳﻜﻦ اﻟﻤﻠﻒ ﻣﻮﺟﻮدًا ،ﻟﺬا ﻓﺈن رﻣﺰ ﻣﻌﺎﻟﺠ ﺔ اﻷﺧﻄﺎء ﻻﻳﻀﻴﻒ اﻟﻜ
ﺒﺮﻧﺎﻣﺞ ﻟﻴ ﺲ ﻟﺪﻳﻪ ﻣﺎﻳﻔﻌﻠﻪ أﻛ
اﻟ
ﺜﺮ ﻣﻦ ﻣﻠﻒ
ﺜﻨﺎءا ت ﻋﻨﺪ اﻟﻌﻤﻞ ﻣﻊ أﻛ
ﺘﺜﺎل وﻧﺮى ﻛﻴﻒﻳﻤﻜﻦ أنﺗ ﺴﺎﻋﺪك ﻣﻌﺎﻟﺠ ﺔ اﻻﺳ
ﺒﻨ ﻲ ﻋﲆ ﻫﺬا اﻟﻤ
ﺒﺮﻧﺎﻣﺞ .دﻋﻨﺎ ﻧ
اﻟ
واﺣﺪ.
ﺗﺤﻠﻴﻞ اﻟﻨﺺ
ﺑﻴ ﺔ اﻟﻜﻼﺳﻴﻜﻴ ﺔ ﻛﻤﻠﻔﺎ ت ﻧﺼﻴ ﺔ
ﺘﻮﻓﺮ اﻟﻌﺪﻳﺪ ﻣﻦ اﻷﻋﻤﺎل اﻷد
ﺘ ﺐ ﻛﺎﻣﻠ ﺔ.ﺗ
ﺘﻮي ﻋﲆ ﻛ
ﺘ ﻲﺗﺤ
ﻳﻤﻜﻨﻚﺗﺤﻠﻴﻞ اﻟﻤﻠﻔﺎ ت اﻟﻨﺼﻴ ﺔ اﻟ
ﺒﺮج
ﺗﻨﺘﺨﺪﻣ ﺔ ﻓ ﻲ ﻫﺬا اﻟﻘ ﺴﻢ ﻣﺄﺧﻮذة ﻣﻦ ﻣﺸﺮوع ﺟﻮ
ﺑ ﺴﻴﻄ ﺔﻷﻧﻬﺎ ﻣﻮﺟﻮدة ﻓ ﻲ اﻟﻤﺠﺎل اﻟﻌﺎم .اﻟﻨﺼﻮص اﻟﻤ ﺴ
ﺘﻮﻓﺮة ﻓ ﻲ اﻟﻤﺠﺎل اﻟﻌﺎم ،
ﺑﻴ ﺔ اﻟﻤ
ﺑﻤﺠﻤﻮﻋ ﺔ ﻣﻦ اﻷﻋﻤﺎل اﻷد
ﺘﻔﻆ Project Gutenberg
(http://gutenberg.org/).ﻳﺤ
ﺑﻚ.ﺒﺮﻣﺠ ﺔ اﻟﺨﺎﺻ ﺔ
ﺑﻴ ﺔ ﻓ ﻲ ﻣﺸﺎرﻳﻊ اﻟ
ﺑﺎﻟﻌﻤﻞ ﻣﻊ اﻟﻨﺼﻮص اﻷدﺘﻤﺎ
و ﻫﻮ ﻣﻮرد راﺋﻊ إذا ﻛﻨ ﺖ ﻣﻬ ً
ﺘﺨﺪم ﻃﺮﻳﻘ ﺔ اﻟ ﺴﻠ ﺴﻠ ﺔ
دﻋﻨﺎ ﻧ ﺴﺤ ﺐ ﻧﺺ Alice in Wonderlandوﻧﺤﺎول ﺣ ﺴﺎ ب ﻋﺪد اﻟﻜﻠﻤﺎ ت ﻓ ﻲ اﻟﻨﺺ.ﺳﻨ ﺴ
ﺘﻮي ﻓﻘﻂ ﻋﲆ
ﺑ ﺴﻠ ﺴﻠ ﺔﺗﺤ
ﺑﺎﻟﻜﻠﻤﺎ ت ﻣﻦﺳﻠ ﺴﻠ ﺔ ﻧﺼﻴ ﺔ .إﻟﻴﻚ ﻣﺎﻳﻔﻌﻠﻪ )( splitﺑﻨﺎء ﻗﺎﺋﻤ ﺔﺘ ﻲﻳﻤﻜﻨﻬﺎ
اﻟﻤﻘ ﺴﻤ ﺔ () ،واﻟ
اﻟﻌﻨﻮان "Alice in Wonderland":
ﻳﺤﺎول:
ﺘﻮح ﻛـ f_obj:
ﻣﻊ )اﺳﻢ ﻣﻠﻒ( ﻣﻔ
ﺘﻮﻳﺎ ت )( = f_obj.read
اﻟﻤﺤ
ﺜﻨﺎء FileNotFoundError:
ﺘﺑﺎﺳ
" "
+اﺳﻢ اﻟﻤﻠﻒ "msg = +ﻋﺬ ًرا ،ﻃ
ﺒﺎﻋ ﺔ اﻟﻤﻠﻒ )(msg ﻏﻴﺮ ﻣﻮﺟﻮد".
204اﻟﻔﺼﻞ 10
Machine Translated by Google
آﺧﺮ:
ﺒ ﻲ ﻟﻠﻜﻠﻤﺎ ت ﻓ ﻲ اﻟﻤﻠﻒ.
ﺘﻘﺮﻳ
#اﺣ ﺴ ﺐ اﻟﻌﺪد اﻟ
ﻛﻠﻤﺎ ت )( u = content.split
)v num_words = lenﻛﻠﻤﺎ ت(
" " "
ﻋﻦاﻟﻤﻠﻒ +ﺳﻢ ﻳﻤﻠﻚ
")w printاﻟﻤﻠﻒ +ا )+ strﻋﺪد_ﻛﻠﻤﺎ ت( "+ﻛﻠﻤﺎ ت"(
ﺘﻮﻳﺎ ت اﻟ ﺴﻠ ﺴﻠ ﺔ ،
ﺘﻠ ﺔ tryﻫﺬه اﻟﻤﺮة .ﻓ ﻲ u ،ﻧﺄﺧﺬ ﻣﺤ
ﺘﻌﻤﻞ ﻛ
ﻟﻘﺪ ﻧﻘﻠ ﺖ اﻟﻤﻠﻒ alice.txtإﱃ اﻟﺪﻟﻴﻞ اﻟﺼﺤﻴﺢ ،ﻟﺬاﺳ
ﺘﺨﺪم اﻻﻧﻘ ﺴﺎم )(
ﺘﻮي اﻵن ﻋﲆ اﻟﻨﺺ اﻟﻜﺎﻣﻞ ﻟـ Alice in Wonderlandﻛ ﺴﻠ ﺴﻠ ﺔ ﻃﻮﻳﻠ ﺔ واﺣﺪة ،وﻧ ﺴ
ﺘ ﻲﺗﺤ
واﻟ
ﺘﻌﺪدة
اﻟﻌﻤﻞ ﻣﻊ ﻣﻠﻔﺎ ت ﻣ
ﺒﺮﻧﺎﻣﺞ إﱃ وﻇﻴﻔ ﺔ
ﺒﺮ ﻣﻦ ﻫﺬا اﻟ
ﺒﻞ أن ﻧﻔﻌﻞ ذﻟﻚ ،دﻋﻨﺎ ﻧﻨﻘﻞ اﻟﺠﺰء اﻷﻛ
ﺘﺤﻠﻴﻠﻬﺎ .وﻟﻜﻦ ﻗ
ﺘﺐ ﻟ
دﻋﻮﻧﺎ ﻧﻀﻴﻒ اﻟﻤﺰﻳﺪ ﻣﻦ اﻟﻜ
ﺘﻌﺪدة:
ﺘﺐ ﻣ
ﺘﺤﻠﻴﻞ ﻟﻜ
ﺑﺬﻟﻚ ،ﺳﻴﻜﻮن ﻣﻦ اﻷﺳﻬﻞ إﺟﺮاء اﻟﺗ ﺴﻤﻰ count_words ().ﻣﻦ ﺧﻼل اﻟﻘﻴﺎم
" "
اﻟﻤﻠﻒ +
)(msg ﺳﻢاﻟﻤﻠﻒ ﺬ ًرا ،ﻃ +ا
ﺒﺎﻋ ﺔ ﻏﻴﺮ ﻣﻮﺟﻮد"msg = ".ﻋ
آﺧﺮ:
ﺒ ﻲ ﻟﻠﻜﻠﻤﺎ ت ﻓ ﻲ اﻟﻤﻠﻒ.
ﺘﻘﺮﻳ
#ﻋﺪ اﻟﻌﺪد اﻟ
اﻟﻜﻠﻤﺎ ت )( = content.split
)num_words = lenﻛﻠﻤﺎ ت(
" " "
ﺳﻢ اﻟﻤﻠﻒ "+اﻟﻜﻠﻤﺎ ت") . ﻋﻦ ﺒﺎﻋ ﺔ ﻳﻤﻠﻚ
)"اﻟﻤﻠﻒ +ا + str (num_words) +ﻃ
)count_wordsاﺳﻢ اﻟﻤﻠﻒ(
ﺑﺎدﺋ ﺔ ﻟﻬﺎ وﻧﻘﻠﻬﺎ إﱃ ﻧﺺ count_words ().إﻧﻬﺎ ﻋﺎدة ﺟﻴﺪةﺑﻮﺿﻊ ﻣ ﺴﺎﻓ ﺔﺒ ﺴﺎﻃ ﺔ
ﺑﺘﻐﻴﺮ .ﻗﻤﻨﺎ
ﻣﻌﻈﻢ ﻫﺬا اﻟﺮﻣﺰ ﻟﻢﻳ
ﺘﻬﺎ ﻗﻠﻴ ﻼً.
ﺘﻌﻠﻴﻖ إﱃﺳﻠ ﺴﻠ ﺔ ﻧﺼﻴ ﺔ وأﻋﺪﻧﺎ ﺻﻴﺎﻏ
ﺘﻐﻴﻴﺮ اﻟ
ﺑﺑﺮﻧﺎﻣﺞ ،ﻟﺬﻟﻚ ﻗﻤﻨﺎﺘﻌﺪﻳﻞ
ﺑﺛ ﺔ ﻋﻨﺪﻣﺎﺗﻘﻮم
ﺘﻌﻠﻴﻘﺎ ت ﻣﺤﺪ
أنﺗﻈﻞ اﻟ
ﺜﻨﺎءا ت 205
ﺘاﻟﻤﻠﻔﺎ ت واﻻﺳ
Machine Translated by Google
)count_wordsاﺳﻢ اﻟﻤﻠﻒ(
ﺒﺮﻧﺎﻣﺞ:
ﺑﻘﻴ ﺔﺗﻨﻔﻴﺬ اﻟﺛﻴﺮ ﻋﲆ
ﻟﻴ ﺲ ﻟﻤﻠﻒ siddhartha.txtاﻟﻤﻔﻘﻮد أيﺗﺄ
ﺘﺮك
ﺒﻊ ،وﻧ
ﺘﺘﺘﺨﺪﻣﻴﻨﺎ ﻣﻦ رؤﻳ ﺔ اﻟ
ﺘﻴﻦ .ﻧﺤﻦ ﻧﻤﻨﻊ ﻣ ﺴ
ﺗﻴﻦ ﻫﺎﻣ
ﺜﺎل ﻣﻴﺰ
ﺘﻠ ﺔ try-exceptﻓ ﻲ ﻫﺬا اﻟﻤ
ﺘﺨﺪام ﻛ
ﻳﻮﻓﺮ اﺳ
ﺛﺎره
ﺘﺸﻒ ﺧﻄﺄ FileNotFoundErrorاﻟﺬي أ
ﺜﻮر ﻋﻠﻴﻬﺎ .إذا ﻟﻢ ﻧﻜ
ﺘ ﻲﻳﻤﻜﻨﻪ اﻟﻌ
ﺒﺮﻧﺎﻣﺞﻳﻮاﺻﻞﺗﺤﻠﻴﻞ اﻟﻨﺼﻮص اﻟ
اﻟ
ﺑﻌﺪ ﻣﺤﺎوﻟ ﺔﺗﺤﻠﻴﻞ Siddhartha.ﺒﺮﻧﺎﻣﺞ ﻋﻦ اﻟﻌﻤﻞ ﺒﻌً ﺎ ﻛﺎﻣ ﻼ ً ،وﺳﻴ
ﺘﻮﻗﻒ اﻟ ﺘﺘﺨﺪمﺗ
siddhartha.txt ،ﻓ ﺴﻴﺸﺎ ﻫﺪ اﻟﻤ ﺴ
ﺑ ﻲ دﻳﻚ أو اﻟﻨ ﺴﺎء اﻟﺼﻐﻴﺮا ت.
ﺑﺪًا ﻣﻮ
ﻟﻦﺗﺤﻠﻞ أ
ﺑﺼﻤ ﺖاﻟﻔﺸﻞ
ﺘﺸﻔﻪ.
ﺜﻨﺎءﺗﻜ
ﺘﺑﻼغ ﻋﻦ ﻛﻞ اﺳ
ﺑﺤﺎﺟ ﺔ إﱃ اﻹﺘﻮﻓﺮ .ﻟﻜﻨﻚ ﻟ ﺴ ﺖ
ﺘﺨﺪﻣﻴﻨﺎ أن أﺣﺪ اﻟﻤﻠﻔﺎ ت ﻏﻴﺮ ﻣ
ﺑﻠﻐﻨﺎ ﻣ ﺴ
ﺑﻖ ،أ
ﺜﺎل اﻟ ﺴﺎ
ﻓ ﻲ اﻟﻤ
--ﻗﺺ--
)count_wordsاﺳﻢ اﻟﻤﻠﻒ(
206اﻟﻔﺼﻞ اﻟﻌﺎﺷﺮ
Machine Translated by Google
ﺑﻼغ ﻋﻨﻬﺎ
ﺘ ﻲﻳﺠ ﺐ اﻹ
ﺗﺤﺪﻳﺪ اﻷﺧﻄﺎء اﻟ
ﺘﺮض
ﺘ ﻲ ﻣﻦ اﻟﻤﻔ
ﺘﺨﺪﻣﻮن اﻟﻨﺼﻮص اﻟ
ﺑﺼﻤ ﺖ؟ إذا ﻋﺮف اﻟﻤ ﺴﺘﻰﺗﻔﺸﻞ
ﺘﺨﺪﻣﻴﻦ ﻋﻦ ﺧﻄﺄ وﻣ
ﺒﻠﻎ اﻟﻤ ﺴ
ﺘﻰﺗ
ﻛﻴﻒﺗﻌﺮف ﻣ
ﺘﻮﻗﻌﻮن رؤﻳ ﺔ
ﺘﺨﺪﻣﻮنﻳ
ﺑﻌﺾ اﻟﻨﺼﻮص .إذا ﻛﺎن اﻟﻤ ﺴﺒ ﺐ ﻋﺪمﺗﺤﻠﻴﻞ
ﺒﺮ ﻫﻢ ﻋﻦﺳ
ﺘﻢﺗﺤﻠﻴﻠﻬﺎ ،ﻓﻘﺪﻳﻘﺪرون رﺳﺎﻟ ﺔﺗﺨ
أنﻳ
ﺑﻌﺾ اﻟﻨﺼﻮصﺘﺎﺟﻮن إﱃ ﻣﻌﺮﻓ ﺔ أن
ﺘﻢﺗﺤﻠﻴﻠﻬﺎ ،ﻓﻘﺪ ﻻﻳﺤ
ﺘﺮض أنﻳ
ﺘ ﻲ ﻣﻦ اﻟﻤﻔ
ﺘ ﺐ اﻟ
ﺘﺎﺋﺞ وﻟﻜﻨﻬﻢ ﻻﻳﻌﺮﻓﻮن اﻟﻜ
ﺑﻌﺾ اﻟﻨ
ﺘﺨﺪام
ﺜﻮن ﻋﻨﻬﺎ إﱃﺗﻘﻠﻴﻞ إﻣﻜﺎﻧﻴ ﺔ اﺳ
ﺒﺤﺘ ﻲ ﻻﻳ
ﺑﺎﻟﻤﻌﻠﻮﻣﺎ ت اﻟﺘﺨﺪﻣﻴﻦ
ﺘﻮﻓﺮة.ﻳﻤﻜﻦ أنﻳﺆديﺗﺰوﻳﺪ اﻟﻤ ﺴ
ﻛﺎﻧ ﺖ ﻏﻴﺮ ﻣ
ﺗﺤﻜﻤﺎ دﻗﻴ ًﻘﺎ ﻓ ﻲ ﻣﻘﺪار اﻟﻤﺸﺎرﻛ ﺔ ﻣﻊ اﻟﻤ ﺴ
ﺘﺨﺪﻣﻴﻦ ﻋﻨﺪﻣﺎﺗ ﺴﻮء ً ﺑﺮﻧﺎﻣﺠﻚ.ﺗﻤﻨﺤﻚ ﻫﻴﺎﻛﻞ ﻣﻌﺎﻟﺠ ﺔ اﻷﺧﻄﺎء ﻓ ﻲ Python
ﺘﻬﺎ.
ﺘ ﻲﺗﺮﻳﺪ ﻣﺸﺎرﻛ
ﺘﻘﺮﻳﺮ ﻣﻘﺪار اﻟﻤﻌﻠﻮﻣﺎ ت اﻟ
ﺘﺮوك ﻟﻚ ﻟ
اﻷﻣﻮر ؛ اﻷﻣﺮ ﻣ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺒﻊ
ﺑﺮﻗﻤﻴﻦ .اﺟﻤﻌﻬﻢ ﻣﻌً ﺎ واﻃﺑﺮﻧﺎﻣﺠًﺎﻳﻄﺎﻟ ﺐﺘﺐ
ﺘﺤﺼﻞ ﻋﲆ ﺧﻄﺄ ﻓ ﻲ اﻟﻨﻮع .اﻛ
ﺗﺤﺎولﺗﺤﻮﻳﻞ اﻹدﺧﺎل إﱃ ﻋﺪد ﺻﺤﻴﺢ ،ﺳ
ﺑﺮﻧﺎﻣﺠﻚﺒﺮ
ﺘﺒﺎﻋ ﺔ رﺳﺎﻟ ﺔ ﺧﻄﺄ ﻣﺄﻟﻮﻓ ﺔ .اﺧ
ﺑﻄﺘ ﻲ اﻹدﺧﺎل رﻗﻤﺎ ً ،وﻗﻢ
ﺘﺸﻒ ﺧﻄﺄ TypeErrorإذا ﻟﻢﺗﻜﻦ أي ﻣﻦ ﻗﻴﻤ
ﺘﻴﺠ ﺔ .اﻛ
اﻟﻨ
)واﺻﻠ ﺖ(
ﺜﻨﺎءا ت 207
ﺘاﻟﻤﻠﻔﺎ ت واﻻﺳ
Machine Translated by Google
ﺘﺨﺪم
ﺘﻤﻜﻦ اﻟﻤ ﺴ
ﺘﻰﻳ
ﺘﻤﺮﻳﻦ 10-6ﻓ ﻲ ﺣﻠﻘ ﺔ whileﺣ
ﺑﻚ ﻣﻦ اﻟﺑﻠﻒ اﻟﻜﻮد اﻟﺨﺎصﺒ ﺔ اﻹﺿﺎﻓ ﺔ :ﻗﻢ
10-7.ﺣﺎﺳ
ﺑﺪﻻ ً ﻣﻦ رﻗﻢ.ﻧﺼﺎ
ﺗﻜ ﺐ ﺧﻄﺄ وأدﺧﻞ ً
ﺘﻰ إذا ار
ﺘﻤﺮار ﻓ ﻲ إدﺧﺎل اﻷرﻗﺎم ﺣ
ﻣﻦ اﻻﺳ
ﺑﻌﺾﺑﺤ ﺚ ﻋﻦ
ﺑﺰﻳﺎرة )Project Gutenberg (http://gutenberg.org/وا10-10.اﻟﻜﻠﻤﺎ ت اﻟﺸﺎﺋﻌ ﺔ :ﻗﻢ
ﺘﻨﺰﻳﻞ اﻟﻤﻠﻔﺎ ت اﻟﻨﺼﻴ ﺔ ﻟﻬﺬه اﻷﻋﻤﺎل ،أو اﻧ ﺴﺦ اﻟﻨﺺ اﻷوﻟ ﻲ ﻣﻦ
ﺑﺘ ﻲﺗﺮﻏ ﺐ ﻓ ﻲﺗﺤﻠﻴﻠﻬﺎ .ﻗﻢ
اﻟﻨﺼﻮص اﻟ
ﺑﻚ.ﺗﺮ اﻟﺨﺎص
ﺒﻴﻮ
ﺑﻚ إﱃ ﻣﻠﻒ ﻧﺼ ﻲ ﻋﲆ ﺟﻬﺎز اﻟﻜﻤﺘﻌﺮض اﻟﺨﺎص
اﻟﻤ ﺴ
ﺑﻚ" )'('row
= ">>> lineﺻﻒ ،ﺻﻒ ،ﺻﻒ ﻗﺎر
>>> line.count
2
)'>>> line.lower (). count ('row
3
ﺒﻴﺎﻧﺎ ت
ﺗﺨﺰﻳﻦ اﻟ
ﺘﺨﺪﻣﻴﻦ إدﺧﺎل أﻧﻮاع ﻣﻌﻴﻨ ﺔ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎ ت.
ﺑﺮاﻣﺠﻚ ﻣﻦ اﻟﻤ ﺴﺘﻄﻠ ﺐ اﻟﻌﺪﻳﺪ ﻣﻦ
ﺳ
ﺑﺮﻧﺎﻣﺠﻚ ،ﻓ ﺴﻮفﺗﻘﻮمﺘﺼﻮر .ﻣﻬﻤﺎ ﻛﺎنﺗﺮﻛﻴﺰ
ﺑﻴﺎﻧﺎ ت ﻟﺒ ﺔ ﻣﺎ أوﺗﻘﺪﻳﻢ
ﺘﻔﻀﻴﻼ ت ﻓ ﻲ ﻟﻌ
ﺘﺨﺰﻳﻦ اﻟ
ﺑﺘﺨﺪﻣﻴﻦ
ﻗﺪﺗ ﺴﻤﺢ ﻟﻠﻤ ﺴ
ﺘﺨﺪﻣﻮن أﺣﺪ
ﺜﻞ اﻟﻘﻮاﺋﻢ واﻟﻘﻮاﻣﻴ ﺲ .ﻋﻨﺪﻣﺎﻳﻐﻠﻖ اﻟﻤ ﺴ
ﺒﻴﺎﻧﺎ ت ﻣ
ﺘﺨﺪﻣﻮن ﻓ ﻲ ﻫﻴﺎﻛﻞ اﻟ
ﺘ ﻲﻳﻮﻓﺮ ﻫﺎ اﻟﻤ ﺴ
ﺘﺨﺰﻳﻦ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟ
ﺑ
ﺗﻚ
ﺑﻴﺎﻧﺎﺘﻀﻤﻦﺗﺨﺰﻳﻦ
ﺑﺬﻟﻚﺗﺑ ﺴﻴﻄ ﺔ ﻟﻠﻘﻴﺎمﺘ ﻲ أدﺧﻠﻮ ﻫﺎ .ﻫﻨﺎك ﻃﺮﻳﻘ ﺔ
ﺋﻤﺎ ﻓ ﻲ ﺣﻔﻆ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟ
ﺘﺮﻏ ﺐ دا ً
ﺒﺮاﻣﺞ ،ﺳ
اﻟ
ﺘﺨﺪام وﺣﺪة json .
ﺑﺎﺳ
208اﻟﻔﺼﻞ 10
Machine Translated by Google
ﺒﻴﺎﻧﺎ ت .إﻟﻴﻚ
ﺘﺨﺰﻳﻦ اﻟ
ﺘﺨﺪاﻣﻪ ﻟ
ﺘﺨﺰﻳﻨﻪ وﻛﺎﺋﻦ ﻣﻠﻒﻳﻤﻜﻦ اﺳ
ﺒﻴﺎﻧﺎ ت ﻟ
ﺗﺄﺧﺬ اﻟﺪاﻟ ﺔ )( json.dumpوﺳﻴﻄﻴﻦ :ﺟﺰء ﻣﻦ اﻟ
ﺘﺨﺰﻳﻦ ﻗﺎﺋﻤ ﺔ ﻣﻦ اﻷرﻗﺎم:
ﺘﺨﺪام )( json.dumpﻟ
ﻛﻴﻔﻴ ﺔ اﺳ
ﺘﺢ
ﺛﻢ ﻧﻔ
ﺘﻨ ﺴﻴﻖ JSON.
ﺑﺒﻴﺎﻧﺎ ت اﻟﻤﻮﺟﻮدة ﻓ ﻲ اﻟﻤﻠﻒ ﻣﺨﺰﻧ ﺔ
ﺘﺪاد اﻟﻤﻠﻒ nosj.ﻟﻺﺷﺎرة إﱃ أن اﻟ
ﺘﺨﺪام اﻣ
ﺘﺎد اﺳ
ﻣﻦ اﻟﻤﻌ
ﺘﺨﺪم )( json.dump
ﺒﻴﺎﻧﺎ ت إﱃ اﻟﻤﻠﻒ v.ﻓ ﻲ wﻧ ﺴ
ﺑ ﺔ اﻟ
ﺘﺎ
ﺑﻜﺑ ﺔ ،ﻣﻤﺎﻳ ﺴﻤﺢ ﻟـ json
ﺘﺎ
اﻟﻤﻠﻒ ﻓ ﻲ وﺿﻊ اﻟﻜ
][2 ، 3 ، 5 ، 7 ، 11 ، 13
ﺘﻴﺮاد json
اﺳ number_ reader.py
ﺒﺎﻋ ﺔ )أرﻗﺎم(
ﻃ
ﺜﻨﺎءا ت 209
ﺘاﻟﻤﻠﻔﺎ ت واﻻﺳ
Machine Translated by Google
ﺘﺨﺪم وﻇﻴﻔ ﺔ ) (
ﺘﺎج ﻓﻘﻂ ﻟﻠﻘﺮاءة ﻣﻦ اﻟﻤﻠﻒ .ﻓ ﻲ w ،ﻧ ﺴ
ﺗﺤﺘﺤﻪ ﻓ ﻲ وﺿﻊ اﻟﻘﺮاءةﻷن Python
ﺘﺢ اﻟﻤﻠﻒ ،ﻧﻔ
ﻋﻨﺪﻣﺎ ﻧﻔ
ﺘﻐﻴﺮة .
ﺘﺤﻤﻴﻞ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟﻤﺨﺰﻧ ﺔ ﻓ ﻲ number.json ،وﻧﺨﺰﻧﻬﺎ ﻓ ﻲ أرﻗﺎم ﻣ
json.loadﻟ
][2 ، 3 ، 5 ، 7 ، 11 ، 13
ﺑﺮﻧﺎﻣﺠﻴﻦ.ﺑﻴﻦﺒﻴﺎﻧﺎ ت
ﺑ ﺴﻴﻄ ﺔ ﻟﻤﺸﺎرﻛ ﺔ اﻟﻫﺬه ﻃﺮﻳﻘ ﺔ
ﺘﺨﺪم
ﺘ ﻲﻳﻨﺸﺌﻬﺎ اﻟﻤ ﺴ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺣﻔﻆ وﻗﺮاءة اﻟ
ﺘﺨﺰﻳﻦ
ﺑﺘﺨﺪم ،ﻷﻧﻚ إذا ﻟﻢﺗﻘﻢ
ﺘ ﻲﻳﻨﺸﺌﻬﺎ اﻟﻤ ﺴ
ﺒﻴﺎﻧﺎ ت اﻟ
ﺘﺨﺪام jsonﻣﻔﻴﺪًا ﻋﻨﺪ اﻟﻌﻤﻞ ﻣﻊ اﻟ
ﺑﺎﺳﺒﻴﺎﻧﺎ ت
ﻳﻌﺪ ﺣﻔﻆ اﻟ
ﺜﺎل ﻧﻄﻠ ﺐ ﻓﻴﻪ ﻣﻦ
ﻟﻨﻠﻖ ﻧﻈﺮة ﻋﲆ ﻣ
ﺒﺮﻧﺎﻣﺞ ﻋﻦ اﻟﻌﻤﻞِ .
ﺘﻮﻗﻒ اﻟ
ﺘﻔﻘﺪ ﻫﺎ ﻋﻨﺪﻣﺎﻳ
ﺑﻄﺮﻳﻘ ﺔ ﻣﺎ ،ﻓ ﺴﺘﺨﺪم
ﻣﻌﻠﻮﻣﺎ ت اﻟﻤ ﺴ
ﺒﺮﻧﺎﻣﺞ ﻣﺮة أﺧﺮى.
ﺘﺬﻛﺮ اﺳﻤﻪ ﻋﻨﺪﺗﺸﻐﻴﻞ اﻟ
ﺛﻢ ﻧﺑﺮﻧﺎﻣﺠًﺎﺘ ﻲﻳﺸﻐﻞ ﻓﻴﻬﺎ
ﺑ ﺔ اﺳﻤﻪ ﻓ ﻲ اﻟﻤﺮة اﻷوﱃ اﻟ
ﺘﺎ
ﺘﺨﺪم ﻛ
اﻟﻤ ﺴ
ﺘﺨﺪم:
ﺘﺨﺰﻳﻦ اﺳﻢ اﻟﻤ ﺴ
ﺑﺒﺪأ
ﻟﻨ
ﺘﺬﻛﺮ_
ﻳ ﺘﻴﺮاد json
اﺳ
me.py
")u username = inputﻣﺎ اﺳﻤﻚ؟"(
ﺘﺨﺪم وﻛﺎﺋﻦ
ﺑﺎﺳﻢ ﻣ ﺴﺘﺨﺪم json.dump () ،وﻧﻤﺮره
ﺑﻌﺪ ذﻟﻚ ،ﻧ ﺴﺘﺨﺰﻳﻦ.
ﺘﺨﺪم ﻟﻠ
ﺑﺎﺳﻢ ﻣ ﺴﻧﺤﻦ ﻧﻄﺎﻟ ﺐ
ﺘﺨﺪم ﻓ ﻲ ﻣﻠﻒ v.
ﺘﺨﺰﻳﻦ اﺳﻢ اﻟﻤ ﺴ
ﻣﻠﻒ ،ﻟ
ﺗﻪ ﻣﻊ:
ﺘﺨﺰﻳﻦ ﻣﻌﻠﻮﻣﺎ
ﺑﺑﺄﻧﻨﺎ ﻗﻤﻨﺎﺘﺨﺪم
ﺒﺮ اﻟﻤ ﺴ
ﺒﺎﻋ ﺔ رﺳﺎﻟ ﺔﺗﺨ
ﺑﻄﺛﻢ ﻧﻘﻮم
ﺘﻮح ﻛـ f_obj:
ﻣﻊ )اﺳﻢ ﻣﻠﻒ( ﻣﻔ
)u username = json.load (f_obj
"
ﺘﺨﺪم )" !"+
ﺑﻚ ﻣﺮة أﺧﺮى + ،اﺳﻢ اﻟﻤ ﺴﺒﺎ
")v printﻣﺮﺣ ً
210اﻟﻔﺼﻞ اﻟﻌﺎﺷﺮ
Machine Translated by Google
ﺘﺬﻛﺮ_
ﻳ ﺘﻴﺮاد json
اﺳ
me.py
ﺒ ًﻘﺎ.
ﺘﺨﺪم ،إذا ﻛﺎن ﻗﺪﺗﻢﺗﺨﺰﻳﻨﻪ ﻣ ﺴ
ﺘﺤﻤﻴﻞ اﺳﻢ اﻟﻤ ﺴ
ﺑ#ﻗﻢ
ﺘﺨﺰﻳﻨﻪ.
ﺑﺘﺨﺪم وﻗﻢ
#ﺧﻼف ذﻟﻚ ،اﻃﻠ ﺐ اﺳﻢ اﻟﻤ ﺴ
اﺳﻢ اﻟﻤﻠﻒ '= 'username.json
ﻳﺤﺎول:
ﺘﻮح ﻛـ f_obj:
uﻣﻊ )اﺳﻢ ﻣﻠﻒ( ﻣﻔ
ﺘﺨﺪم )= json.load (f_objvاﺳﻢ اﻟﻤ ﺴ
ﺜﻨﺎء FileNotFoundError:
ﺘﺑﺎﺳ
w
")x username = inputﻣﺎ اﺳﻤﻚ؟"(
ﺘﺢ )اﺳﻢ اﻟﻤﻠﻒ "w") ،ﻛـ f_obj:
yﻣﻊ ﻓ
ﺘﺨﺪم f_obj) ،
)json.dumpاﺳﻢ اﻟﻤ ﺴ
"
ﺘﺬﻛﺮك ﻋﻨﺪﻣﺎﺗﻌﻮد ،
")printﺳﻨ ﺘﺨﺪم )"!" +
+اﺳﻢ اﻟﻤ ﺴ
آﺧﺮ:
"
ﺗﻚ ،
ﺑﻌﻮدﺒﺎ
ﺒﺎﻋ ﺔ )"ﻣﺮﺣ ً
ﻃ ﺘﺨﺪم )"!" +
+اﺳﻢ اﻟﻤ ﺴ
ﺘﺢ اﻟﻤﻠﻒ
ﺜﺎﻟﻴﻦ اﻷﺧﻴﺮﻳﻦ ﻓ ﻲ ﻣﻠﻒ واﺣﺪ .ﻧﺤﺎول ﻓ
ﺒﺮﻣﺠﻴ ﺔ ﻣﻦ اﻟﻤ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻞ اﻟ
ﻻﻳﻮﺟﺪ رﻣﺰ ﺟﺪﻳﺪ ﻫﻨﺎ.ﺗﻢ دﻣﺞ ﻛ
username.json.
ﺘﺨﺪم ﻣﺮة أﺧﺮى
ﺑﺎﻟﻤ ﺴﺒﻊ رﺳﺎﻟ ﺔﺗﺮﺣ ﺐ
ﺘﺨﺪم ﻣﺮة أﺧﺮى ﻓ ﻲ اﻟﺬاﻛﺮة vوﻧﻄ
إذا ﻛﺎن ﻫﺬا اﻟﻤﻠﻒ ﻣﻮﺟﻮدًا ،ﻓﻨﺤﻦ ﻧﻘﺮأ اﺳﻢ اﻟﻤ ﺴ
ﺒﺮﻧﺎﻣﺞ ،ﻓﻠﻦﻳﻜﻮن username.json
ﺘﺸﻐﻴﻞ اﻟ
ﺑﺘﺨﺪم
ﺘ ﻲﻳﻘﻮم ﻓﻴﻬﺎ اﻟﻤ ﺴ
ﺘﻠ ﺔ else .إذا ﻛﺎﻧ ﺖ ﻫﺬه ﻫ ﻲ اﻟﻤﺮة اﻷوﱃ اﻟ
ﻓ ﻲﻛ
ﻣﻮﺟﻮدًا وﺧﻄﺄ FileNotFoundError
ﺛﻢ
ﺑﻪ x.ﺘﺨﺪم اﻟﺨﺎص
ﺘﺨﺪم إدﺧﺎل اﺳﻢ اﻟﻤ ﺴ
ﺜﻨﺎء ﺣﻴ ﺚ ﻧﻄﻠ ﺐ ﻣﻦ اﻟﻤ ﺴ
ﺘﺘﻠ ﺔ اﺳ
ﺘﻘﻞ Pythonإﱃ ﻛ
ﺘﻨﺳﻴﺤﺪ ث ث.ﺳ
ﺘﺤﻴ ﺔ y.
ﺒﺎﻋ ﺔ اﻟ
ﺘﺨﺪم وﻃ
ﺘﺨﺰﻳﻦ اﺳﻢ اﻟﻤ ﺴ
ﺘﺨﺪم )( json.dumpﻟ
ﻧﺴ
ﺘﺨﺪم وﻣﻠﻒ
ﺘﻴﺠ ﺔ اﺳﻢ ﻣ ﺴ
ﺘﻢﺗﻨﻔﻴﺬ ﻫﺎ ،ﺗﻜﻮن اﻟﻨ
ﺘ ﻲﻳ
ﺘﻠ ﺔ اﻟ
ﺑﻐﺾ اﻟﻨﻈﺮ ﻋﻦ اﻟﻜ
ﺘﻴﺠ ﺔ:
ﺒﺮﻧﺎﻣﺞ ،ﻓﻬﺬه ﻫ ﻲ اﻟﻨ
ﺘﻢ ﻓﻴﻬﺎﺗﺸﻐﻴﻞ اﻟ
ﺘ ﻲﻳ
ﺗﺤﻴ ﺔ .إذا ﻛﺎﻧ ﺖ ﻫﺬه ﻫ ﻲ اﻟﻤﺮة اﻷوﱃ اﻟ
ﺧﻼف ذﻟﻚ:
ﺜﻨﺎءا ت 211
ﺘاﻟﻤﻠﻔﺎ ت واﻻﺳ
Machine Translated by Google
ﺒﺮﻣﺠﻴ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑﻨﺎء اﻟإﻋﺎدة
ﺜﺮ.ﻳﻨﺼ ﺐﺗﺮﻛﻴﺰ
ﺒﺮ ﻣﻦ ﻣﻨﻄﻘﻬﺎ إﱃ وﻇﻴﻔ ﺔ واﺣﺪة أو أﻛ
ﺘﺬﻛﺮ ﻋﻦ ﻃﺮﻳﻖ ﻧﻘﻞ اﻟﺠﺰء اﻷﻛ
ﻳﻤﻜﻨﻨﺎ إﻋﺎدةﺗﺸﻜﻴﻞ اﻟ
ﺒﺮﻣﺠﻴ ﺔ اﻟﻤﻮﺟﻮدة ﻟﺪﻳﻨﺎ إﱃ وﻇﻴﻔ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﺨﺪم ،ﻟﺬﻟﻚ دﻋﻨﺎ ﻧﻨﻘﻞ ﻛﻞ اﻟ
Remember_me.pyﻋﲆﺗﺤﻴ ﺔ اﻟﻤ ﺴ
ﺘﺨﺪم ():
ﺘﺮﺣﻴ ﺐ_اﻟﻤ ﺴ
ﯩﺗ ﺴﻤ
ﺘﺬﻛﺮ_
ﻳ ﺘﻴﺮاد json
اﺳ
me.py
defreet_user ():
ﺑﺎﻻﺳﻢ"" ".ﺘﺨﺪم
ﺑﺎﻟﻤ ﺴ"" "uرﺣ ﺐ
اﺳﻢ اﻟﻤﻠﻒ '= 'username.json
ﻳﺤﺎول:
ﺘﻮح ﻛـ f_obj:
ﻣﻊ )اﺳﻢ ﻣﻠﻒ( ﻣﻔ
ﺘﺨﺪم )= json.load (f_obj
اﺳﻢ اﻟﻤ ﺴ
ﺜﻨﺎء FileNotFoundError:
ﺘﺑﺎﺳ
")username = inputﻣﺎ اﺳﻤﻚ؟"(
ﺜﻞ f_obj:
ﺘﻮح ﻣ
ﻣﻊ )اﺳﻢ اﻟﻤﻠﻒ "w") ،ﻣﻔ
ﺘﺨﺪم f_obj) ،
)json.dumpاﺳﻢ اﻟﻤ ﺴ
"
ﺘﺬﻛﺮك ﻋﻨﺪﻣﺎﺗﻌﻮد ،
")printﺳﻨ ﺘﺨﺪم )"!" +
+اﺳﻢ اﻟﻤ ﺴ
آﺧﺮ:
"
ﺗﻚ ،
ﺑﻌﻮدﺒﺎ
ﺒﺎﻋ ﺔ )"ﻣﺮﺣ ً
ﻃ ﺘﺨﺪم )"!" +
+اﺳﻢ اﻟﻤ ﺴ
ﺘﺨﺪم )(
ﺗﺤﻴ ﺔ اﻟﻤ ﺴ
ﺘﻠﻔ ﺔ.
ﺑﺎﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻤﻬﺎم اﻟﻤﺨﺑﺤﻴ ﺚ ﻻﺗﻘﻮم
ﺘﺨﺪم )(
ﺑﻨﺎء ﻋﻮاﻣﻞﺗﺤﻴ ﺔ اﻟﻤ ﺴدﻋﻨﺎ ﻧﻌﻴﺪ
ﺘﺨﺪم ﻣﺨﺰن إﱃ داﻟ ﺔ ﻣﻌﺪل sepa:
ﺘﺮداد اﺳﻢ ﻣ ﺴ
ﺑﻨﻘﻞ اﻟﻜﻮد ﻻﺳﺒﺪأ
ﺳﻨ
ﺘﻴﺮاد json
اﺳ
آﺧﺮ:
ﺘﺨﺪم
إرﺟﺎع اﺳﻢ اﻟﻤ ﺴ
212اﻟﻔﺼﻞ اﻟﻌﺎﺷﺮ
Machine Translated by Google
defreet_user ():
ﺑﺎﻻﺳﻢ"" " .ﺘﺨﺪم
""رﺣ ﺐ اﻟﻤ ﺴ
ﺘﺨﺪم )( = get_stored_username
اﺳﻢ اﻟﻤ ﺴ
ﺘﺨﺪم:
wإذا ﻛﺎن اﺳﻢ اﻟﻤ ﺴ
"
)"!" +
ﺘﺨﺪموإﻻ:ﻣﺮةاﻟﻤ ﺴ
أﺧﺮى ، ﺳﻢﺒﺎ +ا
ﺑﻚ ")printﻣﺮﺣ ً
ﺘﺨﺪم )(
ﺗﺤﻴ ﺔ اﻟﻤ ﺴ
ﺗﻘﻮم ﻫﺬه
اﻟﻮﻇﻴﻔ ﺔ اﻟﺠﺪﻳﺪة )( get_stored_usernameﻟﻬﺎ ﻏﺮض واﺿﺢ ،ﻛﻤﺎ ﻫﻮ ﻣﺬﻛﻮر ﻓ ﻲ docstringﻓ ﻲ u.
ﺜﺮ ت ﻋﻠﻴﻪ .إذا ﻛﺎن اﻟﻤﻠﻒ username.jsonﻏﻴﺮ
ﺘﺨﺪم إذا ﻋ
ﺘﺨﺪم ﻣﺨﺰن وإرﺟﺎع اﺳﻢ اﻟﻤ ﺴ
ﺘﺮداد اﺳﻢ ﻣ ﺴ
ﺑﺎﺳاﻟﻮﻇﻴﻔ ﺔ
ﺘﻮﻗﻌﻬﺎ ،أوﻳﺠ ﺐ أن
ﺘ ﻲﺗ
ﺑﺈرﺟﺎع None v.ﻫﺬه ﻣﻤﺎرﺳ ﺔ ﺟﻴﺪة:ﻳﺠ ﺐ أنﺗﻌﺮض اﻟﻮﻇﻴﻔ ﺔ اﻟﻘﻴﻤ ﺔ اﻟﻣﻮﺟﻮد ،ﺗﻘﻮم اﻟﻮﻇﻴﻔ ﺔ
ﺒﻊ رﺳﺎﻟ ﺔﺗﺮﺣﻴ ﺐ ﻣﺮة أﺧﺮى
ﺑ ﺴﻴﻂ ﻣﻊ اﻟﻘﻴﻤ ﺔ اﻟﻤﺮﺟﻌ ﺔ ﻟﻠﻮﻇﻴﻔ ﺔ .ﻓ ﻲ wﻧﻄﺒﺎر
ﺘﺑﺎﺧﺗﺮﺟﻊ None.ﻫﺬاﻳ ﺴﻤﺢ ﻟﻨﺎ ﻟﻜﻞ ﻧﻤﻮذج
ﺘﺨﺪم ﺟﺪﻳﺪ.
ﺑﺎﺳﻢ ﻣ ﺴﺘﺨﺪم ،وإذا ﻟﻢﺗﻨﺠﺢ ،ﻓﺈﻧﻨﺎ ﻧﻄﺎﻟ ﺐ
ﺘﺮداد اﺳﻢ اﻟﻤ ﺴ
ﺘﺨﺪم إذا ﻧﺠﺤ ﺖ ﻣﺤﺎوﻟ ﺔ اﺳ
ﻟﻠﻤ ﺴ
ﺘﻴﺮاد json
اﺳ
--ﻗﺺ--
defreet_user ():
ﺑﺎﻻﺳﻢ"" " .ﺘﺨﺪم
""رﺣ ﺐ اﻟﻤ ﺴ
ﺘﺨﺪم )( = get_stored_username
اﺳﻢ اﻟﻤ ﺴ
ﺘﺨﺪم:
إذا ﻛﺎن اﺳﻢ اﻟﻤ ﺴ
"
)"!" +
وإﻻ: ﺘﺨﺪم
أﺧﺮى ، ﺑﻚﺴﻣﺮة
ﺳﻢﺎ اﻟﻤ
ﺒ + printا
)"ﻣﺮﺣ ً
ﺘﺨﺪم )( = get_new_username
اﺳﻢ اﻟﻤ ﺴ
"
ﺘﺬﻛﺮك ﻋﻨﺪﻣﺎﺗﻌﻮد ،
")printﺳﻨ ﺘﺨﺪم )"!" +
+اﺳﻢ اﻟﻤ ﺴ
ﺘﺨﺪم )(
ﺗﺤﻴ ﺔ اﻟﻤ ﺴ
ﺜﻨﺎءا ت 213
ﺘاﻟﻤﻠﻔﺎ ت واﻻﺳ
Machine Translated by Google
ﻛﻞ وﻇﻴﻔ ﺔ ﻓ ﻲ ﻫﺬا اﻹﺻﺪار اﻟﻨﻬﺎﺋ ﻲ ﻣﻦ Remember_me.pyﻟﻬﺎ ﻏﺮض واﺣﺪ واﺿﺢ .ﻧﺤﻦ ﻧﻄﻠﻖ ﻋﲆ اﺳﻢ
ﺘﺨﺪﻣﺎ ﺟﺪﻳﺪًا.
ً ﺘﺨﺪم ﺣﺎﻟ ﻲ أوﺗﺤﻴ ﻲ ﻣ ﺴ
ﺑﻌﻮدة ﻣ ﺴﺒﺎ :إﻣﺎ أﻧﻬﺎﺗﺮﺣ ﺐ
ﺒﻊ mes sageﻣﻨﺎﺳ ً
() (reet_user) ،و ﻫﺬه اﻟﻮﻇﻴﻔ ﺔﺗﻄ
ّن ﻓ ﻲ
ﺘﺨﺪم ﻣﺨ ﺰ
ﺘﺮداد اﺳﻢ ﻣ ﺴ
ﺘﺪﻋﺎء get_stored_username () ،و ﻫﻮ ﻣ ﺴﺆول ﻓﻘﻂ ﻋﻦ اﺳ
ﺑﺬﻟﻚ ﻋﻦ ﻃﺮﻳﻖ اﺳﻳﻘﻮم
ﺘﺨﺪم )( () get_new_username
ﺋ ﻲ اﻟﻤ ﺴ
ﺘﺪﻋ ﻲ اﻟﻤﺮ
ﺣﺎﻟ ﺔ وﺟﻮده .أﺧﻴ ﺮًا ،ﻳ ﺴ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺑﻠﻎ
ﺑﺎﻟﻔﻌﻞ ،ﻓﺄﺘﻤﺮﻳﻦ 10-11ﻓ ﻲ ﻣﻠﻒ واﺣﺪ .إذا ﻛﺎن اﻟﺮﻗﻢ ﻣﺨﺰﻧًﺎ
ﺒﺮﻧﺎﻣﺠﻴﻦ ﻣﻦ اﻟ
ﺗﺬﻛﺮ اﻟﺮﻗﻢ اﻟﻤﻔﻀﻞ :ادﻣﺞ اﻟ
10-12.
ﺘﺸﻐﻴﻞ
ﺑﺘﺨﺰﻳﻨﻪ ﻓ ﻲ ﻣﻠﻒ .ﻗﻢ
ﺑﺘﺨﺪم وﻗﻢ
ﺑﺎﻟﺮﻗﻢ اﻟﻤﻔﻀﻞ .إذا ﻟﻢﻳﻜﻦ ﻛﺬﻟﻚ ،اﻃﻠ ﺐ اﻟﺮﻗﻢ اﻟﻤﻔﻀﻞ ﻟﻠﻤ ﺴﺘﺨﺪم
اﻟﻤ ﺴ
ﺘﺮى أﻧﻪﻳﻌﻤﻞ.
ﺗﻴﻦ ﻟ
ﺒﺮﻧﺎﻣﺞ ﻣﺮ
اﻟ
ﺘﺨﺪم
ﺘﺨﺪم ﻋﻤﺎ إذا ﻛﺎن ﻫﺬا ﻫﻮ اﺳﻢ اﻟﻤ ﺴ
ﺒﺎﻋ ﺔ رﺳﺎﻟ ﺔﺗﺮﺣﻴ ﺐ ﻣﺮة أﺧﺮى ﻓ ﻲ ﻣﻠﻒ ()reet_user ،اﺳﺄل اﻟﻤ ﺴ
ﺒﻞ ﻃ
ﻗ
ﺑـ )( get_new_usernameﻟﻠﺤﺼﻮل ﻋﲆ اﻟﻤﻠﻒ اﻟﺼﺤﻴﺢﺗﺼﻞ
اﻟﺼﺤﻴﺢ .إذا ﻟﻢﻳﻜﻦ اﻷﻣﺮ ﻛﺬﻟﻚ ،ﻓﺎ
ﺘﺨﺪم.
اﺳﻢ اﻟﻤ ﺴ
ﻣﻠﺨﺺ
ﺘﻮﻳﺎ ت اﻟﻤﻠﻒ
ﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻠﻔﺎ ت .ﻟﻘﺪﺗﻌﻠﻤ ﺖ ﻗﺮاءة ﻣﻠﻒ ﻛﺎﻣﻞ ﻣﺮة واﺣﺪة وﻗﺮاءة ﻣﺤ
ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ،ﺗﻌﻠﻤ ﺖ ﻛﻴﻔﻴ ﺔ اﻟ
ﺜﻨﺎءا ت وﻛﻴﻔﻴ ﺔ
ﺘﺑﻨﻬﺎﻳ ﺔ اﻟﻤﻠﻒ .ﻟﻘﺪ ﻗﺮأ ت ﻋﻦ اﻻﺳﺑ ﺔ إﱃ ﻣﻠﻒ وإﻟﺤﺎق ﻧﺺ
ﺘﺎ
ﺳﻄ ﺮًا واﺣﺪًا ﻓ ﻲ ﻛﻞ ﻣﺮة .ﻟﻘﺪﺗﻌﻠﻤ ﺖ اﻟﻜ
ﺑﻴﺎﻧﺎ ت Pythonﺑﺮاﻣﺠﻚ .أﺧﻴ ﺮًا ،ﺗﻌﻠﻤ ﺖ ﻛﻴﻔﻴ ﺔﺗﺨﺰﻳﻦ ﻫﻴﺎﻛﻞﺘﻤﻞ أنﺗﺮا ﻫﺎ ﻓ ﻲ
ﺘ ﻲ ﻣﻦ اﻟﻤﺤ
ﺜﻨﺎءا ت اﻟ
ﺘﺘﻌﺎﻣﻞ ﻣﻊ اﻻﺳ
اﻟ
ﺒﺪء ﻣﻦ ﺟﺪﻳﺪ ﻓ ﻲ ﻛﻞ ﻣﺮةﻳﻘﻮﻣﻮن
ﺘﺨﺪﻣﻮن ﻟﺪﻳﻚ ،ﻣﻤﺎﻳﻤﻨﻌﻬﻢ ﻣﻦ اﻟ
ﺘ ﻲﻳﻮﻓﺮ ﻫﺎ اﻟﻤ ﺴ
ﺘﻤﻜﻦ ﻣﻦ ﺣﻔﻆ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟ
ﺘﻰﺗ
ﺣ
ﺑﺮﻧﺎﻣﺞ.ﺘﺸﻐﻴﻞ
ﺑﻓﻴﻬﺎ
214اﻟﻔﺼﻞ اﻟﻌﺎﺷﺮ
Machine Translated by Google
11
ﺑﻚT est i ng Codeاﻟﺨﺎص
ﺒﺎرا ت ﻟﻬﺬا
ﺘﺑ ﺔ اﺧ
ﺘﺎ ﺑ ﺔ داﻟ ﺔ أو ﻓﺼﻞ دراﺳ ﻲ ،ﻳﻤﻜﻨﻚ أ ً
ﻳﻀﺎ ﻛ ﺘﺎ
ﻋﻨﺪ ﻛ
ﺘﺮض أنﻳﻜﻮن
ﺑﻚﻳﻌﻤﻞ ﻛﻤﺎﻳﻔﺒﺎر أن اﻟﻜﻮد اﻟﺨﺎص
ﺘﺒ ﺖ اﻻﺧ
ﺜاﻟﺮﻣﺰ.ﻳ
ﺘﺐ
ﺘﻠﻘﻴﻬﺎ .ﻋﻨﺪﻣﺎﺗﻜ
ﺑ ﺔ ﻟﺠﻤﻴﻊ أﻧﻮاع اﻟﻤﺪﺧﻼ ت اﻟﻤﺼﻤﻤ ﺔ ﻟ
ﺘﺠﺎ
اﺳ
ﺑﻚﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺛﻘ ﺔ ﻣﻦ أن اﻟﺒﺎرا ت ،ﻳﻤﻜﻨﻚ أنﺗﻜﻮن ﻋﲆ
ﺘاﻻﺧ
ﺘﻤﻜﻦ
ﺘﺑﺮاﻣﺠﻚ.ﺳﺘﺨﺪام
ﺒﺪأ اﻟﻤﺰﻳﺪ ﻣﻦ اﻷﺷﺨﺎص ﻓ ﻲ اﺳ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ ﺣﻴ ﺚﻳﺘﻌﻤﻞ
ﺳ
ﺗﻚ ﻻﺗﻜ ﺴﺮ اﻟ ﺴﻠﻮك اﻟﺤﺎﻟ ﻲ
ﺘﺄﻛﺪ ﻣﻦ أنﺗﻐﻴﻴﺮا
ﺘﻪ ﻟﻠ
ﺒﺎر رﻣﺰ ﺟﺪﻳﺪ ﻋﻨﺪ إﺿﺎﻓ
ﺘ أ ً
ﻳﻀﺎ ﻣﻦ اﺧ
ﺒﺎر اﻟﻜﻮد اﻟﺨﺎص
ﺘﺒﺮﻣﺞ اﺧﺒﺮﻣﺞ أﺧﻄﺎء ،ﻟﺬﻟﻚﻳﺠ ﺐ ﻋﲆ ﻛﻞ ﻣﺗﻜ ﺐ ﻛﻞ ﻣ
ﺒﺮﻧﺎﻣﺠﻚ.ﻳﺮ ﻟ
ﺘﺨﺪﻣﻮن.ﺒﻞ أنﻳﻮاﺟﻬﻬﺎ اﻟﻤ ﺴ
ﺘﻘﺎط اﻟﻤﺸﻜﻼ ت ﻗﺜﻴ ًﺮا ،واﻟ
ﺑﻪ ﻛ
ﺒﺎر وﻇﻴﻔ ﺔ
ﺘاﺧ
ُﺮﺟﻊ اﻻﺳﻢ
ﺗ
ﺑ ﺴﻴﻄ ﺔﺗﺄﺧﺬ اﻻﺳﻢ اﻷول واﻷﺧﻴﺮ ،وﺒﺎر .ﻓﻴﻤﺎﻳﻠ ﻲ وﻇﻴﻔ ﺔ
ﺘﺘﺎج إﱃ رﻣﺰ ﻟﻼﺧ
ﺒﺎر ،ﻧﺤ
ﺘﻟﻤﻌﺮﻓ ﺔ اﻟﻤﺰﻳﺪ ﻋﻦ اﻻﺧ
ﺑﺪﻗ ﺔ:اﻟﻜﺎﻣﻞ اﻟﻤﻨ ﺴﻖ
216اﻟﻔﺼﻞ 11
Machine Translated by Google
ﺒﺎر
ﺘﺒﺎرا ت اﻟﻮﺣﺪة وﺣﺎﻻ ت اﻻﺧ
ﺘاﺧ
ﺒﺎر
ﺘﺘﺤﻘﻖ اﺧ
ﺑﻚ.ﻳﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺒﺎر اﻟ
ﺘﺒ ﺔ Pythonاﻟﻘﻴﺎﺳﻴ ﺔ أدوا ت ﻻﺧ
ﺘﺗﻮﻓﺮ اﻟﻮﺣﺪة اﻟﻨﻤﻄﻴ ﺔ unittestﻣﻦ ﻣﻜ
ﺒ ﺖ ﻣﻌً ﺎ أن اﻟﻮﻇﻴﻔ ﺔ
ﺜﺘ ﻲﺗ
ﺒﺎرا ت اﻟﻮﺣﺪة اﻟ
ﺘﺒﺎر ﻫ ﻲ ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﺧ
ﺘاﻟﻮﺣﺪة ﻣﻦ ﺻﺤ ﺔ ﺟﺎﻧ ﺐ ﻣﻌﻴﻦ ﻣﻦﺳﻠﻮك اﻟﻮﻇﻴﻔ ﺔ .ﺣﺎﻟ ﺔ اﻻﺧ
ﺒﺎر ﺟﻤﻴﻊ
ﺘﺒﺎر اﻟﺠﻴﺪة ﻓ ﻲ اﻻﻋ
ﺘﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ.ﺗﺄﺧﺬ ﺣﺎﻟ ﺔ اﻻﺧ
ﺘﻮﻗﻊ أنﺗ
ﺘ ﻲﺗ
ﺒﻐ ﻲ ،ﺿﻤﻦ اﻟﻨﻄﺎق اﻟﻜﺎﻣﻞ ﻟﻠﻤﻮاﻗﻊ اﻟ
ﺘﺼﺮف ﻛﻤﺎﻳﻨ
ﺗ
ﺘﻀﻤﻦ ﺣﺎﻟ ﺔ
ﺜﻴﻞ ﻛﻞ ﺣﺎﻟ ﺔ ﻣﻦ ﻫﺬه اﻟﻤﻮاﻗﻒ.ﺗ
ﺘﻤﺒﺎرا ت ﻟ
ﺘﺘﻀﻤﻦ اﺧ
ﺗﺘﻠﻘﺎ ﻫﺎ اﻟﻮﻇﻴﻔ ﺔ و
ﺘ ﻲﻳﻤﻜﻦ أنﺗ
أﻧﻮاع اﻟﻤﺪﺧﻼ ت اﻟﻤﻤﻜﻨ ﺔ اﻟ
ﺘ ﻲﻳﻤﻜﻨﻚ ﻣﻦ ﺧﻼﻟﻬﺎ
ﺘ ﻲﺗﻐﻄ ﻲ ﺟﻤﻴﻊ اﻟﻄﺮق اﻟﻤﻤﻜﻨ ﺔ اﻟ
ﺒﺎرا ت اﻟﻮﺣﺪة اﻟ
ﺘﺘﻐﻄﻴ ﺔ اﻟﻜﺎﻣﻠ ﺔ ﻣﺠﻤﻮﻋ ﺔ ﻛﺎﻣﻠ ﺔ ﻣﻦ اﺧ
ﺒﺎر ذا ت اﻟ
ﺘاﻻﺧ
ﺒﺎرا ت ﻟﻠ ﺴﻠﻮﻛﻴﺎ ت
ﺘﺑ ﺔ اﺧ
ﺘﺎ
ﺒﺎ ﻣﺎﻳﻜﻮن ﻣﻦ اﻟﺠﻴﺪ ﻛ ً
ﺷﺎﻗﺎ .ﻏﺎﻟ ً ﺒﻴﺮ أﻣ ﺮًا
ﺘﻐﻄﻴ ﺔ اﻟﻜﺎﻣﻠ ﺔ ﻟﻤﺸﺮوع ﻛ
ﺘﺨﺪام اﻟﻮﻇﻴﻔ ﺔ .ﻗﺪﻳﻜﻮنﺗﺤﻘﻴﻖ اﻟ
اﺳ
ﺘﺨﺪام واﺳﻊ اﻟﻨﻄﺎق.
ﺑﺪأ اﻟﻤﺸﺮوع ﻓ ﻲ رؤﻳ ﺔ اﺳﺘﻐﻄﻴ ﺔ اﻟﻜﺎﻣﻠ ﺔ ﻓﻘﻂ إذا
ﺛﻢﺗﻬﺪف إﱃ اﻟﺑﻚﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
اﻟﺤﺮﺟ ﺔ ﻓ ﻲ اﻟ
ﺒﺎر ﻧﺎﺟﺢ
ﺘاﺧ
ﺒﺢ ﻣﻦ اﻟ ﺴﻬﻞ إﺿﺎﻓ ﺔ
ﺒﺎر ،ﻳﺼ
ﺘﺑﻤﺠﺮد إﻋﺪاد ﺣﺎﻟ ﺔ اﻻﺧﺘﻌﻮد ،وﻟﻜﻦ
ﺑﻌﺾ اﻟﺒﺎر
ﺘﺑﺈﻋﺪاد ﺣﺎﻟ ﺔ اﻻﺧﺑﻨﺎء اﻟﺠﻤﻠ ﺔ اﻟﺨﺎصﺘﻐﺮق
ﻳﺴ
ﺒﺎر ﻫﺎ.
ﺘﺘ ﻲﺗﺮﻳﺪ اﺧ
ﺘﻴﺮاد وﺣﺪة unittestواﻟﻮﻇﻴﻔ ﺔ اﻟ
ﺑﺎﺳﺒﺎر ﻟﻮﻇﻴﻔ ﺔ ﻣﺎ ،ﻗﻢ
ﺘﺑ ﺔ ﺣﺎﻟ ﺔ اﺧ
ﺘﺎ
ﺒﺎرا ت اﻟﻮﺣﺪة ﻟﻮﻇﺎﺋﻔﻚ .ﻟﻜ
ﺘاﻟﻤﺰﻳﺪ ﻣﻦ اﺧ
ﺘﻚ.
ﺘﻠﻔ ﺔ ﻣﻦﺳﻠﻮك وﻇﻴﻔ
ﺒﺎر ﺟﻮاﻧ ﺐ ﻣﺨ
ﺘﺘ ﺐﺳﻠ ﺴﻠ ﺔ ﻣﻦ اﻟﻄﺮق ﻻﺧ
ﺑﺈﻧﺸﺎء ﻓﺌ ﺔﺗﺮ ث ﻣﻦ unittest.TestCase ،واﻛﺛﻢ ﻗﻢ
ﺘﺤﻘﻖ ﻣﻦ ﺻﺤ ﺔ اﻟﻮﻇﻴﻔ ﺔ
ﺑﻄﺮﻳﻘ ﺔ واﺣﺪةﺗﺒﺎر
ﺘإﻟﻴﻚ ﺣﺎﻟ ﺔ اﺧ
_test_name function.py
unittest ﺘﻴﺮاد
اﺳ
ﺘﻴﺮاد get_formatted_name
ﻣﻦ name_functionاﺳ
)( unittest.main
ﺘﺄﻛﻴﺪ .
ﺜﺮ ﻣﻴﺰا ت unittestﻓﺎﺋﺪة :ﻃﺮﻳﻘ ﺔ اﻟ
ﺘﺨﺪم واﺣﺪة ﻣﻦ أﻛ
ﻓ ﻲ w ،ﻧ ﺴ
ﺑﻠﻴﻦ"(
"self.assertEqual (formatted_name،ﺟﺎﻧﻴ ﺲ ﺟﻮ
ﺘﻮﻗﻊ ،
ﺘ ﺴﺎوﻳ ﺔ ﻛﻤﺎ ﻫﻮ ﻣ
ﺑﺎﻟ ﺴﻠ ﺴﻠ ﺔ " Janis Joplin ".إذا ﻛﺎﻧ ﺖ ﻣ
ﻳﻘﻮل " ،ﻗﺎرن اﻟﻘﻴﻤ ﺔ اﻟﻤﻮﺟﻮدة ﻓ ﻲ formatted_name
ﺑﻘﻮا ،ﻓﺄﻋﻠﻤﻮﻧ ﻲ! "
ﺘﻄﺎ
ﺑﺄس .وﻟﻜﻦ إذا ﻟﻢﻳﻓﻼ
ﺘﺸﻐﻴﻞ
ﺑﺒﺎرا ت ﻓ ﻲ ﻫﺬا اﻟﻤﻠﻒ .ﻋﻨﺪﻣﺎ ﻧﻘﻮم
ﺘﺑﺈﺟﺮاء اﻻﺧ
ﺒﺮ اﻟ ﺴﻄﺮ unittest.main () Python
ﻳﺨ
ﺘﺎﻟﻴ ﺔ:
test_name_function.py ،ﻧﺤﺼﻞ ﻋﲆ اﻟﻤﺨﺮﺟﺎ ت اﻟ
.
-------------------------------------------------- --------------------
ﺛﺎﻧﻴ ﺔ
ﺒﺎر 1ﻓ ﻲ 0.000
ﺘﺗﻢ إﺟﺮاء اﻻﺧ
ﻧﻌﻢ
ﺒﺎر ﻓﺎﺷﻞ
ﺘاﺧ
ﺘﻌﺎﻣﻞ ﻣﻊ اﻷﺳﻤﺎء اﻟﻮﺳﻄﻰ ،ﻟﻜﻨﻨﺎ
ﺘﻤﻜﻦ ﻣﻦ اﻟ
ﺘﻰﻳ
ﺒﺎر اﻟﺮﺳﻮ ب؟ دﻋﻨﺎ ﻧﻌﺪل )( get_formatted_nameﺣ
ﺘﺒﺪو اﺧ
ﻛﻴﻒﻳ
ﺑﻠﻴﻦ.
ﺜﻞ ﺟﺎﻧﻴ ﺲ ﺟﻮ
ﺑﻄﺮﻳﻘ ﺔﺗﻜ ﺴﺮ وﻇﻴﻔ ﺔ اﻷﺳﻤﺎء ذا ت اﻻﺳﻢ اﻷول واﻷﺧﻴﺮ ﻓﻘﻂ ،ﻣﺳﻨﻔﻌﻞ ذﻟﻚ
218اﻟﻔﺼﻞ 11
Machine Translated by Google
ﺑﺬﻟﻚﻳﺠ ﺐ أنﻳﻌﻤﻞ ﻫﺬا اﻹﺻﺪار ﻟﻸﺷﺨﺎص ذوي اﻷﺳﻤﺎء اﻟﻮﺳﻄﻰ ،وﻟﻜﻦ ﻋﻨﺪﻣﺎ ﻧﻘﻮم
ﺒﺮ ﻫﺎ ،ﻧﺮى أﻧﻨﺎ ﻛ ﺴﺮﻧﺎ اﻟﻮﻇﻴﻔ ﺔ ﻟﻸﺷﺨﺎص اﻟﺬﻳﻦ ﻟﺪﻳﻬﻢ اﻻﺳﻢ اﻷول واﻷﺧﻴﺮ ﻓﻘﻂ .ﻫﺬه اﻟﻤﺮة ،ﻳﻌﻄ ﻲﺗﺸﻐﻴﻞ اﻟﻤﻠﻒ
ﺘاﺧ
ﺗﺞ:
test_name_function.pyﻫﺬا اﻟﻨﺎ
شه
==================== ====================================================
)w Tracebackآﺧﺮ ﻣﻜﺎﻟﻤ ﺔ أﺧﻴﺮة( :ﻣﻠﻒ "test_name_function.py" ،اﻟ ﺴﻄﺮ 8 ،ﻓ ﻲ test_first_last_name
-------------------------------------------------- --------------------
ﺛﺎﻧﻴ ﺔ
ﺒﺎر Ran 1ﻓ ﻲ 0.000
ﺘxاﺧ
ﺒﺎر ﻓﺎﺷﻞ
ﺘﺑ ﺔ ﻻﺧ
ﺘﺠﺎ
اﻻﺳ
ﺒﺎر اﻟﻨﺠﺎحﻳﻌﻨ ﻲ أن اﻟﻮﻇﻴﻔ ﺔ
ﺘﺘﺤﻘﻖ ﻣﻦ اﻟﺸﺮوط اﻟﺼﺤﻴﺤ ﺔ ،ﻓﺈن اﺧ
ﺘﺮاض أﻧﻚﺗ
ﺑﺎﻓﺒﺎر؟
ﺘﻣﺎذاﺗﻔﻌﻞ ﻋﻨﺪﻣﺎﻳﻔﺸﻞ اﻻﺧ
ﺒﺎر
ﺘﺘﻪ .ﻟﺬﻟﻚ ﻋﻨﺪ اﻻﺧ
ﺒﺘﺒﺎر اﻟﻔﺸﻞ أن ﻫﻨﺎك ﺧﻄﺄ ﻓ ﻲ اﻟﻜﻮد اﻟﺠﺪﻳﺪ اﻟﺬي ﻛ
ﺘﺑﺸﻜﻞ ﺻﺤﻴﺢ وﻳﻌﻨ ﻲ اﺧﺗﻌﻤﻞ
ﺒﺎر.
ﺘﺒ ﺖ ﻓ ﻲ ﻓﺸﻞ اﻻﺧ
ﺒﺘ ﻲﺗ ﺴ
ﺑﺈﺻﻼح اﻟﺸﻔﺮة اﻟﺑﺪﻻ ً ﻣﻦ ذﻟﻚ ،ﻗﻢﺒﺎر.
ﺘﻓﺸﻞ ،ﻻﺗﻐﻴﺮ اﻻﺧ
ﺘﻐﻴﻴﺮا ت إﱃ ﻛ ﺴﺮ اﻟ ﺴﻠﻮك اﻟﻤﻄﻠﻮ ب.
ﺘﺸﻒ ﻛﻴﻒ أد ت ﻫﺬه اﻟ
ﺘﻮ ﻋﲆ اﻟﻮﻇﻴﻔ ﺔ ،واﻛ
ﺘﻬﺎ ﻟﻠ
ﺘ ﻲ أﺟﺮﻳ
ﺘﻐﻴﻴﺮا ت اﻟ
اﻓﺤﺺ اﻟ
" "
= full_nameأول +إرﺟﺎع )( +اﻻﺧﻴﺮ
full_name.title
ﺘﻴﺎرﻳًﺎ.
ﻓ ﻲ ﻫﺬا اﻹﺻﺪار اﻟﺠﺪﻳﺪ ﻣﻦ get_formatted_name () ،ﻳﻜﻮن اﻻﺳﻢ اﻷوﺳﻂ اﺧ
ﺘﻮي اﻻﺳﻢ اﻟﻜﺎﻣﻞ ﻋﲆ اﻻﺳﻢ اﻷول واﻟﻮﺳﻄﻰ
إذاﺗﻢﺗﻤﺮﻳﺮ اﻻﺳﻢ اﻷوﺳﻂ إﱃ اﻟﻮﻇﻴﻔ ﺔ )إذا ﻛﺎن اﻟﻮﺳﻂ ، (:ﻓ ﺴﻴﺤ
ﺘﻜﻮن ﻣﻦ اﻻﺳﻢ اﻷول واﻷﺧﻴﺮ ﻓﻘﻂ .اﻵنﻳﺠ ﺐ أنﺗﻌﻤﻞ اﻟﻮﻇﻴﻔ ﺔ ﻟﻜﻼ
واﻷﺧﻴﺮ .ﺧﻼف ذﻟﻚ ،ﻓﺈن اﻻﺳﻢ اﻟﻜﺎﻣﻞﺳﻴ
ﺘﺸﻐﻴﻞ
ﺑﺑﻠﻴﻦ ،ﻓﻠﻨﻘﻢ
ﺜﻞ ﺟﺎﻧﻴ ﺲ ﺟﻮ
اﻟﻨﻮﻋﻴﻦ ﻣﻦ اﻷﺳﻤﺎء .ﻟﻤﻌﺮﻓ ﺔ ﻣﺎ إذا ﻛﺎﻧ ﺖ اﻟﻮﻇﻴﻔ ﺔ ﻻﺗﺰالﺗﻌﻤﻞﻷﺳﻤﺎء ﻣ
test_name_function.pyﻣﺮة أﺧﺮى:
.
-------------------------------------------------- --------------------
ﺛﺎﻧﻴ ﺔ
ﺒﺎر 1ﻓ ﻲ 0.000
ﺘﺗﻢ إﺟﺮاء اﻻﺧ
ﻧﻌﻢ
220اﻟﻔﺼﻞ 11
Machine Translated by Google
ﺒﺎرا ت ﺟﺪﻳﺪة
ﺘإﺿﺎﻓ ﺔ اﺧ
ﺘﻴﺮاد unittest
اﺳ
ﺘﻴﺮاد get_formatted_name
ﻣﻦ name_functionاﺳ
)( unittest.main
ﺘﻢ
ﺘﻰﻳ
ﺑـ _testﺣﺒﺪأ اﺳﻢ اﻟﻄﺮﻳﻘ ﺔ
ﺘ ﺴﻤﻴ ﺔ ﻫﺬه اﻟﻄﺮﻳﻘ ﺔ اﻟﺠﺪﻳﺪة test_first_last_middle_name ().ﻳﺠ ﺐ أنﻳ
ﺑﻗﻤﻨﺎ
ﺘﻮﺿﻴﺢﺳﻠﻮك )(
ﺘ ﺴﻤﻴ ﺔ اﻟﻄﺮﻳﻘ ﺔ ﻟ
ﺑﺗﺸﻐﻴﻞ اﻟﻄﺮﻳﻘ ﺔﺗﻠﻘﺎﺋ ًﻴﺎ ﻋﻨﺪﺗﺸﻐﻴﻞ test_name_function.py.ﻧﻘﻮم
ﺛﺮة.
ﺘﺄ
ﺒﺎر ،ﻓﺈﻧﻨﺎ ﻧﻌﺮف ﻋﲆ اﻟﻔﻮر أﻧﻮاع اﻷﺳﻤﺎء اﻟﻤ
ﺘﺘﻴﺠ ﺔ ﻟﺬﻟﻚ ،إذا ﻓﺸﻞ اﻻﺧ
ﺒﺎره .ﻧ
ﺘﺑﺎﺧget_formatted_nameاﻟﺬي ﻧﻘﻮم
ﺘﻤﻜﻦ ﻣﻦ ﻓﻬﻢ
ﺘﻰﺗ
ﺑﻚ.ﻳﺠ ﺐ أنﺗﻜﻮن وﺻﻔﻴ ﺔ ﺣﻣﻦ اﻟﺠﻴﺪ أنﻳﻜﻮن ﻟﺪﻳﻚ أﺳﻤﺎء ﻃﺮق ﻃﻮﻳﻠ ﺔ ﻓ ﻲ ﻓﺌﺎ ت TestCaseاﻟﺨﺎﺻ ﺔ
ﺘﻲ
ﺒﺮﻣﺠﻴ ﺔ اﻟ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑ ﺔ اﻟ
ﺘﺎ
ﺑﺪًا إﱃ ﻛ
ﺘﺪﻋﻴﻬﺎﺗﻠﻘﺎﺋ ًﻴﺎ ،ﻓﻠﻦﺗﻀﻄﺮ أ
ﺗﺴﺗﻚ ،وﻷن Python
ﺒﺎرا
ﺘاﻟﻤﺨﺮﺟﺎ ت ﻋﻨﺪﻣﺎﺗﻔﺸﻞ اﺧ
ﺘﺪﻋ ﻲ ﻫﺬه اﻟﻄﺮق.
ﺗﺴ
ﺘﺨﺪم )( assertEqual
ﺛﻢ ﻧ ﺴ
ﺑﺎﻻﺳﻢ اﻷول واﻷﺧﻴﺮ واﻷوﺳﻂ u ،
ﺒﺎر اﻟﻮﻇﻴﻔ ﺔ ،ﻧ ﺴﻤ ﻲ )( get_formatted_name
ﺘﻻﺧ
ﺘﻮﻗﻌﻪ .
ﺑﻖ اﻻﺳﻢ اﻟﻜﺎﻣﻞ )اﻷول واﻟﻮﺳﻂ واﻷﺧﻴﺮ( اﻟﺬي ﻧ
ﺘﺤﻘﻖ ﻣﻦ أن اﻻﺳﻢ اﻟﻜﺎﻣﻞ اﻟﺬيﺗﻢ إرﺟﺎﻋﻪﻳﻄﺎ
ﻟﻠ
ﺒﺎرﻳﻦ:
ﺘﺘﺎز ﻛﻼ اﻻﺧ
ﻋﻨﺪﺗﺸﻐﻴﻞ test_name_function.pyﻣﺮة أﺧﺮى ،ﻳﺠ
..
-------------------------------------------------- --------------------
ﺛﺎﻧﻴ ﺔ
ﺒﺎرا ت ﻓ ﻲ 0.000
ﺘﺗﻢ إﺟﺮاء 2اﺧ
ﻧﻌﻢ
ﺜﻞ ﺟﺎﻧﻴ ﺲ
ﻋﻈﻴﻢ! ﻧﺤﻦ ﻧﻌﻠﻢ اﻵن أن اﻟﻮﻇﻴﻔ ﺔ ﻻﺗﺰالﺗﻌﻤﻞﻷﺳﻤﺎء ﻣ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﺘﻴﺮاد
ﺑﺤﺎﺟ ﺔ إﱃ اﺳﺗﺬﻛﺮ أﻧﻚ
ﺘﻮ )
ﺘﻬﺎ ﻟﻠ
ﺒﺘﺘ ﻲﻛ
ﺒﺮ اﻟﻮﻇﻴﻔ ﺔ اﻟ
ﺘﺑﺈﻧﺸﺎء ﻣﻠﻒﻳ ﺴﻤﻰ test_cities.pyﻳﺨﻗﻢ
ﺒﺎر ﻫﺎ(.
ﺘﺘ ﻲﺗﺮﻳﺪ اﺧ
unittestواﻟﻮﻇﻴﻔ ﺔ اﻟ
ﺗﺸﻴﻠ ﻲ"
ﺘﻴﺎﻏﻮ" و "
ﺜﻞ "ﺳﺎﻧ
ﺑﻘﻴﻢ ﻣﺘﻚ
ﺘﺪﻋﺎء وﻇﻴﻔ
ﺘﺤﻘﻖ ﻣﻦ أن اﺳ
ﺘ ﺐ ﻋﻤﻠﻴ ﺔﺗ ﺴﻤﻰ )( test_city_countryﻟﻠ
اﻛ
ﺘﻴﺎز test_city_country () .
ﺗﺄﻛﺪ ﻣﻦ اﺟ
ﺘﺸﻐﻴﻞ test_cities.py ،و
ﺑﺘﺞ ﻋﻨﻪ اﻟ ﺴﻠ ﺴﻠ ﺔ اﻟﺼﺤﻴﺤ ﺔ .ﻗﻢ
ﻳﻨ
ﺘﺸﻐﻴﻞ test_cities.pyﻣﺮة
ﺑﺘﻴﺎرﻳ ﺔ .ﻗﻢ
ﺑﺤﻴ ﺚﺗﻜﻮن ﻣﻌﻠﻤ ﺔ اﻟ ﺴﻜﺎن اﺧﺘﻌﺪﻳﻞ اﻟﻮﻇﻴﻔ ﺔ
ﺑﻗﻢ
ﺗﺄﻛﺪ ﻣﻦ ﻣﺮور )( test_city_countryﻣﺮة أﺧﺮى.
أﺧﺮى ،و
ﺘﻚ
ﺘﺪﻋﺎء وﻇﻴﻔ
ﺑﺤﻴ ﺚﻳﻤﻜﻨﻚ اﺳ
ﺛﺎﻧ ًﻴﺎﻳ ﺴﻤﻰ )( test_city_country_populationﺒﺎ ًرا
ﺘﺘ ﺐ اﺧ
اﻛ
ﺗﺄﻛﺪ ﻣﻦ
ﺘﺸﻐﻴﻞ test_cities.pyﻣﺮة أﺧﺮى ،و
ﺑﺗﺸﻴﻠ ﻲ" و "اﻟ ﺴﻜﺎن = 5000000".ﻗﻢ
ﺘﻴﺎﻏﻮ" و "
ﺑﺎﻟﻘﻴﻢ "ﺳﺎﻧ
ﺒﺎر اﻟﺠﺪﻳﺪ
ﺘﻫﺬا اﻻﺧ
ﺑﻨﺠﺎح.ﺘﺎز
ﻳﻤﺮ،ﻳﻤﺮر ،اﺟ
ﺒﺎر اﻟﻔﺼﻞ
ﺘاﺧ
ﺳﺎ
ﺘﺨﺪم درو ً
ﺘﺴﺒﺎرا ت ﻟﻠﻔﺼﻞ.ﺳ
ﺘﺘ ﺐ اﺧ
ﺘﻜﺒﺎرا ت ﻟﻮﻇﻴﻔ ﺔ واﺣﺪة .اﻵنﺳ
ﺘﺑ ﺔ اﺧ
ﺘﺎ
ﺑﻜﻓ ﻲ اﻟﺠﺰء اﻷول ﻣﻦ ﻫﺬا اﻟﻔﺼﻞ ،ﻗﻤ ﺖ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ .إذاﺒﺎ ت أن ﻓﺼﻮﻟﻚ اﻟﺪراﺳﻴ ﺔﺗﻌﻤﻞ
ﺛﺘﺮﻓ ﺔ ،ﻟﺬا ﻣﻦ اﻟﻤﻔﻴﺪ أنﺗﻜﻮن ﻗﺎد ًرا ﻋﲆ إ
ﺑﺮاﻣﺠﻚ اﻟﻤﺤﻓ ﻲ اﻟﻌﺪﻳﺪ ﻣﻦ
ﺘ ﻲﺗﺠﺮﻳﻬﺎ ﻋﲆ اﻟﻔﺼﻞ ﻟﻦ ﺛ ًﻘﺎ ﻣﻦ أن اﻟ
ﺘﺤ ﺴﻴﻨﺎ ت اﻟ ﺒﺎرا ت ﻧﺎﺟﺤ ﺔ ﻟﻔﺼﻞﺗﻌﻤﻞ ﻋﻠﻴﻪ ،ﻓﻴﻤﻜﻨﻚ أنﺗﻜﻮن وا
ﺘﻛﺎﻧ ﺖ ﻟﺪﻳﻚ اﺧ
ﺗﻜ ﺴﺮﺳﻠﻮك اﻹﻳﺠﺎر اﻟﺤﺎﻟ ﻲ ﻋﻦ ﻃﺮﻳﻖ اﻟﺨﻄﺄ.
ﺘﺄﻛﻴﺪ
ﺘﻨﻮﻋ ﺔ ﻣﻦ ﻃﺮق اﻟ
ﻣﺠﻤﻮﻋ ﺔ ﻣ
ﺘﺄﻛﻴﺪ ﻓ ﻲ ﻓﺌ ﺔ unittest.TestCase .
ﺗﻮﻓﺮ Pythonﻋﺪدًا ﻣﻦ ﻋﻤﻠﻴﺎ ت اﻟ
ﺑﻚﺘﻘﺪ أﻧﻪ ﺻﺤﻴﺢ ﻓ ﻲ ﻧﻘﻄ ﺔ ﻣﻌﻴﻨ ﺔ ﻓ ﻲ اﻟﻜﻮد اﻟﺨﺎص
ﺘﺄﻛﻴﺪ ﻣﺎ إذا ﻛﺎن اﻟﺸﺮط اﻟﺬيﺗﻌ
ﺒﺮ ﻃﺮق اﻟ
ﺘﺑ ًﻘﺎ ،اﺧ
ﻛﻤﺎ ذﻛﺮﻧﺎﺳﺎ
ﺒﺮﻧﺎﻣﺞ ؛
ﺘﺮاﺿﻚ ﺣﻮل ﻛﻴﻔﻴ ﺔﺗﺼﺮف ﻫﺬا اﻟﺠﺰء ﻣﻦ اﻟ
ﺘﻢﺗﺄﻛﻴﺪ اﻓ
ﺘﻮﻗﻊ ،ﻓ ﺴﻴ
ﺑﺎﻟﻔﻌﻞ .إذا ﻛﺎن اﻟﺸﺮط ﺻﺤﻴﺤًﺎ ﻛﻤﺎ ﻫﻮ ﻣﺻﺤﻴﺤًﺎ
ﺘﺮﺿﻪ ﺻﺤﻴﺤًﺎ ﻫﻮ ﻓ ﻲ اﻟﻮاﻗﻊ ﻏﻴﺮ ﺻﺤﻴﺢ ،ﻓﺈن
ﺛﻘ ﺔ ﻣﻦ ﻋﺪم وﺟﻮد أﺧﻄﺎء .إذا ﻛﺎن اﻟﺸﺮط اﻟﺬيﺗﻔﻳﻤﻜﻨﻚ أنﺗﻜﻮن ﻋﲆ
ﺜﻨﺎءً.
ﺘﺜﻴﺮ اﺳ
ﺜﻮنﺗ
ﺑﺎﻳ
ﺘﻲ
ﺘﺤﻘﻖ ﻣﻦ أن اﻟﻘﻴﻢ اﻟ
ﺘﺨﺪام ﻫﺬه اﻟﻄﺮق ،ﻳﻤﻜﻨﻚ اﻟ
ﺑﺎﺳﺘﺨﺪام.
ﺘ ﺔ ﻃﺮقﺗﺄﻛﻴﺪ ﺷﺎﺋﻌ ﺔ اﻻﺳ
ﻳﺼﻒ اﻟﺠﺪول 11-1ﺳ
ﺘﻮﻗﻌ ﺔ ،وأن اﻟﻘﻴﻢ ﻫ ﻲ Trueأو False ،وأن اﻟﻘﻴﻢ ﻣﻮﺟﻮدة أو ﻏﻴﺮ ﻣﻮﺟﻮدة ﻓ ﻲ
ﺗﻢ إرﺟﺎﻋﻬﺎﺗ ﺴﺎوي أو ﻻﺗ ﺴﺎوي اﻟﻘﻴﻢ اﻟﻤ
222اﻟﻔﺼﻞ 11
Machine Translated by Google
ﺘﺨﺪام ﻫﺬه اﻟﻄﺮق ﻓﻘﻂ ﻓ ﻲ اﻟﻔﺼﻞ اﻟﺬيﻳﺮ ث ﻣﻦ ﻏﻴﺮ اﻷﺻﺢ ﻗﺎﺋﻤ ﺔ.ﻳﻤﻜﻨﻚ اﺳ
ﺒﺎر اﻟﻔﺼﻞ
ﺘﺘﺨﺪام إﺣﺪى ﻫﺬه اﻟﻄﺮق ﻓ ﻲ اﻟﻨﺺ اﻟﺨﺎدع ﻻﺧ
ﺒﺎر ،ﻟﺬﻟﻚ دﻋﻮﻧﺎ ﻧﻠﻘ ﻲ ﻧﻈﺮة ﻋﲆ ﻛﻴﻔﻴ ﺔ اﺳ
ﺘ.ﺣﺎﻟ ﺔ اﻻﺧ
اﻟﻔﻌﻠ ﻲ.
ﺘﺨﺪم
ﻳﺴ ﻃﺮﻳﻘ ﺔ
ﺒﺎر
ﺘﻓﺌ ﺔ ﻟﻼﺧ
ﺑﻌﺾﺒﺎرﺳﻠﻮك اﻟﻄﺮق ﻓ ﻲ اﻟﻔﺼﻞ .وﻟﻜﻦ ﻫﻨﺎك ﺘ ﺜﻴﺮ ﻣﻦ ﻋﻤﻠﻚ اﺧﺘﻀﻤﻦ اﻟﻜ ﺒﺎر وﻇﻴﻔ ﺔ -ﻳﺘﺒﺎر اﻟﻔﺼﻞ اﺧﺘﺒﻪ اﺧ
ﻳﺸ
ﺘﻄﻼﻋﺎ ت ً
ﻓﺼﻼ دراﺳ ًﻴﺎﻳ ﺴﺎﻋﺪ ﻓ ﻲ إدارة اﻻﺳ ﺒﺎركﺘﺒﺎره .ﺿﻊ ﻓ ﻲ اﻋ
ﺘ ً
ﻓﺼﻼ ﻻﺧ ﺘﺐ ﺘﻼﻓﺎ ت ،ﻟﺬﻟﻚ دﻋﻮﻧﺎ ﻧﻜاﻻﺧ
اﻟﻤﺠﻬﻮﻟ ﺔ:
ﺗ ﻲ ،ﺳﺆال(:
__ )u def __initذا
ﺘﺨﺰﻳﻦ اﻟﺮدود"" ".
ﺘﻌﺪاد ﻟ
ﺗﺨﺰﻳﻦﺳﺆال واﻻﺳ
"""
ﺗ ﻲ =ﺳﺆال
اﻟ ﺴﺆال اﻟﺬا
][ = self.responses
ﺗ ﻲ(:
)v def show_questionذا
ﺘﻄﻼع"" ".
"""إﻇﻬﺎرﺳﺆال اﻻﺳ
ﺒﺎﻋ ﺔ )ﺳﺆال(
ﻃ
ﺗ ﻲ(:
)x def show_resultsذا
ﺘ ﻲﺗﻢﺗﻘﺪﻳﻤﻬﺎ"" ".
"""إﻇﻬﺎر ﻛﺎﻓ ﺔ اﻟﺮدود اﻟ
ﺘﻄﻼع(":
ﺘﺎﺋﺞ اﻻﺳ
ﺒﺎﻋ ﺔ )"ﻧ
ﻃ
ﻟﻠﺮد ﻋﲆ اﻟﺮدود:
ﺑ ﺔ(
ﺘﺠﺎ
ﺒﺎﻋ ﺔ ('-' +اﺳ
ﻃ
ﺒﺎﻋ ﺔ ً
ﻃﺮﻗﺎ ﻟﻄ ﺘﻠﻚ اﻟﻔﺼﻞ
ﺘﺨﺰﻳﻦ اﻟﺮدود.ﻳﻤ
ﺘﻀﻤﻦ ﻗﺎﺋﻤ ﺔ ﻓﺎرﻏ ﺔ ﻟ
ﺒﻴﺎنﺗﻘﺪﻣﻪ ﻟﻚ وﻳ
ﺘﺑ ﺴﺆال اﺳﺒﺪأ ﻫﺬا اﻟﻔﺼﻞ
ﻳ
ﺒﺎﻋ ﺔ ﺟﻤﻴﻊ اﻟﺮدود اﻟﻤﺨﺰﻧ ﺔ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ x.ﻹﻧﺸﺎء
ﺑﺎ ت w ،وﻃ
ﺑ ﺔ ﺟﺪﻳﺪة إﱃ ﻗﺎﺋﻤ ﺔ اﻹﺟﺎ
ﺘﻄﻼع v ،وإﺿﺎﻓ ﺔ إﺟﺎ
ﺳﺆال اﻻﺳ
ﺜﻴﻞ ﻣﻦ ﻫﺬه اﻟﻔﺌ ﺔ ،ﻛﻞ ﻣﺎ ﻋﻠﻴﻚ
ﻣ
ﺘﺨﺪم اﻟﻔﺼﻞ:
ﺑﺮﻧﺎﻣﺠًﺎﻳ ﺴﺘﺐ
ﺒﺎ ت أن اﻟﻔﺼﻞ اﻟﺪراﺳ ﻲ AnonymousSurveyﻳﻌﻤﻞ ،ﻓﻠﻨﻜ
ﺛﻹ
ﺑ ﺔ(
ﺘﺠﺎ
)my_survey.store_responseاﺳ
ﺘﻄﻼع.
ﺘﺎﺋﺞ اﻻﺳ
#إﻇﻬﺎر ﻧ
ﺘﻄﻼع!"(
ﺒﺎﻋ ﺔ ("\ nﺷﻜ ﺮًا ﻟﻜﻞ ﻣﻦ ﺷﺎرك ﻓ ﻲ اﻻﺳ
ﻃ
)( my_survey.show_results
ﺑﻬﺎﻷول ﻣﺮة؟ﺘﺤﺪ ث
ﺘ ﻲﺗﻌﻠﻤ ﺖ اﻟ
ﻣﺎ ﻫ ﻲ اﻟﻠﻐ ﺔ اﻟ
أدﺧﻞ ""qﻓ ﻲ أي وﻗ ﺖ ﻟﻺﻧﻬﺎء.
اﻟﻠﻐ ﺔ :اﻹﻧﺠﻠﻴﺰﻳ ﺔ
ﺒﺎﻧﻴ ﺔ
اﻟﻠﻐ ﺔ :اﻻﺳ
اﻟﻠﻐ ﺔ :اﻹﻧﺠﻠﻴﺰﻳ ﺔ
اﻟﻠﻐ ﺔ :اﻟﻤﺎﻧﺪرﻳﻦ
اﻟﻠﻐ ﺔq :
ﺘﻄﻼع!
ﺷﻜﺮا ﻟﻜﻞ ﻣﻦ ﺷﺎرك ﻓ ﻲ اﻻﺳ
ﺒﺎﻧﻴ ﺔ -اﻹﻧﺠﻠﻴﺰﻳ ﺔ
ﺘﻄﻼع- :اﻹﻧﺠﻠﻴﺰﻳ ﺔ -اﻹﺳ
ﺘﺎﺋﺞ اﻻﺳ
ﻧ
-اﻟﻤﺎﻧﺪرﻳﻦ
224اﻟﻔﺼﻞ 11
Machine Translated by Google
ﺒﺎر ﻓﺌ ﺔ AnonymousSurvey
ﺘاﺧ
ﺑﻬﺎ AnonymousSurvey .ﺘﺼﺮف
ﺘ ﻲﻳ
ﺘﺤﻘﻖ ﻣﻦ أﺣﺪ ﺟﻮاﻧ ﺐ اﻟﻄﺮﻳﻘ ﺔ اﻟ
ﺒﺎ ًراﻳ
ﺘﺘ ﺐ اﺧ
دﻋﻨﺎ ﻧﻜ
ﺘﺤﻘﻖ
ﺑﻊ )( assertInﻟﻠ
ﺘﺎ
ﺘﺨﺪم اﻟ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ.ﺳﻨ ﺴﺘﻄﻼع
ﺑ ﺔ واﺣﺪة ﻟ ﺴﺆال اﻻﺳ
ﺘﺤﻘﻖ ﻣﻦﺗﺨﺰﻳﻦ إﺟﺎ
ﺒﺎ ًرا ﻟﻠ
ﺘﺘ ﺐ اﺧ
ﺳﻨﻜ
ﺑﻌﺪﺗﺨﺰﻳﻨﻪ:ﻣﻦ وﺟﻮد اﻟﺮد ﻓ ﻲ ﻗﺎﺋﻤ ﺔ اﻟﺮدود
ﺘﺤﺎن_
اﻣ ﺘﻴﺮاد unittest
اﺳ
Survey.py ﺘﻴﺮاد AnonymousSurvey
ﻣﻦ ﻣ ﺴﺢ اﺳ
)( unittest.main
ﺒﺎر اﻟﺨﺎﺻ ﺔ
ﺘﺒﺎر ﻫﺎ AnonymousSurvey. ،ﻧﻄﻠﻖ ﻋﲆ ﺣﺎﻟ ﺔ اﻻﺧ
ﺘﺘ ﻲ ﻧﺮﻳﺪ اﺧ
ﺘﻴﺮاد اﻟﻮﺣﺪة اﻟﻨﻤﻄﻴ ﺔ واﻟﻔﺌ ﺔ اﻟ
ﺑﺎﺳﺒﺪأ
ﻧ
ﺒﺎر اﻷوﱃ ﻣﻦ
ﺘﺘﺤﻘﻖ ﻃﺮﻳﻘ ﺔ اﻻﺧ
ﺘﺘ ﻲﺗﺮ ث ﻣﺮة أﺧﺮى ﻣﻦ unittest.TestCase u.ﺳ
ﺑﻨﺎ TestAnonymousSurvey ،واﻟ
ﺘﻄﻼع .اﺳﻢ وﺻﻔ ﻲ ﺟﻴﺪ ﻟﻬﺬه
ﺑ ﺔ ﻓ ﻲ ﻗﺎﺋﻤ ﺔ ردود اﻻﺳ
ﺑﺎﻹﺟﺎﺘﻬ ﻲ اﻷﻣﺮ
ﺘﻄﻼع ،ﻳﻨ
ﺑ ﺔ ﻟ ﺴﺆال اﻻﺳ
ﺘﺨﺰﻳﻦ إﺟﺎ
ﺑأﻧﻪ ﻋﻨﺪﻣﺎ ﻧﻘﻮم
ﺒﺎر ،ﻓ ﺴﻨﻌﻠﻢ ﻣﻦ اﺳﻢ اﻟﻄﺮﻳﻘ ﺔ اﻟﻤﻮﺿﺢ ﻓ ﻲ
ﺘاﻟﻄﺮﻳﻘ ﺔ ﻫﻮ test_store_single_response () v.إذا ﻓﺸﻞ ﻫﺬا اﻻﺧ
ﺘﻄﻼع.
ﺑ ﺔ واﺣﺪة ﻟﻼﺳ
ﺘﺠﺎ
ﺒﺎر اﻟﻔﺎﺷﻞ أن ﻫﻨﺎك ﻣﺸﻜﻠ ﺔ ﻓ ﻲﺗﺨﺰﻳﻦ اﺳ
ﺘﻣﺨﺮﺟﺎ ت اﻻﺧ
ﺒﺎر:
ﺘﻋﻨﺪﻣﺎ ﻧﺠﺮي test_survey.py ،ﻳﻨﺠﺢ اﻻﺧ
.
-------------------------------------------------- --------------------
ﺛﺎﻧﻴ ﺔ
ﺒﺎر واﺣﺪ ﻓ ﻲ 0.001
ﺘﺗﻢ إﺟﺮاء اﺧ
ﻧﻌﻢ
ﺘﻴﺮاد unittest
اﺳ
ﺘﻴﺮاد AnonymousSurvey
ﻣﻦ ﻣ ﺴﺢ اﺳ
اﻟﺨﺎﻣ ﺲ
ﻟﻠﺮد ﻋﲆ اﻟﺮدود:
)self.assertIn (response، my_survey.responses
)( unittest.main
ﺑ ﺔ واﺣﺪة و
ﺘﺠﺎ
ﺒﺎرﻳﻦ )ﻻﺳ
ﺘﻋﻨﺪﻣﺎ ﻧﺠﺮي test_survey.pyﻣﺮة أﺧﺮى ،ﻓﺈن ﻛﻼ اﻻﺧ
ﺘﻴﺎز:
ﺛ ﺔ ردود( اﺟ
ﺜﻼﻟ
..
-------------------------------------------------- --------------------
ﺛﺎﻧﻴ ﺔ
ﺒﺎرا ت ﻓ ﻲ 0.000
ﺘﺗﻢ إﺟﺮاء 2اﺧ
ﻧﻌﻢ
226اﻟﻔﺼﻞ 11
Machine Translated by Google
ﻃﺮﻳﻘ ﺔ )( setUp
ﺑﺎ ت ﺟﺪﻳﺪة
ﺘﺠﺎ
ﺑﺈﻧﺸﺎء اﺳﺒﺎر ،وﻗﻤﻨﺎ
ﺘ ﻓ ﻲ test_survey.pyأﻧﺸﺄﻧﺎ ﻣ ً
ﺜﻴﻼ ﺟﺪﻳﺪًا ﻣﻦ AnonymousSurveyﻓ ﻲ ﻛﻞ ﻃﺮﻳﻘ ﺔ اﺧ
ﻓ ﻲ ﻛﻞ ﻃﺮﻳﻘ ﺔ .اﻟﻮﺣﺪة اﻟﻮﺣﻴﺪة
ﺒﺎر
ﺘﺘﺨﺪاﻣﻬﺎ ﻓ ﻲ ﻛﻞ ﻣﻦ ﻃﺮق اﻻﺧ
ﺛﻢ اﺳﺑﺈﻧﺸﺎء ﻫﺬه اﻟﻜﺎﺋﻨﺎ ت ﻣﺮة واﺣﺪةﺘ ﻲﺗ ﺴﻤﺢ ﻟﻚ
ﺘﻮي classﻋﲆ ﻃﺮﻳﻘ ﺔ )( setUpاﻟ
ﻳﺤ
ﺘﻀﻤﻴﻦ )( setUp
ﺑﺑﻚ .ﻋﻨﺪﻣﺎﺗﻘﻮماﻟﺨﺎﺻ ﺔ
ﺑﺪءًا ﻣﻦ test_.أي ﻛﺎﺋﻨﺎ تﺗﻢﺒﻞﺗﺸﻐﻴﻞ ﻛﻞ ﻃﺮﻳﻘ ﺔ
ﺘﺸﻐﻴﻞ ﻃﺮﻳﻘ ﺔ )( setUpﻗ
ﺑﺗﻘﻮم Python
ﻓ ﻲ ﻓﺌ ﺔ TestCase ،
ﺒﻬﺎ.
ﺘﺒﺎرﺗﻜ
ﺘﺘﺎﺣ ﺔ ﻓ ﻲ ﻛﻞ ﻃﺮﻳﻘ ﺔ اﺧ
ﺗﻜﻮن ﻣ
إﻧﺸﺎؤ ﻫﺎ ﻓ ﻲ ﻃﺮﻳﻘ ﺔ )( setUp
ﺘﺨﺪاﻣﻬﺎ ﻓ ﻲ )(
ﺘ ﻲﻳﻤﻜﻦ اﺳ
ﺘﻄﻼع وﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻟﺮدود اﻟ
ﺜﻴﻞ اﺳ
ﺘﺨﺪم )( setUpﻹﻧﺸﺎء ﻣ
ﻟﻨ ﺴ
test_store_single_responseو test_store_three_responses ():
ﺘﻴﺮاد unittest
اﺳ
ﺘﻴﺮاد AnonymousSurvey
ﻣﻦ ﻣ ﺴﺢ اﺳ
ﺗ ﻲ(:
ﺗﻌﻴﻴﻦ )def setUpذا
""
ﺒﺎر.
ﺘﺘﺨﺪاﻣﻬﺎ ﻓ ﻲ ﺟﻤﻴﻊ ﻃﺮق اﻻﺧ
ﺘﻄﻼع وﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻟﺮدود ﻻﺳ
ﺑﺈﻧﺸﺎء اﺳﻗﻢ
""
ﺑﻬﺎﻷول ﻣﺮة؟"ﺘﺤﺪ ث
ﺘ ﻲﺗﻌﻠﻤ ﺖ اﻟ
= "questionﻣﺎ ﻫ ﻲ اﻟﻠﻐ ﺔ اﻟ
اﻷﺷﻌ ﺔ ﻓﻮق
)self.my_survey = AnonymousSurveyﺳﺆال(
ﺒﻨﻔ ﺴﺠﻴ ﺔ
اﻟ
]'self.responses = ['English'، 'Spanish'، 'Mandarin
)( unittest.main
ﺑﺸﻜﻞﺒﺎرا ت ﻣﻔﻴﺪة
ﺘﺘﻜﻮن ﻫﺬه اﻻﺧ
ﺘﺎزان.ﺳ
ﺒﺎرﻳﻦﻳﺠ
ﺘﻋﻨﺪﻣﺎ ﻧﺠﺮي test_survey.pyﻣﺮة أﺧﺮى ،ﻻﻳﺰال ﻛﻼ اﻻﺧ
ﺒﻮل
ﺑﻌﺪﺗﻌﺪﻳﻞ اﻟﻜﻮد ﻟﻘﺘﻌﺪدة ﻟﻜﻞ ﺷﺨﺺ.
ﺑﺎ ت ﻣ
ﺘﺠﺎ
ﺘﻌﺎﻣﻞ ﻣﻊ اﺳ
ﺧﺎص ﻋﻨﺪ ﻣﺤﺎوﻟ ﺔﺗﻮﺳﻴﻊ AnonymousSurveyﻟﻠ
ﺘﻌﺪدة
ﻣ
ﺑ ﺔ.
ﺘﺎ
ﺒﺎر أﺳﻬﻞ ﻓ ﻲ اﻟﻜ
ﺘﺑﻚ ،ﻳﻤﻜﻦ ﻟﻄﺮﻳﻘ ﺔ )( setUpأنﺗﺠﻌﻞ ﻃﺮق اﻻﺧﺒﺮ اﻟﻔﺼﻮل اﻟﺪراﺳﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﻋﻨﺪﻣﺎﺗﺨ
ﺒﺎر
ﺘﺘﺨﺪم ﻫﺬه اﻟﺤﺎﻻ ت ﻓ ﻲ ﺟﻤﻴﻊ ﻃﺮق اﻻﺧ
ﺛﻢﺗ ﺴ
ﺜﻴﻼ ت و Attri butesﻓ ﻲ )( setUp
ﺑﻌﻤﻞ ﻣﺠﻤﻮﻋ ﺔ واﺣﺪة ﻣﻦ اﻟﻤﺗﻘﻮم
ﺒﺎر.
ﺘﺜﻠ ﺔ واﻟ ﺴﻤﺎ ت ﻓ ﻲ ﻛﻞ ﻃﺮﻳﻘ ﺔ اﺧ
ﺜﻴﺮ ﻣﻦ إﻧﺸﺎء ﻣﺠﻤﻮﻋ ﺔ ﺟﺪﻳﺪة ﻣﻦ اﻷﻣ
ﺑﻜﺑﻚ .ﻫﺬا أﺳﻬﻞاﻟﺨﺎﺻ ﺔ
ﺑﻨﻔ ﺴﻚﺑﻬﺎ
ﺟﺮ
ﻣﻠﺨﺺ
ﺑﺔﺘﺎ
ﺘﺨﺪام اﻷدوا ت ﻓ ﻲ اﻟﻮﺣﺪة اﻟﻨﻤﻄﻴ ﺔ .ﻟﻘﺪﺗﻌﻠﻤ ﺖ ﻛ
ﺑﺎﺳ ﺒﺎرا ت ﻟﻠﻮﻇﺎﺋﻒ واﻟﻔﺌﺎ ت
ﺘﺑ ﺔ اﺧ
ﺘﺎ
ﺗﻌﻠﻤ ﺖ ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ﻛ
ﺘﺤﻘﻖ ﻣﻦﺳﻠﻮﻛﻴﺎ ت ﻣﻌﻴﻨ ﺔﻳﺠ ﺐ أنﺗﻈﻬﺮ ﻫﺎ ﺒﺎرﺗﺘﺑ ﺔ ﻃﺮق اﺧ
ﺘﺎ
ﺗﻌﻠﻤ ﺖ ﻛ ﻓﺼﻞ دراﺳ ﻲﻳﺮ ث ﻣﻦ unittest.TestCase ،و
ﺘﻲ
ﺑﻚ واﻟﺑﻜﻔﺎءة ﻣﻦ اﻟﻔﺌﺎ ت اﻟﺨﺎﺻ ﺔﺜﻴﻼ ت وﺳﻤﺎ ت
ﺘﺨﺪام ﻃﺮﻳﻘ ﺔ )( setUpﻹﻧﺸﺎء ﻣ
وﻇﺎﺋﻔﻚ وﻓﺼﻮﻟﻚ .ﻟﻘﺪﺗﻌﻠﻤ ﺖ اﺳ
ﺒﺎر ﻟﻠﻔﺼﻞ اﻟﺪراﺳ ﻲ.
ﺘﺘﺨﺪاﻣﻬﺎ ﻓ ﻲ ﺟﻤﻴﻊ ﻃﺮق اﻻﺧ
ﻳﻤﻜﻦ اﺳ
ﺒ ﺴﻴﻄ ﺔ
ﺒﺎرا ت ﻟﺠﻤﻴﻊ اﻟﻤﺸﺎرﻳﻊ اﻟ
ﺘﺑ ﺔ اﺧ
ﺘﺎ
ﺘﺪﺋﻴﻦ .ﻟ ﺴ ﺖ ﻣﻀﻄ ﺮًا ﻟﻜ
ﺒﺜﻴﺮ ﻣﻦ اﻟﻤ
ﺘﻌﻠﻤﻪ اﻟﻜ
ﻣﻬﻤﺎ ﻻﻳ
ً ﺒﺎر ﻣﻮﺿﻮﻋً ﺎ
ﺘﻳﻌﺪ اﻻﺧ
ﺒﺮ
ﺘﺒﻴﺮة ،ﻳﺠ ﺐ أنﺗﺨ
ﺘ ﻲﺗﻨﻄﻮي ﻋﲆ ﺟﻬﻮد إﻧﻤﺎﺋﻴ ﺔ ﻛ
ﺒﺪأ اﻟﻌﻤﻞ ﻓ ﻲ اﻟﻤﺸﺎرﻳﻊ اﻟ
ﺑﻤﺠﺮد أنﺗﺘﺪئ .وﻟﻜﻦ
ﺒﺑﻬﺎ ﻛﻤ
ﺘ ﻲﺗﺠﺮ
اﻟ
اﻟ ﺴﻠﻮﻛﻴﺎ ت اﻟﺤﺮﺟ ﺔ ﻟﻮﻇﺎﺋﻔﻚ وﻓﺼﻮﻟﻚ.
228اﻟﻔﺼﻞ 11
Machine Translated by Google
ﺒﺮ ﻓ ﻲ
ﺑﺮاﺣ ﺔ أﻛﺒﺎرا ت اﻷوﻟﻴ ﺔ.ﺳﻴﺸﻌﺮون
ﺘﺑﻌﺾ اﻻﺧﺘﻀﻤﻴﻦ
ﺑﺜﺮ إذا ﻗﻤ ﺖ
ﺒﺮﻣﺠﻮن اﻵﺧﺮون ﻣﺸﺎرﻳﻌﻚ أﻛ
ﺘﺮم اﻟﻤ
ﻳﺤ
ﺘﻌﺪادًا ﻟﻠﻌﻤﻞ ﻣﻌﻚ ﻓ ﻲ اﻟﻤﺸﺎرﻳﻊ .إذا ﻛﻨ ﺖﺗﺮﻏ ﺐ ﻓ ﻲ اﻟﻤ ﺴﺎ ﻫﻤ ﺔ ﻓ ﻲ ﻣﺸﺮوع
ﺜﺮ اﺳ
ﺑﻚ وﺳﻴﻜﻮﻧﻮن أﻛﺑ ﺔ اﻟﻜﻮد اﻟﺨﺎص
ﺗﺠﺮ
ﺑﺔ
ﺘﺎ ً
ﻋﺎدة ﻛ ﺘﻮﻗﻊ ﻣﻨﻚ
ﺒﺎرا ت اﻟﺤﺎﻟﻴ ﺔ ،وﻳ
ُ ﺘﺘﺎز اﻻﺧ ُﻈﻬﺮ أن ﺷﻔﺮ
ﺗﻚﺗﺠ ﺘﻮﻗﻊ أنﺗ
ﺒﺮﻣﺠﻮن آﺧﺮون ،ﻓﻤﻦ اﻟﻤ
ﻳﻌﻤﻞ ﻋﻠﻴﻪ ﻣ
ﺒﺎرا ت ﻟﻠ ﺴﻠﻮك اﻟﺠﺪﻳﺪ اﻟﺬيﺗﻘﺪﻣﻪ إﱃ اﻟﻤﺸﺮوع.
ﺘاﺧ
ﺜﺎﻧ ﻲ
اﻟﺠﺰء اﻟ
Proje cts
ﺗﻴ ﺐ
ﺘﺮﺑﺎﻟﺑﺄي ﻣﻦ ﻫﺬه اﻟﻤﺸﺎرﻳﻊ أو ﺟﻤﻴﻌﻬﺎﺘﻴﺎر اﻟﻘﻴﺎم
ﺛ ﺔ أﻧﻮاع ﻣﻦ اﻟﻤﺸﺎرﻳﻊ ،وﻳﻤﻜﻨﻚ اﺧ
ﺛﻼﺜﺎﻧ ﻲ ﻋﲆ
ﺘﻮي اﻟﺠﺰء اﻟ
ﻳﺤ
ﺒﺤ ﺚ ﻓﻴﻪ أوﻻً.
ﺗﻚ ﻓ ﻲﺗﺤﺪﻳﺪ أي ﻣﺸﺮوعﺗﺮﻳﺪ اﻟ
اﻟﺬيﺗﺮﻳﺪه .ﻓﻴﻤﺎﻳﻠ ﻲ وﺻﻒ ﻣﻮﺟﺰ ﻟﻜﻞ ﻣﺸﺮوع ﻟﻤ ﺴﺎﻋﺪ
ﺜﻮن
ﺑﻴﺒﺔ
ﺒ ﻲ :ﺻﻨﻊ ﻟﻌ
اﻟﻐﺰو اﻷﺟﻨ
ﺑﻌﺎدﻳﻜﻮن
ﺛﻨﺎﺋﻴ ﺔ اﻷﺒﺔ
ﺘﻄﻮﻳﺮ ﻟﻌ
ﺘﺨﺪم ﺣﺰﻣ ﺔ Pygameﻟ
ﺘﺴﻓ ﻲ ﻣﺸﺮوع )Alien Invasionاﻟﻔﺼﻮل 12و 13و 14) ،ﺳ
ﺑ ﺔ .ﻓ ﻲ
ﺘﻮﻳﺎ تﺗﺰﻳﺪ ﻓ ﻲ اﻟ ﺴﺮﻋ ﺔ واﻟﺼﻌﻮ
ﺑﺈﺳﻘﺎط اﻟﺸﺎﺷ ﺔ ﻓ ﻲ ﻣ ﺴﺛﻨﺎء ﻗﻴﺎﻣﻬﻢ
اﻟﻬﺪف ﻓﻴﻬﺎ إﺳﻘﺎط أﺳﻄﻮل ﻣﻦ اﻟﻔﻀﺎﺋﻴﻴﻦ أ
ﺑﻌﺎد ﻓ ﻲ Pygame.
ﺛﻨﺎﺋﻴ ﺔ اﻷﺑﻚ
ﺘﻤﻜﻨﻚ ﻣﻦﺗﻄﻮﻳﺮ أﻟﻌﺎ
ﺘ ﻲﺳ
ﺘﻌﻠﻢ اﻟﻤﻬﺎرا ت اﻟ
ﺘﻧﻬﺎﻳ ﺔ اﻟﻤﺸﺮوع ،ﺳ
ﺋ ﻲ ﻟﻠﻤﻌﻠﻮﻣﺎ ت
ﻋﺮض ﻣﺮ
ﺘﺼﻮرا ت
ﺒﻴﺎﻧﺎ ت وإﻧﺸﺎءﺳﻠ ﺴﻠ ﺔ ﻣﻦ اﻟ
ﺘﻌﻠﻢ إﻧﺸﺎء اﻟ
ﺘﺒﻴﺎﻧﺎ ت ﻓ ﻲ اﻟﻔﺼﻞ اﻟﺨﺎﻣ ﺲ ﻋﺸﺮ ،ﺣﻴ ﺚﺳ
ﺒﺪأ ﻣﺸﺮوعﺗﺼﻮر اﻟ
ﻳ
ﺒﻴﺎﻧﺎ ت ﻣﻦ اﻟﻤﺼﺎدر
ﺘﺨﺪام matplotlibو Pygal.ﻳﻌﻠﻤﻚ اﻟﻔﺼﻞ 16اﻟﻮﺻﻮل إﱃ اﻟ
ﺑﺎﺳﺒﻴﺎﻧﺎ ت
ﺘﻠﻚ اﻟ
اﻟﻮﻇﻴﻔﻴ ﺔ واﻟﺠﻤﻴﻠ ﺔ ﻟ
ﺒﻴﺎﻧﺎ ت اﻟﻄﻘ ﺲ وﺧﺮﻳﻄ ﺔﺳﻜﺎن اﻟﻌﺎﻟﻢ .أﺧﻴ ﺮًا ،اﻟﻔﺼﻞ 17
ﺘﺼﻮر ﻹﻧﺸﺎء ﻣﺨﻄﻄﺎ ت ﻟ
ﺘﺮﻧ ﺖ وإدﺧﺎﻟﻬﺎ ﻓ ﻲ ﺣﺰﻣ ﺔ اﻟ
ﺒﺮ اﻹﻧ
ﻋ
Machine Translated by Google
ﺘﻜﺸﺎف ﻣﺠﺎل
ﺘﺼﻮرا ت اﺳ
ﺘﻴﺢ ﻟﻚﺗﻌﻠﻢ ﻋﻤﻞ اﻟ
ﺗﺼﻮر ﻫﺎﺗﻠﻘﺎﺋ ًﻴﺎ.ﻳ
ﺒﻴﺎﻧﺎ ت و
ﺘﻨﺰﻳﻞ اﻟ
ﺑﺮﻧﺎﻣﺞ ﻟﺑﺔ
ﺘﺎ
ﻳﻮﺿﺢ ﻟﻚ ﻛﻴﻔﻴ ﺔ ﻛ
ﺑ ﺔ ﻟﻠﻐﺎﻳ ﺔ ﻓ ﻲ اﻟﻌﺎﻟﻢ اﻟﻴﻮم.
ﺒﻴﺎﻧﺎ ت ،و ﻫ ﻲ ﻣﻬﺎرة ﻣﻄﻠﻮ
ﺘﻨﻘﻴ ﺐ ﻋﻦ اﻟ
اﻟ
ﺘ ﻲﺗﻌﻠﻤﻮ ﻫﺎ.
ﺘﺮﻳﻮﻣﻴﺎ ت ﺣﻮل أي ﻋﺪد ﻣﻦ اﻟﻤﻮﺿﻮﻋﺎ ت اﻟ
ﺑﺪﻓﺘﻔﺎظ
ﺘﺨﺪﻣﻴﻦ اﻻﺣ
ﺘﻴﺢ ﻟﻠﻤ ﺴ
ﺑ ﺴﻴﻂﻳﺒﻴﻖ وﻳ ﺐ
ﺗﻄ
ﺛﻢ إدﺧﺎل إدﺧﺎﻻ ت ﺣﻮل ﻣﺎﺘﺨﺪم وﻛﻠﻤ ﺔ ﻣﺮور ،وإدﺧﺎل ﻣﻮﺿﻮع ،
ﺑﺎﺳﻢ ﻣ ﺴﺑﺈﻧﺸﺎء ﺣ ﺴﺎ بﺘﺨﺪﻣﻮن ﺳﻴﻘﻮم اﻟﻤ ﺴ
ﺘﻤﻜﻦ أي ﺷﺨﺺ ﻓ ﻲ اﻟﻌﺎﻟﻢ ﻣﻦ اﻟﻮﺻﻮل إﻟﻴﻪ. ﺘﻰﻳﺒﻴﻘﻚ ﺣ ﺘﻌﻠﻢ أ ً
ﻳﻀﺎ ﻛﻴﻔﻴ ﺔ ﻧﺸﺮﺗﻄ ﺘﺘﻌﻠﻤﻮﻧﻪ.ﺳ ﻳ
ﺜﺎﻧ ﻲ
232اﻟﺠﺰء اﻟ
Machine Translated by Google
1 ﻣﺸﺮوع
A li en In va sio n
Machine Translated by Google
Machine Translated by Google
12
AS h ip T hat Fiاﻟﺪﻗ ﺔ اﻟﻨﻘﻄﻴ ﺔ
ﺜﻴﺮ ﻣﻦ
ﺑﺈﻋﺎدةﺗﺸﻜﻴﻞ اﻟﻜﺘﻌﺪدة.ﺳﻨﻘﻮم
ﺒﺮ ﻣﻠﻔﺎ ت ﻣ
ﺘﺪ ﻋ
ﺘ ﻲﺗﻤ
ﺒﻴﺮة اﻟ ﺘﻌﻠﻢ أ ً
ﻳﻀﺎ إدارة اﻟﻤﺸﺎرﻳﻊ اﻟﻜ ﺘﻣﻦ ﻫﺬا اﻟﻔﺼﻞﺳ
ﺘﻮﻳﺎ ت اﻟﻤﻠﻒ ﻟﻠﺤﻔﺎظ ﻋﲆﺗﻨﻈﻴﻢ ﻣﺸﺮوﻋﻨﺎ وﻛﻔﺎءة اﻟﻜﻮد.
ﺒﺮﻣﺠﻴ ﺔ وإدارة ﻣﺤ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
اﻟ
Machine Translated by Google
ﺗﺄﻛﺪ
ﺘﻠﻔ ﺔ ،ﻟﺬا أﻧﺸ ﺊ ﻣﺠﻠﺪًا ﺟﺪﻳﺪًا ﻓ ﻲ ﻧﻈﺎﻣﻚﻳ ﺴﻤﻰ alien_invasion.
ﺘﺪ N ote Alien Invasionﻋﲆ ﻋﺪد ﻣﻦ اﻟﻤﻠﻔﺎ ت اﻟﻤﺨ
ﺳﻮفﻳﻤ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ.ﺘﻴﺮاد
ﺒﺎرا ت اﻻﺳ
ﺘﻰﺗﻌﻤﻞ ﻋ
ﻣﻦ ﺣﻔﻆ ﺟﻤﻴﻊ ﻣﻠﻔﺎ ت اﻟﻤﺸﺮوع ﻓ ﻲ ﻫﺬا اﻟﻤﺠﻠﺪ ﺣ
ﺘﺨﻄﻴﻂ ﻟﻤﺸﺮوﻋﻚ
اﻟ
ﺘﻚ ﻋﲆ
ﺘﺤﺎﻓﻆ ﺧﻄ
ﺑﻚ.ﺳﺒﺮﻣﺠﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑ ﺔ اﻟ
ﺘﺎ
ﺒﺪء ﻓ ﻲ ﻛ
ﺒﻞ اﻟ
ﺒﻴﺮ ،ﻣﻦ اﻟﻤﻬﻢ إﻋﺪاد ﺧﻄ ﺔ ﻗ
ﻋﻨﺪ إﻧﺸﺎء ﻣﺸﺮوع ﻛ
ﺗﺠﻌﻞ ﻣﻦ اﻟﻤﺮﺟﺢ أنﺗﻜﻤﻞ اﻟﻤﺸﺮوع.
ﺗﺮﻛﻴﺰك و
ﺘ ﺐ وﺻ ًﻔﺎﻷﺳﻠﻮ ب اﻟﻠﻌ ﺐ اﻟﻌﺎم .ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أن ﻫﺬا اﻟﻮﺻﻒ ﻻﻳﻐﻄ ﻲ ﻛﻞﺗﻔﺎﺻﻴﻞ Alien Invasion ،إﻻ
دﻋﻨﺎ ﻧﻜ
ﺒ ﺔ:
ﺑﻨﺎء اﻟﻠﻌﺒﺪء ﻓ ﻲ
أﻧﻪﻳﻮﻓﺮ ﻓﻜﺮة واﺿﺤ ﺔ ﻋﻦ ﻛﻴﻔﻴ ﺔ اﻟ
ﺘﺤﻜﻢ اﻟﻼﻋ ﺐ ﻓ ﻲﺳﻔﻴﻨ ﺔﺗﻈﻬﺮ ﻓ ﻲ اﻟﺠﺰء اﻟ ﺴﻔﻠ ﻲ ﻣﻦ وﺳﻂ اﻟﺸﺎﺷ ﺔ.ﻳﻤﻜﻦ ﻟﻼﻋ ﺐ
ﻓ ﻲ Alien Invasion ،ﻳ
ﺘﺎح اﻟﻤ ﺴﺎﻓ ﺔ .ﻋﻨﺪﻣﺎ
ﺘﺨﺪام ﻣﻔ
ﺑﺎﺳﺗﻴﺢ اﻷﺳﻬﻢ وإﻃﻼق اﻟﺮﺻﺎص
ﺘﺨﺪام ﻣﻔﺎ
ﺑﺎﺳﺗﺤﺮﻳﻚ اﻟ ﺴﻔﻴﻨ ﺔﻳﻤﻴﻨًﺎ وﻳ ﺴﺎ ًرا
ﺒﺮ اﻟﺸﺎﺷ ﺔ وأﺳﻔﻠﻬﺎ .اﻟﻼﻋ ﺐﻳﻄﻠﻖ اﻟﻨﺎر وﻳﺪﻣﺮ
ﺘﺤﺮك ﻋ
ﺒ ﺔ ،ﻳﻤﻸ أﺳﻄﻮل ﻣﻦ اﻟﻔﻀﺎﺋﻴﻴﻦ اﻟ ﺴﻤﺎء وﻳ
ﺒﺪأ اﻟﻠﻌ
ﺗ
ﺑﺸﻜﻞﺘﺤﺮك
اﻷﺟﺎﻧ ﺐ .إذا أﻃﻠﻖ اﻟﻼﻋ ﺐ اﻟﻨﺎر ﻋﲆ ﺟﻤﻴﻊ اﻟﻜﺎﺋﻨﺎ ت اﻟﻔﻀﺎﺋﻴ ﺔ ،ﻓ ﺴﻴﻈﻬﺮ أﺳﻄﻮل ﺟﺪﻳﺪﻳ
ﺑ ﺴﻔﻴﻨ ﺔ اﻟﻼﻋ ﺐ أو وﺻﻞ إﱃ أﺳﻔﻞ اﻟﺸﺎﺷ ﺔ ،ﺑﻖ .إذا اﺻﻄﺪم أي ﻛﺎﺋﻦ ﻓﻀﺎﺋ ﻲ
أﺳﺮع ﻣﻦ اﻷﺳﻄﻮل اﻟ ﺴﺎ
ﺒ ﺔ.
ﺘﻬ ﻲ اﻟﻠﻌ
ﺛﻼ ثﺳﻔﻦﺗﻨﻳﻔﻘﺪ اﻟﻼﻋ ﺐﺳﻔﻴﻨ ﺔ .إذا ﺧ ﺴﺮ اﻟﻼﻋ ﺐ
ﺑﺸﻜﻞ ﺻﺤﻴﺢﺘﺤﺮك
ﺘﻄﻮﻳﺮ ،ﺳﻨﺼﻨﻊﺳﻔﻴﻨ ﺔﻳﻤﻜﻨﻬﺎ اﻟ
ﻓ ﻲ اﻟﻤﺮﺣﻠ ﺔ اﻷوﱃ ﻣﻦ اﻟ
ﺑﻌﺪ إﻋﺪاد ﻫﺬاﺘﺎح اﻟﻤ ﺴﺎﻓ ﺔ.
وﻏﺎدر.ﻳﺠ ﺐ أنﺗﻜﻮن اﻟ ﺴﻔﻴﻨ ﺔ ﻗﺎدرة ﻋﲆ إﻃﻼق اﻟﺮﺻﺎص ﻋﻨﺪﻣﺎﻳﻀﻐﻂ اﻟﻼﻋ ﺐ ﻋﲆ ﻣﻔ
ﺗﺤ ﺴﻴﻦ ﻃﺮﻳﻘ ﺔ اﻟﻠﻌ ﺐ.
ﺒﺎ ﻫﻨﺎ إﱃ اﻟﻔﻀﺎﺋﻴﻴﻦ و
ﺘاﻟ ﺴﻠﻮك ،ﻳﻤﻜﻨﻨﺎﺗﺤﻮﻳﻞ اﻧ
ﺒﻴ ﺖ Pygame
ﺜﺗ
ﺑﺬﻟﻚ ﻋﲆ Linuxو OS Xو Windows.ﺒﻴ ﺖ Pygame.إﻟﻴﻚ ﻛﻴﻔﻴ ﺔ اﻟﻘﻴﺎم
ﺜﺘﺑﺒﺮﻣﺠ ﺔ ،ﻗﻢ
ﺒﺪأ ﻓ ﻲ اﻟ
ﺒﻞ أنﺗ
ﻗ
Microsoft
ﺒﻴ ﺖ pip
ﺜﺘﺘﺨﺪام pipﻟ
ﺘﺎج إﱃ اﺳ
ﺘﺤﺘﺨﺪم OS X ،ﻓ ﺴ
ﺘﺨﺪم Python 3ﻋﲆ Linuxأو إذا ﻛﻨ ﺖﺗ ﺴ
إذا ﻛﻨ ﺖﺗ ﺴ
ﺒﻴ ﺖ اﻟﺤﺰم
ﺜﺘﺎﻟﻴ ﺔ ﻛﻴﻔﻴ ﺔﺗ
ﺘﻮﺿﺢ ﻟﻚ اﻷﻗ ﺴﺎم اﻟ
ﺑ ﺔ ﻋﻨﻚ.ﺳ
ﺘﻬﺎ ﻧﻴﺎ
ﺒﻴﺜ
ﺗﺘﻌﺎﻣﻞ ﻣﻊﺗﻨﺰﻳﻞ ﺣﺰم Pythonو
ﺑﺮﻧﺎﻣﺞﻳ Pygame.ﻫﻮ
ﺑﺎﻟﻨﻘﻄ ﺔ.
ﺒﻴ ﺖ
ﺜﺘﺘﺎج إﱃ pipﻟ
ﺘﺨﺪم Windows ،ﻓﻠﻦﺗﺤ
ﺘﺨﺪم Python 2.7ﻋﲆ Linuxأو إذا ﻛﻨ ﺖﺗ ﺴ
إذا ﻛﻨ ﺖﺗ ﺴ
ﺒﻴ ﺖ Pygameﻋﲆ
ﺜﺗﺒﻴ ﺖ Pygameﻋﲆ "Linuxﻓ ﻲ اﻟﺼﻔﺤ ﺔ 238أو "
ﺜﺗ ﺑﺪﻻ ً ﻣﻦ ذﻟﻚ ،اﻧ
ﺘﻘﻞ إﱃ " Pygame.
"Windowsﻓ ﻲ اﻟﺼﻔﺤ ﺔ 240.
236اﻟﻔﺼﻞ 12
Machine Translated by Google
ﺒﻴﺎﻧﺎ ت وﻣﺸﺎرﻳﻊ
ﺘﺼﻮر اﻟ
ﺘﺎج إﱃ pipﻟ
ﺘﺤﺘﺎﻟﻴ ﺔﻷﻧﻚﺳ
ﺒﻴ ﺖ pipﻋﲆ ﺟﻤﻴﻊ اﻷﻧﻈﻤ ﺔ ﻓ ﻲ اﻷﻗ ﺴﺎم اﻟ
ﺜﺘﺘﻢﺗﻀﻤﻴﻦ إرﺷﺎدا ت N oteﻟ
ﻳ
ﺘﺮﻧ ﺖ ﻋﲆ https: //www.nostarch
ﺒﺮ اﻹﻧ ﺘﻌﻠﻴﻤﺎ ت أ ً
ﻳﻀﺎ ﻓ ﻲ اﻟﻤﻮارد ﻋ ﺘﻢﺗﻀﻤﻴﻦ ﻫﺬه اﻟ
ﺒﻴﻘﺎ ت اﻟﻮﻳ ﺐ.ﻳ
ﺗﻄ
ﺑﻨﻘﻄ ﺔ
ﺒﻴ ﺖ ﺣﺰم Python
ﺜﺗ
ﺑﺎﻟﻔﻌﻞ ﻋﲆ ﻧﻈﺎﻣﻚ .ﻣﻊﺘ ﺔ ،ﻟﺬاﺗﺤﻘﻖ أوﻻ ً ﻣﻤﺎ إذا ﻛﺎﻧ ﺖ اﻟﻨﻘﻄ ﺔ ﻣﻮﺟﻮدة
ﺒﺜﺑﻨﻘﻄ ﺔ ﻣﺗ ﻲ أﺣﺪ ث إﺻﺪارا ت Pythonﻣﺰودة
ﺗﺄ
ﺗ ﺴﻤﻰ اﻟﻨﻘﻄ ﺔ أﺣﻴﺎﻧًﺎ اﻟﻨﻘﻄ ﺔ 3.
Python 3 ،
ﺘﺎﻟ ﻲ:
ﺘﺢ ﻧﺎﻓﺬة ﻃﺮﻓﻴ ﺔ وأدﺧﻞ اﻷﻣﺮ اﻟ
اﻓ
$ﻧﻘﻄ ﺔ -اﻹﺻﺪار
u pip 7.0.3ﻣﻦ usr/local/lib/python3.5/dist-packages (python 3.5)/
$
ﺑﺈﺻﺪار Pythonاﻟﺬيﺒﻄ ﺔ
ﺗﺘﺄﻛﺪ ﻣﻦ أن اﻟﻨﻘﻄ ﺔ ﻣﺮ
ﺜﺮ ﻣﻦ إﺻﺪار واﺣﺪ ﻣﻦ Pythonﻋﲆ ﻧﻈﺎﻣﻚ ،ﻓ
إذا ﻛﺎن ﻟﺪﻳﻚ أﻛ
ﺘﻘﻞ
ﺑﺎﻹﺻﺪار اﻟﺼﺤﻴﺢ ﻣﻦ Python ،ﻓﺎﻧﺒﻄ ﺔ
ﺗﺜﺎل python 3.5 at u. ،إذا ﻛﺎﻧ ﺖ اﻟﻨﻘﻄ ﺔ ﻣﺮ
ﺒﻴﻞ اﻟﻤ
ﺘﺨﺪﻣﻪ -ﻋﲆﺳ
ﺗﺴ
ﺒﻴ ﺖ Pygameﻋﲆ "OS Xﻓ ﻲ اﻟﺼﻔﺤ ﺔ 239.إذا ﻛﺎﻧ ﺖ
ﺜﺗﺒﻴ ﺖ Pygameﻋﲆ "Linuxﻓ ﻲ اﻟﺼﻔﺤ ﺔ 238أو "
ﺜﺗإﱃ "
ﺑﺪﻻ ً ﻣﻦ ذﻟﻚ .ﻣﻦ اﻟﻨﻘﻄ ﺔ .إذا ﻟﻢﻳﻌﻤﻞ أي ﻣﻦ
ﺘﺨﺪام pip3
ﺑﺈﺻﺪار ﺧﺎﻃ ﺊ ﻣﻦ Python ،ﻓﺤﺎول اﺳﺒﻄ ﺔ
ﺗاﻟﻨﻘﻄ ﺔ ﻣﺮ
ﺘﻘﻞ إﱃ ""Installing pipﻓ ﻲ اﻟﺼﻔﺤ ﺔ 238.
ﺘﺨﺪﻣﻪ ،ﻓﺎﻧ
اﻷﻣﺮﻳﻦ ﻣﻊ إﺻﺪار Pythonاﻟﺬيﺗ ﺴ
ﺘﺎﻟ ﻲ:
ﺘﺢ ﻧﺎﻓﺬة ﻃﺮﻓﻴ ﺔ وأدﺧﻞ اﻷﻣﺮ اﻟ
اﻓ
ﺒﻴ ﺖ
ﺜﺗﺘﻘﻞ إﱃ "
ﺑﻬً ﺎ ﻟﻬﺬا ،ﻓﺎﻧ
ﺟﺎ ﻣﺸﺎ
ﺘًﺎ ورأﻳ ﺖ إﺧﺮا ً
ﺒﺜﺘﻮي ﻋﲆ إﺻﺪار واﺣﺪ ﻓﻘﻂ ﻣﻦ Pythonﻣ
إذا ﻛﺎن ﻧﻈﺎﻣﻚﻳﺤ
ﺑﺪﻻ ً ﻣﻦ pip .إذا ﻟﻢﻳ
ﺘﻢ ﺘﺨﺪام pip3
Pygameﻋﲆ "Windowsﻓ ﻲ اﻟﺼﻔﺤ ﺔ 240.إذاﺗﻠﻘﻴ ﺖ رﺳﺎﻟ ﺔ ﺧﻄﺄ ،ﻓﺤﺎول اﺳ
ﺒﻴ ﺖ ﻧﻘﻄ ﺔ" ﻓ ﻲ اﻟﺼﻔﺤ ﺔ 238.
ﺜﺗﺘﻘﻞ إﱃ "
ﺒﻴ ﺖ أي ﻣﻦ اﻹﺻﺪارﻳﻦ ﻋﲆ ﻧﻈﺎﻣﻚ ،ﻓﺎﻧ
ﺜﺗ
ﺑﺈﺻﺪارﺒﻄ ﺔ
ﺗﺘﺄﻛﺪ ﻣﻦ أن اﻟﻨﻘﻄ ﺔ ﻣﺮ
ﺘًﺎ ،ﻓ
ﺒﺜﺜﺮ ﻣﻦ إﺻﺪار واﺣﺪ ﻣﻦ Pythonﻣ
ﺘﻮي ﻋﲆ أﻛ
إذا ﻛﺎن ﻧﻈﺎﻣﻚﻳﺤ
ﺑﺎﻹﺻﺪار اﻟﺼﺤﻴﺢ ﻣﻦﺒﻄ ﺔ
ﺗﺜﺎل python 3.5 at u. ،إذا ﻛﺎﻧ ﺖ اﻟﻨﻘﻄ ﺔ ﻣﺮ
ﺒﻴﻞ اﻟﻤ
ﺘﺨﺪﻣﻪ —ﻋﲆﺳ
Pythonاﻟﺬيﺗ ﺴ
ﺑـﺒﻄ ﺔ
ﺗﺒﻴ ﺖ Pygameﻋﲆ "Windowsﻓ ﻲ اﻟﺼﻔﺤ ﺔ 240.إذا ﻛﺎﻧ ﺖ اﻟﻨﻘﻄ ﺔ ﻣﺮ
ﺜﺗﺘﻘﻞ إﱃ "
Python ،ﻓﺎﻧ
237-ﻣ ﺴﻌﻮد
Machine Translated by Google
ﺗﺮﻛﻴ ﺐ اﻟﻨﻘﻄ ﺔ
ﺑﺸﻜﻞﺒﻴ ﺖ اﻟﻨﻘﻄ ﺔ
ﺜﺘﺄﻛﺪ ﻣﻦﺗ
ﺘﺨﺪم اﻷﻣﺮ )pip --versionأو )pip3 --versionﻟﻠ
ﺒﺮﻧﺎﻣﺞ ،اﺳ
ﺑﻌﺪﺗﺸﻐﻴﻞ اﻟ
ﺻﺤﻴﺢ.
ﺘﺸﻐﻴﻞ get-pip.py:
ﺘﺎﻟ ﻲ ﻟ
ﺘﺨﺪم اﻷﻣﺮ اﻟ
اﺳ
ﺘﺸﻐﻴﻞ pip.py.
ﺘﺨﺪام ﻫﺬا اﻷﻣﺮ ﻟ
ﺘﺄﻛﺪ ﻣﻦ اﺳ ﺘﻠ ًﻔﺎ ﻟ
ﺘﺸﻐﻴﻞ Pythonﻓ ﻲ ﻣﺤﻄ ﺔ ﻃﺮﻓﻴ ﺔ ،ﻓ ﺘﺨﺪم أﻣ ﺮًا ﻣﺨ
إذا ﻛﻨ ﺖﺗ ﺴ
ﺜﺎل ،ﻗﺪﻳﻜﻮن اﻷﻣﺮ python3 get-pip.pyأو C: \ Python35 \ python get-pip.py.
ﺒﻴﻞ اﻟﻤ
get-ﻋﲆﺳ
ﺑﻨﺠﺎح.ﺒﻴ ﺖ اﻟﻨﻘﻄ ﺔ
ﺜﺘﺄﻛﺪ ﻣﻦﺗ
ﺘﺸﻐﻴﻞ اﻷﻣﺮ python -m pip --versionﻟﻠ
ﺑﺒﺮﻧﺎﻣﺞ ،ﻗﻢ
ﺑﻌﺪﺗﺸﻐﻴﻞ اﻟ
238اﻟﻔﺼﻞ 12
Machine Translated by Google
ﺜﻮنﺑﻴ
$
ﺘﻴﺮاد pygame
>>>اﺳ
>>>
ﺑﺪء ﻣﺸﺮوع
ﺘﻘﺎل إﱃ "
ﺘﻌﺪاد ﻟﻼﻧ
ﺘﻮرد ت Pygameوأﻧ ﺖ ﻋﲆ اﺳ
إذا ﻟﻢﻳﻈﻬﺮ أي إﺧﺮاج ،ﻓﻬﺬاﻳﻌﻨ ﻲ أن Pythonﻗﺪ اﺳ
ﺒ ﺔ" ﻓ ﻲ اﻟﺼﻔﺤ ﺔ 240.
اﻟﻠﻌ
ﺒﺎ ت
ﺘﺒﻴ ﺖ اﻟﻤﻜ
ﺜﺗﻴﻦ:ﺗ
ﺘﺎج إﱃ ﺧﻄﻮ
ﺘﺤﺘﺸﻐﻴﻞ Python 3 ،ﻓ ﺴ
ﺑإذا ﻛﻨ ﺖﺗﻘﻮم
ﺘﻬﺎ.
ﺒﻴﺜ
ﺗﺗﻨﺰﻳﻠﻬﺎ و
ﺘﻤﺪ Pygameﻋﲆ Pygameو
ﺗﻌ
ﺘﺨﺪم
ﺘﺎﺟﻬﺎ )Pygame.إذا ﻛﻨ ﺖﺗ ﺴ
ﺘ ﻲﻳﺤ
ﺒﺎ ت اﻟ
ﺘﺒﻴ ﺖ اﻟﻤﻜ
ﺜﺘأدﺧﻞ ﻣﺎﻳﻠ ﻲ ﻟ
ﺑـ )python3.5-dev.
ﺒﺪل python3-dev
ﺘﺜﻞ python3.5ﻋﲆ ﻧﻈﺎﻣﻚ ،اﺳ
أﻣﺮ ﻣ
ﺑﻨﺠﺎح.
ﺘﺸﻐﻴﻞ Alien Invasion
ﺒﺎ ت اﻟﻼزﻣ ﺔ ﻟ
ﺘﺒﻴ ﺖ اﻟﻤﻜ
ﺜﺳﻴﺆدي ﻫﺬا إﱃﺗ
ﺜﻞ اﻟﻘﺪرة ﻋﲆ إﺿﺎﻓ ﺔ أﺻﻮا ت ،ﻓﻴﻤﻜﻨﻚ أ ً
ﻳﻀﺎ ﺗﻘﺪﻣﺎ ﻓ ﻲ Pygame ،ﻣ
ً ﺜﺮ
ﺑﻌﺾ اﻟﻮﻇﺎﺋﻒ اﻷﻛإذا ﻛﻨ ﺖﺗﺮﻏ ﺐ ﻓ ﻲﺗﻤﻜﻴﻦ
ﺘﺎﻟﻴ ﺔ:
ﺒﺎ ت اﻟ
ﺘإﺿﺎﻓ ﺔ اﻟﻤﻜ
ﺒﺎ ﻟﻨﻈﺎﻣﻚ(:
ﺘﺨﺪم pip3إذا ﻛﺎن ﻫﺬا ﻣﻨﺎﺳ ً
ﺒﻴ ﺖ Pygameﻋﻦ ﻃﺮﻳﻖ إدﺧﺎل ﻣﺎﻳﻠ ﻲ )اﺳ
ﺜﺘﺑاﻵن ﻗﻢ
ﺒﺎ ت
ﺘﺑﺎﻟﻤﻜﺑﻌﺪ إﻋﻼﻣﻚﺘًﺎ ﻟﻠﺤﻈ ﺔ
ﺘﻮﻗﻒ اﻹﺧﺮاج ﻣﺆﻗ
ﺳﻴ
ﺒﻴ ﺖ
ﺜﺘﺑﺒﺎ ت.ﻳﺠ ﺐ أنﺗﺮى رﺳﺎﻟ ﺔﺗﻔﻴﺪ
ﺘﺑﻌﺾ اﻟﻤﻜﺜﻮر ﻋﲆ Pygame.اﺿﻐﻂ ﻋﲆ Enter ،ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ ﻓﻘﺪان
ﺗﻢ اﻟﻌ
ﺑﻨﺠﺎح.
Pygame
ﺑﺈدﺧﺎل ﻣﺎﻳﻠ ﻲ:
ﺘﻴﺮاد Pygame
ﺘﺸﻐﻴﻞ ﺟﻠ ﺴ ﺔ ﻃﺮﻓﻴ ﺔ Pythonوﺣﺎول اﺳ
ﺑﺒﻴ ﺖ ،ﻗﻢ
ﺜﺘﺘﺄﻛﻴﺪ اﻟ
ﻟ
ﺜﻮن 3
ﺑﻴ
ﺘﻴﺮاد pygame
>>>اﺳ
>>>
239-ﻣ ﺴﻌﻮد
Machine Translated by Google
ﺘ ﺔ.
ﺒﺜﺒﺔ ﻣ
ﺘﺑﻮاﺳﻄ ﺔ ﻛﻞ ﻣﻜﺘﻤﺮﻳﺮ
راﺟﻊ إﺧﺮاج اﻟ
ﺜﻞﺗﻀﻤﻴﻦ ﻣﻠﻔﺎ ت
ﺗﻘﺪﻣﺎ ،ﻣ
ً ﺜﺮ إذا ﻛﻨ ﺖﺗﺮﻳﺪ أ ً
ﻳﻀﺎﺗﻤﻜﻴﻦ وﻇﺎﺋﻒ أﻛ
ﺘﻴﻦ:
ﺘﻴﻦ إﺿﺎﻓﻴ
ﺒﺘﺒﻴ ﺖ ﻣﻜ
ﺜﻓ ﻲ اﻷﻟﻌﺎ ب ،ﻳﻤﻜﻨﻚﺗ
ﺑﺪﻻ ً ﻣﻦ pip3
ﺘﺨﺪم pip
ﺒﻴ ﺖ )Pygameاﺳ
ﺜﺘﺘﺎﻟ ﻲ ﻟ
ﺘﺨﺪم اﻷﻣﺮ اﻟ
اﺳ
ﺘﺸﻐﻴﻞ Python 2.7):
ﺑإذا ﻛﻨ ﺖﺗﻘﻮم
ﺜﻮن 3
ﺑﻴ
ﺘﻴﺮاد pygame
>>>اﺳ
>>>
ﺒ ﺔ" أدﻧﺎه.
ﺑﺪء ﻣﺸﺮوع اﻟﻠﻌ
ﺘﻘﻞ إﱃ "
ﺘﻴﺮاد ،ﻓﺎﻧ
ﺑﻴﺎن اﻻﺳإذا ﻧﺠﺢ
ﺘﻘﻞ إﱃ اﻟﻤﺠﻠﺪ
ﺘﺢ ﻧﺎﻓﺬة أواﻣﺮ ،واﻧ
ﺑﻨ ﺴﺦ اﻟﻤﻠﻒ إﱃ دﻟﻴﻞ ﻣﺸﺮوﻋﻚ .اﻓﺘﻬ ﻲ .whl ،ـ بﻓﻘﻢ
إذا ﻛﺎن ﻟﺪﻳﻚ ﻣﻠﻒﻳﻨ
ﺒ ﺖ:
ﺜﺘﺸﻐﻴﻞ اﻟﻤ
ﺘﺨﺪم اﻟﻨﻘﻄ ﺔ ﻟ
ﺒﱢ ﺖ إﻟﻴﻪ ،واﺳ
ﺜاﻟﺬي ﻧ ﺴﺨ ﺖ اﻟﻤ
ﺒﺔ
ﺑﺪء ﻣﺸﺮوع اﻟﻠﻌ
ﺜﻞ اﻟ ﺴﻔﻴﻨ ﺔ واﻷﺟﺎﻧ ﺐ.
ﺘﻨﺎ ،ﻣ
ﺒﺘﻨﺎ ﻋﻦ ﻃﺮﻳﻖ إﻧﺸﺎء داو ﻓﻮز Pygameﻓﺎرغﻳﻤﻜﻨﻨﺎ ﻻﺣ ًﻘﺎ رﺳﻢ ﻋﻨﺎﺻﺮ ﻟﻌ
ﺒﺑﻨﺎء ﻟﻌﺒﺪأ اﻵن ﻓ ﻲ
ﺳﻨ
ﺗﺤﻤﻴﻞ ﺻﻮرة اﻟ ﺴﻔﻴﻨ ﺔ.
ﺗﻌﻴﻴﻦ ﻟﻮن اﻟﺨﻠﻔﻴ ﺔ ،و
ﺘﺨﺪم ،و
ﺘﻨﺎ ﻹدﺧﺎل اﻟﻤ ﺴ
ﺒﺑ ﺔ ﻟﻌ
ﺘﺠﺎ ﺳﻴﻜﻮن ﻟﺪﻳﻨﺎ أ ً
ﻳﻀﺎ اﺳ
240اﻟﻔﺼﻞ 12
Machine Translated by Google
ﺘﺨﺪم
ﺑ ﺔ ﻹدﺧﺎﻻ ت اﻟﻤ ﺴ
ﺘﺠﺎ
إﻧﺸﺎء ﻧﺎﻓﺬة Pygameواﻻﺳ
ﺑﻠﻐ ﺔ Pygame:ﺑﺔ
ﺘﻮﺒ ﺔ ﻣﻜ أوﻻ ً ،ﺳﻨﻨﺸ ﺊ ﻧﺎﻓﺬة Pygameﻓﺎرﻏ ﺔ .إﻟﻴﻚ اﻟ
ﺒﻨﻴ ﺔ اﻷﺳﺎﺳﻴ ﺔ ﻟﻠﻌ
ﺘﻴﺮاد اﻟﻨﻈﻢ
اﺳ
alien_ Invasion.py
ﺘﻴﺮاد pygame
اﺳ
ﺒ ﺔ.
ﺋﻴ ﺴﻴ ﺔ ﻟﻠﻌ
ﺑﺪأ اﻟﺤﻠﻘ ﺔ اﻟﺮ
#ا
ﺑﻴﻨﻤﺎ ﺻﺤﻴﺢ:
w
ﺗﻴﺢ واﻟﻤﺎوس.
#ﻣﺸﺎ ﻫﺪة أﺣﺪا ث ﻟﻮﺣ ﺔ اﻟﻤﻔﺎ
س ﻟﻠﺤﺪ ث ﻓ ﻲ pygame.event.get ():
ص إذا ﻛﺎن event.type == pygame.QUIT:
)( sys.exit
ﺋﻴ ﺔ.
#اﺟﻌﻞ أﺣﺪ ث ﺷﺎﺷ ﺔ ﻣﺮﺳﻮﻣ ﺔ ﻣﺮ
ض )( pygame.display.flip
ﺒ ﺔ اﻟﻤﺪى)(
ﻟﻌ
ﺘﺨﺪم وﺣﺪة
ﺒ ﺔ.ﺳﻨ ﺴ
ﺘﻮي وﺣﺪة pygameﻋﲆ اﻟﻮﻇﺎﺋﻒ اﻟﻼزﻣ ﺔ ﻹﻧﺸﺎء ﻟﻌ
ﺗﺤﺗ ﻲ sysو pygame .
ﺘﻴﺮاد وﺣﺪ
ﺑﺎﺳأوﻻ ً ،ﻧﻘﻮم
ﺘﻘﻴﻞ اﻟﻼﻋ ﺐ.
ﺒ ﺔ ﻋﻨﺪﻣﺎﻳ ﺴ
اﻟﻨﻈﺎم ﻟﻠﺨﺮوج ﻣﻦ اﻟﻠﻌ
ﺗﻔﺎع 800
ﺑﻜ ﺴﻞ وار
ﺑﻌﺮض 1200ﺒﺔ
ﺑﺈﻧﺸﺎء ﻧﺎﻓﺬة ﻟﻌﺑﻌﺎد إﱃ pygame.display.set_mode () ،ﻧﻘﻮم
ﻣﻦ ﺧﻼلﺗﻤﺮﻳﺮ ﻫﺬه اﻷ
ﺘﻚ(.
ﺒﻂ ﻫﺬه اﻟﻘﻴﻢ ﺣ ﺴ ﺐ ﺣﺠﻢ ﺷﺎﺷ
ﺑﻜ ﺴﻞ) .ﻳﻤﻜﻨﻚ ﺿ
ﺒﺔ ،
ﺒ ﺔ .ﻛﻞ ﻋﻨﺼﺮ ﻓ ﻲ اﻟﻠﻌ
ﻛﺎﺋﻦ اﻟﺸﺎﺷ ﺔﻳ ﺴﻤﻰ اﻟ ﺴﻄﺢ .اﻟ ﺴﻄﺢ ﻓ ﻲ Pygameﻫﻮ ﺟﺰء ﻣﻦ اﻟﺸﺎﺷ ﺔ ﺣﻴ ﺚﺗﻌﺮض ﻋﻨﺼﺮ اﻟﻠﻌ
ﺑﺄﻛﻤﻠﻬﺎ .ﻋﻨﺪﻣﺎﺒﺔ
ﺜﻞ ﻧﺎﻓﺬة اﻟﻠﻌ
ﺑﻮاﺳﻄ ﺔ )( display.set_modeﻳﻤﺜﻞ اﻟﻔﻀﺎﺋﻴﻴﻦ أو اﻟ ﺴﻔﻴﻨ ﺔ ،ﻫﻮﺳﻄﺢ .اﻟ ﺴﻄﺢ اﻟﺬيﺗﻢ إرﺟﺎﻋﻪ
ﻣ
ﺒﺮ اﻟﺤﻠﻘ ﺔ.
ﺘﻢ إﻋﺎدة رﺳﻢ ﻫﺬا اﻟ ﺴﻄﺢﺗﻠﻘﺎﺋ ًﻴﺎ ﻋﻨﺪ ﻛﻞﺗﻤﺮﻳﺮة ﻋ
ﺒ ﺔ ،ﻳ
ﺘﺤﺮﻛ ﺔ ﻟﻠﻌ
ﺘﻨﺸﻴﻂ ﺣﻠﻘ ﺔ اﻟﺮﺳﻮم اﻟﻤ
ﺑﻧﻘﻮم
241-ﻣ ﺴﻌﻮد
Machine Translated by Google
ﺘﺨﺪم )( pygame.event.get
ﺘﺸﻔﻬﺎ Pygame ،ﺳﻨ ﺴ
ﺘ ﻲ اﻛ
ﻟﻠﻮﺻﻮل إﱃ اﻷﺣﺪا ث اﻟ
ﺒﺎرا ت
ﺘ ﺐﺳﻠ ﺴﻠ ﺔ ﻣﻦ ﻋ
ﺗﻴﺢ أو اﻟﻤﺎوس إﱃﺗﺸﻐﻴﻞ ﺣﻠﻘ ﺔ for .داﺧﻞ اﻟﺤﻠﻘ ﺔ ،ﺳﻨﻜ
ﻃﺮﻳﻘ ﺔ.ﺳﻴﺆدي أي ﺣﺪ ث ﻓ ﻲ ﻟﻮﺣ ﺔ اﻟﻤﻔﺎ
ﺘﻢ
ﺒ ﺔ ،ﻳ
ﺜﺎل ،ﻋﻨﺪﻣﺎﻳﻨﻘﺮ اﻟﻼﻋ ﺐ ﻋﲆ زر إﻏﻼق ﻧﺎﻓﺬة اﻟﻠﻌ
ﺒﻴﻞ اﻟﻤ
ﺑ ﺔ ﻟﻬﺎ .ﻋﲆﺳ
ﺘﺠﺎ
ifﻟﻠﻜﺸﻒ ﻋﻦ أﺣﺪا ث ﻣﻌﻴﻨ ﺔ واﻻﺳ
ﺒ ﺔ y.
ﺘﺪﻋﺎء )( sys.exitﻟﻠﺨﺮوج ﻣﻦ اﻟﻠﻌ
ﺑﺎﺳﺘﺸﺎف ﺣﺪ ث pygame.QUITوﻧﻘﻮم
اﻛ
ﺋﻴ ﺴﻴ ﺔ.
ﺒﺪأ اﻟﺤﻠﻘ ﺔ اﻟﺮ
ﺒ ﺔ وﻳ
ﺒ ﺔ اﻷﺳﺎﺳﻴ ﺔ run_game () ،اﻟﺬيﻳﻬﻴ ﺊ اﻟﻠﻌ
ﺑﻨﻴ ﺔ اﻟﻠﻌﺘﺪﻋ ﻲ اﻟ ﺴﻄﺮ اﻷﺧﻴﺮ ﻓ ﻲ
ﻳﺴ
--ﻗﺺ--
alien_ Invasion.py def run_game ():
--ﻗﺺ--
ﺒ ﻲ"(
")pygame.display.set_captionاﻟﻐﺰو اﻷﺟﻨ
ﺒ ﺔ.
ﺋﻴ ﺴﻴ ﺔ ﻟﻠﻌ
ﺑﺪأ اﻟﺤﻠﻘ ﺔ اﻟﺮ
#ا
اﺣﻴﺎﻧﺎ ﺻﺤﻴﺢ:
ﺗﻴﺢ واﻟﻤﺎوس.
#ﻣﺸﺎ ﻫﺪة أﺣﺪا ث ﻟﻮﺣ ﺔ اﻟﻤﻔﺎ
--ﻗﺺ--
ﺋﻴ ﺔ.
#اﺟﻌﻞ أﺣﺪ ث ﺷﺎﺷ ﺔ ﻣﺮﺳﻮﻣ ﺔ ﻣﺮ
)( pygame.display.flip
ﺒ ﺔ اﻟﻤﺪى)(
ﻟﻌ
ﺘﺮاوح ﻛﻞ ﻗﻴﻤ ﺔ
ﺘﻢﺗﺤﺪﻳﺪ اﻷﻟﻮان ﻓ ﻲ Pygameﻋﲆ أﻧﻬﺎ أﻟﻮان RGB:ﻣﺰﻳﺞ ﻣﻦ اﻷﺣﻤﺮ واﻷﺧﻀﺮ واﻷزرق.ﻳﻤﻜﻦ أنﺗ
ﻳ
ﻟﻮن ﻣﻦ 0إﱃ 255.ﻗﻴﻤ ﺔ اﻟﻠﻮن )(255 ، 0 ، 0ﺣﻤﺮاء (0 ، 255 ، 0) ،ﺧﻀﺮاء ،و )(0 ، 0 ، 255زرﻗﺎء.ﻳﻤﻜﻨﻚ ﻣﺰج ﻗﻴﻢ
ﺘ ﺴﺎوﻳ ﺔ ﻣﻦ اﻷﺣﻤﺮ واﻷزرق واﻷﺧﻀﺮ ،ﻣﻤﺎ
RGBﻹﻧﺸﺎء 16ﻣﻠﻴﻮن ﻟﻮن.ﺗﻤﺰج ﻗﻴﻤ ﺔ اﻟﻠﻮن )(230 ، 230 ، 230ﻛﻤﻴﺎ ت ﻣ
ﺗﺢ.
ﺘﺞ ﻋﻨﻪ ﻟﻮن ﺧﻠﻔﻴ ﺔ رﻣﺎدي ﻓﺎ
ﻳﻨ
242اﻟﻔﺼﻞ 12
Machine Translated by Google
إﻧﺸﺎء ﻓﺌ ﺔ اﻹﻋﺪادا ت
ﺑﺪﻻ ً ﻣﻦ إﺿﺎﻓ ﺔ اﻹﻋﺪادا ت ﺑﻌﺾ اﻹﻋﺪادا ت اﻟﺠﺪﻳﺪة أ ً
ﻳﻀﺎ. ً
ﻋﺎدة ﺘﻨﺎ ،ﺳﻨﻘﺪم
ﺒﻓ ﻲ ﻛﻞ ﻣﺮة ﻧﻘﺪم ﻓﻴﻬﺎ وﻇﺎﺋﻒ ﺟﺪﻳﺪة ﻓ ﻲ ﻟﻌ
ﺘﺨﺰﻳﻦ ﺟﻤﻴﻊ اﻹﻋﺪادا ت
ﺘﻮي ﻋﲆ ﻓﺌ ﺔﺗ ﺴﻤﻰ اﻹﻋﺪادا ت ﻟ
ﺘ ﺐ وﺣﺪةﺗ ﺴﻤﻰ اﻹﻋﺪادا تﺗﺤ
ﻓ ﻲ ﺟﻤﻴﻊ أﻧﺤﺎء اﻟﻜﻮد ،دﻋﻨﺎ ﻧﻜ
ﺑﺪﻻ ً ﻣﻦ اﻟﻌﺪﻳﺪ ﻣﻦ اﻹﻋﺪادا ت اﻟﻔﺮدﻳ ﺔ.ﺑﺎﻟﻤﺮور ﺣﻮل ﻛﺎﺋﻦ إﻋﺪادا ت واﺣﺪﻓ ﻲ ﻣﻜﺎن واﺣﺪ.ﻳ ﺴﻤﺢ ﻟﻨﺎ ﻫﺬا اﻷﺳﻠﻮ ب
ﺒ ﺔ ﻣﻊ ﻧﻤﻮ ﻣﺸﺮوﻋﻨﺎ.
ﺑ ﺴﻂ وﻳﺠﻌﻞ ﻣﻦ اﻟ ﺴﻬﻞﺗﻌﺪﻳﻞ ﻣﻈﻬﺮ اﻟﻠﻌ
ﺘﻨﺎ أ
ﺘﺪﻋﺎءا ت وﻇﻴﻔ
ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،ﻓﺈﻧﻪﻳﺠﻌﻞ اﺳ
ﺗﻨﺎ.
ﺘﻠﻔ ﺔ ﻓ ﻲ ﻣﻠﻔﺎ ﺑﺪﻻ ً ﻣﻦ اﻟ
ﺒﺤ ﺚ ﻋﻦ إﻋﺪادا ت ﻣﺨ ﺑﻌﺾ اﻟﻘﻴﻢ ﻓ ﻲ settings.pyﺘﻐﻴﻴﺮ
ﺑﺒ ﺴﺎﻃ ﺔ
ﺑﺒ ﺔ ،ﺳﻨﻘﻮم
ﺘﻌﺪﻳﻞ اﻟﻠﻌ
ﻟ
ﺗ ﻲ(:
__ )def __initذا
ﺒ ﺔ"" ".
ﺗﻬﻴﺌ ﺔ إﻋﺪادا ت اﻟﻠﻌ
"""
#إﻋﺪادا ت اﻟﺸﺎﺷ ﺔ
ﻋﺮض_ﻧﻔ ﺲ اﻟﺸﺎﺷ ﺔ = 1200
ﺗﻔﺎع اﻟﺸﺎﺷ ﺔ_اﻟﻨﻔ ﺲ = 800
ار
)self.bg_color = (230 ، 230 ، 230
ﺘﻌﺪﻳﻞ
ﺑﺎﻟﺗﻨﺎ ،ﻗﻢ
ﺘﺨﺪاﻣﻪ ﻟﻠﻮﺻﻮل إﱃ إﻋﺪادا
ﺜﻴﻞ ﻟﻺﻋﺪادا ت واﺳ
ﻟﻌﻤﻞ ﻣ
ﺘﺎﻟ ﻲ:
alien_invasion.pyﻋﲆ اﻟﻨﺤﻮ اﻟ
alien_ Invasion.py
--ﻗﺺ--
ﺘﻴﺮاد pygame
اﺳ
ﺘﻴﺮاد اﻹﻋﺪادا ت
ﻣﻦ إﻋﺪادا ت اﺳ
ﺒ ﺔ.
ﺋﻴ ﺴﻴ ﺔ ﻟﻠﻌ
ﺑﺪأ اﻟﺤﻠﻘ ﺔ اﻟﺮ
#ا
اﺣﻴﺎﻧﺎ ﺻﺤﻴﺢ:
--ﻗﺺ--
ﺒﺮ اﻟﺤﻠﻘ ﺔ.
ﺛﻨﺎء ﻛﻞﺗﻤﺮﻳﺮة ﻋ
#أﻋﺪ رﺳﻢ اﻟﺸﺎﺷ ﺔ أ
ث )screen.fill (ai_settings.bg_color
ﺋﻴ ﺔ.
#اﺟﻌﻞ أﺣﺪ ث ﺷﺎﺷ ﺔ ﻣﺮﺳﻮﻣ ﺔ ﻣﺮ
)( pygame.display.flip
ﺒ ﺔ اﻟﻤﺪى)(
ﻟﻌ
243-ﻣ ﺴﻌﻮد
Machine Translated by Google
ﺗﺨﺰﻳﻨﻪ ﻓ ﻲ
ﺜﻴﻞ ﻣﻦ اﻹﻋﺪادا ت و
ﺑﺈﻧﺸﺎء ﻣﺛﻢ ﻧﻘﻮمﺋﻴ ﺴ ﻲ ،
ﺒﺮﻧﺎﻣﺞ اﻟﺮ
ﺘﻴﺮاد اﻹﻋﺪادا ت إﱃ ﻣﻠﻒ اﻟ
ﺑﺎﺳﻧﻘﻮم
ﺘﺨﺪمﺳﻤﺎ ت screen_width
ﺑﺈﻧﺸﺎء ﺷﺎﺷ ﺔ v ،ﻓﺈﻧﻨﺎ ﻧ ﺴﺘﺪﻋﺎء pygame.init () u.ﻋﻨﺪﻣﺎ ﻧﻘﻮم
ﺑﻌﺪ إﺟﺮاء اﺳ
ai_settings
ﺘﺨﺪم إﻋﺪادا ت aiﻟﻠﻮﺻﻮل إﱃ ﻟﻮن اﻟﺨﻠﻔﻴ ﺔ ﻋﻨﺪ ﻣﻞء اﻟﺸﺎﺷ ﺔ ﻓ ﻲ wأ ً
ﻳﻀﺎ. ﺛﻢ ﻧ ﺴ
و screen_heightﻣﻦ ai_settings ،
ﺒﺎه إﻟﻴﻪ
ﺘﺑﻚ ،ﺗﺄﻛﺪ ﻣﻦ اﻻﻧ
ﺘﻴﺎر ﻋﻤﻞ ﻓﻨ ﻲﻷﻟﻌﺎ
ﻋﻨﺪ اﺧ
ﺘﺨﺪام رﺳﻮﻣﺎ ت ﻣﺮﺧﺼ ﺔ ﻣﺠﺎﻧًﺎﻳﻤﻜﻨﻚﺗﻌﺪﻳﻠﻬﺎ ﻣﻦ ﻣﻮﻗﻊ ﺜﺮ أﻣﺎﻧًﺎ واﻷرﺧﺺ ﻟﻠ
ﺒﺪء ﻫ ﻲ اﺳ ﺘﺮﺧﻴﺺ .اﻟﻄﺮﻳﻘ ﺔ اﻷﻛ
اﻟ
ﺜﻞ http://pixabay.com/.
وﻳ ﺐ ﻣ
ﺘﻚ ،ﻟﻜﻨﻬﺎ أﺳﻬﻞ
ﺒﺒﺎ ﻓ ﻲ ﻟﻌ
ﺘﺨﺪام أي ﻧﻮع ﻣﻦ ﻣﻠﻔﺎ ت اﻟﺼﻮرﺗﻘﺮﻳ ً
ﻳﻤﻜﻨﻚ اﺳ
ﺘﺮاﺿ ﻲ.
ﺑﺸﻜﻞ اﻓﺘﺤﻤﻴﻞ اﻟﺼﻮر اﻟﻨﻘﻄﻴ ﺔ
ﺑﺘﺨﺪم ﻣﻠﻒ ﺻﻮرة ﻧﻘﻄﻴ ﺔ )(.bmpﻷن Pygameﻳﻘﻮم
إذا ﻛﻨ ﺖﺗ ﺴ
ﺒﺎ ت
ﺘﺘﻤﺪ ﻋﲆ ﻣﻜ
ﺑﻌﺾ أﻧﻮاع اﻟﻤﻠﻔﺎ تﺗﻌﺘﺨﺪام أﻧﻮاع ﻣﻠﻔﺎ ت أﺧﺮى ،إﻻ أن
ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أﻧﻪﻳﻤﻜﻨﻚﺗﻜﻮﻳﻦ Pygameﻻﺳ
ﺑﻚ.ﺗﺮ اﻟﺨﺎص
ﺒﻴﻮ
ﺘﻬﺎ ﻋﲆ ﺟﻬﺎز اﻟﻜﻤ
ﺒﻴﺜ
ﺻﻮر ﻣﻌﻴﻨ ﺔﻳﺠ ﺐﺗ
ﺘﺨﺪام أدوا ت
ﺑﺎﺳﺘﻨ ﺴﻴﻘﺎ ت gpj.أو gnp.أو ، fig.وﻟﻜﻦﻳﻤﻜﻨﻚﺗﺤﻮﻳﻠﻬﺎ إﱃ ﺻﻮر ﻧﻘﻄﻴ ﺔ
ﺑﺘﺠﺪ ﻫﺎ
ﺘ ﻲﺳ
)ﻣﻌﻈﻢ اﻟﺼﻮر اﻟ
ﺜﻞ Photoshopو GIMPو )Paint.
ﻣ
ﺗﻬﺎ.
ﺘﺮﺘ ﻲ اﺧ
ﺑﺸﻜﻞ ﺧﺎص إﱃ ﻟﻮن اﻟﺨﻠﻔﻴ ﺔ ﻓ ﻲ اﻟﺼﻮرة اﻟﺒﻪ
ﺘاﻧ
ﺑﺸﻜﻞﺑﻚ
ﺘﻈﻬﺮ أﻟﻌﺎ
ﺘﺨﺪام ﻣﺤﺮر اﻟﺼﻮر.ﺳ
ﺑﺎﺳﺑﺄي ﻟﻮن ﺧﻠﻔﻴ ﺔﺒﺪاﻟﻬﺎ
ﺘﺑﺨﻠﻔﻴ ﺔ ﺷﻔﺎﻓ ﺔﻳﻤﻜﻨﻚ اﺳﺜﻮر ﻋﲆ ﻣﻠﻒ
ﺣﺎول اﻟﻌ
ﺒ ﺔ.
ﺑﻖ ﻟﻮن ﺧﻠﻔﻴ ﺔ اﻟﺼﻮرة ﻣﻊ ﻟﻮن ﺧﻠﻔﻴ ﺔ اﻟﻠﻌ
أﻓﻀﻞ إذاﺗﻄﺎ
ﺑﺨﻠﻔﻴ ﺔ اﻟﺼﻮرة.ﺘﻚ
ﺒ ﺑﺪﻻ ً ﻣﻦ ذﻟﻚ ،ﻳﻤﻜﻨﻚ ﻣﻄﺎ
ﺑﻘ ﺔ ﺧﻠﻔﻴ ﺔ ﻟﻌ
ﺒﻲ
اﻟﺸﻜﻞ 12-1:ﺳﻔﻴﻨ ﺔ ﻏﺰو أﺟﻨ
244اﻟﻔﺼﻞ 12
Machine Translated by Google
إﻧﺸﺎء ﻓﺌ ﺔ اﻟ ﺴﻔﻴﻨ ﺔ
ﺘﻲ
ﺘ ﺐ وﺣﺪةﺗ ﺴﻤﻰ اﻟ ﺴﻔﻴﻨ ﺔ ،واﻟ
ﺘﻨﺎ ،ﺳﻨﻜ
ﺘﺨﺪامﺳﻔﻴﻨ
ﺘﺎج إﱃ ﻋﺮﺿﻬﺎ ﻋﲆ اﻟﺸﺎﺷ ﺔ .ﻻﺳ
ﺘﻴﺎر ﺻﻮرة ﻟﻠ ﺴﻔﻴﻨ ﺔ ،ﻧﺤ
ﺑﻌﺪ اﺧ
ﺘﻮي ﻋﲆ ﻓﺌ ﺔ اﻟ ﺴﻔﻴﻨ ﺔ.ﺳﻴﺪﻳﺮ ﻫﺬا اﻟﻔﺼﻞ ﻣﻌﻈﻢﺳﻠﻮكﺳﻔﻴﻨ ﺔ اﻟﻼﻋ ﺐ.
ﺗﺤ
ﺗ ﻲ ،ﺷﺎﺷ ﺔ(:
__ )def __initذا
ﺒﺪاﻳ ﺔ"" ".
ﺗﻌﻴﻴﻦ ﻣﻮﺿﻊ اﻟ ﺗﻬﻴﺌ ﺔ اﻟ ﺴﻔﻴﻨ ﺔ و
"""
= self.screenﺷﺎﺷ ﺔ
ﺘﻄﻴﻠﻬﺎ.
ﺘﺤﻤﻴﻞ ﺻﻮرة اﻟ ﺴﻔﻴﻨ ﺔ واﺣﺼﻞ ﻋﲆ ﻣ ﺴ
ﺑ#ﻗﻢ
اﻷﺷﻌ ﺔ
)'self.image = pygame.image.load ('images / ship.bmp
ﻓﻮق
)( self.rect = self.image.get_rect
ﺒﻨﻔ ﺴﺠﻴ ﺔ
اﻟ
)( self.screen_rect = screen.get_rect
ﺗ ﻲ(:
)y def blitmeذا
"""ارﺳﻢ اﻟ ﺴﻔﻴﻨ ﺔ ﻓ ﻲ ﻣﻮﻗﻌﻬﺎ اﻟﺤﺎﻟ ﻲ"" ".
ﺗ ﻲ(
ﺗﻴ ﺔ ،ﺗﺼﺤﻴﺢ ذا
)self.screen.blitﺻﻮرة ذا
ﺗ ﻲ واﻟﺸﺎﺷ ﺔ ﺣﻴ ﺚ
ﺘﻴﻦ :اﻟﻤﺮﺟﻊ اﻟﺬا
ﺗﺄﺧﺬ ﻃﺮﻳﻘ ﺔ )( __ __initﻟﻠ ﺴﻔﻴﻨ ﺔ ﻣﻌﻠﻤ
ﺘﻴﺮاد وﺣﺪة pygame .
ﺑﺎﺳأوﻻ ً ،ﻧﻘﻮم
ﺳﻨﺮﺳﻢ اﻟ ﺴﻔﻴﻨ ﺔ.
ﺘﺨﺰﻳﻨﻪ ﻓ ﻲ
ﺑﺜﻞ اﻟ ﺴﻔﻴﻨ ﺔ ،ﻧﻘﻮم
ﺑﺈرﺟﺎعﺳﻄﺢﻳﻤﺗﻘﻮم ﻫﺬه اﻟﻮﻇﻴﻔ ﺔ
ﺘﺤﻤﻴﻞ اﻟﺼﻮرة ،ﻧ ﺴﻤ ﻲ pygame.image.load () u.
ﻟ
ﺗﻴ ﺔ.
اﻟﺼﻮرة اﻟﺬا
ﺘﻄﻴﻞ اﻟ ﺴﻄﺢ
ﺘﺨﺪم )( get_rectﻟﻠﻮﺻﻮل إﱃ ﻣ ﺴ
ﺑﻤﺠﺮدﺗﺤﻤﻴﻞ اﻟﺼﻮرة ،ﻧ ﺴ
ﺘﻄﻴﻼ ت
ﺜﻞ اﻟﻤ ﺴ
ﺒﺔ ﻣ
ﺘﻌﺎﻣﻞ ﻣﻊ ﻋﻨﺎﺻﺮ اﻟﻠﻌ
ﺘﻴﺢ ﻟﻚ اﻟ
ﺘ ﻲﺗﺠﻌﻞ Pygameﻓﻌﺎﻟ ﺔ ﻟﻠﻐﺎﻳ ﺔ ﻫﻮ أﻧﻬﺎﺗ
ﺒﺎ ب اﻟ
اﻟ ﺴﻤ ﺔ v.أﺣﺪ اﻷﺳ
ﺘﻄﻴﻞ أﻣ ﺮًا ﻓﻌﺎﻻ ًﻷن
ﺒﺮ ﻣﻌﺎﻣﻠ ﺔ ﻋﻨﺼﺮ ﻣﺎ ﻛﻤ ﺴ
ﺘﺘﻄﻴﻠ ﺔ.ﺗﻌ
ﺜﻞ اﻟﺰواﻳﺎ اﻟﻤ ﺴ
ﺗﻤﺎﻣﺎ ﻣ
ً ﺘﺸﻜﻞ
ﺘﻰ ﻟﻮ ﻟﻢﺗ
ﺘﻄﻴﻼ ت( ،ﺣ
)اﻟﻤ ﺴ
ﺑﺤﻴ ﺚ ﻻﻳﻼﺣﻆ أي ﺷﺨﺺﻳﻠﻌ ﺐﺑﻤﺎﻳﻜﻔ ﻲ ً
ﻋﺎدة ﻣﺎﻳﻌﻤﻞ ﻫﺬا اﻟﻨﻬﺞ ﺟﻴﺪًا ﺑ ﺴﻴﻄ ﺔ.ﺒﺎرة ﻋﻦ أﺷﻜﺎل ﻫﻨﺪﺳﻴ ﺔ
ﺘﻄﻴﻼ ت ﻋ
اﻟﻤ ﺴ
ﺒ ﺔ.
ﺑﺎﻟﺸﻜﻞ اﻟﺪﻗﻴﻖ ﻟﻜﻞ ﻋﻨﺼﺮ ﻣﻦ ﻋﻨﺎﺻﺮ اﻟﻠﻌﺒ ﺔ أﻧﻨﺎ ﻻ ﻧﻌﻤﻞ
اﻟﻠﻌ
245-ﻣ ﺴﻌﻮد
Machine Translated by Google
ﺛﻢ اﺟﻌﻞ
ﺘﻄﻴﻞ اﻟﺸﺎﺷ ﺔ ﻓ ﻲ self.screen_rect w ،
ﺘﺨﺰﻳﻦ ﻣ ﺴ
ﺑﺑﺬﻟﻚ ،ﻗﻢ أوﻻ ًﺘﺼﻒ اﻟﺸﺎﺷ ﺔ .ﻟﻠﻘﻴﺎم
ﺳﻨﻀﻊ اﻟ ﺴﻔﻴﻨ ﺔ ﻓ ﻲ أﺳﻔﻞ ﻣﻨ
ﺑﻖ centx
ﺛ ﻲ xﻟﻤﺮﻛﺰ اﻟ ﺴﻔﻴﻨ ﺔ(ﺗﻄﺎ
ﻗﻴﻤ ﺔ )self.rect.centerxاﻹﺣﺪا
ﺷﺎﺷ ﺔ.
--ﻗﺺ--
alien_ Invasion.py ﺘﻴﺮاد اﻹﻋﺪادا ت
ﻣﻦ إﻋﺪادا ت اﺳ
ﺘﻴﺮاد اﻟ ﺴﻔﻴﻨ ﺔ
ﻣﻦﺳﻔﻴﻨ ﺔ اﺳ
#اﺻﻨﻊﺳﻔﻴﻨ ﺔ.
= u shipﺳﻔﻴﻨ ﺔ )ﺷﺎﺷ ﺔ(
ﺒ ﺔ.
ﺋﻴ ﺴﻴ ﺔ ﻟﻠﻌ
ﺑﺪأ اﻟﺤﻠﻘ ﺔ اﻟﺮ
#ا
اﺣﻴﺎﻧﺎ ﺻﺤﻴﺢ:
--ﻗﺺ--
ﺒﺮ اﻟﺤﻠﻘ ﺔ.
ﺛﻨﺎء ﻛﻞﺗﻤﺮﻳﺮة ﻋ
#أﻋﺪ رﺳﻢ اﻟﺸﺎﺷ ﺔ أ
)screen.fill (ai_settings.bg_color
اﻟﺨﺎﻣ ﺲ
)( ship.blitme
ﺋﻴ ﺔ.
#اﺟﻌﻞ أﺣﺪ ث ﺷﺎﺷ ﺔ ﻣﺮﺳﻮﻣ ﺔ ﻣﺮ
)( pygame.display.flip
ﺒ ﺔ اﻟﻤﺪى)(
ﻟﻌ
ﺑﺤﻴ ﺚﺗﻈﻬﺮ اﻟ ﺴﻔﻴﻨ ﺔ أﻋﲆ اﻟﺨﻠﻔﻴ ﺔ v.ﺑﻌﺪ ﻣﻞء اﻷرﺿﻴ ﺔ اﻟﺨﻠﻔﻴ ﺔ ،
ﺘﺪﻋﺎء )( ship.blitme
ﻧﺮﺳﻢ اﻟ ﺴﻔﻴﻨ ﺔ ﻋﲆ اﻟﺸﺎﺷ ﺔ ﻋﻦ ﻃﺮﻳﻖ اﺳ
ﺒ ﺔ ﻓﺎرﻏ ﺔ
ﻋﻨﺪﺗﺸﻐﻴﻞ alien_invasion.pyاﻵن ،ﻳﺠ ﺐ أنﺗﺮى ﻟﻌ
ﺘﺼﻒ اﻟ ﺴﻔﻠ ﻲ ،ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓ ﻲ اﻟﺸﻜﻞ 12-2.
ﺘﻨﺎ اﻟﺼﺎروﺧﻴ ﺔ ﺟﺎﻟ ﺴ ﺔ ﻓ ﻲ اﻟﻤﻨ
ﺷﺎﺷ ﺔ ﻣﻊﺳﻔﻴﻨ
246اﻟﻔﺼﻞ 12
Machine Translated by Google
ﺘﺼﻒ اﻟﺸﺎﺷ ﺔ
ﺒ ﻲ ﻟﻠ ﺴﻔﻴﻨ ﺔ ﻓ ﻲ أﺳﻔﻞ ﻣﻨ
اﻟﺸﻜﻞ 12-2:ﻏﺰو أﺟﻨ
داﻟ ﺔ )( check_events
ﺒ ﺴﻴﻂ )(
ﺑﻨﻘﻞ اﻟﻜﻮد اﻟﺬيﻳﺪﻳﺮ اﻷﺣﺪا ث إﱃ وﻇﻴﻔ ﺔ ﻣﻨﻔﺼﻠ ﺔﺗ ﺴﻤﻰ check_events ().ﺳﻴﺆدي ذﻟﻚ إﱃﺗﺒﺪأ
ﺳﻨ
ﺑﺸﻜﻞ ﻣﻨﻔﺼﻞ ﻋﻦ ﺟﻮاﻧ ﺐ أﺧﺮى ﻣﻦﺘﻴﺢ ﻟﻚ ﻋﺰل ﺣﻠﻘ ﺔ اﻟﺤﺪ ث إدارة اﻷﺣﺪا ث
run_gameوﻋﺰل ﺣﻠﻘ ﺔ رﺟﻞ اﻟﺤﺪ ث.ﻳ
ﺜﻞﺗﺤﺪﻳ ﺚ اﻟﺸﺎﺷ ﺔ.
ﺒﺔ ،ﻣ
اﻟﻠﻌ
247-ﻣ ﺴﻌﻮد
Machine Translated by Google
ﺘﻴﺮاد pygame
اﺳ
alien_ Invasion.py
ﺘﻴﺮاد اﻹﻋﺪادا ت
ﻣﻦ إﻋﺪادا ت اﺳ
ﺘﻴﺮاد اﻟ ﺴﻔﻴﻨ ﺔ
ﻣﻦﺳﻔﻴﻨ ﺔ اﺳ
ﺘﻴﺮاد game_functionsﻛـ gf
اﺳ
)( gf.check_events
وﻇﻴﻔ ﺔ )( update_screen
ﺘﺤﺪﻳ ﺚ اﻟﺸﺎﺷ ﺔ إﱃ وﻇﻴﻔ ﺔ ﻣﻨﻔﺼﻠ ﺔﺗ ﺴﻤﻰ )( update_screenﻓ ﻲ game_functions.py
ﺑدﻋﻨﺎ ﻧﻨﻘﻞ اﻟﻜﻮد اﻟﺨﺎص
ﺒﺮ:
ﺑﺸﻜﻞ أﻛ
ﺒ ﺴﻴﻂ )( run_game
ﺘﻟ
ﺒ ﺔ_ -ﻗﺮﻗﻌ ﺔ--
ﻟﻌ
وﻇﺎﺋﻒ
def check_events ():
--ﻗﺺ--
ﺋﻴ ﺔ.
#اﺟﻌﻞ أﺣﺪ ث ﺷﺎﺷ ﺔ ﻣﺮﺳﻮﻣ ﺔ ﻣﺮ
)( pygame.display.flip
alien_ Invasion.py
--ﻗﺺ--
ﺒ ﺔ.
ﺋﻴ ﺴﻴ ﺔ ﻟﻠﻌ
ﺑﺪأ اﻟﺤﻠﻘ ﺔ اﻟﺮ
#ا
248اﻟﻔﺼﻞ 12