اذهب إلى المحتوى

تعلم كتابة أكواد بايثون من خلال الأمثلة العملية


Ola Saleh

لاشك أن كتابة الأكواد البرمجية لحل المشكلات المختلفة تُعَد واحدةً من أفضل طرق تعلم لغة بايثون أو أي لغة برمجة أخرى، فالتطبيق العملي ومحاولة كتابة أكواد بايثون وتشغيلها بنفسك وفهم آلية عملها ومدخلاتها ومخرجاتها والعمل على تصحيح أخطائها كفيلة بتطوير مهاراتك البرمجية بكثرة وتسريع وتيرة تعلمك للبرمجة.

سنوفر في مقال اليوم مجموعةً من أبرز أكواد لغة بايثون، ونوضح من خلالها استخدامات أوامر بايثون في أمثلة برمجية بسيطة؛ وننصحك بدراسة هذه الأكواد والعمل على تنفيذها على حاسوبك وتطويرها بإضافة أكواد جديدة لمساعدتك في فهم أساسيات لغة بايثون أكثر.

كيفية كتابة كود بايثون Python

قبل البدء بكتابة أكواد لغة بايثون لابد أنك تتساءل أين وكيف أكتب كود بايثون؟ وكيف يفهم حاسوبي أوامر لغة بايثون وينفذها بطريقة صحيحة ويعرض نتائج التنفيذ. الجواب على هذا السؤال يعتمد على جهازك وعلى المنصة أو نظام التشغيل الذي تستخدمه على هذا الجهاز، كما تتوفر عدة طرق لكتابة وتنفيذ أوامر بايثون لتختار منها ما يناسبك.

حتى تتمكن من تنفيذ كود بايثون على حاسوبك الشخصي، عليك في البداية تثبيت برنامج خاص يسمى مفسر بايثون أو المترجم الفوري لبايثون Python interpreter مهمته تفسير وتشغيل الشيفرات البرمجية التي تكتبها. وللقيام بذلك، انتقل إلى موقع بايثون الرسمي وثبت مفسر لغة بايثون الموافق لنظام تشغيلك ويندوز أو لينكس أو ماك. بعدها سيكون بإمكانك كتابة أكواد بايثون وتنفيذها في وضعين:

  • الوضع التفاعلي Interactive Mode وهو يصلح لتنفيذ الأكواد والتعليمات البسيطة، حيث يمكنك من كتابة كل تعليمة من تعليمات بايثون وتنفيذها مباشرةً في سطر الأوامر، فهو يقرأ كل أمر من أوامر بايثون ويقيم نتيجته، ثم يطبع النتيجة على الشاشة ثم يكمل قراءة الأمر التالي.
  • الوضع النصي Script Mode يصلح لتنفيذ أكواد بايثون الطويلة، حيث يتوجب عليك كتابة كافة تعليمات البرنامج وحفظها في ملف نصي له الامتداد py. ثم تنفيذها، وهو أسهل في تعديل الكود وإعادة استخدامه في المستقبل.

بعد تثبيت مفسر بايثون، ستتكمن من كتابة الأكواد مباشرة في الطرفية أو نافذة سطر الأوامر لنظام تشغيلك لتشغيل أكواد باثيون في الوضع التفاعلي، أو يمكنك استخدام محرر أكواد أو بيئة تطوير متكاملة مثل IDLE و Pythonista PyCharm و VS Code و Anaconda Python أو Rodeo لكتابة وتنفيذ أكواد بايثون ضمن ملفات نصية ثم تنفيذها. وللمزيد من التفاصيل حول إعداد بيئة عمل بايثون على حاسوبك يمكنك قراءة مقال كيفية استخدام سطر أوامر بايثون التفاعلي ومقال بيئات التطوير IDE المستخدمة في تطوير تطبيقات بايثون

وإذا كنت لا ترغب في إعداد بيئة بايثون على حاسوبك أو كان جهازك لا يحتوي على موارد كافية لتثبيت البرامج المستخدمة في كتابة اكواد بايثون وترغب بالتدرب على كتابة أكواد بسيطة وتنفيذها، فيمكنك الاعتماد على طريقة سهلة لتنفيذ أكواد بايثون للمبتدئين وهي المترجمات الفورية عبر الانترنت أو منصات تطوير باثيون السحابية مثل Programiz Compiler و Replit و Geekflare Online Compiler و OneCompiler التي يمكن استخدامها لبدء تعلم بايثون.

في هذا المقال، سننفذ أكواد بايثون على حاسوب محلي يعمل نظام التشغيل ويندوز، وسنعتمد على محرر أكواد بايثون Python IDLE و IDLE هنا هي اختصار لعبارة Integrated Development and Learning Environment أي بيئة التعلم والتطوير المكامل فهذا المحرر يثبَّت تلقائيًا على الحاسوب بمجرد تثبيت مفسر بايثون على نظامي التشغيل ويندوز أو ماك ليساعدك على كتابة الأكواد وتنفيذها، وفي حال كنت تستخدم نظام لينكس فيمكنك تثبيته باستخدام مدير الحزم.

وبما أننا سننفذ أكواد بايثون على نظام تشغيل ويندوز، لذا بعد اكتمال تحميل نسخة بايثون الخاصة بنظام التشغيل، نكتب كلمة IDLE في شريط بحث ويندوز، وعندما يظهر التطبيق المطلوب ننقر فوق خيار فتح لتشغيله كما في الصورة التالية.

تشغيل محرر أكواد بايثون IDEL.png

سيعمل المحرر في الوضع التفاعلي افتراضيًا، وسنختبره بكتابة التعليمة البرمجية التالية التي تطبع عبارة "This is Python code" على الشاشة

print("This is Python code")

تنفيذ كود بايثون في الوضع التفاعلي.png

أيضًا، يمكننا تنفيذ أكواد بايثون في الوضع النصي من خلال إنشاء ملف جديد من خلال اختيار القائمة File من شريط القوائم في الأعلى والنقر فوق الأمر New File، وسيؤدي هذا إلى فتح ملف فارغ في المحرر بحيث يمكنك أن تكتب ضمنه كود بايثون وتحفظه، ثم تنفذه من خلال اختيار الأمر Run module من القائمة Run، وسنعتمد هذه الطريقة عند كتابة الأمثلة على أكواد بايثون في الفقرات التالية.

أكواد بايثون في الوضع النصي.png

أمثلة على أكواد بايثون

دعنا نتعرف على مجموعة من أكواد برامج بايثون البسيطة التي يمكنك من خلال فهم آلية التعامل مع أوامر بايثون المختلفة مثل المتغيرات والشروط والحلقات التكرارية وتعريف واستدعاء دوال بايثون واستدعائها وأهم أنواع البيانات وهياكل البيانات في بايثون والتعامل مع الوحدات والمكتبات والملفات، وغيرها من المواضيع الأساسية في لغة بايثون.

ملاحظة: تفترض هذه المقالة أن لديك معرفة مسبقة عن أساسيات البرمجة بلغة بايثون وتريد تطبيق هذه المعرفة في كتابة برامج عملية تتأكد فيها من فهمك لهذه الأساسيات، لذا لا تقرأ الأكواد مباشرة بل جرب كتابتها بنفسك ثم قارن ما كتبته مع الكود المكتوب لتحقق الفائدة المرجوة.

كود بايثون لإيجاد مساحة ومحيط الدائرة

لكتابة برنامج بلغة بايثون يحسب مساحة ومحيط دائرة، سنعرف دالتين الأولى لحساب المساحة والأخرى لحساب المحيط، تحتاج كل دالة لتمرير وسيط يمثل نصف قطر الدائرة وتعيد كل دالة منها قيمة وحيدة كما نحتاج لتعريف ثابت pi=3.14 واستخدامه لحساب المطلوب كما يلي:

# تعريف الثوابت 
pi=3.14
# تعريف دالة حساب مساحة الدائرة 
def areaOfCircle(r):
    return pi*r*r

def areaOfCircle(r):
    return pi*r*r
# تعريف دالة حساب محيط الدائرة 
def circumOfCircle(r):
    return  2*pi*r
# استدعاء الدوال في البرنامج 
r=int(input("Enter radius of circle "))
area = areaOfCircle(r) 
circm = circumOfCircle(r)
# عرض النتائج
print('Area=',"%.2f"  % area) 
print('Circumference=',"%.2f" % circm) 

يكون الخرج الناتج عن تنفيذ الكود السابق كما يلي:

Enter radius of circle 2
Area= 12.56
Circumference= 12.56

ملاحظة 1: يمكنك الاستعاضة عن تعريف الثابت pi في أول سطرين من الكود السابق واستيراده من الوحدة math كما يلي:

#  استيراد قيمة pi 
from math import pi

ملاحظة 2: استخدمنا التنسيق %.2f في الكود السابق لتحديد دقة الأعداد العشرية الناتجة وعرض رقمين عشريين فقط بعد الفاصلة، جرب مسح التنسيق من الكود السابق ولاحظ كيف تظهر نتائج التنفيذ على الشاشة.

كود بايثون لإيجاد أكبر عدد من بين ثلاثة أعداد

لحل هذه المسألة برمجيًا، سنعرف دالة تختبر بدايةً ما إذا كان العدد الأول أكبر من الثاني والثالث معًا، بحيث سنعُدّه الأكبر عندها بين الأعداد الثلاثة المدخلة، وإلا فنحن أمام حالتين، إما أن العدد الثاني هو الأكبر أو العدد الثالث هو الأكبر، لذا سنختبر ما إذا كان العدد الثاني أكبر من الثالث، فسيكون هو أكبر الجميع وإلا فالعدد الثالث هو الأكبر.

المخطط التدفقي لإيجاد أكبر عدد من بين 3 أعداد.png

أسهل طريقة لتحقيق هذا الحل من خلال كود بايثون هي من خلال استخدام التعليمة الشرطية if-elif-else كما يلي:

#تعريف الدالة
def biggest(num1,num2,num3):
    if num1 > num2 and num1 > num3 :
        return num1
    elif num2 > num3 :
        return num2
    else :
        return num3
num1=int(input("Enter num1 value: "))
num2=int(input("Enter num2 value: "))
num3=int(input("Enter num3 value: "))
#استدعاء الدالة
big= biggest(num1,num2,num3)
print("The largest number among the three numbers is: ",big)

عند تنفيذ الكود السابق نحصل على خرج مشابه لما يلي:

Enter num1 value: 233
Enter num2 value: 45
Enter num3 value: 67
The largest number among the three numbers is: 233

كود بايثون لتحويل الزاوية من الدرجات إلى الراديان وبالعكس

إذا طلب منك كتابة برنامج بايثون لتحويل وحدة قياس الزاوية من الدرجات، فعليك بدايةً أن تعرف القانون الرياضي الذي يحول من درجة إلى راديان أو العكس كما هو مبين في الصورة التالية

التحويل من راديان إلى درجات.png

لتحقيق هذه المعادلة باستخدام أكواد لغة بايثون نكتب البرنامج التالي:

import math
radian = float(input("Input radians: "))
degree = radian*(180/math.pi)
print("The angle value in degrees = " degree)
degree = float(input("Input degrees: "))
radian = degree*(math.pi/180)
print("The angle value in radian = " degree)

عند تنفيذ البرنامج نحصل على خرج مشابه للتالي:

Input radians: 5
The angle value in degrees:  286.4788975654116
Input degrees: 90
The angle value in radian: 1.5707963267948966

كود بايثون لحساب مضروب أو عاملي عدد ما باستخدام التعاود

مضروب عدد Factorial أو ما يعرف كذلك بعاملي العدد هو حاصل ضرب جميع الأعداد الصحيحة من العدد واحد إلى هذا الرقم. على سبيل المثال عاملي العدد 5 يحسب كما يلي: 5! يساوي حاصل ضرب الأعداد من 5 إلى 1 ببعضها والناتج هو 120. أفضل طريقة لحل مسألة العاملي من خلال بايثون هي باستخدام مفهوم التعاود Recursion، حيث سنستدعي الدالة داخل تعريفها كما يلي:

def fact(n):
    if n==0:
        return 1
    else :
        result = n * fact(n-1)
        return result

num=int(input("Enter num value: "))
if num < 0:
    print("Sorry factorial does not exist for negative numbers")
else :
    print("The factorial of", num, "is", fact(num))

عند تنفيذ الكود السابق لحساب عاملي العدد 5 سنحصل على النتيجة التالية:

Enter num value: 5
The factorial of 5 is 120

ملاحظة: يمكن أن تحل أي مسألة تعاودية من خلال حلقة تكرارية، لكن ليس بالضرورة أن يكون الحل بسيطًا، فقد تزداد أكواد البرنامج التعاودي تعقيدًا عند تحويلها إلى الأسلوب التكراري.

جرب كتابة الكود السابق من خلال حلقة for التكرارية بدلًا من استدعاء الدالة ضمن تعريفها، ماذا تلاحظ؟

كود بايثون للتحقق من كون السنة الحالية كبيسة وعرض أيام شهر فبراير

تكون السنة كبيسةً إذا كان عدد أيام شهر فبراير هو 29 يوم، وهي سنة تأتي كل أربع سنوات. ولنعرف إن كانت السنة كبيسة أم لا، نقسمها على 4 فإن كان باقي القسمة صفر فهي كبيسة وإلا فهي ليست كذلك. لكن بايثون توفر طريقةً أسهل للتحقق من كون السنة كبيسة من خلال الوحدة calender التي تضم الكثير من الدوال المساعدة ومن بينها الدالة ()isleap التي تخبرنا الدالة ما إذا كانت السنة المعطاة كبيسة أم لا كما يلي:

import calendar
if (calendar.isleap(2023)):
    print ("السنة كبيسة")
else:
    print("السنة غير كبيسة")
print(calendar.month(2023,2))

ينتج الكود السابق الخرج التالي:

السنة غير كبيسة
   February 2023
Mo Tu We Th Fr Sa Su
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28

جرب كتابة كود بايثون لحل المسألة السابقة دون استخدام الوحدة calendar، ماذا تستنتج؟

كود بايثون لتخرين أسماء ومعدلات مجموعة من الطلاب

سيكون الكود موجهًا لتخرين أسماء ومعدلات مجموعة من الطلاب وترتيبها تصاعديًا وفقًا لأسمائهم وتنازليًا حسب معدلاتهم.

سنكتب كود بايثون يستخدم بنية معطيات القاموس Dictionary في بايثون، وهو بنية مكونة من أزواج من المفتاتيح والقيم.

سنعُد اسم الطالب هو المفتاح ومعدله هو القيمة، وبما أننا نحتاج لتخزين مجموعة من الطلاب, فسننشئ قائمة قواميس، أي أن القاموس سيكون موجودًا كعنصر في القائمة، ونستعين بالدالة ()sort التي تمكننا من فرز القاموس حسب مفتاح الفرز الذي نمرره كوسيط للدالة.

 Students = [
    {'Name': 'Ali', 'avg': 70},
    {'Name': 'Said', 'avg': 100},
    {'Name': 'Mohammad', 'avg': 90},
    {'Name': 'Manal', 'avg': 66},
    {'Name': 'Adel', 'avg': 84},
]

# custom functions to get employee info
def get_name(Students):
    return Students.get('Name')

def get_avg(Students):
    return Students.get('avg')

# sort by name (Ascending order)
Students.sort(key=get_name)
print("ترتيب الطلاب تصاعديًا وفق الأسماء")
print(Students, end='\n')

# sort by salary (Descending order)
print("ترتيب الطلاب تنازليًا حسب المعدل")
Students.sort(key=get_avg, reverse=True)
print(Students, end='\n')

تعطي أكواد بايثون السابقة النتيجة التالية:

ترتيب الطلاب تصاعديًا وفق الأسماء
[{'Name': 'Adel', 'avg': 84}, {'Name': 'Ali', 'avg': 70}, {'Name': 'Manal', 'avg': 66}, {'Name': 'Mohammad', 'avg': 90}, {'Name': 'Said', 'avg': 100}]
ترتيب الطلاب تنازليًا حسب المعدل
[{'Name': 'Said', 'avg': 100}, {'Name': 'Mohammad', 'avg': 90}, {'Name': 'Adel', 'avg': 84}, {'Name': 'Ali', 'avg': 70}, {'Name': 'Manal', 'avg': 66}]

ملاحظة: في هذا الكود قمنا بفرز القاموس بالدالة ()sort حسب الترتيب الأبجدي للأسماء تصاعديًا ثم حسب ترتيب قيم المعدل تنازليًّا، وستكون النتيجة في كل مرة قاموسًا جديدًا أي أن القائمة الأصلية ستتغير ونحصل على قائمة بترتيب مختلف، أما إذا كنت تريد دالة تعرض فقط القائمة التي فُرزت دون تغيير القائمة الأصلية، فاستخدم في هذه الحالة الدالة ()sorted في الكود أعلاه ولاحظ الفرق.

كود بايثون لكتابة وقراءة البيانات إلى ملف نصي

سنكتب في هذا البرنامج كود بايثون لإنشاء ملف نصي باسم data.txt في القرص المحلي D وحفظ مجموعة من البيانات يدخلها المستخدم فيه وهي الاسم والكنية بعد تحويلهما لأحرف كبيرة، وحفظ كلمة المرور كما هي، ثم قراءة محتوى هذا الملف وعرضه على الشاشة وأخيرًا قم بعرض حجم الملف الناتج بالبايت.

import os
first=input("Enter your first name: ")
last=input("Enter your last name: ")
password =input("Enter Password : ")
#فتح الملف للكتابة وإنشاؤه إن لم يكن موجود
file = open("D:\data.txt", "a")
#كتابة البيانات إلى الملف
file.write("\nFirst name: "+first.upper()+", Last name: "+last.upper()+", Password: "+password)
file.close()
# قراءة محتوى الملف وطباعتها على الشاشة
data = open("D:\data.txt", "r")
for line in data:
    print(line)
#عرض حجم الملف
size = os.path.getsize("D:\data.txt") 
print(f"\nThe size of file is {size} bytes")

ينتج عن تنفيذ كود بايثون أعلاه الخرج التالي:

Enter your first name: ola
Enter your last name: saleh
Enter Password : $123456*


First name: OLA, Last name: SALEH, Password: $123456*

The size of file is 55 bytes

ملاحظة: لا تحتاج إلى استيراد أي وحدات أو مكتبات خارجية لقراءة الملفات أو الكتابة لها في بايثون، فهي تتيح الوصول إلى ملفات نظام التشغيل والكتابة والقراءة منها ضمنيًا، لكننا استوردنا الوحدة os في كود بايثون السابق لاستخدام الدالة getsize()‎ التي تعيد حجم الملف الممرر لها كوسيط. ولمعرفة المزيد من التفاصيل يمكنك الاطلاع على مقال قراءة الملفات والكتابة فيها في بايثون

كود بايثون لعرض النسب المئوية للمصاريف الشهرية بشكل مخطط دائري

في هذا البرنامج، سنكتب كود بايثون بالاستعانة بمكتبة بايثون الشهيرة matplotlib لتصميم الرسوم البيانية والإحصاءات ونستخدم الدالة pie لتمثيل المخطط الدائري المطلوب.

import matplotlib.pyplot as plt
Partition = 'Bills', 'clothes', 'transportation', 'food'
sizes = [250, 100, 300, 200]
fig1, ax1 = plt.subplots()
ax1.pie(sizes, labels=Partition, autopct='%1.1f%%', startangle=90)
ax1.axis('equal')
plt.title("Monthly budget")
plt.show()

استوردنا في الكود أعلاه واجهة برمجة التطبيقات pyplot في مكتبة تصميم الرسوميات matplotlib باسم مستعار plt، ثم استخدامنا دوالها لإنشاء مخطط دائري مكون من أربعة أقسام لها تسميات وأحجام وألوان مختلفة كما في الصورة التالية:

عرض مخطط المصاريف بأكواد بايثون .png

ملاحظة: لكي تتمكن من تنفيذ البرنامج السابق عليك تعلم طريقة التعامل مع المكتبات والحزم معرفة طريقة تثبيتها، على سبيل المثال لتثبيت المكتبة matplotlib على نظام تشغيل ويندوز نكتب الأمر التالي في نافذة سطر الأوامر

pip install matplotlib

وإلا سنحصل على رسالة الخطأ التالية:

ModuleNotFoundError: No module named 'matplotlib'

ولمعرفة المزيد من المعلومات حول أهم مكتبات بايثون وكيفية الاستفادة منها، ألقِ نظرةَ على أهم 8 مكتبات بلغة البايثون تستخدم في المشاريع الصغيرة

الخلاصة

استعرضنا في مقال اليوم أمثلةً منوعةً عن أكواد بايثون جاهزة حيث تناولنا من خلالها العديد من المفاهيم الأساسية للغة، مثل التعامل مع السلاسل النصية والأرقام والملفات والحلقات والشروط والدوال واستيراد المكتبات والوحدات الخارجية والاستفادة منها في كتابة البرامج بسرعة وفعالية.

حاول فهم هذه الأكواد وتطبيقها، واحرص على كتابة كودات بايثون عديدة بنفسك والتدرب على حل أكبر قدر ممكن من المسائل البرمجية كي تعزز فهمك لأساسيات لغة بايثون، وإذا استشكل عليك فهم أي كود برمجي، أو كنت تود كتابة كود بايثون لحل مسألة ما ولست متأكدًا من طريقة القيام بذلك، يمكنك طرح مسألتك للنقاش في قسم التعليقات أسفل المقال.

اقرأ أيضًا:


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...