97 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			97 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: Python Import Statements | ||
|  | localeTitle: بيثون استيراد البيانات | ||
|  | --- | ||
|  | أثناء تعلم البرمجة وقراءة بعض الموارد كنت قد صادفت هذه الكلمة "التجريد" والتي تعني ببساطة للحد من وإعادة استخدام التعليمات البرمجية قدر الإمكان. | ||
|  | 
 | ||
|  | وظائف ووحدات تسهل التجريد. يمكنك إنشاء وظائف عندما تريد القيام بشيء بشكل متكرر داخل ملف. | ||
|  | 
 | ||
|  | تأتي الوحدات في الصورة عندما تريد إعادة استخدام مجموعة من الوظائف في ملفات مصدر مختلفة. الوحدات مفيدة أيضًا في هيكلة البرنامج بشكل جيد. | ||
|  | 
 | ||
|  | *   استخدام المكتبات القياسية والوحدات الأخرى التابعة لجهات خارجية: | ||
|  | *   هيكلة البرنامج | ||
|  | 
 | ||
|  | ## استخدام المكتبات القياسية
 | ||
|  | 
 | ||
|  | مثال: يمكنك الاطلاع على طرق / وظائف جميع المكتبات القياسية في محررات بيثون الرسمية بالتفصيل. | ||
|  | 
 | ||
|  |  `import time  | ||
|  |  for i in range(100):  | ||
|  |     time.sleep(1)   # Waits for 1 second and then executes the next command  | ||
|  |     print(str(i) + ' seconds have passed')  # prints the number of seconds passed after the program was started  | ||
|  | `  | ||
|  | 
 | ||
|  |  [تشغيل الكود](https://repl.it/CS6C) | ||
|  | 
 | ||
|  |  `# To calculate the execution time of a part of program  | ||
|  |  import time  | ||
|  |  start = time.time()  | ||
|  |  # code here  | ||
|  |  end = time.time()  | ||
|  |  print('Execution time:' , end-start)  | ||
|  | `  | ||
|  | 
 | ||
|  |  [تشغيل الكود](https://repl.it/CS6C/1) | ||
|  | 
 | ||
|  |  `# Using math Module  | ||
|  |  import math  | ||
|  |  print(math.sqrt(100))   # prints 10  | ||
|  | `  | ||
|  | 
 | ||
|  |  [تشغيل الكود](https://repl.it/CS6C/2) | ||
|  | 
 | ||
|  | ## استخدام وحدات طرف ثالث
 | ||
|  | 
 | ||
|  | لا تأتي وحدات الطرف الثالث مجمعة مع python ، ولكن يتعين علينا تثبيتها خارجيًا باستخدام مديري الحزم مثل برنامج [`pip`](https://bootstrap.pypa.io/get-pip.py) [`easy install`](https://bootstrap.pypa.io/ez_setup.py) | ||
|  | 
 | ||
|  |  `# To make http requests  | ||
|  |  import requests  | ||
|  |  rq = requests.get(target_url)  | ||
|  |  print(rq.status_code)  | ||
|  | `  | ||
|  | 
 | ||
|  | تعرف على المزيد حول وحدة طلبات الأيونات [هنا](http://docs.python-requests.org/en/master/) | ||
|  | 
 | ||
|  | ## لتركيب البرامج
 | ||
|  | 
 | ||
|  | نحن نريد أن نجعل من برنامج يحتوي على وظائف مختلفة فيما يتعلق بالأرقام الأولية. دعنا نبدأ. `prime_functions.py` جميع الوظائف في `prime_functions.py` | ||
|  | 
 | ||
|  |  `# prime_functions.py  | ||
|  |  from math import ceil, sqrt  | ||
|  |  def isPrime(a):  | ||
|  |     if a == 2:  | ||
|  |         return True  | ||
|  |     elif a % 2 == 0:  | ||
|  |         return False  | ||
|  |     else:  | ||
|  |         for i in range(3,ceil(sqrt(a)) + 1,2):  | ||
|  |             if a % i == 0:  | ||
|  |                 return False  | ||
|  |         return True  | ||
|  |   | ||
|  |  def print_n_primes(a):  | ||
|  |     i = 0  | ||
|  |     m = 2  | ||
|  |     while True:  | ||
|  |         if isPrime(m) ==True:  | ||
|  |             print(m)  | ||
|  |             i += 1  | ||
|  |         m += 1  | ||
|  |         if i == a:  | ||
|  |             break  | ||
|  | `  | ||
|  | 
 | ||
|  | الآن نريد أن استخدام وظائف أننا بإنشائه في `prime_functions.py` لذلك نحن إنشاء ملف جديد `playground.py` لاستخدام تلك الوظائف. | ||
|  | 
 | ||
|  | > _يرجى ملاحظة أن هذا البرنامج بسيط للغاية لجعل ملفين منفصلين ، فقط للتدليل. ولكن عندما تكون هناك برامج معقدة كبيرة ، فإن إنشاء ملفات مختلفة مفيد حقًا._
 | ||
|  | 
 | ||
|  |  `# playground.py  | ||
|  |  import prime_functions  | ||
|  |  print(prime_functions.isPrime(29)) # returns True  | ||
|  | `  | ||
|  | 
 | ||
|  | ## فرز الواردات
 | ||
|  | 
 | ||
|  | وتتمثل الممارسة الجيدة في تصنيف وحدات `import` في ثلاث مجموعات - استيراد المكتبات القياسية ، واردات الأطراف الثالثة ذات الصلة ، والواردات المحلية. داخل كل مجموعة ، من المنطقي فرز الحروف أبجديًا حسب اسم الوحدة. يمكنك العثور على [مزيد من المعلومات في PEP8](https://www.python.org/dev/peps/pep-0008/?#imports) . | ||
|  | 
 | ||
|  | من أهم الأمور بالنسبة إلى لغة Python هي الوضوح ، ووحدات الفرز الأبجدي هي أسرع في القراءة والبحث. كما أنه من الأسهل التحقق من استيراد شيء ما وتجنب الواردات المتكررة. |