0% found this document useful (0 votes)
36 views13 pages

Python - موسوعة حسوب - 240108 - 045329

Uploaded by

01211487.gmai
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)
36 views13 pages

Python - موسوعة حسوب - 240108 - 045329

Uploaded by

01211487.gmai
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/ 13

‫‪Python‬‬

‫ٌ‬
‫ﻣﺮﻧﺔ وﺗﺤﺎول اﻟﺘﻌﺒﻴﺮ ﻋﻦ اﻟﻤﻔﺎﻫﻴﻢ اﻟﺒﺮﻣﺠﻴﺔ‬ ‫ﻣﺠﺎل ﻋﺎم‪ ،‬وﻫﻲ‬ ‫ﻟﻐﺔ ‪ Python‬ﻫﻲ ﻟﻐﺔ ﻋﺎﻟﻴﺔ اﻟﻤﺴﺘﻮى ُﻣﻔﺴﺮة ذات‬
‫ٍ‬
‫ﺑﺄﻗﻞ ﻗﺪر ﻣﻤﻜﻦ ﻣﻦ اﻟﺸﻴﻔﺮات‪ .‬ﺗﺪﻋﻢ ﻟﻐﺔ ‪ Python‬اﻟﺒﺮﻣﺠﺔ اﻟﻜﺎﺋﻨﻴﺔ واﻟﺒﺮﻣﺠﺔ اﻹﺟﺮاﺋﻴﺔ‪ ،‬وﻓﻴﻬﺎ ﻣﻜﺘﺒﺔ ﻗﻴﺎﺳﻴﺔ‬
‫ﻛﺒﻴﺮة‪.‬‬
‫ٌ‬
‫وﻣﺪﻋﻮﻣﺔ ﻣﻦ أﻏﻠﺒﻴﺔ أﻧﻈﻤﺔ اﻟﺘﺸﻐﻴﻞ‪.‬‬ ‫ﻟﻐﺔ ‪ Python‬ﻫﻲ ٌ‬
‫ﻟﻐﺔ ﻣﻔﺘﻮﺣﺔ اﻟﻤﺼﺪر‪،‬‬

‫ﻣﺤﺘﻮﻳﺎت‬

‫‪ 1‬ﻟﻤﺤﺔ ﻋﻦ ‪Python‬‬
‫‪ 2‬ﺑﻨﻴﺔ اﻟﻠﻐﺔ‬
‫‪ 3‬ﻣﻔﺴﺮ ﺑﺎﻳﺜﻮن‬
‫‪ 4‬أﻧﻮاع اﻟﺒﻴﺎﻧﺎت‬
‫‪ 4.1‬اﻟﻘﻴﻤﺔ اﻟﻤﻨﻄﻘﻴﺔ )‪(boolean‬‬
‫‪ 4.2‬اﻷﻋﺪاد اﻟﺼﺤﻴﺤﺔ )‪(int‬‬
‫‪ 4.3‬اﻷﻋﺪاد اﻟﻌﺸﺮﻳﺔ )‪(float‬‬
‫‪ 4.4‬اﻷﻋﺪاد اﻟﻌﺸﺮﻳﺔ )‪(decimal‬‬
‫‪ 4.5‬اﻷﻋﺪاد اﻟﻜﺴﺮﻳﺔ )‪(fraction‬‬
‫‪ 4.6‬اﻷﻋﺪاد اﻟﻤﺮﻛﺒﺔ )‪(complex‬‬
‫‪ 4.7‬اﻟﺴﻼﺳﻞ اﻟﻨﺼﻴﺔ )‪(str‬‬
‫‪ 4.8‬اﻟﺼﻔﻮف )‪(tuples‬‬
‫‪ 4.9‬اﻟﻘﻮاﺋﻢ )‪(lists‬‬
‫‪ 4.10‬اﻟﻤﺠﻤﻮﻋﺎت )‪(set‬‬
‫‪ 4.11‬اﻟﻘﻮاﻣﻴﺲ )‪(dict‬‬
‫‪ 4.12‬اﻟﺒﺎﻳﺘﺎت )‪(bytes‬‬
‫‪ 4.13‬ﻣﺼﻔﻮﻓﺎت اﻟﺒﺎﻳﺘﺎت )‪(bytesarray‬‬
‫‪ 5‬اﻟﻌﻤﻠﻴﺎت ‪Operations‬‬
‫‪ 5.1‬اﻟﻌﻤﻠﻴﺎت اﻟﻤﻨﻄﻘﻴﺔ )‪(Boolean Operations‬‬
‫‪ 5.2‬ﻋﻤﻠﻴﺎت اﻟﻤﻘﺎرﻧﺔ )‪(Comparison Operations‬‬
‫‪ 5.3‬اﻟﻌﻤﻠﻴﺎت اﻟﻌﺪدﻳﺔ )‪(Numeric Operations‬‬
‫‪ 5.4‬ﻋﻤﻠﻴﺎت اﻷﻋﺪاد اﻟﺜﻨﺎﺋﻴﺔ )‪(Bitwise Operations‬‬
‫‪ 5.5‬ﻋﻤﻠﻴﺎت اﻟﺘﺴﻠﺴﻼت )‪(Sequence Operations‬‬
‫‪ 5.6‬ﻋﻮاﻣﻞ اﻟﺒﺎﻳﺘﺎت وﻣﺼﻔﻮﻓﺎت اﻟﺒﺎﻳﺘﺎت )‪(Byte and Bytesarray Operations‬‬
‫‪ 5.7‬ﻋﻤﻠﻴﺎت اﻟﻤﺠﻤﻮﻋﺎت )‪(Sets operations‬‬
‫‪ 6‬ﺑﻨﻰ اﻟﺘﺤﻜﻢ‬
‫‪If 6.1‬‬
‫‪for 6.2‬‬
‫‪while 6.3‬‬
‫‪pass 6.4‬‬
‫‪ 6.5‬ﻃﺮق اﺳﺘﺨﺪام اﻟﺤﻠﻘﺎت اﻟﺘﻜﺮارﻳﺔ‬
‫‪ 7‬اﻟﺪوال‬
‫‪ 7.1‬ﺗﻌﺮﻳﻒ اﻟﺪوال‬
‫‪ 7.2‬ﻣﻌﺎﻣﻼت اﻟﺪوال‬
‫‪ 7.3‬ﺗﻌﺎﺑﻴﺮ ‪lambda‬‬
‫‪ 7.4‬ﺳﻼﺳﻞ اﻟﺘﻮﺛﻴﻖ اﻟﻨﺼﻴﺔ‬
‫‪ 8‬اﻷﺻﻨﺎف‬
‫‪ 8.1‬ﻣﻘﺪﻣﺔ‬
‫‪ 8.2‬اﻟﻨﻄﺎﻗﺎت وﻣﺠﺎﻻت اﻷﺳﻤﺎء‬
‫‪ 8.3‬ﺗﻌﺮﻳﻒ اﻷﺻﻨﺎف‬
‫‪ 8.4‬اﻟﻮراﺛﺔ‬
‫اﻟﺨﺎﺻﺔ ‪private variables‬‬
‫ّ‬ ‫‪ 8.5‬اﻟﻤﺘﻐﻴﺮات‬
‫‪ 8.6‬اﻟﻤﻜﺮرات ‪iterators‬‬
‫ّ‬
‫اﻟﻤﻮﻟﺪات ‪generators‬‬ ‫‪8.7‬‬
‫‪ 9‬اﻟﻮﺣﺪات ‪modules‬‬
‫‪ 9.1‬اﻟﻮﺣﺪات‬
‫‪ 9.2‬اﻟﺪاﻟﺔ )(‪dir‬‬
‫‪ 9.3‬اﻟﺤﺰم ‪packages‬‬
‫‪ 10‬اﻟﻮﺣﺪات اﻟﻘﻴﺎﺳﻴﺔ ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.1‬اﻟﻮﺣﺪة ‪ re‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.2‬اﻟﻮﺣﺪة ‪ string‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.3‬اﻟﻮﺣﺪة ‪ datetime‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.4‬اﻟﻮﺣﺪة ‪ calendar‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.5‬اﻟﻮﺣﺪة ‪ bisect‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.6‬اﻟﻮﺣﺪة ‪ heapq‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.7‬اﻟﻮﺣﺪة ‪ enum‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.8‬اﻟﻮﺣﺪة ‪ itertools‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.9‬اﻟﻮﺣﺪة ‪ functools‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.10‬اﻟﻮﺣﺪة ‪ operator‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.11‬اﻟﻮﺣﺪة ‪ collections‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.12‬اﻟﻮﺣﺪة ‪ collections.abc‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.13‬اﻟﻮﺣﺪة ‪ pprint‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.14‬اﻟﻮﺣﺪة ‪ copy‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.15‬اﻟﻮﺣﺪة ‪ types‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.16‬اﻟﻮﺣﺪة ‪ weakref‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.17‬اﻟﻮﺣﺪة ‪ reprlib‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.18‬اﻟﻮﺣﺪة ‪ array‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.19‬اﻟﻮﺣﺪة ‪ sqlite3‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.20‬اﻟﻮﺣﺪة ‪ copyreg‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.21‬اﻟﻮﺣﺪة ‪ marshal‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.22‬اﻟﻮﺣﺪة ‪ zlib‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.23‬اﻟﻮﺣﺪة ‪ gzip‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.24‬اﻟﻮﺣﺪة ‪ bz2‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.25‬اﻟﻮﺣﺪة ‪ lzma‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.26‬اﻟﻮﺣﺪة ‪ zipfile‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.27‬اﻟﻮﺣﺪة ‪ tarfile‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.28‬اﻟﻮﺣﺪة ‪ csv‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.29‬اﻟﻮﺣﺪة ‪ configparser‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.30‬اﻟﻮﺣﺪة ‪ webbrowser‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.31‬اﻟﻮﺣﺪة ‪ cgi‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.32‬اﻟﻮﺣﺪة ‪ cgitb‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 10.33‬اﻟﻮﺣﺪة ‪ wsgiref‬ﻓﻲ ﺑﺎﻳﺜﻮن‬
‫‪ 11‬اﻟﻤﺪﺧﻼت واﻟﻤﺨﺮﺟﺎت ‪Inputs and Outputs‬‬
‫‪ 11.1‬ﺗﻨﺴﻴﻖ اﻟﻤﺨﺮﺟﺎت‬
‫‪ 11.2‬ﻗﺮاءة اﻟﻤﻠﻔﺎت واﻟﻜﺘﺎﺑﺔ ﻓﻴﻬﺎ‬
‫‪ 11.3‬ﺣﻔﻆ اﻟﺒﻴﺎﻧﺎت اﻟﻤﻬﻴﻜﻠﺔ ﺑﺼﻴﻐﺔ ‪json‬‬
‫‪ 12‬اﻟﺜﻮاﺑﺖ‬
‫‪ 13‬اﻷﺧﻄﺎء واﻻﺳﺘﺜﻨﺎءات‬
‫‪ 13.1‬أﺧﻄﺎء اﻟﺼﻴﻐﺔ‬
‫‪ 13.2‬اﻻﺳﺘﺜﻨﺎءات‬
‫‪ 13.3‬اﻻﺳﺘﺜﻨﺎءات اﻟﻤﻌﺮﻓﺔ ﻣﻦ ﻃﺮف اﻟﻤﺴﺘﺨﺪم‬
‫‪ 13.4‬ﺗﻌﺮﻳﻒ أﺣﺪاث اﻟﺘﻨﻈﻴﻒ ‪clean-up actions‬‬
‫‪ 14‬ﺗﻨﺴﻴﻖ اﻟﺸﻴﻔﺮة اﻟﺒﺮﻣﺠﻴﺔ‬

‫ﻟﻤﺤﺔ ﻋﻦ ‪Python‬‬
‫ﺄ‬
‫إن ﻛﻨﺖ ﺗﻨﺠﺰ اﻟﻜﺜﻴﺮ ﻣﻦ اﻷﻋﻤﺎل ﺑﺎﺳﺘﺨﺪام اﻟﺤﺎﺳﻮب‪ ،‬ﻓﺴﺘﺠﺪ ﻧﻔﺴﻚ ﺑﺤﺎﺟﺔ إﻟﻰ ﺗﺄدﻳﺔ ﺑﻌﺾ اﻟﻤﻬﺎم ﺑﺼﻮرة‬
‫أوﺗﻮﻣﺎﺗﻴﻜﻴﺔ‪ .‬ﻓﻌﻠﻰ ﺳﺒﻴﻞ اﻟﻤﺜﺎل ﻗﺪ ﺗﺮﻏﺐ ﻓﻲ إﻧﺠﺎز ﻋﻤﻠﻴﺔ ﺑﺤﺚ واﺳﺘﺒﺪال ﻋﻠﻰ ﻋﺪد ﻛﺒﻴﺮ ﻣﻦ اﻟﻤﻠﻔﺎت‪ ،‬أو إﻋﺎدة‬
‫ﺗﺴﻤﻴﺔ وﺗﺮﺗﻴﺐ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﻣﻠﻔﺎت اﻟﺼﻮر وﺑﻄﺮﻳﻘﺔ ﻣﻌﻘﺪة‪ .‬ﻗﺪ ﺗﺮﻏﺐ رﺑّﻤﺎ ﺑﻜﺘﺎﺑﺔ ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﺻﻐﻴﺮة‪ ،‬أو إﻧﺸﺎء‬
‫ﺧﺎﺻﺔ‪ ،‬أو ﺣﺘﻰ ﻟﻌﺒﺔ ﺻﻐﻴﺮة‪.‬‬
‫ّ‬ ‫ﺗﻄﺒﻴﻖ ﻳﻤﺘﻠﻚ واﺟﻬﺔ رﺳﻮﻣﻴﺔ‬

‫إن ﻛﻨﺖ ﻣﻦ اﻟﻤﺤﺘﺮﻓﻴﻦ ﻓﻲ ﻣﺠﺎل ﺗﻄﻮﻳﺮ اﻟﺒﺮﻣﺠﻴﺎت ﻓﺈ ّﻧﻚ ﺳﺘﻠﺠﺄ ﻋﻠﻰ اﻷرﺟﺢ إﻟﻰ اﺳﺘﺨﺪام اﻟﻌﺪﻳﺪ ﻣﻦ ﻣﻜﺘﺒﺎت‬
‫أن ﻋﻤﻠﻴﺎت اﻟﻜﺘﺎﺑﺔ ﺛﻢ اﻟﺘﺼﺮﻳﻒ ﺛﻢ اﻻﺧﺘﺒﺎر ﺛﻢ إﻋﺎدة اﻟﺘﺼﺮﻳﻒ ﻗﺪ أﺻﺒﺤﺖ‬
‫اﻟﻠﻐﺎت ‪ C/C++/Java‬وﻟﻜﻨّﻚ ﺳﺘﺠﺪ ّ‬
‫ﺳﻠﺴﻠﺔ ﻣﻦ اﻟﻌﻤﻠﻴﺎت اﻟﻤﺘﻜﺮرة اﻟﺒﻄﻴﺌﺔ ﻟﻠﻐﺎﻳﺔ‪.‬‬

‫ﻟﺮﺑّﻤﺎ ﻛﻨﺖ ﺗﻜﺘﺐ ﺣﺰﻣﺔ اﺧﺘﺒﺎر ﻟﻤﺜﻞ ﻫﻜﺬا ﻣﻜﺘﺒﺔ ﻓﻮﺟﺪت أن ﻛﺘﺎﺑﺔ ﺷﻴﻔﺮة اﻻﺧﺘﺒﺎر أﻣﺮ ﻣﺘﻌﺐ ﻟﻠﻐﺎﻳﺔ‪ ،‬أو أ ّﻧﻚ ﻛﺘﺒﺖ‬
‫ﺑﺮﻧﺎﻣﺠﺎ ﺑﻤﻘﺪوره اﺳﺘﺨﺪام ﻟﻐﺔ ﻣﻠﺤﻘﺔ‪ ،‬وﻟﻜﻨّﻚ ﻻ ﺗﺮﻏﺐ ﺑﺘﺼﻤﻴﻢ وﺗﻀﻤﻴﻦ ﻟﻐﺔ ﺟﺪﻳﺪة ﻟﻠﺘﻄﺒﻴﻖ‪.‬‬
‫ً‬

‫ﻛﻞ ﻣﺎ ﺳﺒﻖ ﻫﻮ ﻣﺎ ﺗﻘﻮم ﺑﻪ ﻟﻐﺔ ﺑﺎﻳﺜﻮن‪.‬‬

‫ﻳﻤﻜﻨﻚ ﻛﺘﺎﺑﺔ ﺷﻴﻔﺮة ﺻﺪﻓﺔ ﻓﻲ أﻧﻈﻤﺔ ﻳﻮﻧﻜﺲ )‪ (Unix‬أو ﻛﺘﺎﺑﺔ ﻣﻠﻔﺎت ‪ batch‬ﻓﻲ ﻧﻈﺎم وﻳﻨﺪوز )‪(Windows‬‬
‫ً‬
‫ﺳﺎﺑﻘﺎ‪ ،‬وﻟﻜﻦ ﺷﻴﻔﺮات اﻟﺼﺪﻓﺔ )‪ (shell scripts‬ﻣﻼﺋﻤﺔ ﻟﻨﻘﻞ اﻟﻤﻠﻔﺎت وإﺟﺮاء‬ ‫ﻷداء ﺑﻌﺾ ﻣﻦ اﻟﻤﻬﻤﺎت اﻟﺘﻲ ذﻛﺮﻧﺎﻫﺎ‬
‫ً‬ ‫ً‬
‫اﻟﺘﻌﺪﻳﻼت ﻋﻠﻰ اﻟﺒﻴﺎﻧﺎت اﻟﻨﺼﻴﺔ‪ ،‬وﻫﻲ ﻟﻴﺴﺖ ﻣﻼﺋﻤﺔ إﻃﻼﻗﺎ ﻟﻠﺘﻄﺒﻴﻘﺎت ذات اﻟﻮاﺟﻬﺎت اﻟﺮﺳﻮﻣﻴﺔ أو اﻷﻟﻌﺎب‪.‬‬
‫ً‬
‫وﻟﻜﻦ ﻗﺪ ﺗﺄﺧﺬ ﻋﻤﻠﻴﺔ اﻟﻨﺴﺨﺔ اﻷوﻟﻴﺔ وﻗﺘً ﺎ ﻃﻮﻳﻼ‪.‬‬
‫ّ‬ ‫ﺑﺮﻧﺎﻣﺠﺎ ﺑﺎﺳﺘﺨﺪام اﻟﻠﻐﺎت ‪C/C++/Java‬‬
‫ً‬ ‫ﻳﻤﻜﻨﻚ أن ﺗﻜﺘﺐ‬
‫ّ‬
‫ﺗﻤﺘﺎز ﻟﻐﺔ ﺑﺎﻳﺜﻮن ﺑﺴﻬﻮﻟﺔ اﻻﺳﺘﺨﺪام‪ ،‬وﺗﻮﻓﺮﻫﺎ ﻓﻲ أﻧﻈﻤﺔ ‪ ،Windows‬و ‪ Mac OS X‬و ‪ ،Unix‬وﺳﺘﺴﺎﻋﺪك ﻓﻲ‬
‫إﻧﺠﺎز أﻋﻤﺎﻟﻚ ﺑﺴﺮﻋﺔ أﻛﺒﺮ‪.‬‬

‫ﺑﺎﻳﺜﻮن ﺳﻬﻠﺔ اﻻﺳﺘﺨﺪام‪ ،‬وﻟﻜﻨّﻬﺎ ﻓﻲ اﻟﻮﻗﺖ ﻋﻴﻨﻪ ﻟﻐﺔ ﺑﺮﻣﺠﻴﺔ ﺣﻘﻴﻘﻴﺔ‪ ،‬ﺗﻘﺪّ م ً‬
‫دﻋﻤﺎ وﺑﻨﻴﺔ أﻛﺒﺮ ﻟﻠﺒﺮاﻣﺞ اﻟﻜﺒﻴﺮة ﻣﻦ‬
‫ﺗﻔﺤﺺ اﻷﺧﻄﺎء ﻣﻦ ﻟﻐﺔ ‪،C‬‬ ‫ﺷﻴﻔﺮات اﻟﺼﺪﻓﺔ أو ﻣﻠﻔﺎت ‪ .batch‬وﻣﻦ ﺟﺎﻧﺐ آﺧﺮ‪ ،‬ﺗﻘﺪّ م ﺑﺎﻳﺜﻮن ﻗﺪرة أﻛﺒﺮ ﻋﻠﻰ ّ‬
‫ً‬
‫ﻋﺎل أﻳﻀﺎ‪ ،‬ﻛﺎﻟﻤﺼﻔﻮﻓﺎت اﻟﻤﺮﻧﺔ‬
‫ﺗﺘﻀﻤﻦ أﻧﻮاﻋً ﺎ ذات ﻣﺴﺘﻮى ٍ‬
‫ّ‬ ‫وﻧﻈﺮا ﻟﻜﻮن ﺑﺎﻳﺜﻮن ﻟﻐﺔ ﻣﻦ اﻟﻤﺴﺘﻮى اﻟﻌﺎﻟﻲ ﺟﺪا‪ ،‬ﻓﺈ ّﻧﻬﺎ‬
‫ً‬
‫وﻟﻤﺎ ﻛﺎﻧﺖ اﻷﻧﻮاع أﻛﺜﺮ ﺷﻤﻮﻟﻴﺔ ﻓﻲ ﺑﺎﻳﺜﻮن ﻓﺒﺎﻹﻣﻜﺎن اﻻﺳﺘﻔﺎدة ﻣﻦ اﻟﻠﻐﺔ ﻓﻲ ﺣﻞ ﻣﺸﺎﻛﻞ أﻛﺒﺮ ﻣﻦ‬ ‫ّ‬ ‫واﻟﻘﻮاﻣﻴﺲ‪.‬‬
‫ﻓﺈن اﻷﻣﻮر ﺗﻜﻮن ﻓﻲ ﺑﺎﻳﺜﻮن ﻋﻠﻰ ّ‬
‫أﻗﻞ‬ ‫ّ‬ ‫ذﻟﻚ‬ ‫وﻣﻊ‬ ‫‪،Perl‬‬ ‫ﺣﺘﻰ‬ ‫أو‬ ‫‪Awk‬‬ ‫ﻣﺜﻞ‬ ‫ﻟﻐﺎت‬ ‫ﺑﻮاﺳﻄﺔ‬ ‫ﻬﺎ‬ ‫ّ‬
‫ﺣﻠ‬ ‫ﺗﻠﻚ اﻟﺘﻲ ﻳﻤﻜﻦ‬
‫ﺗﻘﺪﻳﺮ ﺑﻨﻔﺲ ﺳﻬﻮﻟﺔ اﻟﻠﻐﺘﻴﻦ اﻟﺴﺎﺑﻘﺘﻴﻦ‪.‬‬

‫ﺗﺘﻴﺢ ﺑﺎﻳﺜﻮن ﺗﻘﺴﻴﻢ اﻟﺒﺮﻧﺎﻣﺞ إﻟﻰ ﺣﺰم ﻣﺘﻌﺪدة ﻳﻤﻜﻦ إﻋﺎدة اﺳﺘﺨﺪاﻣﻬﺎ ﻓﻲ ﺑﺮاﻣﺞ ﺑﺎﻳﺜﻮن أﺧﺮى‪ ،‬وﺗﻤﺘﻠﻚ اﻟﻠﻐﺔ‬
‫ّ‬
‫ﺑﺘﻌﻠﻢ‬ ‫ﻣﺠﻤﻮﻋﺔ ﻛﺒﻴﺮة ﻣﻦ اﻟﺤﺰم اﻷﺳﺎﺳﻴﺔ اﻟﺘﻲ ﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﻬﺎ أﺳﺎﺳﺎ ﻟﺒﺮاﻣﺠﻚ‪ ،‬أو أﻣﺜﻠﺔ ﺗﺴﺎﻋﺪك ﻓﻲ اﻟﺒﺪء‬
‫اﻟﺒﺮﻣﺠﺔ ﺑﻮاﺳﻄﺔ ﺑﺎﻳﺜﻮن‪ .‬ﺗﻘﺪّ م ﺑﻌﺾ ﻫﺬه اﻟﺤﺰم أﻣﻮ ًرا ﻣﺜﻞ ﻧﻈﺎم اﻟﻤﺪﺧﻼت واﻟﻤﺨﺮﺟﺎت ﻟﻠﻤﻠﻔﺎت ‪،file I/O‬‬
‫اﺳﺘﺪﻋﺎءات اﻟﻨﻈﺎم‪ sockets ،‬وﺣﺘﻰ واﺟﻬﺎت ﻟﺒﻌﺾ ﺣﺰم اﻟﻮاﺟﻬﺎت ﻣﺜﻞ ‪.Tk‬‬

‫ﻣﻔﺴﺮة )‪ ،interpreted‬وﻟﻴﺴﺖ ﻣﺒﻨﻴﺔ ]‪ ([compiled‬ﻣﺎ ﻳﺘﻴﺢ ﺗﻮﻓﻴﺮ اﻟﻜﺜﻴﺮ ﻣﻦ اﻟﻮﻗﺖ أﺛﻨﺎء ﻋﻤﻠﻴﺔ‬ ‫ﺑﺎﻳﺜﻮن ﻫﻲ ﻟﻐﺔ ّ‬
‫ﻧﻈﺮا ﻻﻧﺘﻔﺎء اﻟﺤﺎﺟﺔ إﻟﻰ إﺟﺮاء ﻋﻤﻠﻴﺔ اﻟﺘﺼﺮﻳﻒ واﻟﺮﺑﻂ‪ .‬ﻳﻤﻜﻦ اﺳﺘﺨﺪام اﻟﻤﻔﺴﺮ ﺑﺼﻮرة ﺗﻔﺎﻋﻠﻴﺔ‪ ،‬اﻷﻣﺮ‬ ‫اﻟﺘﻄﻮﻳﺮ ً‬
‫اﻟﺬي ﻳﺴﻬّ ﻞ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺨﺼﺎﺋﺺ اﻟﺘﻲ ﺗﻘﺪّ ﻣﻬﺎ اﻟﻠﻐﺔ‪ ،‬وﻟﻜﺘﺎﺑﺔ ﺑﺮاﻣﺞ ﻟﻐﺮض اﻟﺘﺪرﻳﺐ أو اﻻﺧﺘﺒﺎر‪ ،‬أو ﻻﺧﺘﺒﺎر داﻟﺔ‬
‫اﻟﻤﻔﺴﺮ ﻛﺂﻟﺔ ﺣﺎﺳﺒﺔ‪.‬‬
‫ّ‬ ‫أﺛﻨﺎء ﻋﻤﻠﻴﺔ ﺗﻄﻮﻳﺮ ﺑﺮﻧﺎﻣﺞ ﻣﺎ‪ ،‬إﺿﺎﻓﺔ إﻟﻰ إﻣﻜﺎﻧﻴﺔ اﺳﺘﺨﺪام‬

‫ﺗﺘﻴﺢ ﺑﺎﻳﺜﻮن ﻛﺘﺎﺑﺔ اﻟﺒﺮاﻣﺞ ﺑﺄﺳﻠﻮب ﻣﺨﺘﺼﺮ وﻣﻘﺮوء‪ ،‬ﻓﺎﻟﺒﺮاﻣﺞ اﻟﻤﻜﺘﻮﺑﺔ ﻓﻲ ﺑﺎﻳﺜﻮن ﺗﻜﻮن ﻋﺎدة أﻗﺼﺮ ﺑﻜﺜﻴﺮ ﻣﻦ‬
‫ﻣﻜﺎﻓﺌﺎﺗﻬﺎ ﻓﻲ ﻟﻐﺎت ‪ ،C‬أو ‪ ،C++‬أو ‪ ،Java‬وﻟﻌﺪّ ة أﺳﺒﺎب‪:‬‬

‫ﺗﺘﻴﺢ أﻧﻮاع اﻟﺒﻴﺎﻧﺎت ذات اﻟﻤﺴﺘﻮى اﻟﻌﺎﻟﻲ إﻣﻜﺎﻧﻴﺔ اﺳﺘﺨﺪام ﺗﻌﺎﺑﻴﺮ ﻣﻌﻘﺪّ ة ﻓﻲ ﻋﺒﺎرة واﺣﺪة‪.‬‬
‫ﻳﺠﺮي ﺗﺠﻤﻴﻊ اﻟﻌﺒﺎرات ﺑﺎﺳﺘﺨﺪام اﻹزاﺣﺎت‪ً ،‬‬
‫ﺑﺪﻻ ﻣﻦ أﻗﻮاس اﻟﺒﺪاﻳﺔ واﻟﻨﻬﺎﻳﺔ‪.‬‬
‫ﻻ ﺣﺎﺟﺔ ﻟﻠﺘﺼﺮﻳﺢ ﻋﻦ ﻧﻮع اﻟﻤﺘﻐﻴﺮ أو اﻟﻮﺳﻴﻂ‪.‬‬

‫ﺣﻴﻨﺌﺬ أن ﺗﻀﻴﻒ داﻟﺔ ﺿﻤﻨﻴﺔ إﻟﻰ اﻟﻠﻐﺔ‬


‫ٍ‬ ‫ﺑﺎﻳﺜﻮن ﻗﺎﺑﻠﺔ ﻟﻠﺘﺠﺪﻳﺪ‪ :‬إن ﻛﻨﺖ ﺗﺠﻴﺪ اﻟﺒﺮﻣﺠﺔ ﺑﺎﺳﺘﺨﺪام ﻟﻐﺔ ‪ C‬ﻓﻤﻦ اﻟﺴﻬﻞ‬
‫إﻣﺎ ﻟﺘﺄدﻳﺔ اﻟﻤﻬﺎم اﻟﻀﺮورﻳﺔ ﺑﺄﻗﺼﻰ ﺳﺮﻋﺔ‪ ،‬أو ﻟﺮﺑﻂ ﺑﺮاﻣﺞ ﺑﺎﻳﺜﻮن ﻣﻊ اﻟﻤﻜﺘﺒﺎت‬
‫أو ﺣﺰﻣﺔ ﺟﺪﻳﺪة إﻟﻰ اﻟﻤﻔﺴﺮ‪ ،‬وذﻟﻚ ّ‬
‫اﻟﺨﺎﺻﺔ ﺑﺎﻟﺸﺮﻛﺔ(‪ .‬وﻋﻨﺪ إﺟﺮاء ﻋﻤﻠﻴﺔ اﻟﺮﺑﻂ‬
‫ّ‬ ‫ّ‬
‫ﻣﺘﻮﻓﺮة ﺑﺎﻟﺼﻴﻐﺔ اﻟﺜﻨﺎﺋﻴﺔ ﻓﻘﻂ )ﻣﺜﻞ ﻣﻜﺘﺒﺎت اﻟﺮﺳﻮﻣﻴﺎت‬ ‫اﻟﺘﻲ ﺗﻜﻮن‬
‫ﻳﺼﺒﺢ ﺑﺎﻹﻣﻜﺎن رﺑﻂ ﻣﻔﺴﺮ ﺑﺎﻳﺜﻮن ﺑﺘﻄﺒﻴﻖ ﻣﻜﺘﻮب ﺑﻠﻐﺔ ‪ C‬واﺳﺘﺨﺪاﻣﻪ ﻛﺄداة ﻣﻠﺤﻘﺔ أو ﻛﻠﻐﺔ أواﻣﺮ ﻓﻲ ذﻟﻚ‬
‫اﻟﺘﻄﺒﻴﻖ‪.‬‬
‫ﺗﻴﻤﻨًﺎ ﺑﻌﺮض اﻟﺴﻴﺮك اﻟﺬي ﻛﺎﻧﺖ ﺗﻘﺪّ ﻣﻪ ﻗﻨﺎة ‪ BBC‬واﻟﺬي ﻳﺤﻤﻞ اﻻﺳﻢ »‪Monty‬‬
‫ﺳﻤﻴﺖ ﻟﻐﺔ ﺑﺎﻳﺜﻮن ﺑﻬﺬا اﻻﺳﻢ ّ‬
‫ّ‬
‫‪ «Python’s Flying Circus‬وﻻ راﺑﻂ ﺑﻴﻨﻪ وﺑﻴﻦ اﻟﺤﻴﻮاﻧﺎت اﻟﺰاﺣﻔﺔ‪.‬‬

‫ﺑﻨﻴﺔ اﻟﻠﻐﺔ‬

‫اﻟﻤﻌﺮﻓﺎت وﻏﻴﺮﻫﺎ‪.‬‬
‫ّ‬ ‫ﺑﻴﺎن ﻟﻠﺒﻨﻴﺔ اﻟﻌﺎﻣﺔ ﻟﻠﻐﺔ ﺑﺎﻳﺜﻮن وﺑﻌﺾ اﻷﻣﻮر اﻟﻌﺎﻣﺔ ﻣﺜﻞ اﻟﺘﻌﻠﻴﻘﺎت وﺗﺴﻤﻴﺔ‬

‫ﻣﻔﺴﺮ ﺑﺎﻳﺜﻮن‬

‫ﻳﺴﺘﺨﺪم ﻣﻔﺴﺮ ﺑﺎﻳﺜﻮن ﻟﻤﻌﺎﻟﺠﺔ اﻟﺸﻴﻔﺮات اﻟﻤﻜﺘﻮﺑﺔ ﺑﻬﺎ‪ ،‬وﻫﻮ ﻳﻘﺒﻞ ﻋﺪدً ا ﻣﻦ اﻟﺨﻴﺎرات‪ ،‬وﻳﻤﻜﻦ ﺗﺸﻐﻴﻠﻪ ﻓﻲ اﻟﻮﺿﻊ‬
‫اﻟﺘﻔﺎﻋﻠﻲ‪.‬‬

‫أﻧﻮاع اﻟﺒﻴﺎﻧﺎت‬

‫اﻟﻘﻴﻤﺔ اﻟﻤﻨﻄﻘﻴﺔ )‪(boolean‬‬

‫اﻟﻘﻴﻤﺘﺎن اﻟﻤﻨﻄﻘﻴﺘﺎن اﻟﻠﺘﺎن ﺗﺪﻋﻤﻬﻤﺎ ﺑﺎﻳﺜﻮن ﻫﻤﺎ ‪ True‬و ‪ False‬وﻫﻤﺎ ﻛﺎﺋﻨﺎن ﺛﺎﺑﺘﺎن )‪(Constant objects‬‬
‫ﺻﺤﻴﺤﺎ ‪ True‬أو ﺧﻄﺎ ‪.False‬‬
‫ً‬ ‫ﻓﺈﻣﺎ أن ﻳﻜﻮن‬
‫ﺻﺤﺔ ﺗﻌﺒﻴﺮ ﻣﺎ‪ّ ،‬‬
‫ﻳﻌﺒﺮان ﻋﻦ ّ‬

‫اﻷﻋﺪاد اﻟﺼﺤﻴﺤﺔ )‪(int‬‬

‫اﻟﻌﺪد اﻟﺼﺤﻴﺢ ‪ integer‬ﻫﻮ أي ﻋﺪد ﻣﻮﺟﺐ أو ﺳﺎﻟﺐ ﻻ ﻳﺘﻀﻤﻦ ﻓﺎﺻﻠﺔ ﻋﺸﺮﻳﺔ‪ ،‬وﻳﻤﻜﻦ ﺗﻤﺜﻴﻠﻪ ﺑﺎﻟﻨﻈﺎم اﻟﻌﺸﺮي‬
‫)‪ ،decimal‬اﻷﺳﺎس ‪ (10‬واﻟﺴﺖ ﻋﺸﺮي )‪ ،hexadecimal‬اﻷﺳﺎس ‪ (16‬واﻟﺜﻤﺎﻧﻲ )‪ ،octal‬اﻷﺳﺎس ‪ (8‬واﻟﺜﻨﺎﺋﻲ‬
‫)‪ ،binary‬اﻷﺳﺎس ‪.(2‬‬

‫اﻷﻋﺪاد اﻟﻌﺸﺮﻳﺔ )‪(float‬‬

‫اﻷﻋﺪاد اﻟﻌﺸﺮﻳﺔ )ذات اﻟﻔﺎﺻﻠﺔ اﻟﻌﺎﺋﻤﺔ ‪ (floating point‬ﻫﻲ اﻷﻋﺪاد اﻟﺘﻲ ﺗﺘﻀﻤﻦ ﻓﺎﺻﻠﺔ ﻋﺸﺮﻳﺔ أو ﻋﻼﻣﺔ أﺳﻴﺔ‬

‫اﻷﻋﺪاد اﻟﻌﺸﺮﻳﺔ )‪(decimal‬‬

‫ﺗﺘﻴﺢ وﺣﺪة ‪ decimal‬إﺟﺮاء ﺣﺴﺎﺑﺎت ﺳﺮﻳﻌﺔ ﻋﻠﻰ اﻷﻋﺪاد اﻟﻌﺸﺮﻳﺔ ﻣﻊ ﺿﻤﺎن اﻟﺘﻘﺮﻳﺐ اﻟﺼﺤﻴﺢ‪.‬‬

‫اﻷﻋﺪاد اﻟﻜﺴﺮﻳﺔ )‪(fraction‬‬

‫ﺗﺘﻴﺢ وﺣﺪة ‪ fractions‬اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻷﻋﺪاد اﻟﻜﺴﺮﻳﺔ ﻣﺜﻞ )⅓( أو )‪ (4/18‬وإﺟﺮاء اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ اﻟﻤﺨﺘﻠﻔﺔ‬
‫ﻋﻠﻴﻬﺎ‪.‬‬

‫اﻷﻋﺪاد اﻟﻤﺮﻛﺒﺔ )‪(complex‬‬

‫وﺗﺨﻴﻠﻲ وﻛﻼﻫﻤﺎ ﻣﻦ اﻷﻋﺪاد اﻟﻌﺸﺮﻳﺔ ذات اﻟﻔﺎﺻﻠﺔ اﻟﻌﺎﺋﻤﺔ ‪،float‬‬


‫ّ‬ ‫ﺗﺘﻜﻮن اﻷﻋﺪاد اﻟﻤﺮﻛ ّﺒﺔ ﻣﻦ ﺟﺰأﻳﻦ ﺣﻘﻴﻘﻲ‬
‫ّ‬
‫وﻳﺴﺘﺨﺪم اﻟﺤﺮﻓﺎن '‪ 'j‬أو '‪ 'J‬ﻟﻠﺘﻌﺒﻴﺮ ﻋﻦ اﻷﻋﺪاد اﻟﻤﺮﻛﺒﺔ‪.‬‬

‫اﻟﺴﻼﺳﻞ اﻟﻨﺼﻴﺔ )‪(str‬‬

‫اﻟﺴﻠﺴﻠﺔ اﻟﻨﺼﻴﺔ ﻫﻲ ﺗﺴﻠﺴﻞ ﻣﻦ اﻟﺤﺮوف وﻫﻲ ﻏﻴﺮ ﻗﺎﺑﻠﺔ ﻟﻠﺘﻐﻴﻴﺮ )‪.(immutable‬‬


‫اﻟﺼﻔﻮف )‪(tuples‬‬

‫ّ‬
‫اﻟﺼﻒ ﻣﻦ ﻋﺪد ﻣﻦ اﻟﻘﻴﻢ اﻟﻤﻔﺼﻮﻟﺔ ﻋﻦ ﺑﻌﻀﻬﺎ ﺑﻔﺎﺻﻠﺔ‪.‬‬ ‫ﻳﺘﻜﻮن‬
‫ّ‬

‫اﻟﻘﻮاﺋﻢ )‪(lists‬‬

‫ﻗﺎﺋﻤﺔ ﻣﻦ اﻟﻘﻴﻢ )اﻟﻌﻨﺎﺻﺮ( اﻟﻤﻔﺼﻮﻟﺔ ﻋﻦ ﺑﻌﻀﻬﺎ اﻟﺒﻌﺾ ﺑﻔﻮاﺻﻞ )‪ (,‬وﻣﺤﺎﻃﺔ ﺑﺄﻗﻮاس ﻣﺮﺑﻌﺔ‪ .‬ﻳﻤﻜﻦ ﻟﻠﻘﻮاﺋﻢ أن‬
‫ﺗﺘﻀﻤﻦ أﻧﻮاﻋً ﺎ ﻣﺨﺘﻠﻔﺔ‪ ،‬وﻟﻜﻦ ﻋﺎدة ﻣﺎ ﺗﻜﻮن اﻟﻌﻨﺎﺻﺮ ﻛﻠﻬﺎ ﻣﻦ اﻟﻨﻮع ﻧﻔﺴﻪ‪.‬‬
‫ّ‬

‫اﻟﻤﺠﻤﻮﻋﺎت )‪(set‬‬

‫اﻟﻤﻜﺮرة وﻏﻴﺮ اﻟﻘﺎﺑﻠﺔ ﻟﻠﺘﻌﺪﻳﻞ )‪.(immutable‬‬


‫ّ‬ ‫ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻜﺎﺋﻨﺎت ﻏﻴﺮ اﻟﻤﺮ ّﺗﺒﺔ وﻏﻴﺮ‬

‫اﻟﻘﻮاﻣﻴﺲ )‪(dict‬‬

‫اﻟﻘﻮاﻣﻴﺲ ﻫﻲ ﻣﺠﺎﻣﻴﻊ ﻏﻴﺮ ﻣﺮ ّﺗﺒﺔ ﻣﻦ أزواج )ﻣﻔﺘﺎح‪ :‬ﻗﻴﻤﺔ( )‪.(key: value‬‬

‫اﻟﺒﺎﻳﺘﺎت )‪(bytes‬‬

‫اﻟﺒﺎﻳﺘﺎت ﻫﻲ ﺗﺴﻠﺴﻼت ﻟﺒﺎﻳﺘﺎت ﻣﻔﺮدة ﻏﻴﺮ ﻗﺎﺑﻠﺔ ﻟﻠﺘﻐﻴﻴﺮ )‪ ،(immutable‬وﻫﻲ ﻣﺸﺎﺑﻬﺔ إﻟﻰ ﺣﺪّ ﻛﺒﻴﺮ ﻟﻠﺴﻼﺳﻞ‬
‫اﻟﻨﺼﻴﺔ‪.‬‬

‫ﻣﺼﻔﻮﻓﺎت اﻟﺒﺎﻳﺘﺎت )‪(bytesarray‬‬

‫ﻣﺼﻔﻮﻓﺎت اﻟﺒﺎﻳﺘﺎت ‪ bytearray‬ﻫﻲ اﻟﻜﺎﺋﻨﺎت اﻟﻘﺎﺑﻠﺔ ﻟﻠﺘﻐﻴﻴﺮ واﻟﺘﻲ ﺗﻘﺎﺑﻞ ﻛﺎﺋﻨﺎت اﻟﺒﺎﻳﺘﺎت ‪.bytes‬‬

‫اﻟﻌﻤﻠﻴﺎت ‪Operations‬‬

‫اﻟﻌﻤﻠﻴﺎت اﻟﻤﻨﻄﻘﻴﺔ )‪(Boolean Operations‬‬

‫ﺗﻘﺪّ م ﺑﺎﻳﺜﻮن ﺛﻼث ﻋﻤﻠﻴﺎت ﻣﻨﻄﻘﻴﺔ ﻫﻲ ‪ or‬و ‪ and‬و ‪.not‬‬

‫ﻋﻤﻠﻴﺎت اﻟﻤﻘﺎرﻧﺔ )‪(Comparison Operations‬‬

‫ﺗﻘﺪّ م ﺑﺎﻳﺜﻮن ﺛﻤﺎن ﻋﻤﻠﻴﺎت ﻟﻠﻤﻘﺎرﻧﺔ‪ ،‬وﺗﻤﺘﻠﻚ ﺟﻤﻴﻌﻬﺎ ﻧﻔﺲ اﻷوﻟﻮﻳﺔ )وﻫﻲ أﻋﻠﻰ ﻣﻦ اﻟﻌﻤﻠﻴﺎت اﻟﻤﻨﻄﻘﻴﺔ(‪.‬‬

‫اﻟﻌﻤﻠﻴﺎت اﻟﻌﺪدﻳﺔ )‪(Numeric Operations‬‬

‫ﺗﺪﻋﻢ ﺑﺎﻳﺜﻮن ﺷﺄﻧﻬﺎ ﻓﻲ ذﻟﻚ ﺷﺄن ﺑﻘﻴﺔ اﻟﻠﻐﺎت اﻟﺒﺮﻣﺠﻴﺔ ﺟﻤﻴﻊ اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ اﻟﻤﻌﺮوﻓﺔ‪ ،‬وﺗﺪﻋﻢ ﺟﻤﻴﻊ اﻷﻧﻮاع‬
‫اﻟﻌﺪدﻳﺔ )ﺑﺎﺳﺘﺜﻨﺎء اﻷﻋﺪاد اﻟﻤﺮﻛﺒﺔ(‬

‫ﻋﻤﻠﻴﺎت اﻷﻋﺪاد اﻟﺜﻨﺎﺋﻴﺔ )‪(Bitwise Operations‬‬

‫ﻳﻤﻜﻦ إﺟﺮاء ﻋﻤﻠﻴﺎت اﻷﻋﺪاد اﻟﺜﻨﺎﺋﻴﺔ ‪ Bitwise‬ﻋﻠﻰ اﻷﻋﺪاد اﻟﺼﺤﻴﺤﺔ ﻓﻘﻂ‪.‬‬

‫ﻋﻤﻠﻴﺎت اﻟﺘﺴﻠﺴﻼت )‪(Sequence Operations‬‬


‫ﺗﺪﻋﻢ ﺑﺎﻳﺜﻮن ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻌﻤﻠﻴﺎت اﻟﺨﺎﺻﺔ ﺑﺎﻟﺘﺴﻠﺴﻼت )اﻟﻘﻮاﺋﻢ‪ ،‬اﻟﺼﻔﻮف‪ ،‬اﻟﺴﻼﺳﻞ‬
‫اﻟﻨﺼﻴﺔ‪ ،‬واﻟﺒﺎﻳﺘﺎت وﻣﺼﻔﻮﻓﺎت اﻟﺒﺎﻳﺘﺎت(‪.‬‬

‫ﻋﻮاﻣﻞ اﻟﺒﺎﻳﺘﺎت وﻣﺼﻔﻮﻓﺎت اﻟﺒﺎﻳﺘﺎت )‪(Byte and Bytesarray Operations‬‬

‫ﺗﺪﻋﻢ ﻛﺎﺋﻨﺎت اﻟﺒﺎﻳﺘﺎت وﻣﺼﻔﻮﻓﺎت اﻟﺒﺎﻳﺘﺎت ﻋﻤﻠﻴﺎت اﻟﺘﺴﻠﺴﻼت اﻟﺸﺎﺋﻌﺔ‪ ،‬وﺗﺘﻮاﻓﻖ ﻫﺬه اﻟﻜﺎﺋﻨﺎت ﻣﻊ اﻟﻌﻮاﻣﻞ ﻣﻦ‬
‫اﻟﻨﻮع ذاﺗﻪ إﺿﺎﻓﺔ إﻟﻰ أي ﻛﺎﺋﻦ ﺷﺒﻴﻪ ﺑﺎﻟﺒﺎﻳﺘﺎت‪.‬‬

‫ﻋﻤﻠﻴﺎت اﻟﻤﺠﻤﻮﻋﺎت )‪(Sets operations‬‬

‫ﺗﻘﺪّ م ﺑﺎﻳﺜﻮن ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻌﻤﻠﻴﺎت اﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﺠﻤﻮﻋﺎت واﻟﻤﺠﻤﻮﻋﺎت اﻟﺠﺎﻣﺪة‪.‬‬

‫ﺑﻨﻰ اﻟﺘﺤﻜﻢ‬

‫‪If‬‬

‫ﺗﻘﺪّ م ﺑﺎﻳﺜﻮن ﻋﺒﺎرة ‪ if‬ﻟﻠﺘﺤﻜﻢ اﻟﻤﺸﺮوط ﺑﺘﺪﻓﻖ اﻟﺸﻴﻔﺮة‪.‬‬

‫‪for‬‬

‫ﺗﻤﺮ ﻋﻠﻰ ﻋﻨﺎﺻﺮ أي ﺗﺴﻠﺴﻞ )ﻗﺎﺋﻤﺔ أو ﺳﻠﺴﻠﺔ ﻧﺼﻴﺔ( ﻣﻌﺘﻤﺪة ﻓﻲ ذﻟﻚ ﻋﻠﻰ ﺗﺮﺗﻴﺐ ﺗﻠﻚ‬
‫ﻋﺒﺎرة ‪ for‬ﻓﻲ ﺑﺎﻳﺜﻮن ّ‬
‫اﻟﻌﻨﺎﺻﺮ ﻓﻲ ذﻟﻚ اﻟﺘﺴﻠﺴﻞ‪.‬‬

‫‪while‬‬

‫ﺻﺤﻴﺤﺎ‪.‬‬
‫ً‬ ‫ﺗﺴﺘﻤﺮ ﻋﺒﺎرة ‪ while‬ﻓﻲ اﻟﻌﻤﻞ ﻣﺎ دام اﻟﺸﺮط اﻟﺬي ﺗﻌﻤﻞ ﻋﻠﻰ أﺳﺎﺳﻪ‬

‫‪pass‬‬

‫ﻻ ﺗﺆدي ﻋﺒﺎرة ‪ pass‬أي ﻋﻤﻞ ﻋﻠﻰ اﻹﻃﻼق‪ ،‬وﻳﻤﻜﻦ اﺳﺘﺨﺪام ﻫﺬه اﻟﻌﺒﺎرة ﻋﻨﺪ اﻟﺤﺎﺟﺔ إﻟﻰ اﺳﺘﺨﺪام ﻋﺒﺎرة ﻣﻌﻴﻨﺔ‬
‫وﻟﻜﻦ دون اﻟﺤﺎﺟﺔ إﻟﻰ أداء أي وﻇﻴﻔﺔ‪.‬‬

‫ﻃﺮق اﺳﺘﺨﺪام اﻟﺤﻠﻘﺎت اﻟﺘﻜﺮارﻳﺔ‬

‫ﺗﻘﺪّ م ﺑﺎﻳﺜﻮن ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺪوال واﻟﺘﻮاﺑﻊ اﻟﺘﻲ ﺗﺴﻬّ ﻞ ﻋﻤﻠﻴﺔ إﻧﺸﺎء اﻟﺤﻠﻘﺎت اﻟﺘﻜﺮارﻳﺔ واﻻﺳﺘﻔﺎدة ﻣﻨﻬﺎ ﺑﺼﻮرة‬
‫ﻓﻌّ ﺎﻟﺔ ﻓﻲ اﻟﻘﻮاﻣﻴﺲ واﻟﻘﻮاﺋﻢ وﻏﻴﺮﻫﺎ‪.‬‬

‫اﻟﺪوال‬

‫ﺗﻌﺮﻳﻒ اﻟﺪوال‬

‫ُﺗﻌﺮف اﻟﺪوال ﺑﺎﺳﺘﺨﺪام اﻟﻜﻠﻤﺔ اﻟﻤﻔﺘﺎﺣﻴﺔ ‪ def‬ﻳﺘﺒﻌﻬﺎ اﺳﻢ اﻟﺪاﻟﺔ ﺛﻢ ﻗﺎﺋﻤﺔ ﺑﺎﻟﻤﻌﺎﻣﻼت ﻣﺤﺎﻃﺔ ﺑﺎﻷﻗﻮاس‪ .‬أﻣﺎ‬
‫اﻟﻜﺘﻠﺔ اﻟﺮﺋﻴﺴﻴﺔ ﻟﻠﺪاﻟﺔ ﻓﺘﺒﺪأ ﻓﻲ اﻟﺴﻄﺮ اﻟﺘﺎﻟﻲ ﻟﺴﻄﺮ اﻟﺘﻌﺮﻳﻒ‪ ،‬وﻳﺠﺐ أن ﺗﺰاح ﺑﻤﻘﺪار إزاﺣﺔ واﺣﺪة‪.‬‬

‫ﻣﻌﺎﻣﻼت اﻟﺪوال‬

‫ﻳﻤﻜﻦ ﺗﻌﺮﻳﻒ اﻟﺪوال ﻣﻊ ﻋﺪد ﻏﻴﺮ ﻣﺤﺪّ د ﻣﻦ اﻟﻤﻌﺎﻣﻼت‪.‬‬


‫ﺗﻌﺎﺑﻴﺮ ‪lambda‬‬

‫ﻳﻤﻜﻦ إﻧﺸﺎء دوال ﻻ ﺗﺤﻤﻞ أﺳﻤﺎء ﺑﺎﺳﺘﺨﺪام اﻟﻜﻠﻤﺔ اﻟﻤﻔﺘﺎﺣﻴﺔ ‪.lambda‬‬

‫ﺳﻼﺳﻞ اﻟﺘﻮﺛﻴﻖ اﻟﻨﺼﻴﺔ‬

‫ّ‬
‫وﺗﻤﺜﻞ ﺳﻠﺴﻠﺔ اﻟﺘﻮﺛﻴﻖ اﻟﻨﺼﻴﺔ اﻟﺨﺎﺻﺔ ﺑﺘﻠﻚ اﻟﺪاﻟﺔ‬ ‫ﻧﺼﻴﺔ‪،‬‬
‫ﻳﻤﻜﻦ أن ﺗﻜﻮن اﻟﻌﺒﺎرة اﻷوﻟﻰ ﻓﻲ ﻛﺘﻠﺔ اﻟﺪاﻟﺔ ﺳﻠﺴﻠﺔ ّ‬
‫أﻳﻀﺎ ﺗﺴﻤﻴﺔ ‪ ،docstring‬ﺳﺘﺨﺪم ﺳﻼﺳﻞ اﻟﺘﻮﺛﻴﻖ اﻟﻨﺼﻴﺔ ﻹﻧﺘﺎج ﺗﻮﺛﻴﻖ ﻋﺒﺮ ﺷﺒﻜﺔ اﻹﻧﺘﺮﻧﺖ‪ ،‬أو‬ ‫وﻳﻄﻠﻖ ﻋﻠﻴﻬﺎ ً‬
‫ﺗﺴﻤﺢ ﻟﻠﻤﺴﺘﺨﺪم ﺑﺘﺼﻔﺢ اﻟﺸﻴﻔﺮة ﺑﺼﻮرة ﺗﻔﺎﻋﻠﻴﺔ‪.‬‬

‫اﻷﺻﻨﺎف‬

‫ﻣﻘﺪﻣﺔ‬

‫ﺗﻌﺪّ اﻷﺻﻨﺎف وﺳﻴﻠﺔ ﻟﺠﻤﻊ اﻟﺒﻴﺎﻧﺎت واﻟﻌﻤﻠﻴﺎت ﻓﻲ ﺑﻮﺗﻘﺔ واﺣﺪة‪ ،‬وﻳﺆدي إﻧﺸﺎء ﺻﻨﻒ ﺟﺪﻳﺪ إﻟﻰ ﺗﻜﻮﻳﻦ ﻧﻮع ﺟﺪﻳﺪ‬
‫ﺑﻜﻞ ﺻﻨﻒ ﻣﺠﻤﻮﻋﺔ ﻣﻦ‬ ‫ﻣﻦ اﻟﻜﺎﺋﻨﺎت‪ ،‬ﻣﺎ ﻳﺘﻴﺢ إﻧﺸﺎء ﻧﺴﺦ )‪ (instances‬ﻣﻦ ذﻟﻚ اﻟﻨﻮع‪ .‬ﻳﻤﻜﻦ أن ﺗﺮﺗﺒﻂ ّ‬
‫اﻟﺨﺎﺻﻴﺎت )‪ (attributes‬اﻟﺘﻲ ﺗﺴﺎﻋﺪ ﻓﻲ ﻣﺘﺎﺑﻌﺔ ﺣﺎﻟﺔ اﻟﺼﻨﻒ‪ ،‬إﺿﺎﻓﺔ إﻟﻰ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺘﻮاﺑﻊ )‪(methods‬‬
‫اﻟﺘﻲ ﺗﺴﺎﻋﺪ ﻓﻲ ﺗﻌﺪﻳﻞ ﺣﺎﻟﺔ ذﻟﻚ اﻟﺼﻨﻒ‪.‬‬

‫اﻟﻨﻄﺎﻗﺎت وﻣﺠﺎﻻت اﻷﺳﻤﺎء‬

‫ﻣﺠﺎل اﻷﺳﻤﺎء ﻫﻮ راﺑﻂ ﺑﻴﻦ اﻷﺳﻤﺎء واﻟﻜﺎﺋﻨﺎت‪ ،‬وﻣﻦ اﻷﻣﺜﻠﺔ ﻋﻠﻰ ﻣﺠﺎﻻت اﻷﺳﻤﺎء‪ :‬ﻣﺠﻤﻮﻋﺔ اﻷﺳﻤﺎء اﻟﺪاﺧﻠﻴﺔ‪،‬‬
‫اﻷﺳﻤﺎء اﻟﻌﺎﻣﺔ )‪ (global‬ﻓﻲ وﺣﺪة ﻣﻌﻴﻨﺔ‪ ،‬واﻷﺳﻤﺎء اﻟﻤﺤﻠﻴﺔ )‪ (local‬ﻓﻲ ﺑﻨﻴﺔ ّ‬
‫داﻟﺔ ﻣﺎ‪ .‬أﻣﺎ اﻟﻨﻄﺎق ﻓﻬﻮ ﺟﺰء ﻣﻦ‬
‫ﺷﻴﻔﺮة ﺑﺎﻳﺜﻮن ﻳﻤﻜﻦ ﻓﻴﻪ اﻟﻮﺻﻮل إﻟﻰ ﻣﺠﺎل اﻷﺳﻤﺎء ﺑﺼﻮرة ﻣﺒﺎﺷﺮة‪.‬‬

‫ﺗﻌﺮﻳﻒ اﻷﺻﻨﺎف‬

‫ﺗﺴﺘﺨﺪم اﻟﻜﻠﻤﺔ اﻟﻤﻔﺘﺎﺣﻴﺔ ‪ class‬ﻟﺘﻌﺮﻳﻒ اﻷﺻﻨﺎف اﻟﺠﺪﻳﺪة ﻓﻲ ﺑﺎﻳﺜﻮن‪.‬‬

‫اﻟﻮراﺛﺔ‬

‫ﺗﺪﻋﻢ ﺑﺎﻳﺜﻮن ﺷﺄﻧﻬﺎ ﻓﻲ ذﻟﻚ ﺷﺄن أي ﻟﻐﺔ ﺑﺮﻣﺠﻴﺔ ﻛﺎﺋﻨﻴﺔ اﻟﺘﻮﺟﻪ ﻣﻔﻬﻮم اﻟﻮراﺛﺔ‪ ،‬وﺗﺪﻋﻢ ﻛﺬﻟﻚ إﻋﺎدة ﺗﻌﺮﻳﻒ‬
‫)‪ (override‬اﻟﺘﻮاﺑﻊ اﻟﻤﻮروﺛﺔ ﻣﻦ اﻷﺻﻨﺎف اﻷﺳﺎﺳﻴﺔ إﺿﺎﻓﺔ إﻟﻰ اﻟﻮراﺛﺔ اﻟﻤﺘﻌﺪدة‪.‬‬

‫اﻟﺨﺎﺻﺔ ‪private variables‬‬


‫ّ‬ ‫اﻟﻤﺘﻐﻴﺮات‬

‫ﻣﺘﻐﻴﺮات اﻷﺻﻨﺎف اﻟﺨﺎﺻﺔ )‪ (Private‬واﻟﺘﻲ ﻻ ﻳﻤﻜﻦ اﻟﻮﺻﻮل إﻟﻴﻬﺎ ﻣﻦ ﺧﺎرج اﻟﻜﺎﺋﻦ ﻏﻴﺮ ﻣﻮﺟﻮدة ﻓﻲ ﺑﺎﻳﺜﻮن‪.‬‬
‫أن اﻻﺳﻢ اﻟﻤﺴﺒﻮق ﺑﺸﺮﻃﺔ ﺳﻔﻠﻴﺔ )ﻣﺜﻞ‪ (_spam :‬ﻳﺠﺐ أن ﻳُ ﻌﺎﻣﻞ ﻛﺠﺰء ﻏﻴﺮ‬ ‫وﻟﻜﻦ ﻳﺘﻔﻖ ﻣﻌﻈﻢ اﻟﻤﺒﺮﻣﺠﻴﻦ ﻋﻠﻰ ّ‬
‫ﻋﺎم ﻣﻦ اﻟﻮاﺟﻬﺔ اﻟﺒﺮﻣﺠﻴﺔ )ﺳﻮاء أﻛﺎن ذﻟﻚ اﻟﺠﺰء داﻟﺔ أو ﺗﺎﺑﻌً ﺎ أو ﺧﺎﺻﻴﺔ(‪.‬‬

‫اﻟﻤﻜﺮرات ‪iterators‬‬

‫اﻟﻤﻜﺮرات ﻫﻲ أﺳﺎس ﻋﻤﻞ ﺣﻠﻘﺎت ‪ for‬اﻟﺘﻜﺮارﻳﺔ‪ ،‬وﻳﻤﻜﻦ ﺗﺨﺼﻴﺺ ﻋﻤﻞ ﻫﺬه اﻟﺤﻠﻘﺎت اﻟﺘﻜﺮارﻳﺔ ﻋﻦ ﻃﺮﻳﻖ‬
‫ّ‬
‫ﺗﻌﺮﻳﻒ ﻣﻜﺮرات ﺟﺪﻳﺪة‪.‬‬

‫ّ‬
‫اﻟﻤﻮﻟﺪات ‪generators‬‬

‫ﺄ‬ ‫أ‬ ‫ّ‬


‫ّ‬
‫اﻟﻤﻮﻟﺪات ﻫﻲ أداة ﺑﺴﻴﻄﺔ وﻗﻮﻳﺔ ﻹﻧﺸﺎء اﻟﻤﻜﺮرات‪ .‬ﺗﺄﺧﺬ اﻟﻤﻮﻟﺪات ﺻﻴﻐﺔ اﻟﺪوال اﻟﻌﺎدﻳﺔ وﻟﻜﻨّﻬﺎ ﺗﺴﺘﺨﺪم‬
‫ﻋﺒﺎرة ‪ yield‬ﻋﻨﺪ إﻋﺎدة اﻟﺒﻴﺎﻧﺎت‪.‬‬

‫اﻟﻮﺣﺪات ‪modules‬‬

‫اﻟﻮﺣﺪات‬

‫ﻣﻔﺴﺮ‬ ‫ّ‬
‫ﻣﺴﺘﻘﻠﺔ أو ﻓﻲ ّ‬ ‫ﺗﻘﺪّ م ﺑﺎﻳﺜﻮن ﻃﺮﻳﻘﺔ ﻹﺿﺎﻓﺔ اﻟﺘﻌﺮﻳﻔﺎت ﻓﻲ ﻣﻠﻒ ﻣﺴﺘﻘﻞ واﺳﺘﺨﺪاﻣﻬﺎ ﻓﻲ ﺷﻴﻔﺮة‬
‫ﺑﺎﻳﺜﻮن اﻟﺘﻔﺎﻋﻠﻲ‪ .‬ﺗﺴﻤﻰ ﻫﺬه اﻟﻤﻠﻔﺎت ﺑﺎﻟﻮﺣﺪات ‪.Modules‬‬

‫اﻟﺪاﻟﺔ )(‪dir‬‬

‫ﺗﻌﺮﻓﻬﺎ اﻟﻮﺣﺪة‪ ،‬وﺗﻌﻴﺪ ﻫﺬه اﻟﺪاة ﻗﺎﺋﻤﺔ ﻣﺮ ّﺗﺒﺔ ﻣﻦ اﻟﺴﻼﺳﻞ‬


‫ﺗﺴﺘﺨﺪم اﻟﺪاﻟﺔ اﻟﺪاﺧﻠﻴﺔ )(‪ dir‬ﻟﻤﻌﺮﻓﺔ اﻷﺳﻤﺎء اﻟﺘﻲ ّ‬
‫اﻟﻨﺼﻴﺔ‪.‬‬

‫اﻟﺤﺰم ‪packages‬‬

‫ﺗﻌﺪّ اﻟﺤﺰم ﻃﺮﻳﻘﺔ ﻟﻬﻴﻜﻠﺔ ﻣﺠﺎﻻت أﺳﻤﺎء اﻟﺤﺰم ﻓﻲ ﺑﺎﻳﺜﻮن‪ ،‬وﺗﺴﺎﻋﺪ ﻓﻲ ﺗﺠﻨﺐ ﺣﺪوث أي ﺗﻀﺎرب ﺑﻴﻦ أﺳﻤﺎء‬
‫اﻟﻮﺣﺪات ﻓﻲ اﻟﺤﺰم ﻣﺘﻌﺪّ دة اﻟﻮﺣﺪات ﻣﺜﻞ‪ (/NumPy (http://www.numpy.org :‬أو ﻣﻜﺘﺒﺔ ﺑﺎﻳﺜﻮن ﻟﻤﻌﺎﻟﺠﺔ‬
‫اﻟﺼﻮر ‪.(/Python Imaging Library (https://pillow.readthedocs.io‬‬

‫اﻟﻮﺣﺪات اﻟﻘﻴﺎﺳﻴﺔ ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﻣﻔﺴﺮ‬
‫ﺗﻀﻢ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻮﺣﺪات اﻟﻘﻴﺎﺳﻴﺔ )‪ (standard modules‬وﺑﻌﻀﻬﺎ ﻣﺪﻣﺞ ﻣﻊ ّ‬ ‫ّ‬ ‫ﺗﻘﺪّ م ﺑﺎﻳﺜﻮن ﻣﻜﺘﺒﺔ‬
‫ﺟﺰءا ﻣﻦ اﻟﻠﻐﺔ‪ ،‬وﻟﻜﻦ اﻟﻬﺪف ﻣﻨﻬﺎ ﻫﻮ إﻣﺎ زﻳﺎدة ﻛﻔﺎءة‬
‫ً‬ ‫ﺑﺎﻳﺜﻮن وﺗﺘﻴﺢ اﻟﻮﺻﻮل إﻟﻰ ﻋﻤﻠﻴﺎت ﻫﻲ ﻟﻴﺴﺖ ﻓﻲ اﻷﺻﻞ‬
‫اﻟﻤﻔﺴﺮ أو ﻹﺗﺎﺣﺔ اﻟﻮﺻﻮل إﻟﻰ اﻟﻌﻤﻠﻴﺎت اﻷﺳﺎﺳﻴﺔ ﻓﻲ ﻧﻈﺎم اﻟﺘﺸﻐﻴﺮ ﻣﺜﻞ اﺳﺘﺪﻋﺎءات اﻟﻨﻈﺎم )‪system‬‬
‫ّ‬ ‫ﻋﻤﻞ‬
‫‪.(calls‬‬

‫اﻟﻮﺣﺪة ‪ re‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻘﺪم اﻟﻮﺣﺪة ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻌﻤﻠﻴﺎت اﻟﺨﺎﺻﺔ ﺑﻤﻄﺎﺑﻘﺔ اﻟﺘﻌﺎﺑﻴﺮ اﻟﻨﻤﻄﻴﺔ ‪ Regular Expressions‬وﻫﻲ ﻣﺸﺎﺑﻬﺔ‬ ‫ّ‬
‫إﻟﻰ ﺣﺪّ ﻛﺒﻴﺮ ﻟﻠﻌﻤﻠﻴﺎت اﻟﻤﻮﺟﻮدة ﻓﻲ ﻟﻐﺔ ‪.Perl‬‬

‫اﻟﻮﺣﺪة ‪ string‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻀﻢ اﻟﻮﺣﺪة ﻋﺪدً ا ﻣﻦ اﻟﺜﻮاﺑﺖ واﻷﺻﻨﺎف اﻟﻤﻔﻴﺪة ﻓﻲ ﻣﻌﺎﻟﺠﺔ اﻟﺴﻼﺳﻞ اﻟﻨﺼﻴﺔ‪.‬‬


‫ّ‬

‫اﻟﻮﺣﺪة ‪ datetime‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻘﺪّ م ﻫﺬه اﻟﻮﺣﺪة ﻋﺪدً ا ﻣﻦ اﻷﺻﻨﺎف اﻟﺘﻲ ﺗﻌﺎﻟﺞ اﻟﺘﺎرﻳﺦ واﻟﻮﻗﺖ ﺑﻄﺮق ّ‬
‫ﻣﺒﺴﻄﺔ وأﺧﺮى ﻣﻌﻘﺪة‪ ،‬وﺗﺪﻋﻢ ﺑﺎﻳﺜﻮن‬
‫إﺟﺮاء اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ ﻋﻠﻰ اﻟﺘﻮارﻳﺦ واﻷوﻗﺎت‪.‬‬

‫اﻟﻮﺣﺪة ‪ calendar‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﺘﻴﺢ ﻫﺬه اﻟﻮﺣﺪة اﻟﺤﺼﻮل ﻋﻠﻰ ﺗﻘﺎوﻳﻢ ﻣﺸﺎﺑﻬﺔ ﻟﻤﺨﺮﺟﺎت اﻟﺒﺮﻧﺎﻣﺞ ‪ cal‬ﻓﻲ أﻧﻈﻤﺔ ﻳﻮﻧﻜﺲ‪ ،‬إﻟﻰ ﺟﺎﻧﺐ أ ّﻧﻬﺎ ﺗﻘﺪّ م‬
‫ﻋﺪدً ا ﻣﻦ اﻟﺘﻮاﺑﻊ اﻟﻤﻔﻴﺪة واﻟﺨﺎﺻﺔ ﺑﺎﻟﺘﻘﺎوﻳﻢ‪.‬‬

‫اﻟﻮﺣﺪة ‪ bisect‬ﻓﻲ ﺑﺎﻳﺜﻮن‬


‫ﺗﻘﺪّ م ﻫﺬه اﻟﻮﺣﺪة وﺳﻴﻠﺔ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻘﻮاﺋﻢ وﻓﺮزﻫﺎ ﺑﺼﻮرة ﺗﻠﻘﺎﺋﻴﺔ‪ ،‬وﺑﺬﻟﻚ ﻳﻤﻜﻦ ﺗﺠﻨﺐ إﻋﺎدة ﻓﺮز اﻟﻘﺎﺋﻤﺔ ﺑﻌﺪ ﻛﻞ‬
‫ﻋﻤﻠﻴﺔ إدراج ﻟﻠﻌﻨﺎﺻﺮ ﻓﻴﻬﺎ‪.‬‬

‫اﻟﻮﺣﺪة ‪ heapq‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻘﺪّ م ﻫﺬه اﻟﻮﺣﺪة وﺳﻴﻠﺔ ﻻﺳﺘﺨﺪام ﺧﻮارزﻣﻴﺔ ﻃﺎﺑﻮر اﻟﻜﻮﻣﺔ ‪ heap queue‬واﻟﺘﻲ ﺗﻌﺮف ﻛﺬﻟﻚ ﺑﺨﻮارزﻣﻴﺔ‬
‫ﻃﺎﺑﻮر اﻷوﻟﻮﻳﺔ ‪.priority queue‬‬

‫اﻟﻮﺣﺪة ‪ enum‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫‪ enumeration‬ﻫﻮ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻷﺳﻤﺎء اﻟﺮﻣﺰﻳﺔ )اﻟﻌﻨﺎﺻﺮ( اﻟﻤﺮﺗﺒﻄﺔ ﺑﻘﻴﻢ ﺛﺎﺑﺘﺔ وﻓﺮﻳﺪة‪ .‬ﻳﻤﻜﻦ ﻣﻘﺎرﻧﺔ ﻋﻨﺎﺻﺮ‬
‫‪ enumeration‬ﻋﻦ ﻃﺮﻳﻖ ﻫﻮﻳﺘﻬﺎ‪ ،‬وﻳﻤﻜﻦ اﻟﻤﺮور ﻋﻠﻰ ﻋﻨﺎﺻﺮه ﺑﻮاﺳﻄﺔ ﺣﻠﻘﺔ ﺗﻜﺮارﻳﺔ‪.‬‬

‫اﻟﻮﺣﺪة ‪ itertools‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ّ‬
‫اﻟﻤﺘﻮﻓﺮة ﻓﻲ ﻟﻐﺎت ﻣﺜﻞ ‪ ،APL‬و‪Haskell‬‬ ‫ﻜﺮرات ُﻣﺸﺎﺑﻬﺔ ﻟﺘﻠﻚ‬
‫اﻟﻤﺴﺎﻋﺪة ﻋﻠﻰ ﺑﻨﺎء ُﻣ ّ‬
‫ﺗﻘﺪم ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻷدوات ُ‬ ‫ّ‬
‫و‪ .SML‬ﺑُﻨﻲ ّ‬
‫ﻛﻞ ﻣﻨﻬﺎ ﺑﻄﺮﻳﻘﺔ ُﺗﻨﺎﺳﺐ ﻟﻐﺔ ﺑﺎﻳﺜﻮن‪.‬‬

‫اﻟﻮﺣﺪة ‪ functools‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﻐﻴﺮﻫﺎ‪ ،‬أو ُﺗﻌﻴﺪ دوال‬


‫اﻟﺮﺗﺒﺔ )‪ ،(higher-order functions‬وﻫﻲ دوال ﺗﺴﺘﻘﺒﻞ دواﻻ أﺧﺮى‪ُ ،‬ﺗ ّ‬ ‫ُﺗﻘﺪّ م دوال ّ‬
‫ﻋﺎﻟﻴﺔ ّ‬
‫ﻷي ﻛﺎﺋﻦ ﻗﺎﺑﻞ ﻟﻼﺳﺘﺪﻋﺎء أن ﻳُ ﻌﺎﻣﻞ ُﻣﻌﺎﻣﻠﺔ اﻟﺪّ اﻟﺔ ﻋﻨﺪ اﺳﺘﺨﺪام ﻫﺬه اﻟﻮﺣﺪة‪.‬‬
‫أﺧﺮى‪ .‬وﻋﻠﻰ اﻟﻌﻤﻮم‪ ،‬ﻳُ ﻤﻜﻦ ّ‬

‫اﻟﻮﺣﺪة ‪ operator‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫اﻷﺳﺎﺳﻴﺔ ﻓﻲ ﺑﺎﻳﺜﻮن‪.‬‬
‫ّ‬ ‫وأداء‪ ،‬واﻟﺘﻲ ُﺗﻤﺎﺛﻞ اﻟﻌﻮاﻣﻞ‬
‫ً‬ ‫ً‬
‫ﺳﺮﻋﺔ‬ ‫ّ‬
‫اﻟﻔﻌﺎﻟﺔ‬ ‫ُﺗﻘﺪّ م ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺪوال‬

‫اﻟﻮﺣﺪة ‪ collections‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﻣﺘﺨﺼﺼﺔ ﺑﺎﻟﺤﺎوﻳﺎت ‪ containers‬وﺗﻘﺪّ م ﺑﺪاﺋﻞ ﻟﻠﺤﺎوﻳﺎت‬


‫ّ‬ ‫ﺗﺘﻀﻤﻦ ﻫﺬه اﻟﻮﺣﺪة أﻧﻮاع ﺑﻴﺎﻧﺎت‬
‫ّ‬
‫اﻟﺪاﺧﻠﻴﺔ ‪ dict‬و ‪ list‬و ‪ set‬و ‪.tuple‬‬

‫اﻟﻮﺣﺪة ‪ collections.abc‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫اﻟﻤﺠﺮدة ‪) abstract base calsses‬ﻳﺮﻣﺰ ﻟﻬﺎ ‪ABC‬‬


‫ّ‬ ‫ﺗﻘﺪّ م ﻫﺬه اﻟﻮﺣﺪة ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻷﺻﻨﺎف اﻷﺳﺎﺳﻴﺔ‬
‫ﻳﻘﺪّ‬
‫ﻣﻌﻴﻦ م واﺟﻬﺔ ‪ interface‬ﻣﻌﻴﻨﺔ‪ ،‬ﻛﺄن ﻳﻜﻮن‬ ‫ﻣﻤﺎ إذا ﻛﺎن ﺻﻨﻒ ّ‬
‫اﺧﺘﺼﺎ ًرا( واﻟﺘﻲ ﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﻬﺎ ﻟﻠﺘﺄﻛﺪ ّ‬
‫اﻟﺼﻨﻒ ً‬
‫ﻗﺎﺑﻼ ﻟﻠﺘﻘﻄﻴﻊ ‪ hashable‬أو أ ّﻧﻪ ﺻﻨﻒ رﺑﻂ ‪.mapping‬‬

‫اﻟﻮﺣﺪة ‪ pprint‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﺘﻴﺢ وﺣﺪة ‪ pprint‬إﻣﻜﺎﻧﻴﺔ ﻃﺒﺎﻋﺔ ﺑﻨﻰ اﻟﺒﻴﺎﻧﺎت ﻓﻲ ﺑﺎﻳﺜﻮن ﺑﺼﻮرة ﺟﻤﻴﻠﺔ ‪ pretty-print‬ﺑﻄﺮﻳﻘﺔ ﺗﺴﻤﺢ‬
‫ﻣﻔﺴﺮ ﺑﺎﻳﺜﻮن‪.‬‬
‫ﺑﺎﺳﺘﺨﺪام ﻫﺬه اﻟﺒﻴﺎﻧﺎت ﻛﻤﺪﺧﻼت ﻓﻲ ّ‬

‫اﻟﻮﺣﺪة ‪ copy‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻘﺪّ م ﻫﺬه اﻟﻮﺣﺪة ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﻋﻤﻠﻴﺎت اﻟﻨﺴﺦ اﻟﺴﻄﺤﻴﺔ واﻟﻌﻤﻴﻘﺔ‪.‬‬

‫اﻟﻮﺣﺪة ‪ types‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫أ‬
‫ﺗﻘﺪّ م ﻫﺬه اﻟﻮﺣﺪة ﻋﺪدً ا ﻣﻦ اﻟﺪوال اﻟﻤﺴﺎﻋﺪة ﻹﻧﺸﺎء أﻧﻮاع ﺑﻴﺎﻧﺎت ﺟﺪﻳﺪة ﺑﺼﻮرة دﻳﻨﺎﻣﻴﻜﻴﺔ‪.‬‬

‫اﻟﻮﺣﺪة ‪ weakref‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﺘﻴﺢ اﻟﻮﺣﺪة إﻧﺸﺎء إﺷﺎرات ﺿﻌﻴﻔﺔ ‪ weak references‬ﻟﻠﻜﺎﺋﻨﺎت‪.‬‬

‫اﻟﻮﺣﺪة ‪ reprlib‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻘﺪّ م اﻟﻮﺣﺪة وﺳﻴﻠﺔ ﻹﻧﺘﺎج ﺗﻤﺜﻴﻼت ﻟﻠﻜﺎﺋﻨﺎت ﻣﻊ إﻣﻜﺎﻧﻴﺔ ﺗﺤﺪﻳﺪ ﺣﺠﻢ اﻟﺴﻠﺴﻠﺔ اﻟﻨﺼﻴﺔ اﻟﻨﺎﺗﺠﺔ‪.‬‬

‫اﻟﻮﺣﺪة ‪ array‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻌﺮف ﻫﺬه اﻟﻮﺣﺪة ﻛﺎﺋﻨًﺎ ﻳﻤﻜﻦ ﻋﻦ ﻃﺮﻳﻘﻪ ﺗﻤﺜﻴﻞ ﻣﺼﻔﻮﻓﺔ ﻣﻦ اﻟﻘﻴﻢ اﻷﺳﺎﺳﻴﺔ ﻣﺜﻞ اﻟﺤﺮوف واﻷﻋﺪاد اﻟﺼﺤﻴﺤﺔ‬
‫واﻷﻋﺪاد ذات اﻟﻔﺎﺻﻠﺔ اﻟﻌﺎﺋﻤﺔ ﺑﺸﻜﻞ ﻣﻀﻐﻮط‪.‬‬

‫اﻟﻮﺣﺪة ‪ sqlite3‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻘﺪّ م ﻫﺬه اﻟﻮﺣﺪة واﺟﻬﺔ ﺑﺮﻣﺠﻴﺔ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ ﺑﻴﺎﻧﺎت ‪.SQLite3‬‬

‫اﻟﻮﺣﺪة ‪ copyreg‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻘﺪّ م اﻟﻮﺣﺪة ﻃﺮﻳﻘﺔ ﻟﺘﻌﺮﻳﻒ دوال ﺗﺴﺘﺨﺪم أﺛﻨﺎء ﺳﻠﺴﻠﺔ ﻛﺎﺋﻨﺎت ّ‬


‫ﻣﻌﻴﻨﺔ ﻓﻲ ﺑﺎﻳﺜﻮن‪.‬‬

‫اﻟﻮﺣﺪة ‪ marshal‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻀﻢ ﻫﺬه اﻟﻮﺣﺪة ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺪوال اﻟﺘﻲ ﻳﻤﻜﻨﻬﺎ ﻗﺮاءة وﻛﺘﺎﺑﺔ ﻗﻴﻢ ﺑﺎﻳﺜﻮن ﺑﺎﻟﺼﻴﻐﺔ اﻟﺜﻨﺎﺋﻴﺔ ‪.binary format‬‬
‫ّ‬

‫اﻟﻮﺣﺪة ‪ zlib‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ّ‬
‫اﻟﻤﺘﻮﻓﺮة ﻓﻲ ﻫﺬه اﻟﻮﺣﺪة إﺟﺮاء ﻋﻤﻠﻴﺎت اﻟﻀﻐﻂ وﻓﻚ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺒﻴﺎﻧﺎت ﺑﺎﺳﺘﺨﺪام ﻣﻜﺘﺒﺔ ‪.zlib‬‬ ‫ﺗﺘﻴﺢ اﻟﺪوال‬

‫اﻟﻮﺣﺪة ‪ gzip‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻘﺪّ م ﻫﺬه اﻟﻮﺣﺪة واﺟﻬﺔ ﺑﺴﻴﻄﺔ ﻟﻀﻐﻂ اﻟﻤﻠﻔﺎت وﻓﻚ ﺿﻐﻄﻬﺎ ﺑﻨﻔﺲ اﻷﺳﻠﻮب اﻟﻤﺘّ ﺒﻊ ﻓﻲ ﺑﺮﻧﺎﻣﺠﻲ ‪ gzip‬و‬
‫‪ gunzip‬ﻓﻲ ‪ .GNU‬وﺗﺠﺮي ﻋﻤﻠﻴﺔ ﺿﻐﻂ اﻟﺒﻴﺎﻧﺎت ﺑﻮاﺳﻄﺔ وﺣﺪة ‪.zlib‬‬

‫اﻟﻮﺣﺪة ‪ bz2‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻘﺪّ م ﻫﺬه اﻟﻮﺣﺪة واﺟﻬﺔ ﻣﺘﻜﺎﻣﻠﺔ ﻟﻀﻐﻂ اﻟﺒﻴﺎﻧﺎت وﻓﻚ اﻟﻀﻐﻂ ﻋﻨﻬﺎ ﺑﺎﺳﺘﺨﺪام ﺧﻮارزﻣﻴﺔ اﻟﻀﻐﻂ ‪.bzip2‬‬

‫اﻟﻮﺣﺪة ‪ lzma‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻘﺪّ م ﻫﺬه اﻟﻮﺣﺪة ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻷﺻﻨﺎف واﻟﺪوال اﻟﻤﺴﺎﻋﺪة ﻹﺟﺮاء ﻋﻤﻠﻴﺎت ﺿﻐﻂ اﻟﺒﻴﺎﻧﺎت وﻓﻚ اﻟﻀﻐﻂ ﻋﻨﻬﺎ‬
‫ﺑﺎﺳﺘﺨﺪام ﺧﻮارزﻣﻴﺔ اﻟﻀﻐﻂ ‪.LZMA‬‬

‫اﻟﻮﺣﺪة ‪ zipfile‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻘﺪّ م ﻫﺬه اﻟﻮﺣﺪة أدواة ﻹﻧﺸﺎء ﻣﻠﻔﺎت ‪ ZIP‬واﻟﻘﺮاءة ﻣﻨﻬﺎ واﻟﻜﺘﺎﺑﺔ ﻓﻴﻬﺎ وإﻟﺤﺎق اﻟﻤﻠﻔﺎت ﺑﻬﺎ وﻋﺮض ﻣﺤﺘﻮﻳﺎﺗﻬﺎ‪.‬‬
‫اﻟﻮﺣﺪة ‪ tarfile‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﺘﻴﺢ وﺣﺪة ‪ tarfile‬ﻗﺮاءة ﻣﻠﻒ أرﺷﻴﻒ ﻣﻦ ﻧﻮع ‪ tar‬واﻟﻜﺘﺎﺑﺔ ﻓﻴﻪ إﻟﻰ ﺟﺎﻧﺐ ﻣﻠﻔﺎت اﻷرﺷﻴﻒ اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﺗﻘﻨﻴﺔ‬
‫اﻟﻀﻐﻂ ‪ gzip‬و ‪ bz2‬و ‪.lzma‬‬

‫اﻟﻮﺣﺪة ‪ csv‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻘﺪّ م وﺣﺪة ‪ csv‬ﻋﺪدً ا ﻣﻦ اﻷﺻﻨﺎف اﻟﺘﻲ ﺗﺴﺎﻋﺪ ﻓﻲ ﻗﺮاءة اﻟﺒﻴﺎﻧﺎت اﻟﻤﺠﺪوﻟﺔ وﻛﺘﺎﺑﺘﻬﺎ ﺑﺼﻴﻐﺔ ‪.CSV‬‬

‫اﻟﻮﺣﺪة ‪ configparser‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ً‬
‫ﺻﻨﻔﺎ ﻳﺴﺘﺨﺪم ﻟﻐﺔ إﻋﺪادات ﺑﺴﻴﻄﺔ ﺗﻘﺪّ م ﺑﻨﻴﺔ ﻣﺸﺎﺑﻬﺔ ﻟﻠﺒﻨﻴﺔ اﻟﺘﻲ ﺗﻘﺪّ ﻣﻬﺎ ﻣﻠﻔﺎت ‪ INI‬ﻓﻲ ﻧﻈﺎم‬ ‫ﺗﻘﺪّ م ﻫﺬه اﻟﻮﺣﺪة‬
‫‪ .Microsoft Windows‬وﻳﻤﻜﻦ اﺳﺘﺨﺪام ﻫﺬا اﻟﺼﻨﻒ ﻟﻜﺘﺎﺑﺔ ﺑﺮاﻣﺞ وﺗﻄﺒﻴﻘﺎت ﻳﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﺗﺨﺼﻴﺼﻬﺎ‬
‫ﺑﻜﻞ ﺳﻬﻮﻟﺔ‪.‬‬

‫اﻟﻮﺣﺪة ‪ webbrowser‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﻣﺘﻄﻮرة ﺗﺴﻤﺢ ﺑﻌﺮض ﻣﺴﺘﻨﺪات اﻟﻮﻳﺐ ﻋﻠﻰ اﻟﻤﺴﺘﺨﺪﻣﻴﻦ‪.‬‬


‫ّ‬ ‫ﺗﻘﺪّ م وﺣﺪة ‪ webbrowser‬واﺟﻬﺔ‬

‫اﻟﻮﺣﺪة ‪ cgi‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻘﺪّ م ﻫﺬه اﻟﻮﺣﺪة ﻋﺪدً ا ﻣﻦ اﻷدوات اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﺑﻮاﺳﻄﺔ ﺳﻜﺮﺑﺘﺎت ‪ CGI‬اﻟﻤﻜﺘﻮﺑﺔ ﻓﻲ ﺑﺎﻳﺜﻮن‪.‬‬

‫اﻟﻮﺣﺪة ‪ cgitb‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻘﺪم وﺣﺪة ‪ cgitb‬أداة ﺧﺎﺻﺔ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻻﺳﺘﺜﻨﺎءات ﻓﻲ ﺳﻜﺮﺑﺘﺎت ﺑﺎﻳﺜﻮن‪.‬‬

‫اﻟﻮﺣﺪة ‪ wsgiref‬ﻓﻲ ﺑﺎﻳﺜﻮن‬

‫ﺗﻌﺪّ اﻟﻮﺣﺪة ‪ wsgiref‬وﺳﻴﻠﺔ ﻟﺘﻄﺒﻴﻖ ﻣﻌﺎﻳﻴﺮ ‪ WSGI‬وﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﻬﺎ ﻹﺿﺎﻓﺔ دﻋﻢ ‪ WSGI‬إﻟﻰ ﻣﺨﺪّ ﻣﺎت‬
‫اﻟﻮﻳﺐ وأﻃﺮ اﻟﻌﻤﻞ اﻟﺒﺮﻣﺠﻴﺔ‪.‬‬

‫اﻟﻤﺪﺧﻼت واﻟﻤﺨﺮﺟﺎت ‪Inputs and Outputs‬‬

‫ﺗﻨﺴﻴﻖ اﻟﻤﺨﺮﺟﺎت‬

‫ﺗﻘﺪّ م ﺑﺎﻳﺜﻮن ﻋﺪدً ا ﻣﻦ اﻟﻄﺮاﺋﻖ اﻟﺘﻲ ﺗﺴﺎﻋﺪ ﻓﻲ ﺗﻨﺴﻴﻖ ﻣﺨﺮﺟﺎت اﻟﺒﺮاﻣﺞ‪ ،‬ﻓﻴﻤﻜﻦ ﻃﺒﺎﻋﺔ اﻟﺒﻴﺎﻧﺎت ﺑﺼﻴﻐﺔ ﺳﻬﻠﺔ‬
‫اﻟﻘﺮاءة‪ ،‬أو ﻳﻤﻜﻦ ﻛﺘﺎﺑﺔ اﻟﺒﻴﺎﻧﺎت ﻓﻲ ﻣﻠﻒ ﻻﺳﺘﺨﺪاﻣﻪ ﻓﻲ اﻟﻤﺴﺘﻘﺒﻞ‪.‬‬

‫ﻗﺮاءة اﻟﻤﻠﻔﺎت واﻟﻜﺘﺎﺑﺔ ﻓﻴﻬﺎ‬

‫ﺗﺘﻴﺢ ﺑﺎﻳﺜﻮن ﻗﺮاءة اﻟﻤﻠﻔﺎت واﻟﻜﺘﺎﺑﺔ ﻓﻴﻬﺎ ﺑﻨﻤﻄﻴﻦ ﻣﺨﺘﻠﻔﻴﻦ ﻫﻤﺎ اﻟﻨﺼﻲ واﻟﺜﻨﺎﺋﻲ‪.‬‬

‫ﺣﻔﻆ اﻟﺒﻴﺎﻧﺎت اﻟﻤﻬﻴﻜﻠﺔ ﺑﺼﻴﻐﺔ ‪json‬‬

‫ﺗﺘﻴﺢ ﺑﺎﻳﺜﻮن اﺳﺘﺨﺪام ﺻﻴﻐﺔ ﺗﺒﺎدل اﻟﺒﻴﺎﻧﺎت اﻟﻤﻌﺮوﻓﺔ ‪) JSON‬اﺧﺘﺼﺎر ‪،(JavaScript Object Notation‬‬
‫ﺑﺎﺳﺘﺨﺪام اﻟﻮﺣﺪة اﻟﻘﻴﺎﺳﻴﺔ ‪. json‬‬
‫اﻟﺜﻮاﺑﺖ‬

‫ﺗﻘﺪم ﺑﺎﻳﺜﻮن ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺜﻮاﺑﺖ‪ ،‬ﺑﻌﻀﻬﺎ ﻓﻲ ﻣﺠﺎل اﻷﺳﻤﺎء اﻟﺪاﺧﻠﻲ‪ ،‬أﻣﺎ اﻟﺒﻌﺾ اﻵﺧﺮ ﻓﻴﻀﺎف ﻣﻦ‬
‫ﻣﻔﺴﺮ ﺑﺎﻳﺜﻮن اﻟﺘﻔﺎﻋﻠﻲ‪.‬‬
‫ﻗﺒﻞ اﻟﻮﺣﺪة ‪ site‬إﻟﻰ ّ‬

‫اﻷﺧﻄﺎء واﻻﺳﺘﺜﻨﺎءات‬

‫أﺧﻄﺎء اﻟﺼﻴﻐﺔ‬

‫ﻗﺪ ﺗﻜﻮن أﺧﻄﺎء اﻟﺼﻴﻐﺔ )‪ (Syntax errors‬أو ﻣﺎ ﻳﻌﺮف ً‬


‫أﻳﻀﺎ ﺑﺄﺧﻄﺎء اﻹﻋﺮاب )‪ (Parsing errors‬ﻫﻲ أﻛﺜﺮ ﻧﻮع‬
‫ﻣﻦ اﻷﺧﻄﺎء اﻟﺘﻲ ﻳﻮاﺟﻬﻬﺎ اﻟﻤﺒﺘﺪﺋﻮن ﻋﻨﺪ ّ‬
‫ﺗﻌﻠﻢ ﺑﺎﻳﺜﻮن‪.‬‬

‫اﻻﺳﺘﺜﻨﺎءات‬

‫ﻗﺪ ﺗﻜﻮن اﻟﺘﻌﺎﺑﻴﺮ اﻟﺒﺮﻣﺠﻴﺔ ﻓﻲ اﻟﺸﻴﻔﺮة ﺻﺤﻴﺤﺔ ﻣﻦ ﻧﺎﺣﻴﺔ اﻟﺼﻴﻐﺔ‪ ،‬إﻻ أ ّﻧﻬﺎ ﻗﺪ ﺗﺘﺴﺒﺐ ﻓﻲ ﺣﺪوث أﺧﻄﺎء ﻋﻨﺪ‬
‫اﻟﻤﻜﺘﺸﻔﺔ أﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺸﻴﻔﺮة ﺑﺎﻻﺳﺘﺜﻨﺎءات )‪ (exceptions‬وﻗﺪ ﺗﺘﺴﺒﺐ ﻓﻲ‬
‫ﺗﺴﻤﻰ اﻷﺧﻄﺎء ُ‬
‫ﻣﺤﺎوﻟﺔ ﺗﻨﻔﻴﺬﻫﺎ‪ّ .‬‬
‫إﻳﻘﺎف ﻋﻤﻞ اﻟﺒﺮﻧﺎﻣﺞ )‪ (fatal‬ﻓﻲ ﺑﻌﺾ اﻷﺣﻴﺎن‪.‬‬

‫اﻻﺳﺘﺜﻨﺎءات اﻟﻤﻌﺮﻓﺔ ﻣﻦ ﻃﺮف اﻟﻤﺴﺘﺨﺪم‬

‫ﻳﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪم إﻧﺸﺎء ﺻﻨﻒ اﺳﺘﺜﻨﺎء ﺟﺪﻳﺪ )راﺟﻊ ﻗﺴﻢ اﻷﺻﻨﺎف ﻓﻲ ﺑﺎﻳﺜﻮن ﻟﻠﻤﺰﻳﺪ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت(‪ ،‬وﻳﺠﺐ أن‬
‫ﻣﺸﺘﻘﺔ ﻣﻦ اﻟﺼﻨﻒ ‪ Exception‬ﺳﻮاء أﻛﺎن ذﻟﻚ ﺑﺼﻮرة ﻣﺒﺎﺷﺮة أو ﻏﻴﺮ ﻣﺒﺎﺷﺮة‪.‬‬‫ّ‬ ‫ﺗﻜﻮن اﻻﺳﺘﺜﻨﺎءات‬

‫ﺗﻌﺮﻳﻒ أﺣﺪاث اﻟﺘﻨﻈﻴﻒ ‪clean-up actions‬‬

‫ﺟﺰءا اﺧﺘﻴﺎرﻳً ﺎ آﺧﺮ‪ ،‬واﻟﻬﺪف ﻣﻨﻪ ﻫﻮ ﺗﻌﺮﻳﻒ أﺣﺪاث ﺗﻨﻈﻴﻒ )‪ (clean-up actions‬ﻳﺠﺐ‬ ‫ً‬ ‫ﺗﻤﺘﻠﻚ ﻋﺒﺎرة ‪try‬‬
‫وﺗﻌﺮف ﺑﻌﺾ اﻟﻜﺎﺋﻨﺎت أﺣﺪاث ﺗﻨﻈﻴﻒ ﻗﻴﺎﺳﻴﺔ ﻳﺠﺮي ﺗﻨﻔﻴﺬﻫﺎ ﻋﻨﺪ اﻧﺘﻔﺎء اﻟﺤﺎﺟﺔ ﻟﺬﻟﻚ‬‫ّ‬ ‫ﺗﻨﻔﻴﺬﻫﺎ ﻓﻲ ﺟﻤﻴﻊ اﻟﻈﺮوف‪،‬‬
‫ﻋﻤﺎ إذا ﻛﺎﻧﺖ اﻟﻌﻤﻠﻴﺔ اﻟﺘﻲ ﺗﺴﺘﺨﺪم ذﻟﻚ اﻟﻜﺎﺋﻦ ﻧﺎﺟﺤﺔ أم ﻓﺎﺷﻠﺔ‪.‬‬
‫اﻟﻜﺎﺋﻦ‪ ،‬وﺑﻐﺾ اﻟﻨﻈﺮ ّ‬

‫ﺗﻨﺴﻴﻖ اﻟﺸﻴﻔﺮة اﻟﺒﺮﻣﺠﻴﺔ‬

‫ﺗﺘّ ﺒﻊ ﻣﻌﻈﻢ اﻟﻤﺸﺎرﻳﻊ اﻟﻤﻜﺘﻮﺑﺔ ﺑﻠﻐﺔ ﺑﺎﻳﺜﻮن دﻟﻴﻞ اﻟﺘﻨﺴﻴﻖ ‪PEP8 (https://www.python.org/dev/peps/p‬‬
‫ﻳﺸﺠﻊ ﻋﻠﻰ اﻋﺘﻤﺎد ﺗﻨﺴﻴﻖ ﻳﻤﺘﺎز ﺑﺎﻟﻤﻘﺮوﺋﻴﺔ اﻟﻌﺎﻟﻴﺔ واﻟﻤﻈﻬﺮ اﻟﺠﻤﻴﻞ‪.‬‬
‫ّ‬ ‫‪ (ep-0008‬واﻟﺬي‬

‫ﻣﺠﻠﻮﺑﺔ ﻣﻦ "‪"https://wiki.hsoub.com/index.php?title=Python&oldid=28287‬‬

‫آﺧﺮ ﺗﻌﺪﻳﻞ ﻟﻬﺬه اﻟﺼﻔﺤﺔ ﻛﺎن ﻳﻮم ‪ 22‬ﻣﺎرس ‪ ،2019‬اﻟﺴﺎﻋﺔ ‪.05:15‬‬


‫اﻟﻤﺤﺘﻮى ﻣﻨﺸﻮر وﻓﻖ اﻟﻤﺸﺎع اﻹﺑﺪاﻋﻲ اﻟﻨﺴﺒﺔ ﻟﻠﻤﺆﻟﻒ ﻏﻴﺮ ﺗﺠﺎري اﻟﻤﺸﺎرﻛﺔ ﺑﺎﻟﻤﺜﻞ إن ﻟﻢ ﻳﺮد ﺧﻼف‬
‫ذﻟﻚ‪.‬‬

You might also like