6.1 Python - Lecture 6.en - Ar
6.1 Python - Lecture 6.en - Ar
com -
ﺍﻟﻤﺤﺎﺿﺮﺓ6
ﺍﻟﺒﺮﻣﺠﺔﺿﺮﻭﺭﻳﺔ ﻓﻲ
❑ ﺍﻟﻮﻇﺎﺉﻒ
➢ ﺗﻌﺮﻳﻒ
➢
ﺑﻨﺎءﺍﻟﺠﻤﻠﺔ
➢ ﻧﺪﺍء
➢ ﺑﻴﺎﻥﺍﻟﻌﻮﺩﺓ
❑ ﺃﻣﺜﻠﺔ
ﻃﺒﺎﻋﺔ)ﻗﺎﺉﻤﺔ]([2
//ﺍﻹﺧﺮﺍﺝ
ﻗﺎﺉﻤﺔ]2001= [2؛
ﺍﻟﻘﻴﻤﺔﺍﻟﻤﺘﺎﺣﺔ ﻋﻨﺪ ﺍﻟﻤﺆﺷﺮ :2
3
ﻣﺮﺍﺟﻌﺔTuples:
➢ ﺗﻌﺘﺒﺮﺍﻟﻤﺠﻤﻮﻋﺎﺕ ﻏﻴﺮ ﻗﺎﺑﻠﺔ ﻟﻠﺘﻐﻴﻴﺮ ﻣﻤﺎ ﻳﻌﻨﻲ ﺃﻧﻚﻻ ﻳﻤﻜﻦ ﺗﺤﺪﻳﺚ ﺃﻭ ﺗﻐﻴﻴﺮ ﺍﻟﻘﻴﻢﻣﻦ ﻋﻨﺎﺻﺮ ﺍﻟﻤﺠﻤﻮﻋﺔ.
➢ ﻳﻤﻜﻨﻚﺃﺧﺬ ﺃﺟﺰﺍء ﻣﻦ ﺍﻟﻌﻨﺎﺻﺮ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻹﻧﺸﺎء ﻋﻨﺎﺻﺮ ﺟﺪﻳﺪﺓ ﻛﻤﺎ ﻳﻮﺿﺢ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺘﺎﻟﻲ:
ﺗﻮﺏ34.56,12) =1
;('(;tup2 = )'abc', 'xyz
4
ﻗﺎﻣﻮﺱ
5
ﻗﺎﻣﻮﺱ
ﻛﻞﻣﻔﺘﺎﺡﻳﺘﻢ ﻓﺼﻠﻬﺎ ﻋﻦ ﻗﻴﻤﺘﻬﺎ ﺑﻮﺍﺳﻄﺔﺍﻟﻘﻮﻟﻮﻥ ) ،(:ﺍﻝﺃﻏﺮﺍﺽﻳﺘﻢ ﻓﺼﻠﻬﻢ ﻋﻦ ﻃﺮﻳﻖﺍﻟﻔﻮﺍﺻﻞ
ﻭﺍﻟﺸﻲءﻛﻠﻪ ﻣﺤﺼﻮﺭ ﻓﻲﺃﻗﻮﺍﺱ ﻣﺠﻌﺪﺓ.
ﺃﻗﺎﻣﻮﺱ ﻓﺎﺭﻍﺑﺪﻭﻥ ﺃﻱ ﻋﻨﺎﺻﺮ ﻳﺘﻢ ﻛﺘﺎﺑﺘﻬﺎ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻗﻮﺳﻴﻦ ﻣﺘﻌﺮﺟﻴﻦ ﻓﻘﻂ ،ﻣﺜﻞ ﻫﺬﺍ.{}:
ﺍﻝﻗﻴﻢﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺃﻥ ﻳﻜﻮﻥ ﺍﻟﻘﺎﻣﻮﺱﺃﻱ ﻧﻮﻉ ،ﻭﻟﻜﻦﺍﻟﻤﻔﺎﺗﻴﺢﻳﺠﺐ ﺃﻥ ﻳﻜﻮﻥ ﻣﻦﻏﻴﺮ ﻗﺎﺑﻞ ﻟﻠﺘﻐﻴﻴﺮﻧﻮﻉ ﺍﻟﺒﻴﺎﻧﺎﺕ
ﻣﺜﻞﺍﻟﺴﻼﺳﻞ ﺃﻭ ﺍﻷﺭﻗﺎﻡ ﺃﻭ ﺍﻟﻤﺠﻤﻮﻋﺎﺕ.
6
ﺍﻟﻮﺻﻮﻝﺇﻟﻰ ﺍﻟﻘﻴﻢ ﻓﻲ ﺍﻟﻘﺎﻣﻮﺱ
ﻟﻠﻮﺻﻮﻝﺇﻟﻰ ﻋﻨﺎﺻﺮ ﺍﻟﻘﺎﻣﻮﺱ ،ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻷﻗﻮﺍﺱ ﺍﻟﻤﺮﺑﻌﺔ ﺍﻟﻤﺄﻟﻮﻓﺔ ﻣﻊ ﺍﻟﻤﻔﺘﺎﺡ ﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ
ﻗﻴﻤﺘﻪ.ﻓﻴﻤﺎ ﻳﻠﻲ ﻣﺜﺎﻝ ﺑﺴﻴﻂ −
ﻗﺎﻣﻮﺱ=}'ﺍﺳﻢ'':ﺯﺍﺭﺍ'',ﻋﻤﺮ'',7:ﻓﺼﻞ'':ﺃﻭﻻ'ً{
ﻣﻄﺒﻌﺔ)" '[:ﺍﻻﺳﻢ'],"dictﻗﺎﻣﻮﺱ]'ﺍﺳﻢ'[(
ﻣﻄﺒﻌﺔ)" '[:ﺍﻟﻌﻤﺮ'],"dictﻗﺎﻣﻮﺱ]'ﻋﻤﺮ'[(
//ﺍﻹﺧﺮﺍﺝ
'[:ﺍﻻﺳﻢ']dictﺯﺍﺭﺍ
'[:ﺍﻟﻌﻤﺮ']7dict
7
ﺍﻟﻮﺻﻮﻝﺇﻟﻰ ﺍﻟﻘﻴﻢ ﻓﻲ ﺍﻟﻘﺎﻣﻮﺱ
ﺇﺫﺍﺣﺎﻭﻟﻨﺎ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻋﻨﺼﺮ ﺑﻴﺎﻧﺎﺕ ﺑﻤﻔﺘﺎﺡ ﻟﻴﺲ ﺟﺰءﺍً ﻣﻦ ﺍﻟﻘﺎﻣﻮﺱ ،ﻓﺴﻨﺤﺼﻞ ﻋﻠﻰ ﺧﻄﺄ ﻋﻠﻰ ﺍﻟﻨﺤﻮ
ﺍﻟﺘﺎﻟﻲ−
ﺍﻃﺒﻊ)"['," :dict]'Aliceﻗﺎﻣﻮﺱ]'ﺃﻟﻴﺲ'[(
'[:ﺃﻟﻴﺲ']dict
ﺍﻟﺘﺘﺒﻊ)ﺃﺣﺪﺙ ﻣﻜﺎﻟﻤﺔ ﺃﺧﻴﺮﺓ(:
ﺍﻟﻤﻠﻒ" ،"test.pyﺍﻟﺴﻄﺮ ،4ﻓﻲ ><module
ﺍﻃﺒﻊ
"'Alice'[: ", dict]'Alice'[; KeyError: 'Alice
8
ﺗﺤﺪﻳﺚﺍﻟﻘﺎﻣﻮﺱ
ﻳﻤﻜﻨﻚﺗﺤﺪﻳﺚ ﺍﻟﻘﺎﻣﻮﺱ ﻋﻦ ﻃﺮﻳﻖ ﺇﺿﺎﻓﺔ ﺇﺩﺧﺎﻝ ﺟﺪﻳﺪ ﺃﻭ ﺯﻭﺝ ﻣﻔﺘﺎﺡ-ﻗﻴﻤﺔ ،ﺃﻭ ﺗﻌﺪﻳﻞ ﺇﺩﺧﺎﻝ ﻣﻮﺟﻮﺩ ،ﺃﻭ
ﺣﺬﻑﺇﺩﺧﺎﻝ ﻣﻮﺟﻮﺩ ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﺃﺩﻧﺎﻩ ﻓﻲ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺒﺴﻴﻂ −
'[:ﺍﻟﻌﻤﺮ']8dict
'[:ﺍﻟﻤﺪﺭﺳﺔ']dictﻣﺪﺭﺳﺔ ﺩﻱ ﺑﻲ ﺇﺱ
9
ﺣﺬﻑﻋﻨﺎﺻﺮ ﺍﻟﻘﺎﻣﻮﺱ
ﻳﻤﻜﻨﻚﺇﻣﺎ ﺇﺯﺍﻟﺔ ﻋﻨﺎﺻﺮ ﺍﻟﻘﺎﻣﻮﺱ ﺍﻟﻔﺮﺩﻳﺔ ﺃﻭ ﻣﺴﺢ ﻣﺤﺘﻮﻳﺎﺕ ﺍﻟﻘﺎﻣﻮﺱ ﺑﺎﻟﻜﺎﻣﻞ .ﻛﻤﺎ ﻳﻤﻜﻨﻚ ﺃﻳﻀﺎً ﺣﺬﻑ ﺍﻟﻘﺎﻣﻮﺱ ﺑﺎﻟﻜﺎﻣﻞ ﻓﻲ
ﻋﻤﻠﻴﺔﻭﺍﺣﺪﺓ.
ﻹﺯﺍﻟﺔﻗﺎﻣﻮﺱ ﻛﺎﻣﻞ ﺻﺮﺍﺣﺔ ً،ﻣﺎ ﻋﻠﻴﻚ ﺳﻮﻯ ﺍﺳﺘﺨﺪﺍﻡ ﻋﺒﺎﺭﺓ .delﻓﻴﻤﺎ ﻳﻠﻲ ﻣﺜﺎﻝ ﺑﺴﻴﻂ −
'[:ﺍﻟﻌﻤﺮ']dict
ﺍﻟﺘﺘﺒﻊ)ﺃﺣﺪﺙ ﻣﻜﺎﻟﻤﺔ ﺃﺧﻴﺮﺓ(: ﺍﻃﺒﻊ)"']dictﺍﻟﻌﻤﺮ'[," :ﻗﺎﻣﻮﺱ]'ﺍﻟﻌﻤﺮ'[( ﻃﺒﺎﻋﺔ )"']dict
ﺍﻟﻤﻠﻒ" ،"test.pyﺍﻟﺴﻄﺮ ،8ﻓﻲ ><module
ﺍﻃﺒﻊ":dict]'Age'[: ", dict]'Age'[; TypeError ﺍﻟﻤﺪﺭﺳﺔ'[," :ﻗﺎﻣﻮﺱ]'ﻣﺪﺭﺳﺔ'[(
ﺍﻟﻜﺎﺉﻦ' 'typeﻏﻴﺮ ﻗﺎﺑﻞ ﻟﻠﺤﺬﻑ
10
ﺧﺼﺎﺉﺺﻣﻔﺎﺗﻴﺢ ﺍﻟﻘﺎﻣﻮﺱ
ﻗﺎﻣﻮﺱﻗﻴﻢﻳﻤﻠﻚﻻ ﺗﻮﺟﺪ ﻗﻴﻮﺩﻳﻤﻜﻦ ﺃﻥ ﺗﻜﻮﻥ ﺃﻱ ﻛﺎﺉﻦ ﺑﺎﻳﺜﻮﻥ ﻋﺸﻮﺍﺉﻲ ،ﺳﻮﺍء ﻛﺎﺉﻨﺎﺕ ﻗﻴﺎﺳﻴﺔ ﺃﻭ ﻛﺎﺉﻨﺎﺕ ﻣﺤﺪﺩﺓ ﻣﻦ
ﻗﺒﻞﺍﻟﻤﺴﺘﺨﺪﻡ .ﻭﻣﻊ ﺫﻟﻚ ،ﻻ ﻳﻨﻄﺒﻖ ﺍﻷﻣﺮ ﻧﻔﺴﻪ ﻋﻠﻰ ﺍﻟﻤﻔﺎﺗﻴﺢ.
)ﺃ(ﻻ ﻳﺴُﻤﺢ ﺑﺈﺩﺧﺎﻝ ﺃﻛﺜﺮ ﻣﻦ ﻣﻔﺘﺎﺡ ﻭﺍﺣﺪ .ﻭﻫﺬﺍ ﻳﻌﻨﻲﻻ ﻳﻮﺟﺪ ﻣﻔﺘﺎﺡ ﻣﻜﺮﺭﻣﺴﻤﻮﺡ ﺑﺬﻟﻚ .ﻋﻨﺪﻣﺎﻳﻨﺴﺦ ﺍﻟﻤﻔﺎﺗﻴﺢ ﺍﻟﺘﻲ ﺗﻢ
ﻣﻮﺍﺟﻬﺘﻬﺎﺃﺛﻨﺎء ﺍﻟﺘﻌﻴﻴﻦ،ﺍﻟﻤﻬﻤﺔ ﺍﻷﺧﻴﺮﺓ ﺗﻔﻮﺯ .ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ -
ﻃﺒﺎﻋﺔ)"']dictﺍﻻﺳﻢ'[," :ﻗﺎﻣﻮﺱ]'ﺍﺳﻢ'[(
//ﺍﻹﺧﺮﺍﺝ
'[:ﺍﻻﺳﻢ']dictﻣﺎﻧﻲ
11
ﺧﺼﺎﺉﺺﻣﻔﺎﺗﻴﺢ ﺍﻟﻘﺎﻣﻮﺱ
)ﺏ(ﻳﺠﺐ ﺃﻥ ﺗﻜﻮﻥ ﺍﻟﻤﻔﺎﺗﻴﺢ ﻏﻴﺮ ﻗﺎﺑﻠﺔ ﻟﻠﺘﻐﻴﻴﺮ .ﻭﻫﺬﺍ ﻳﻌﻨﻲ ﺃﻧﻪ ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺴﻼﺳﻞ ﺃﻭ ﺍﻷﺭﻗﺎﻡ ﺃﻭ
ﺍﻟﻤﺠﻤﻮﻋﺎﺕﻛﻤﻔﺎﺗﻴﺢ ﻟﻠﻘﺎﻣﻮﺱ ﻭﻟﻜﻦ ﻻ ﻳﺴُﻤﺢ ﺑﺸﻲء ﻣﺜﻞ ]' .['keyﻓﻴﻤﺎ ﻳﻠﻲ ﻣﺜﺎﻝ ﺑﺴﻴﻂ −
ﻃﺒﺎﻋﺔ)"']dictﺍﻻﺳﻢ'[," :ﻗﺎﻣﻮﺱ]'ﺍﺳﻢ'[(
12
ﻭﻇﺎﺉﻒﺍﻟﻘﺎﻣﻮﺱ ﺍﻟﻤﻀﻤﻨﺔ
ﺳﻴﺘﻢﻣﻨﺎﻗﺸﺘﻬﺎ ﻻﺣﻘﺎ
13
ﺍﻟﻮﻇﺎﺉﻒ
14
ﺍﻟﻮﻇﺎﺉﻒ
ﺍﻟﻮﻇﻴﻔﺔﻫﻲ ﻛﺘﻠﺔ ﻣﻦﻣﻨﻈﻢ,ﻗﺎﺑﻠﺔ ﻹﻋﺎﺩﺓ ﺍﻻﺳﺘﺨﺪﺍﻡﺍﻟﻜﻮﺩ ﺍﻟﺬﻱ ﻳﺘﻢ ﺍﺳﺘﺨﺪﺍﻣﻪ ﻷﺩﺍء ﺇﺟﺮﺍء ﻭﺍﺣﺪ ﺫﻱ ﺻﻠﺔ. ▪
ﻭﻟﻜﻦﻳﻤﻜﻨﻚ ﺃﻳﻀﺎً ﺇﻧﺸﺎء ﻭﻇﺎﺉﻒ ﺧﺎﺻﺔ ﺑﻚ .ﺗﺴﻤﻰ ﻫﺬﻩ ﺍﻟﻮﻇﺎﺉﻒﻭﻇﺎﺉﻒ ﻣﺤﺪﺩﺓ ﻣﻦ ﻗﺒﻞ ﺍﻟﻤﺴﺘﺨﺪﻡ. ▪
15
ﺗﻌﺮﻳﻒ
ﻳﻤﻜﻨﻚﺗﻌﺮﻳﻒ ﻭﻇﺎﺉﻒ ﻟﺘﻮﻓﻴﺮ ﺍﻟﻮﻇﻴﻔﺔ ﺍﻟﻤﻄﻠﻮﺑﺔ .ﻓﻴﻤﺎ ﻳﻠﻲ ﻗﻮﺍﻋﺪ ﺑﺴﻴﻄﺔ ﻟﺘﻌﺮﻳﻒ ﻭﻇﻴﻔﺔ ﻓﻲ ﺑﺎﻳﺜﻮﻥ.
❑ ﺃﻱﻣﺪﺧﻼﺕﺣﺪﻭﺩﻳﺠﺐ ﻭﺿﻊ ﺍﻟﺤﺠﺞ ﺃﻭ ﺍﻟﺤﺠﺞ ﺩﺍﺧﻞ ﻫﺬﻩ ﺍﻷﻗﻮﺍﺱ .ﻳﻤﻜﻨﻚ ﺃﻳﻀﺎً ﺗﻌﺮﻳﻒ ﺍﻟﻤﻌﻠﻤﺎﺕ ﺩﺍﺧﻞ
ﻫﺬﻩﺍﻷﻗﻮﺍﺱ.
❑ ﻳﻤﻜﻦﺃﻥ ﻳﻜﻮﻥ ﺍﻟﺒﻴﺎﻥ ﺍﻷﻭﻝ ﻟﻠﻮﻇﻴﻔﺔ ﺑﻴﺎﻧﺎً ﺍﺧﺘﻴﺎﺭﻳﺎً -ﺳﻠﺴﻠﺔ ﺗﻮﺛﻴﻖ ﺍﻟﻮﻇﻴﻔﺔ ﺃﻭ ﺳﻠﺴﻠﺔ ﺗﻮﺛﻴﻖ.
16
ﺑﻨﺎءﺍﻟﺠﻤﻠﺔ
ﻳﻌﻮﺩ ﻣﺠﻤﻮﻋﺔﺍﻟﻮﻇﺎﺉﻒ
ﻳﻌﻮﺩ]ﺗﻌﺒﻴﺮ[
17
ﺃﻣﺜﻠﺔ
ﺩﻳﻒﺇﺿﺎﻓﺔ ﻣﻤﺘﻌﺔ)ﺃ,ﺏ(: #ﺗﻌﺮﻳﻒ ﺍﻟﻮﻇﻴﻔﺔ
ﻧﺘﻴﺠﺔ=ﺃ+ﺏ ﺩﻳﻒﺍﻃﺒﻌﻨﻲ)ﺷﺎﺭﻉ(:
ﻣﻄﺒﻌﺔ)ﻧﺘﻴﺠﺔ( ﻣﻄﺒﻌﺔ)ﺷﺎﺭﻉ(
ﻳﻌﻮﺩ
#ﻭﻇﻴﻔﺔ ﺍﻻﺳﺘﺪﻋﺎء
ﺇﺿﺎﻓﺔﻣﻤﺘﻌﺔ)(5,6 ﺍﻃﺒﻌﻨﻲ)"ﻣﺮﺣﺒﺎ ﺑﺎﻟﻌﺎﻟﻢ"(
//ﺍﻹﺧﺮﺍﺝ //ﺍﻹﺧﺮﺍﺝ
11 ﻣﺮﺣﺒﺎﺑﺎﻟﻌﺎﻟﻢ
18
ﺍﺳﺘﺪﻋﺎءﺍﻟﻮﻇﻴﻔﺔ
➢ ﻳﺆﺩﻱﺗﻌﺮﻳﻒ ﻭﻇﻴﻔﺔ ﻓﻘﻂ ﺇﻟﻰ ﺇﻋﻄﺎﺉﻬﺎ ﺍﺳﻤﺎً ،ﻭﺗﺤﺪﻳﺪ ﺍﻟﻤﻌﻠﻤﺎﺕ ﺍﻟﺘﻲ ﻳﺠﺐ ﺗﻀﻤﻴﻨﻬﺎ ﻓﻲ ﺍﻟﻮﻇﻴﻔﺔ ﻭﺗﻨﻈﻴﻢ ﻛﺘﻞ
ﺍﻟﺘﻌﻠﻴﻤﺎﺕﺍﻟﺒﺮﻣﺠﻴﺔ.
➢ ﺑﻤﺠﺮﺩﺍﻻﻧﺘﻬﺎء ﻣﻦ ﺍﻟﺒﻨﻴﺔ ﺍﻷﺳﺎﺳﻴﺔ ﻟﻮﻇﻴﻔﺔ ﻣﺎ ،ﻳﻤﻜﻨﻚ ﺗﻨﻔﻴﺬﻫﺎ ﻋﻦ ﻃﺮﻳﻖ ﺍﺳﺘﺪﻋﺎﺉﻬﺎ ﻣﻦ ﻭﻇﻴﻔﺔ ﺃﺧﺮﻯ ﺃﻭ ﻣﺒﺎﺷﺮﺓ ﻣﻦ
ﻣﻮﺟﻪ .Pythonﻓﻴﻤﺎ ﻳﻠﻲ ﻣﺜﺎﻝ ﻻﺳﺘﺪﻋﺎءﺍﻃﺒﻌﻨﻲﻭﻇﻴﻔﺔ −
ﻳﻌﻮﺩ؛
19
ﺑﻴﺎﻥﺍﻟﻌﻮﺩﺓ
ﺍﻟﺒﻴﺎﻥﻳﻌﻮﺩ]ﺗﻌﺒﻴﺮ[ﻳﺨﺮﺝ ﻣﻦ ﻭﻇﻴﻔﺔ,ﺍﺧﺘﻴﺎﺭﻳﺎﺇﻋﺎﺩﺓ ﺍﻟﺘﻌﺒﻴﺮ ﺇﻟﻰ ﺍﻟﻤﺘﺼﻞ.ﻳﻌﻮﺩﺑﻴﺎﻥ ﻣﻊﻻ ﺣﺠﺞﻫﻮ ﻧﻔﺲ ﺍﻟﺸﻲءﻳﻌﻮﺩﻻ
ﺃﺣﺪ.
ﻻﺗﻘﻮﻡ ﺟﻤﻴﻊ ﺍﻷﻣﺜﻠﺔ ﺍﻟﻤﺬﻛﻮﺭﺓ ﺃﻋﻼﻩ ﺑﺈﺭﺟﺎﻉ ﺃﻱ ﻗﻴﻤﺔ .ﻳﻤﻜﻨﻚ ﺇﺭﺟﺎﻉ ﻗﻴﻤﺔ ﻣﻦ ﺩﺍﻟﺔ ﻋﻠﻰ ﺍﻟﻨﺤﻮ ﺍﻟﺘﺎﻟﻲ:
20
ﺷﻜﺮﺍً