0% found this document useful (0 votes)
6 views

6.1 Python - Lecture 6.en - Ar

بايثون

Uploaded by

damneder6
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

6.1 Python - Lecture 6.en - Ar

بايثون

Uploaded by

damneder6
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

‫ﻣﺘﺮﺟﻢ ﻣﻦ ﺍﻹﻧﺠﻠﻴﺰﻳﺔ ﺇﻟﻰ ﺍﻟﻌﺮﺑﻴﺔ ‪www.onlinedoctranslator.

com -‬‬

‫ﺍﻟﻤﺤﺎﺿﺮﺓ‪6‬‬

‫ﺍﻟﺒﺮﻣﺠﺔﺿﺮﻭﺭﻳﺔ ﻓﻲ‬

‫ﺑﻘﻠﻢ ‪:‬ﺩ‪ .‬ﻣﺤﻤﺪ ﻋﺒﺪ ﺍﻟﻔﺘﺎﺡ‬

‫‪1‬‬ ‫ﺩ‪.‬ﻣﺤﻤﺪ ﻋﺒﺪ ﺍﻟﻔﺘﺎﺡ‬ ‫‪2024‬‬


‫ﺃﻫﺪﺍﻑﺍﻟﻤﺤﺎﺿﺮﺓ‬
‫❑ ﻣﺮﺍﺟﻌﺔ‬
‫❑ ﻗﺎﻣﻮﺱ‬
‫➢ ﺍﻟﻮﺻﻮﻝﺇﻟﻰ ﺍﻟﻌﻨﺼﺮ‬
‫➢ ﺗﺤﺪﻳﺚﺍﻟﻌﻨﺼﺮ‬
‫➢ ﺣﺬﻑﺍﻟﻌﻨﺼﺮ‬
‫➢ ﺣﺬﻑﺍﻟﻘﺎﻣﻮﺱ‬
‫➢ ﺧﺼﺎﺉﺺﺍﻟﻤﻔﺎﺗﻴﺢ‬

‫❑ ﺍﻟﻮﻇﺎﺉﻒ‬
‫➢ ﺗﻌﺮﻳﻒ‬
‫➢‬
‫ﺑﻨﺎءﺍﻟﺠﻤﻠﺔ‬

‫➢ ﻧﺪﺍء‬
‫➢ ﺑﻴﺎﻥﺍﻟﻌﻮﺩﺓ‬
‫❑ ﺃﻣﺜﻠﺔ‬

‫‪2‬‬ ‫ﺩ‪.‬ﻣﺤﻤﺪ ﻋﺒﺪ ﺍﻟﻔﺘﺎﺡ‬ ‫‪2024‬‬


‫ﻣﺮﺍﺟﻌﺔ‪:‬ﺍﻟﻘﻮﺍﺉﻢ‬

‫ﺍﻟﻘﺎﺉﻤﺔ= ]'ﻓﻴﺰﻳﺎء'‪' ،‬ﻛﻴﻤﻴﺎء'‪[2000 ،1997،‬؛‬

‫ﻃﺒﺎﻋﺔ)"ﺍﻟﻘﻴﻤﺔ ﺍﻟﻤﺘﺎﺣﺔ ﻓﻲ ﺍﻟﻔﻬﺮﺱ ‪(":2‬‬

‫ﻃﺒﺎﻋﺔ)ﻗﺎﺉﻤﺔ]‪([2‬‬

‫‪//‬ﺍﻹﺧﺮﺍﺝ‬
‫ﻗﺎﺉﻤﺔ]‪2001= [2‬؛‬
‫ﺍﻟﻘﻴﻤﺔﺍﻟﻤﺘﺎﺣﺔ ﻋﻨﺪ ﺍﻟﻤﺆﺷﺮ ‪:2‬‬

‫‪1997‬‬ ‫ﻃﺒﺎﻋﺔ)"ﻗﻴﻤﺔ ﺟﺪﻳﺪﺓ ﻣﺘﺎﺣﺔ ﻓﻲ ﺍﻟﻔﻬﺮﺱ ‪(":2‬‬


‫ﻗﻴﻤﺔﺟﺪﻳﺪﺓ ﻣﺘﺎﺣﺔ ﻓﻲ ﺍﻟﻤﺆﺷﺮ ‪:2‬‬
‫ﻃﺒﺎﻋﺔ)ﻗﺎﺉﻤﺔ]‪([2‬‬
‫‪2001‬‬

‫‪3‬‬
‫ﻣﺮﺍﺟﻌﺔ‪Tuples:‬‬
‫➢ ﺗﻌﺘﺒﺮﺍﻟﻤﺠﻤﻮﻋﺎﺕ ﻏﻴﺮ ﻗﺎﺑﻠﺔ ﻟﻠﺘﻐﻴﻴﺮ ﻣﻤﺎ ﻳﻌﻨﻲ ﺃﻧﻚﻻ ﻳﻤﻜﻦ ﺗﺤﺪﻳﺚ ﺃﻭ ﺗﻐﻴﻴﺮ ﺍﻟﻘﻴﻢﻣﻦ ﻋﻨﺎﺻﺮ ﺍﻟﻤﺠﻤﻮﻋﺔ‪.‬‬
‫➢ ﻳﻤﻜﻨﻚﺃﺧﺬ ﺃﺟﺰﺍء ﻣﻦ ﺍﻟﻌﻨﺎﺻﺮ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻹﻧﺸﺎء ﻋﻨﺎﺻﺮ ﺟﺪﻳﺪﺓ ﻛﻤﺎ ﻳﻮﺿﺢ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺘﺎﻟﻲ‪:‬‬

‫ﺗﻮﺏ‪34.56,12) =1‬‬
‫;('‪(;tup2 = )'abc', 'xyz‬‬

‫‪ #‬ﺍﻹﺟﺮﺍء ﺍﻟﺘﺎﻟﻲ ﻏﻴﺮ ﺻﺎﻟﺢ ﻟﻠﻤﺠﻤﻮﻋﺎﺕ‬


‫ﺗﻌﻴﻴﻦﺍﻟﻌﻨﺎﺻﺮ '‪ 'tuple‬ﻻ ﻳﺪﻋﻢ‬
‫‪ #‬ﺗﻮﺏ‪100 = [0]1‬؛‪#‬ﺇﺫﺍ ﻗﻤﺖ ﺑﺤﺬﻑ‪#‬ﺳﻮﻑ ﻳﻜﻮﻥ ﻫﻨﺎﻙ ﺧﻄﺄ‬
‫ﺍﻟﻜﺎﺉﻦ ‪TypeError:‬‬

‫‪ #‬ﻟﺬﺍ ﺩﻋﻨﺎ ﻧﻨﺸﺊ ﻣﺠﻤﻮﻋﺔ ﺟﺪﻳﺪﺓ ﻋﻠﻰ ﺍﻟﻨﺤﻮ ﺍﻟﺘﺎﻟﻲ‬


‫ﺗﻮﺏ‪ )=3‬؛ ﻃﺒﺎﻋﺔ‪tup1 + tup2‬ﺗﻮﺏ‪;(3‬‬
‫)‪، 'abc'، 'xyz'(34.56 ،12‬‬

‫‪4‬‬
‫ﻗﺎﻣﻮﺱ‬

‫‪5‬‬
‫ﻗﺎﻣﻮﺱ‬
‫ﻛﻞﻣﻔﺘﺎﺡﻳﺘﻢ ﻓﺼﻠﻬﺎ ﻋﻦ ﻗﻴﻤﺘﻬﺎ ﺑﻮﺍﺳﻄﺔﺍﻟﻘﻮﻟﻮﻥ )‪ ،(:‬ﺍﻝﺃﻏﺮﺍﺽﻳﺘﻢ ﻓﺼﻠﻬﻢ ﻋﻦ ﻃﺮﻳﻖﺍﻟﻔﻮﺍﺻﻞ‬
‫ﻭﺍﻟﺸﻲءﻛﻠﻪ ﻣﺤﺼﻮﺭ ﻓﻲﺃﻗﻮﺍﺱ ﻣﺠﻌﺪﺓ‪.‬‬

‫ﺃﻗﺎﻣﻮﺱ ﻓﺎﺭﻍﺑﺪﻭﻥ ﺃﻱ ﻋﻨﺎﺻﺮ ﻳﺘﻢ ﻛﺘﺎﺑﺘﻬﺎ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻗﻮﺳﻴﻦ ﻣﺘﻌﺮﺟﻴﻦ ﻓﻘﻂ‪ ،‬ﻣﺜﻞ ﻫﺬﺍ‪.{}:‬‬

‫ﺍﻟﻤﻔﺎﺗﻴﺢﻧﻜﻮﻥﻓﺮﻳﺪﺩﺍﺧﻞ ﺍﻟﻘﺎﻣﻮﺱ ﺑﻴﻨﻤﺎﻗﻴﻢﻗﺪ ﻻ ﻳﻜﻮﻥ‪.‬‬

‫ﺍﻝﻗﻴﻢﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺃﻥ ﻳﻜﻮﻥ ﺍﻟﻘﺎﻣﻮﺱﺃﻱ ﻧﻮﻉ‪ ،‬ﻭﻟﻜﻦﺍﻟﻤﻔﺎﺗﻴﺢﻳﺠﺐ ﺃﻥ ﻳﻜﻮﻥ ﻣﻦﻏﻴﺮ ﻗﺎﺑﻞ ﻟﻠﺘﻐﻴﻴﺮﻧﻮﻉ ﺍﻟﺒﻴﺎﻧﺎﺕ‬
‫ﻣﺜﻞﺍﻟﺴﻼﺳﻞ ﺃﻭ ﺍﻷﺭﻗﺎﻡ ﺃﻭ ﺍﻟﻤﺠﻤﻮﻋﺎﺕ‪.‬‬

‫‪6‬‬
‫ﺍﻟﻮﺻﻮﻝﺇﻟﻰ ﺍﻟﻘﻴﻢ ﻓﻲ ﺍﻟﻘﺎﻣﻮﺱ‬
‫ﻟﻠﻮﺻﻮﻝﺇﻟﻰ ﻋﻨﺎﺻﺮ ﺍﻟﻘﺎﻣﻮﺱ‪ ،‬ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻷﻗﻮﺍﺱ ﺍﻟﻤﺮﺑﻌﺔ ﺍﻟﻤﺄﻟﻮﻓﺔ ﻣﻊ ﺍﻟﻤﻔﺘﺎﺡ ﻟﻠﺤﺼﻮﻝ ﻋﻠﻰ‬
‫ﻗﻴﻤﺘﻪ‪.‬ﻓﻴﻤﺎ ﻳﻠﻲ ﻣﺜﺎﻝ ﺑﺴﻴﻂ ‪−‬‬

‫ﻗﺎﻣﻮﺱ=}'ﺍﺳﻢ'‪':‬ﺯﺍﺭﺍ'‪',‬ﻋﻤﺮ'‪',7:‬ﻓﺼﻞ'‪':‬ﺃﻭﻻ'ً{‬

‫ﻣﻄﺒﻌﺔ)" ‪'[:‬ﺍﻻﺳﻢ']‪,"dict‬ﻗﺎﻣﻮﺱ]'ﺍﺳﻢ'[(‬

‫ﻣﻄﺒﻌﺔ)" ‪'[:‬ﺍﻟﻌﻤﺮ']‪,"dict‬ﻗﺎﻣﻮﺱ]'ﻋﻤﺮ'[(‬
‫‪//‬ﺍﻹﺧﺮﺍﺝ‬

‫‪'[:‬ﺍﻻﺳﻢ']‪dict‬ﺯﺍﺭﺍ‬

‫‪'[:‬ﺍﻟﻌﻤﺮ']‪7dict‬‬

‫‪7‬‬
‫ﺍﻟﻮﺻﻮﻝﺇﻟﻰ ﺍﻟﻘﻴﻢ ﻓﻲ ﺍﻟﻘﺎﻣﻮﺱ‬
‫ﺇﺫﺍﺣﺎﻭﻟﻨﺎ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻋﻨﺼﺮ ﺑﻴﺎﻧﺎﺕ ﺑﻤﻔﺘﺎﺡ ﻟﻴﺲ ﺟﺰءﺍً ﻣﻦ ﺍﻟﻘﺎﻣﻮﺱ‪ ،‬ﻓﺴﻨﺤﺼﻞ ﻋﻠﻰ ﺧﻄﺄ ﻋﻠﻰ ﺍﻟﻨﺤﻮ‬
‫ﺍﻟﺘﺎﻟﻲ‪−‬‬

‫ﻗﺎﻣﻮﺱ= }'ﺍﻻﺳﻢ'‪':‬ﺯﺍﺭﺍ'‪' ،‬ﻋﻤﺮ'‪' ،7:‬ﻓﺼﻞ'‪':‬ﺃﻭﻻ'ً{‬

‫ﺍﻃﺒﻊ)"['‪," :dict]'Alice‬ﻗﺎﻣﻮﺱ]'ﺃﻟﻴﺲ'[(‬

‫‪'[:‬ﺃﻟﻴﺲ']‪dict‬‬
‫ﺍﻟﺘﺘﺒﻊ)ﺃﺣﺪﺙ ﻣﻜﺎﻟﻤﺔ ﺃﺧﻴﺮﺓ(‪:‬‬
‫ﺍﻟﻤﻠﻒ"‪ ،"test.py‬ﺍﻟﺴﻄﺮ ‪ ،4‬ﻓﻲ >‪<module‬‬
‫ﺍﻃﺒﻊ‬
‫"‪'Alice'[: ", dict]'Alice'[; KeyError: 'Alice‬‬

‫‪8‬‬
‫ﺗﺤﺪﻳﺚﺍﻟﻘﺎﻣﻮﺱ‬
‫ﻳﻤﻜﻨﻚﺗﺤﺪﻳﺚ ﺍﻟﻘﺎﻣﻮﺱ ﻋﻦ ﻃﺮﻳﻖ ﺇﺿﺎﻓﺔ ﺇﺩﺧﺎﻝ ﺟﺪﻳﺪ ﺃﻭ ﺯﻭﺝ ﻣﻔﺘﺎﺡ‪-‬ﻗﻴﻤﺔ‪ ،‬ﺃﻭ ﺗﻌﺪﻳﻞ ﺇﺩﺧﺎﻝ ﻣﻮﺟﻮﺩ‪ ،‬ﺃﻭ‬
‫ﺣﺬﻑﺇﺩﺧﺎﻝ ﻣﻮﺟﻮﺩ ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﺃﺩﻧﺎﻩ ﻓﻲ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺒﺴﻴﻂ ‪−‬‬

‫ﻗﺎﻣﻮﺱ=}'ﺍﺳﻢ'‪':‬ﺯﺍﺭﺍ'‪' ،‬ﻋﻤﺮ'‪' ،7:‬ﻓﺼﻞ'‪':‬ﺃﻭﻻ ً'{ ﻗﺎﻣﻮﺱ]'ﺍﻟﻌﻤﺮ'[ =‪#;8‬‬


‫ﺗﺤﺪﻳﺚﺍﻹﺩﺧﺎﻝ ﺍﻟﻤﻮﺟﻮﺩ ﻗﺎﻣﻮﺱ]'ﺍﻟﻤﺪﺭﺳﺔ'[ ="ﻣﺪﺭﺳﺔ ﺩﻱ ﺑﻲ ﺇﺱ"؛‪#‬‬
‫ﺇﺿﺎﻓﺔﺇﺩﺧﺎﻝ ﺟﺪﻳﺪ‬

‫ﺍﻃﺒﻊ)"‪']dict‬ﺍﻟﻌﻤﺮ'[‪," :‬ﻗﺎﻣﻮﺱ]'ﺍﻟﻌﻤﺮ'[( ﻃﺒﺎﻋﺔ )"‪']dict‬‬

‫‪//‬ﺍﻹﺧﺮﺍﺝ‬ ‫ﺍﻟﻤﺪﺭﺳﺔ'[‪," :‬ﻗﺎﻣﻮﺱ]'ﻣﺪﺭﺳﺔ'[(‬

‫‪'[:‬ﺍﻟﻌﻤﺮ']‪8dict‬‬

‫‪'[:‬ﺍﻟﻤﺪﺭﺳﺔ']‪dict‬ﻣﺪﺭﺳﺔ ﺩﻱ ﺑﻲ ﺇﺱ‬

‫‪9‬‬
‫ﺣﺬﻑﻋﻨﺎﺻﺮ ﺍﻟﻘﺎﻣﻮﺱ‬
‫ﻳﻤﻜﻨﻚﺇﻣﺎ ﺇﺯﺍﻟﺔ ﻋﻨﺎﺻﺮ ﺍﻟﻘﺎﻣﻮﺱ ﺍﻟﻔﺮﺩﻳﺔ ﺃﻭ ﻣﺴﺢ ﻣﺤﺘﻮﻳﺎﺕ ﺍﻟﻘﺎﻣﻮﺱ ﺑﺎﻟﻜﺎﻣﻞ‪ .‬ﻛﻤﺎ ﻳﻤﻜﻨﻚ ﺃﻳﻀﺎً ﺣﺬﻑ ﺍﻟﻘﺎﻣﻮﺱ ﺑﺎﻟﻜﺎﻣﻞ ﻓﻲ‬
‫ﻋﻤﻠﻴﺔﻭﺍﺣﺪﺓ‪.‬‬

‫ﻹﺯﺍﻟﺔﻗﺎﻣﻮﺱ ﻛﺎﻣﻞ ﺻﺮﺍﺣﺔ‪ ً،‬ﻣﺎ ﻋﻠﻴﻚ ﺳﻮﻯ ﺍﺳﺘﺨﺪﺍﻡ ﻋﺒﺎﺭﺓ ‪ .del‬ﻓﻴﻤﺎ ﻳﻠﻲ ﻣﺜﺎﻝ ﺑﺴﻴﻂ ‪−‬‬

‫ﻗﺎﻣﻮﺱ= }'ﺍﻻﺳﻢ'‪' :‬ﺯﺍﺭﺍ'‪' ،‬ﺍﻟﻌﻤﺮ'‪' ،7 :‬ﺍﻟﺼﻒ'‪' :‬ﺍﻷﻭﻝ'{ ﺩﻳﻞﻗﺎﻣﻮﺱ]'ﺍﺳﻢ‬


‫'[؛‪ #‬ﺇﺯﺍﻟﺔ ﺍﻹﺩﺧﺎﻝ ﺑﺎﻟﻤﻔﺘﺎﺡ 'ﺍﻻﺳﻢ' ﻗﺎﻣﻮﺱ‪.‬ﻭﺍﺿﺢ)(؛‬
‫‪ #‬ﺇﺯﺍﻟﺔ ﺟﻤﻴﻊ ﺍﻹﺩﺧﺎﻻﺕ ﻓﻲ ﺍﻟﻘﺎﻣﻮﺱ‬
‫‪#‬ﺣﺬﻑ ﺍﻟﻘﺎﻣﻮﺱ ﺑﺄﻛﻤﻠﻪ‬ ‫ﺩﻳﻞﻗﺎﻣﻮﺱ؛‬

‫‪'[:‬ﺍﻟﻌﻤﺮ']‪dict‬‬
‫ﺍﻟﺘﺘﺒﻊ)ﺃﺣﺪﺙ ﻣﻜﺎﻟﻤﺔ ﺃﺧﻴﺮﺓ(‪:‬‬ ‫ﺍﻃﺒﻊ)"‪']dict‬ﺍﻟﻌﻤﺮ'[‪," :‬ﻗﺎﻣﻮﺱ]'ﺍﻟﻌﻤﺮ'[( ﻃﺒﺎﻋﺔ )"‪']dict‬‬
‫ﺍﻟﻤﻠﻒ"‪ ،"test.py‬ﺍﻟﺴﻄﺮ ‪ ،8‬ﻓﻲ >‪<module‬‬
‫ﺍﻃﺒﻊ"‪:dict]'Age'[: ", dict]'Age'[; TypeError‬‬ ‫ﺍﻟﻤﺪﺭﺳﺔ'[‪," :‬ﻗﺎﻣﻮﺱ]'ﻣﺪﺭﺳﺔ'[(‬
‫ﺍﻟﻜﺎﺉﻦ'‪ 'type‬ﻏﻴﺮ ﻗﺎﺑﻞ ﻟﻠﺤﺬﻑ‬

‫‪10‬‬
‫ﺧﺼﺎﺉﺺﻣﻔﺎﺗﻴﺢ ﺍﻟﻘﺎﻣﻮﺱ‬
‫ﻗﺎﻣﻮﺱﻗﻴﻢﻳﻤﻠﻚﻻ ﺗﻮﺟﺪ ﻗﻴﻮﺩﻳﻤﻜﻦ ﺃﻥ ﺗﻜﻮﻥ ﺃﻱ ﻛﺎﺉﻦ ﺑﺎﻳﺜﻮﻥ ﻋﺸﻮﺍﺉﻲ‪ ،‬ﺳﻮﺍء ﻛﺎﺉﻨﺎﺕ ﻗﻴﺎﺳﻴﺔ ﺃﻭ ﻛﺎﺉﻨﺎﺕ ﻣﺤﺪﺩﺓ ﻣﻦ‬
‫ﻗﺒﻞﺍﻟﻤﺴﺘﺨﺪﻡ‪ .‬ﻭﻣﻊ ﺫﻟﻚ‪ ،‬ﻻ ﻳﻨﻄﺒﻖ ﺍﻷﻣﺮ ﻧﻔﺴﻪ ﻋﻠﻰ ﺍﻟﻤﻔﺎﺗﻴﺢ‪.‬‬

‫ﻫﻨﺎﻙﻧﻘﻄﺘﺎﻥ ﻣﻬﻤﺘﺎﻥ ﻳﺠﺐ ﺗﺬﻛﺮﻫﻤﺎﻗﺎﻣﻮﺱﺍﻟﻤﻔﺎﺗﻴﺢ‪-‬‬

‫)ﺃ(ﻻ ﻳﺴُﻤﺢ ﺑﺈﺩﺧﺎﻝ ﺃﻛﺜﺮ ﻣﻦ ﻣﻔﺘﺎﺡ ﻭﺍﺣﺪ‪ .‬ﻭﻫﺬﺍ ﻳﻌﻨﻲﻻ ﻳﻮﺟﺪ ﻣﻔﺘﺎﺡ ﻣﻜﺮﺭﻣﺴﻤﻮﺡ ﺑﺬﻟﻚ‪ .‬ﻋﻨﺪﻣﺎﻳﻨﺴﺦ ﺍﻟﻤﻔﺎﺗﻴﺢ ﺍﻟﺘﻲ ﺗﻢ‬
‫ﻣﻮﺍﺟﻬﺘﻬﺎﺃﺛﻨﺎء ﺍﻟﺘﻌﻴﻴﻦ‪،‬ﺍﻟﻤﻬﻤﺔ ﺍﻷﺧﻴﺮﺓ ﺗﻔﻮﺯ‪ .‬ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ‪-‬‬

‫ﻗﺎﻣﻮﺱ= }'ﺍﻻﺳﻢ'‪':‬ﺯﺍﺭﺍ'‪' ،‬ﻋﻤﺮ'‪' ،7:‬ﺍﺳﻢ'‪':‬ﻣﺎﻧﻲ'{‬

‫ﻃﺒﺎﻋﺔ)"‪']dict‬ﺍﻻﺳﻢ'[‪," :‬ﻗﺎﻣﻮﺱ]'ﺍﺳﻢ'[(‬

‫‪//‬ﺍﻹﺧﺮﺍﺝ‬
‫‪'[:‬ﺍﻻﺳﻢ']‪dict‬ﻣﺎﻧﻲ‬

‫‪11‬‬
‫ﺧﺼﺎﺉﺺﻣﻔﺎﺗﻴﺢ ﺍﻟﻘﺎﻣﻮﺱ‬
‫)ﺏ(ﻳﺠﺐ ﺃﻥ ﺗﻜﻮﻥ ﺍﻟﻤﻔﺎﺗﻴﺢ ﻏﻴﺮ ﻗﺎﺑﻠﺔ ﻟﻠﺘﻐﻴﻴﺮ‪ .‬ﻭﻫﺬﺍ ﻳﻌﻨﻲ ﺃﻧﻪ ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺴﻼﺳﻞ ﺃﻭ ﺍﻷﺭﻗﺎﻡ ﺃﻭ‬
‫ﺍﻟﻤﺠﻤﻮﻋﺎﺕﻛﻤﻔﺎﺗﻴﺢ ﻟﻠﻘﺎﻣﻮﺱ ﻭﻟﻜﻦ ﻻ ﻳﺴُﻤﺢ ﺑﺸﻲء ﻣﺜﻞ ]'‪ .['key‬ﻓﻴﻤﺎ ﻳﻠﻲ ﻣﺜﺎﻝ ﺑﺴﻴﻂ ‪−‬‬

‫ﻗﺎﻣﻮﺱ= }]'ﺍﺳﻢ'[‪':‬ﺯﺍﺭﺍ'‪' ،‬ﻋﻤﺮ'‪{7:‬‬

‫ﻃﺒﺎﻋﺔ)"‪']dict‬ﺍﻻﺳﻢ'[‪," :‬ﻗﺎﻣﻮﺱ]'ﺍﺳﻢ'[(‬

‫ﺍﻟﺘﺘﺒﻊ)ﺃﺣﺪﺙ ﻣﻜﺎﻟﻤﺔ ﺃﺧﻴﺮﺓ(‪:‬‬


‫ﺍﻟﻤﻠﻒ"‪ ،"test.py‬ﺍﻟﺴﻄﺮ ‪ ،3‬ﻓﻲ >‪<module‬‬
‫'‪: 'list‬ﻏﻴﺮ ﻗﺎﺑﻞ ﻟﻠﺘﺠﺰﺉﺔ ﺍﻟﻨﻮﻉ ‪{; TypeError:‬‬
‫‪dict = }]'Name'[: 'Zara', 'Age': 7‬‬

‫‪12‬‬
‫ﻭﻇﺎﺉﻒﺍﻟﻘﺎﻣﻮﺱ ﺍﻟﻤﻀﻤﻨﺔ‬

‫ﺳﻴﺘﻢﻣﻨﺎﻗﺸﺘﻬﺎ ﻻﺣﻘﺎ‬

‫‪13‬‬
‫ﺍﻟﻮﻇﺎﺉﻒ‬

‫‪14‬‬
‫ﺍﻟﻮﻇﺎﺉﻒ‬

‫ﺍﻟﻮﻇﻴﻔﺔﻫﻲ ﻛﺘﻠﺔ ﻣﻦﻣﻨﻈﻢ‪,‬ﻗﺎﺑﻠﺔ ﻹﻋﺎﺩﺓ ﺍﻻﺳﺘﺨﺪﺍﻡﺍﻟﻜﻮﺩ ﺍﻟﺬﻱ ﻳﺘﻢ ﺍﺳﺘﺨﺪﺍﻣﻪ ﻷﺩﺍء ﺇﺟﺮﺍء ﻭﺍﺣﺪ ﺫﻱ ﺻﻠﺔ‪.‬‬ ‫▪‬

‫ﺗﻮﻓﺮﺍﻟﻮﻇﺎﺉﻒﺗﺤﺴﻴﻦ ﺍﻟﻮﺣﺪﺍﺕ ﺍﻟﻨﻤﻄﻴﺔﻟﺘﻄﺒﻴﻘﻚ ﻭﺩﺭﺟﺔ ﻋﺎﻟﻴﺔ ﻣﻦ ﺇﻋﺎﺩﺓ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻜﻮﺩ‪.‬‬ ‫▪‬

‫ﻛﻤﺎﺗﻌﻠﻢ ﺑﺎﻟﻔﻌﻞ‪ ،‬ﻳﻤﻨﺤﻚ ‪ Python‬ﺍﻟﻌﺪﻳﺪ ﻣﻦﺍﻟﻮﻇﺎﺉﻒ ﺍﻟﻤﻀﻤﻨﺔﻳﺤﺐﻣﻄﺒﻌﺔ)(‪ ،‬ﺇﻟﺦ‪.‬‬ ‫▪‬

‫ﻭﻟﻜﻦﻳﻤﻜﻨﻚ ﺃﻳﻀﺎً ﺇﻧﺸﺎء ﻭﻇﺎﺉﻒ ﺧﺎﺻﺔ ﺑﻚ‪ .‬ﺗﺴﻤﻰ ﻫﺬﻩ ﺍﻟﻮﻇﺎﺉﻒﻭﻇﺎﺉﻒ ﻣﺤﺪﺩﺓ ﻣﻦ ﻗﺒﻞ ﺍﻟﻤﺴﺘﺨﺪﻡ‪.‬‬ ‫▪‬

‫‪15‬‬
‫ﺗﻌﺮﻳﻒ‬
‫ﻳﻤﻜﻨﻚﺗﻌﺮﻳﻒ ﻭﻇﺎﺉﻒ ﻟﺘﻮﻓﻴﺮ ﺍﻟﻮﻇﻴﻔﺔ ﺍﻟﻤﻄﻠﻮﺑﺔ‪ .‬ﻓﻴﻤﺎ ﻳﻠﻲ ﻗﻮﺍﻋﺪ ﺑﺴﻴﻄﺔ ﻟﺘﻌﺮﻳﻒ ﻭﻇﻴﻔﺔ ﻓﻲ ﺑﺎﻳﺜﻮﻥ‪.‬‬

‫❑ ﺗﺒﺪﺃﻛﺘﻞ ﺍﻟﻮﻇﺎﺉﻒ ﺑﺎﻟﻜﻠﻤﺔ ﺍﻷﺳﺎﺳﻴﺔﺩﻳﻒﺗﻠﻴﻬﺎﺍﺳﻢ ﺍﻟﻮﻇﻴﻔﺔﻭﺃﻗﻮﺍﺱ)) ((‪.‬‬

‫❑ ﺃﻱﻣﺪﺧﻼﺕﺣﺪﻭﺩﻳﺠﺐ ﻭﺿﻊ ﺍﻟﺤﺠﺞ ﺃﻭ ﺍﻟﺤﺠﺞ ﺩﺍﺧﻞ ﻫﺬﻩ ﺍﻷﻗﻮﺍﺱ‪ .‬ﻳﻤﻜﻨﻚ ﺃﻳﻀﺎً ﺗﻌﺮﻳﻒ ﺍﻟﻤﻌﻠﻤﺎﺕ ﺩﺍﺧﻞ‬

‫ﻫﺬﻩﺍﻷﻗﻮﺍﺱ‪.‬‬

‫❑ ﻳﻤﻜﻦﺃﻥ ﻳﻜﻮﻥ ﺍﻟﺒﻴﺎﻥ ﺍﻷﻭﻝ ﻟﻠﻮﻇﻴﻔﺔ ﺑﻴﺎﻧﺎً ﺍﺧﺘﻴﺎﺭﻳﺎً ‪ -‬ﺳﻠﺴﻠﺔ ﺗﻮﺛﻴﻖ ﺍﻟﻮﻇﻴﻔﺔ ﺃﻭ ﺳﻠﺴﻠﺔ ﺗﻮﺛﻴﻖ‪.‬‬

‫❑ ﺗﺒﺪﺃﻛﺘﻠﺔ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﺍﻟﺒﺮﻣﺠﻴﺔ ﺩﺍﺧﻞ ﻛﻞ ﻭﻇﻴﻔﺔ ﺑـﺍﻟﻘﻮﻟﻮﻥ )‪(:‬ﻭﻫﻲ ﻣﺴﻨﻨﺔ‪.‬‬

‫❑ ﺍﻟﺒﻴﺎﻥﻳﻌﻮﺩ]ﺗﻌﺒﻴﺮ[ﻳﺨﺮﺝ ﻣﻦ ﻭﻇﻴﻔﺔ‪ ،‬ﺑﺸﻜﻞ ﺍﺧﺘﻴﺎﺭﻱ‪ ،‬ﻳﺘﻢ ﺇﺭﺟﺎﻉ ﺗﻌﺒﻴﺮ ﺇﻟﻰ ﺍﻟﻤﺘﺼﻞ‪.‬ﻳﻌﻮﺩ‬

‫ﺑﻴﺎﻥﻣﻊﻻ ﺣﺠﺞ ﻫﻮ ﻧﻔﺲ ﺍﻟﻌﻮﺩﺓﻻ ﺃﺣﺪ‪.‬‬

‫‪16‬‬
‫ﺑﻨﺎءﺍﻟﺠﻤﻠﺔ‬

‫ﺩﻳﻒﺍﻃﺒﻌﻨﻲ)ﺷﺎﺭﻉ(‪:‬‬ ‫ﺩﻳﻒﺍﺳﻢ ﺍﻟﻮﻇﻴﻔﺔ)ﺣﺪﻭﺩ(‪:‬‬

‫ﻣﻄﺒﻌﺔ)ﺷﺎﺭﻉ(‬ ‫"ﺳﻠﺴﻠﺔ ﻭﺛﻴﻘﺔ ﺍﻟﻮﻇﻴﻔﺔ"‬

‫ﻳﻌﻮﺩ‬ ‫ﻣﺠﻤﻮﻋﺔﺍﻟﻮﻇﺎﺉﻒ‬

‫ﻳﻌﻮﺩ]ﺗﻌﺒﻴﺮ[‬

‫‪17‬‬
‫ﺃﻣﺜﻠﺔ‬
‫ﺩﻳﻒﺇﺿﺎﻓﺔ ﻣﻤﺘﻌﺔ)ﺃ‪,‬ﺏ(‪:‬‬ ‫‪ #‬ﺗﻌﺮﻳﻒ ﺍﻟﻮﻇﻴﻔﺔ‬
‫ﻧﺘﻴﺠﺔ=ﺃ‪+‬ﺏ‬ ‫ﺩﻳﻒﺍﻃﺒﻌﻨﻲ)ﺷﺎﺭﻉ(‪:‬‬
‫ﻣﻄﺒﻌﺔ)ﻧﺘﻴﺠﺔ(‬ ‫ﻣﻄﺒﻌﺔ)ﺷﺎﺭﻉ(‬
‫ﻳﻌﻮﺩ‬
‫‪ #‬ﻭﻇﻴﻔﺔ ﺍﻻﺳﺘﺪﻋﺎء‬
‫ﺇﺿﺎﻓﺔﻣﻤﺘﻌﺔ)‪(5,6‬‬ ‫ﺍﻃﺒﻌﻨﻲ)"ﻣﺮﺣﺒﺎ ﺑﺎﻟﻌﺎﻟﻢ"(‬

‫‪//‬ﺍﻹﺧﺮﺍﺝ‬ ‫‪//‬ﺍﻹﺧﺮﺍﺝ‬
‫‪11‬‬ ‫ﻣﺮﺣﺒﺎﺑﺎﻟﻌﺎﻟﻢ‬

‫‪18‬‬
‫ﺍﺳﺘﺪﻋﺎءﺍﻟﻮﻇﻴﻔﺔ‬
‫➢ ﻳﺆﺩﻱﺗﻌﺮﻳﻒ ﻭﻇﻴﻔﺔ ﻓﻘﻂ ﺇﻟﻰ ﺇﻋﻄﺎﺉﻬﺎ ﺍﺳﻤﺎً‪ ،‬ﻭﺗﺤﺪﻳﺪ ﺍﻟﻤﻌﻠﻤﺎﺕ ﺍﻟﺘﻲ ﻳﺠﺐ ﺗﻀﻤﻴﻨﻬﺎ ﻓﻲ ﺍﻟﻮﻇﻴﻔﺔ ﻭﺗﻨﻈﻴﻢ ﻛﺘﻞ‬
‫ﺍﻟﺘﻌﻠﻴﻤﺎﺕﺍﻟﺒﺮﻣﺠﻴﺔ‪.‬‬

‫➢ ﺑﻤﺠﺮﺩﺍﻻﻧﺘﻬﺎء ﻣﻦ ﺍﻟﺒﻨﻴﺔ ﺍﻷﺳﺎﺳﻴﺔ ﻟﻮﻇﻴﻔﺔ ﻣﺎ‪ ،‬ﻳﻤﻜﻨﻚ ﺗﻨﻔﻴﺬﻫﺎ ﻋﻦ ﻃﺮﻳﻖ ﺍﺳﺘﺪﻋﺎﺉﻬﺎ ﻣﻦ ﻭﻇﻴﻔﺔ ﺃﺧﺮﻯ ﺃﻭ ﻣﺒﺎﺷﺮﺓ ﻣﻦ‬
‫ﻣﻮﺟﻪ‪ .Python‬ﻓﻴﻤﺎ ﻳﻠﻲ ﻣﺜﺎﻝ ﻻﺳﺘﺪﻋﺎءﺍﻃﺒﻌﻨﻲﻭﻇﻴﻔﺔ ‪−‬‬

‫‪ #‬ﺗﻌﺮﻳﻒ ﺍﻟﻮﻇﻴﻔﺔ ﻣﻮﺟﻮﺩ ﻫﻨﺎ ﺩﻳﻒﺍﻃﺒﻌﻨﻲ)‬


‫ﺷﺎﺭﻉ(‪:‬‬
‫‪ #‬ﻳﺆﺩﻱ ﻫﺬﺍ ﺇﻟﻰ ﻃﺒﺎﻋﺔ ﺍﻟﺴﻠﺴﻠﺔ ﺍﻟﻤﺮﺳﻠﺔ ﻓﻲ ﻫﺬﻩ ﺍﻟﻮﻇﻴﻔﺔ ﻃﺒﺎﻋﺔ )‪(str‬‬

‫ﻳﻌﻮﺩ؛‬

‫‪ #‬ﺍﻵﻥ ﻳﻤﻜﻨﻚ ﺍﺳﺘﺪﻋﺎء ﻭﻇﻴﻔﺔ ‪printme‬‬


‫‪//‬ﺍﻹﺧﺮﺍﺝ‬ ‫ﺍﻃﺒﻌﻨﻲ)"ﺃﻧﺎ ﺃﻭﻝ ﻣﻦ ﻗﺎﻡ ﺑﺎﻻﺗﺼﺎﻝ ﺑﻮﻇﻴﻔﺔ ﻣﺤﺪﺩﺓ ﻣﻦ ﻗﺒﻞ ﺍﻟﻤﺴﺘﺨﺪﻡ!"(‬
‫ﺃﻧﺎﺃﻭﻝ ﻣﻦ ﻗﺎﻡ ﺑﺎﻻﺗﺼﺎﻝ ﺑﻮﻇﻴﻔﺔ ﻣﺤﺪﺩﺓ ﻣﻦ ﻗﺒﻞ ﺍﻟﻤﺴﺘﺨﺪﻡ!‬
‫ﺍﻃﺒﻌﻨﻲ)"ﻣﺮﺓ ﺃﺧﺮﻯ ﺍﺳﺘﺪﻋﺎء ﺛﺎﻧﻲ ﻟﻨﻔﺲ ﺍﻟﻮﻇﻴﻔﺔ"(‬
‫ﻣﺮﺓﺃﺧﺮﻯ ﺍﺳﺘﺪﻋﺎء ﺛﺎﻧﻲ ﻟﻨﻔﺲ ﺍﻟﻮﻇﻴﻔﺔ‬

‫‪19‬‬
‫ﺑﻴﺎﻥﺍﻟﻌﻮﺩﺓ‬
‫ﺍﻟﺒﻴﺎﻥﻳﻌﻮﺩ]ﺗﻌﺒﻴﺮ[ﻳﺨﺮﺝ ﻣﻦ ﻭﻇﻴﻔﺔ‪,‬ﺍﺧﺘﻴﺎﺭﻳﺎﺇﻋﺎﺩﺓ ﺍﻟﺘﻌﺒﻴﺮ ﺇﻟﻰ ﺍﻟﻤﺘﺼﻞ‪.‬ﻳﻌﻮﺩﺑﻴﺎﻥ ﻣﻊﻻ ﺣﺠﺞﻫﻮ ﻧﻔﺲ ﺍﻟﺸﻲءﻳﻌﻮﺩﻻ‬
‫ﺃﺣﺪ‪.‬‬
‫ﻻﺗﻘﻮﻡ ﺟﻤﻴﻊ ﺍﻷﻣﺜﻠﺔ ﺍﻟﻤﺬﻛﻮﺭﺓ ﺃﻋﻼﻩ ﺑﺈﺭﺟﺎﻉ ﺃﻱ ﻗﻴﻤﺔ‪ .‬ﻳﻤﻜﻨﻚ ﺇﺭﺟﺎﻉ ﻗﻴﻤﺔ ﻣﻦ ﺩﺍﻟﺔ ﻋﻠﻰ ﺍﻟﻨﺤﻮ ﺍﻟﺘﺎﻟﻲ‪:‬‬

‫‪ #‬ﺗﻌﺮﻳﻒ ﺍﻟﻮﻇﻴﻔﺔ ﻣﻮﺟﻮﺩ ﻫﻨﺎ ﺩﻳﻒﻣﺠﻤﻮﻉ)‬


‫ﺍﺭﺝ‪,1‬ﺍﺭﺝ‪:(2‬‬
‫‪ #‬ﺃﺿﻒ ﻛﻼ ﺍﻟﻤﻌﻠﻤﺘﻴﻦ ﻭﺃﺭﺟﻌﻬﻤﺎ‪ ".‬ﻧﺘﻴﺠﺔ=ﺍﺭﺝ‪+1‬ﺍﺭﺝ‪2‬‬

‫ﻃﺒﺎﻋﺔ)"ﺩﺍﺧﻞ ﺍﻟﺪﺍﻟﺔ‪،" :‬ﻧﺘﻴﺠﺔ( ﻳﻌﻮﺩﻧﺘﻴﺠﺔ؛‬

‫‪//‬ﺍﻹﺧﺮﺍﺝ‬ ‫‪ #‬ﺍﻵﻥ ﻳﻤﻜﻨﻚ ﺍﺳﺘﺪﻋﺎء ﺩﺍﻟﺔ ﺍﻟﻤﺠﻤﻮﻉ ﺍﻟﻤﺠﻤﻮﻉ‬


‫ﺩﺍﺧﻞﺍﻟﻮﻇﻴﻔﺔ ‪30:‬‬
‫=ﻣﺠﻤﻮﻉ) ‪( 20 ،10‬؛‬

‫ﺧﺎﺭﺝﺍﻟﻮﻇﻴﻔﺔ ‪30:‬‬ ‫ﻣﻄﺒﻌﺔ)"ﺧﺎﺭﺝ ﺍﻟﻮﻇﻴﻔﺔ ‪," :‬ﺍﻟﻤﺠﻤﻮﻉ(‬

‫‪20‬‬
‫ﺷﻜﺮﺍً‬

‫‪21‬‬ ‫ﺩ‪.‬ﻣﺤﻤﺪ ﻋﺒﺪ ﺍﻟﻔﺘﺎﺡ‬ ‫‪2024‬‬

You might also like