مفهوم الـ Module في بايثون
كلمة Module يقال لها موديول في العربية, و تعني ملف بايثون عادي يحتوي على مجموعة متغيرات, دوال و كلاسات يمكنك تضمينها في برنامجك.
إذاً أي ملف إمتداده .py يمثل Module في بايثون.
فكرة الـ Module هي جعل الكود متاح لإعادة الإستخدام, حيث أن وضع الكود في ملف خاص يتيح لك نقله و إستخدامه في برامجك كلما إحتجت إليه.
بالإضافة ذلك, فإنها تساعدك في تنظيم مشاريعك, فمثلاً في حال كنت تبني برنامج, موقع أو لعبة إلخ.. فإنك ستجد أن تقسيم المشروع الواحد إلى مجموعة Modules أمر ضروري جداً لأنه سيسهل عليك كثيراً تطويره و صيانته في المستقبل.
طريقة إنشاء Module في بايثون
لإنشاء Module جديد في أي مشروع إتبع الخطوات التالية:
أنقر بزر الماوس الأيمن على إسم المشروع الذي ستنشئ فيه الموديول.
مرر الماوس فوق كلمة New.
أنقر على Python File.
قم بإعطاء الملف أي إسم مثل
MyModule.أنقر OK حتى يتم إنشاء ملف بايثون بهذا الإسم في المشروع.
الآن, لاحظ أنه تم إنشاء موديول جديد بداخل نفس المشروع إسمه MyModule.py
تحديد الـ Module الأساسي في المشروع في بايثون
في المشروع الذي أنشأناه منذ قليل, نلاحظ أن المشروع أصبح يحتوي على ملفين:
Test.pyMyModule.py
بما أن المشروع أصبح يحتوي على أكثر من ملف, سيكون عليك دائماً الإنتباه للملف الذي سيتم تنفيذ الأوامر الموضوعة فيه عند النقر على زر التشغيل.
طريقة معرفة الموديول الذي سيتنفذ عند النقر على زر التشغيل
بكل بساطة, إسم الموديول الذي سيتنفذ عند النقر على زر التشغيل يظهر بجانبه. فمثلاً, نلاحظ أنه لا يزال الموديول Test هو الموديول الذي سيتنفذ عند النقر على زر التشغيل و السبب بذلك أننا لم نقم بتغييره.
طريقة تحديد الموديول الذي سيتنفذ في المشروع
هناك عدة طرق لذلك, أسهل طريقة هي النقر على القائمة المنسدلة و إختيار الموديول الذي تريده أن يعمل عند النقر على زر التشغيل.
ملاحظة
في كل الأمثلة التي سنضعها في هذا الدرس, سنقوم دائماً بتنفيذ الأوامر الموجودة في الموديول Test.
كما أننا سنقوم بتضيمن محتوى الموديول MyModule في الموديول Test.
تضمين كل محتوى الـ Module في Module آخر في بايثون
في البداية, نستخدم الكلمة المحجوزة import لتضمين محتوى الموديول في موديول آخر.
ملاحظة: إذا فعلت import لنفس الموديول أكثر من مرة, فإن مفسّر لغة بايثون لا يفعل import من جديد.
في المثال التالي قمنا بتعريف موديول إسمه MyModule يحتوي على دالة واحدة, و موديول آخر إسمه Test.
بعدها قمنا بتضمين كل محتوى الموديول MyModule في الموديول Test.
مثال
def greeting():
print('Welcome to harmash.com')
# MyModule هنا قمنا بتضمين كل محتوى الموديول import MyModule # MyModule الموجودة في الموديول greeting() هنا قمنا باستدعاء الدالة MyModule.greeting()
•سنحصل على النتيجة التالية عند تشغيل الموديول Test.
إنتبه
إذا فعلت import لكل محتوى الموديول فأنت بذلك كأنك تقوم بإضافة نسخة كاملة عنها في الذاكرة حتى لو كانت تحتوي على 1000 دالة أو 1000 كائن.
لذلك يفضل دائماً أن تفعل import فقط للأشياء التي تحتاجها من الموديول و ليس كل الموديول.
تضمين الأشياء التي نحتاجها فقط من الـ Module في بايثون
لتحديد الأشياء التي نريد إستخدامها فقط من الموديول نضع الكلمة المحجوزة from بعدها نضع إسم الموديول, ثم الكلمة import و بعدها نضع إسم الأشياء التي نريدها من الموديول مع وضع فاصلة بين كل شيئين.
ملاحظة: عند تضمين أشياء من موديول فإننا نذكر أسماءهم فقط في جملة الـ import.
و عند إستخدام الأشياء التي تم جلبها من الموديول فإننا نستخدمها بشكل مباشر بدون الحاجة لذكر إسم الموديول التي أحضرناها منها.
في المثال التالي قمنا بتعريف موديول إسمه MyModule يحتوي على دالتين و كائن نوعه dict.
ثم قمنا بتعريف موديول آخر إسمه Test. في هذا الموديول قمنا بتضمين الأشياء التي نحتاجها فقط من الموديول MyModule.
مثال
# يتألف من 3 عناصر data إسمه dict هنا قمنا بتعريف
data = {
'id': 5,
'name': 'Sara',
'gender': 'female'
}
# هنا قمنا بتعريف دالة نمرر لها إسم عند إستدعائها فتقوم بطباعة رسالة ترحيب لهذا الإسم
def login_msg(name):
print("Welcome", name)
# هنا قمنا بتعريف دالة نمرر لها إسم عند إستدعائها فتقوم بطباعة رسالة وداع لهذا الإسم
def logout_msg(name):
print('Good by', name)
# MyModule فقط من الموديول login_msg() و الدالة data هنا قمنا بتضمين الكائن from MyModule import data, login_msg # name في المتغير data الموجودة في العنصر name هنا قمنا بتخزين قيمة المفتاح name = data['name'] # name و تمرير الإسم الذي نريدها أن تطبعه و الذي في الأساس قمنا بتخزينه في المتغير login_msg() هنا قمنا باستدعاء الدالة login_msg(name)
•سنحصل على النتيجة التالية عند تشغيل الموديول Test.
تضمين كل محتوى الـ Module و استدعاءه بإسمه فقط في بايثون
في حال أردت تضمين كل محتوى الموديول في موديول آخر مع عدم الإضطرار لذكر إسم الموديول كلما أردت إستخدام موجودة فيه, يمكنك أن تضع الكلمة المفتاحية from بعدها نضع إسم الموديول, ثم الكلمة المفتاحية import و بعدها نضع * فقط.
في المثال التالي قمنا بتعريف موديول إسمه MyModule يحتوي على دالتين و كائن نوعه dict.
ثم قمنا بتعريف موديول آخر إسمه Test. في هذا الموديول قمنا بتضمين كل الأشياء الموجودة في الموديول MyModule.
مثال
# يتألف من 3 عناصر data إسمه dict هنا قمنا بتعريف
data = {
'id': 5,
'name': 'Sara',
'gender': 'female'
}
# هنا قمنا بتعريف دالة نمرر لها إسم عند إستدعائها فتقوم بطباعة رسالة ترحيب لهذا الإسم
def login_msg(name):
print("Welcome", name)
# هنا قمنا بتعريف دالة نمرر لها إسم عند إستدعائها فتقوم بطباعة رسالة وداع لهذا الإسم
def logout_msg(name):
print('Good by', name)
# MyModule هنا قمنا بتضمين كل شيء موجود في from MyModule import * # name في المتغير data الموجودة في العنصر name هنا قمنا بتخزين قيمة المفتاح name = data['name'] # name و تمرير الإسم الذي نريدها أن تطبعه و الذي في الأساس قمنا بتخزينه في المتغير login_msg() هنا قمنا باستدعاء الدالة login_msg(name)
•سنحصل على النتيجة التالية عند تشغيل الموديول Test.
تنبيه
يفضل عدم استخدام هذا الأسلوب لأنه قد يسبب لك مشاكل كثيرة أنت بغنى عنها.
فمثلاً في حال قمت باستدعاء أكثر من موديول يحتوون على أشياء تملك نفس الإسم سيحدث تضارب في الأسماء, بالإضافة إلى تشكيل عبئ إضافي على الذاكرة بسبب الأشياء التي قمت بتضمينها و أنت في الأساس لا تحتاجها.
إعادة تسمية الـ Module عند تضيمنها في بايثون
في حال كنت تريد إعطاء إسم آخر ( Alias ) للموديول عند تضمينها لمناداته به بدل مناداته بإسمه الأصلي, فيمكنك ذلك بواسطة الكلمة المفتاحية as.
إذاً, في حال كان إسم الموديول طويل, يمكنك وضع إسم مختصر له بدل الإضطرار إلى كتابة إسمه الكامل كلما أردت الوصول لمحتواه.
في المثال التالي قمنا بتعريف موديول إسمه MyModule يحتوي على دالة واحدة, و موديول آخر إسمه Test.
بعدها قمنا بتضمين كل محتوى الموديول MyModule في الموديول MyModule مع إعطاء الموديول إسم مختصر.
مثال
def greeting():
print('Welcome to harmash.com')
# كإختصار لإسم الموديول 'mod' مع وضع الكلمة MyModule هنا قمنا بتضمين كل محتوى الموديول import MyModule as mod # mod الموجودة في الموديول الذي أسميناه greeting() هنا قمنا باستدعاء الدالة mod.greeting()
•سنحصل على النتيجة التالية عند تشغيل الموديول Test.
تضمين Module جاهزة في بايثون
في الدورس السابقة, سبق أن قمنا بتضمين الموديول math الذي يحتوي على دوال و ثوابت جاهزة يمكن الإستفادة منها عند إجراء عمليات حسابية و شرحنا أهم الدوال الموجودة فيه. لذلك سنقوم الآن باستخدام مودويل جاهز آخر إسمه platform.
في المثال التالي قمنا بتضمين مودويل جاهز إسمه platform و من خلاله قمنا بمعرفة كل خصائص الحاسوب الذي نستخدمه.
مثال
# platform هنا قمنا بتضمين كل محتوى الموديول
import platform
# هنا قمنا بعرض إسم نظام التشغيل
print('Operating System:', platform.system())
# هنا قمنا بعرض كل المعلومات المتوفرة عن المعالج
print('Processor:', platform.processor())
# هنا قمنا بعرض إصدار بايثون المنصب على الجهاز
print('Python Version:', platform.python_version())
•ستحصل على نتيجة تشبه النتيجة التالية عند التشغيل على حسب مواصفات حاسوبك.
Processor: Intel64 Family 6 Model 142 Stepping 9, GenuineIntel
Python Version: 3.6.4
إستخراج أسماء جميع الأشياء الموجودة في Module في بايثون
لمعرفة جميع أسماء الأشياء الموجودة في أي موديول, يمكنك تمرير إسم الموديول كقيمة للدالة dir() و من ثم طباعة ما سترجعه.
في المثال التالي قمنا بطباعة أسماء جميع الأشياء الموجودة في الموديول math.
مثال
# math هنا قمنا بتضمين كل محتوى الموديول import math # dir() و التي سترجعها الدالة math هنا قمنا بعرض أسماء جميع الأشياء الموجودة في الموديول print(dir(math))
•ستحصل على النتيجة التالية عند التشغيل.
التعامل مع التاريخ و الوقت في بايثون
مقدمة
بايثون تحتوي على أكثر من مويدويل جاهز للتعامل مع التاريخ, الوقت و التقويم بكل سهولة.
في هذا الدرس ستتعلم طريقة الإستفادة من الموديول datetime و الموديول calendar لعرض التاريخ, الوقت و التقويم بالشكل الذي تحتاجه.
الموديول datetime في بايثون
الموديول datetime يحتوي على مجموعة كلاسات فيها دوال جاهزة للتعامل مع التاريخ و الوقت.
date: يحتوي على مجموعة دوال خاصة للتعامل مع التاريخ.time: يحتوي على مجموعة دوال خاصة للتعامل مع الوقت.datetime: يحتوي على مجموعة دوال خاصة للتعامل مع التاريخ و الوقت.timedelta: يحتوي على مجموعة دوال خاصة لحساب الفرق بدقة بين تاريخ و آخر.timezone: يحتوي على مجموعة دوال خاصة لحساب فرق التوقيت بين تاريخ و آخر على حسب المنطقة الزمنية لكل تاريخ.
في المثال التالي قمنا بتخزين التاريخ و الوقت الحالي بالإعتماد على الدالة now() الموجودة في الكلاس datetime الموجود بداخل الموديول datetime.
المثال الأول
# datetime هنا قمنا بتضمين كل محتوى الموديول import datetime # dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة dt = datetime.datetime.now() # dt هنا قمنا بعرض قيمة الكائن print(dt)
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
نلاحظ من المثال السابق أن الكلاس datetime يتيح لنا الحصول على التاريخ و الوقت بدقة عالية لأنه أعطانا المعلومات التالية بالترتيب:
السنة, الشهر, اليوم, الساعة, الدقيقة, الثانية, أجزاء الثانية القادمة.
طبعاً الكلاس datetime يحتوي على دوال و خصائص جاهزة تتيح لك التعامل مع التاريخ و الوقت كيفما شئت لتخزينه أو عرضه بالشكل الذي تريد.
لا تقلق سنتعرف على خصائص و دوال الكلاس datetime بتفصيل في هذا الدرس.
كونستركتور الكلاس datetime في بايثون
الكلاس datetime يحتوي على الكونستركتور التالي.
class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
إذاً, عند إنشاء كائن datetime, يمكنك مباشرةً أن تدخل تاريخ و وقت فيه.
فعلياً, أنت مجبر على إدخال قيمة مكان البارميترات year و month و day لأنه لم يتم إعطائهم قيم إفتراضية.
بالنسبة للباراميترات الأخرى فيمكنك تحديد قيمهم الإفتراضية أو عدم تحديدها لأنه تم إعطائهم قيم إفتراضية.
القيم التي يمكنك تمريرها للبارميترات هي التالية:
year: عدد صحيح قيمته ضمن النطاق1 <= year <= 9999.month: عدد صحيح قيمته ضمن النطاق1 <= year <= 12.day: عدد صحيح قيمته بين1و آخر يوم موجود في الشهر.hour: عدد صحيح قيمته ضمن النطاق0 <= year < 24.minute: عدد صحيح قيمته ضمن النطاق0 <= year < 60.second: عدد صحيح قيمته ضمن النطاق0 <= year < 60.microsecond: عدد صحيح قيمته ضمن النطاق0 <= year < 1000000.fold: عدد صحيح قيمته0أو1.
في حال قمت بتمرير أي قيمة للباراميترات خارجة عن النطاق المسموح سيحدث خطأ ValueError.
في المثال التالي قمنا بإنشاء كائن من الكلاس datetime مع تحديد التاريخ الذي نريد تخزينه فيه مباشرةً عند إنشاءه.
المثال الأول
# datetime هنا قمنا بتضمين كل محتوى الموديول import datetime # dt يمثل تاريخ محدد و قمنا بتخزينه في الكائن datetime هنا قمنا بإنشاء كائن من الكلاس dt = datetime.datetime(2012, 4, 5) # dt هنا قمنا بعرض قيمة الكائن print(dt)
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
في المثال التالي قمنا بإنشاء كائن من الكلاس datetime مع تحديد التاريخ و الوقت الذي نريد تخزينه فيه مباشرةً عند إنشاءه.
المثال الثاني
# datetime هنا قمنا بتضمين كل محتوى الموديول import datetime # dt يمثل تاريخ + وقت محدد و قمنا بتخزينه في الكائن datetime هنا قمنا بإنشاء كائن من الكلاس dt = datetime.datetime(2012, 4, 5, 7, 30, 46) # dt هنا قمنا بعرض قيمة الكائن print(dt)
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
خصائص الكلاس datetime في بايثون
الجدول التالي يحتوي على خصائص الكلاس datetime الموجود في الموديول datetime.
| إسم الثابت | تعريفه |
|---|---|
year |
يحتوي على رقم السنة المخزن في كائن الـdatetime. |
month |
يحتوي على رقم الشهر المخزن في كائن الـdatetime. |
day |
يحتوي على رقم اليوم المخزن في كائن الـdatetime. |
hour |
يحتوي على رقم الساعة المخزن في كائن الـdatetime. |
minute |
يحتوي على رقم الدقائق المخزن في كائن الـdatetime. |
second |
يحتوي على رقم الثواني المخزن في كائن الـdatetime. |
microsecond |
يحتوي على رقم أجزاء الثواني المخزن في كائن الـdatetime. |
في المثال التالي قمنا بعرض السنة فقط من التاريخ المخزن في كائن الـ datetime بالإعتماد على الخاصية year.
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# dt الموجودة في الكائن year هنا قمنا بعرض قيمة الخاصية
print('This tutorial is written in', dt.year)
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
تحديد فورمات التاريخ و الوقت في بايثون
في البداية, المقصود بتحديد فورمات ( Format ) التاريخ و الوقت هو عرضه أو تخزينه أو بشكل مختلف.
لتحديد فورمات التاريخ و الوقت الذي نريد إظهاره نستخدم دالة جاهزة في الكلاس datetime إسمها strftime().
إستخدام هذه الدالة سهل جداً, حيث نستدعيها من كائن الـ datetime و من ثم نمرر لها رمز أو مجموعة رموز منفصلة لتحديد الأشياء التي نريدها أن ترجعهم لنا كنص.
في المثال التالي قمنا بالإعتماد على الدالة strftime() الموجودة في الكلاس datetime لعرض إسم الشهر الحالي.
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# و من ثم قمنا بطباعته dt لها كنص حتى ترجع إسم الشهر المخزن في الكائن %B و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%B'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
الرموز التي يمكن إستخدامها في الدالة strftime()
الجدوال التالي يحتوي على الرموز التي يمكنك إستخدامها عند تحديد فورمات التاريخ و الوقت باستخدام الدالة strftime().
| الرمز | إستخدامه | مثال |
|---|---|---|
%a |
لإظهار إسم اليوم بشكل مختصر | Mon |
%A |
لإظهار إسم اليوم بشكل كامل | Monday |
%w |
لإظهار رقم اليوم بالنسبة للأسبوع. هنا أول يوم يعتبر يوم الأحد ( Sunday ) و هو يساوي 0, و آخر يوم في الأسبوع هو يوم السبت ( Saturday ) و هو يساوي 6 |
1 |
%d |
لإظهار رقم اليوم بالنسبة للشهر, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 01 - 31 |
03 |
%b |
لإظهار إسم الشهر بشكل مختصر | Dec |
%B |
لإظهار إسم الشهر كاملاَ | December |
%m |
لإظهار رقم الشهر بالنسبة للسنة, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 01 - 12 |
12 |
%y |
لإظهار رقم السنة بشكل مختصر, أي لإظهار أول رقمين منها فقط. | 18 |
%Y |
لإظهار رقم السنة. | 2018 |
%H |
لإظهار رقم الساعة بنظام 24 ساعة, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 00 - 23 |
14 |
%I |
لإظهار رقم الساعة بنظام 12 ساعة, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 00 - 11 |
2 |
%p |
لإظهار كلمة AM إذا كان الوقت قبل الساعة 12 نهاراً و لإظهار كلمة PM إذا كان الوقت بعدها |
PM |
%M |
لإظهار رقم الدقيقة, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 00 - 59 |
24 |
%S |
لإظهار رقم الثانية, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 00 - 59 |
09 |
%f |
لإظهار أجزاء الثانية بالـ Microsecond, أي لإظهار الثانية الواحدة كمليون جزء. مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 000000 - 999999 |
034208 |
%j |
لإظهار رقم اليوم بالنسبة للسنة, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 001 - 366 |
337 |
%U |
لإظهار رقم الأسبوع بالنسبة للسنة, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 00 - 53 و أول يوم في كل أسبوع هو يوم الأحد ( Sunday ) |
48 |
%W |
لإظهار رقم الأسبوع بالنسبة للسنة, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 00 - 53 و أول يوم في كل أسبوع هو يوم الإثنين ( Monday ) |
49 |
%c |
لإظهار التاريخ و الوقت الحالي بشكل كامل | Mon Dec 3 18:52:05 2018 |
%x |
لإظهار التاريخ الحالي بشكل كامل | 12/03/18 |
%X |
لإظهار الوقت الحالي بشكل كامل | 18:52:05 |
أمثلة شامله لكل رمز موجود في الجدول
Python datetime.strftime('%a')
في المثال التالي سنمرر الرمز %a كنص للدالة strftime() لإظهار إسم اليوم بشكل مختصر.
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# بشكل مختصر و من ثم قمنا بطباعته dt لها كنص حتى ترجع إسم اليوم المخزن في الكائن %a و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%a'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%A')
في المثال التالي سنمرر الرمز %A كنص للدالة strftime() لإظهار إسم اليوم.
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# و من ثم قمنا بطباعته dt لها كنص حتى ترجع إسم اليوم المخزن في الكائن %A و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%A'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%w')
في المثال التالي سنمرر الرمز %w كنص للدالة strftime() لإظهار رقم اليوم بالنسبة للأسبوع.
ملاحظة: هنا أول يوم يعتبر يوم الأحد ( Sunday ) و هو يساوي 0, و آخر يوم في الأسبوع هو يوم السبت ( Saturday ) و هو يساوي 6
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# و من ثم قمنا بطباعته dt اليوم المخزن في الكائن index لها كنص حتى ترجع رقم %w و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%w'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%d')
في المثال التالي سنمرر الرمز %d كنص للدالة strftime() لإظهار رقم اليوم بالنسبة للشهر, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 01 - 31
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# نسبة للشهر و من ثم قمنا بطباعته dt لها كنص حتى ترجع رقم اليوم المخزن في الكائن%d و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%d'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%b')
في المثال التالي سنمرر الرمز %b كنص للدالة strftime() لإظهار إسم الشهر بشكل مختصر.
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# بشكل مختصر و من ثم قمنا بطباعته dt لها كنص حتى ترجع إسم الشهر المخزن في الكائن %b و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%b'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%B')
في المثال التالي سنمرر الرمز %B كنص للدالة strftime() لإظهار إسم الشهر.
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# و من ثم قمنا بطباعته dt لها كنص حتى ترجع إسم الشهر المخزن في الكائن %B و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%B'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%m')
في المثال التالي سنمرر الرمز %m كنص للدالة strftime() لإظهار رقم الشهر بالنسبة للسنة, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 01 - 12
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# نسبة للسنة و من ثم قمنا بطباعته dt لها كنص حتى ترجع رقم الشهر المخزن في الكائن %m و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%m'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%y')
في المثال التالي سنمرر الرمز %y كنص للدالة strftime() لإظهار رقم السنة بشكل مختصر, أي لإظهار أول رقمين منها فقط.
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# بشكل مختصر و من ثم قمنا بطباعته dt لها كنص حتى ترجع رقم السنة المخزن في الكائن %y و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%y'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%Y')
في المثال التالي سنمرر الرمز %Y كنص للدالة strftime() لإظهار رقم السنة.
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# و من ثم قمنا بطباعته dt لها كنص حتى ترجع رقم السنة المخزن في الكائن %Y و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%Y'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%H')
في المثال التالي سنمرر الرمز %H كنص للدالة strftime() لإظهار رقم الساعة بنظام 24 ساعة, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 00 - 23
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# و من ثم قمنا بطباعته dt لها كنص حتى ترجع رقم الساعة المخزن في الكائن %H و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%H'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%I')
في المثال التالي سنمرر الرمز %I كنص للدالة strftime() لإظهار رقم الساعة بنظام 12 ساعة, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 00 - 11
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# و من ثم قمنا بطباعته dt لها كنص حتى ترجع رقم الساعة المخزن في الكائن %I و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%I'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%p')
في المثال التالي سنمرر الرمز %p كنص للدالة strftime() لإظهار كلمة AM إذا كان الوقت قبل الساعة 12 نهاراً و لإظهار كلمة PM إذا كان الوقت بعدها.
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# و من ثم قمنا بطباعته dt لها كنص حتى ترجع رقم الساعة المخزن في الكائن %p و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%p'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%M')
في المثال التالي سنمرر الرمز %M كنص للدالة strftime() لإظهار رقم الدقيقة, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 00 - 59.
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# و من ثم قمنا بطباعته dt لها كنص حتى ترجع رقم الدقيقة المخزن في الكائن %M و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%M'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%S')
في المثال التالي سنمرر الرمز %S كنص للدالة strftime() لإظهار رقم الثانية, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 00 - 59.
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# و من ثم قمنا بطباعته dt لها كنص حتى ترجع رقم الثانية المخزن في الكائن %S و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%S'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%f')
في المثال التالي سنمرر الرمز %f كنص للدالة strftime() لإظهار أجزاء الثانية بالـ Microsecond, أي لإظهار الثانية الواحدة كمليون جزء. مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 000000 - 999999.
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# و من ثم قمنا بطباعته dt لها كنص حتى ترجع رقم أجزاء الثانية المخزن في الكائن %f و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%f'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%j')
في المثال التالي سنمرر الرمز %j كنص للدالة strftime() لإظهار رقم اليوم بالنسبة للسنة, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 001 - 366
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# نسبة للسنة و من ثم قمنا بطباعته dt لها كنص حتى ترجع رقم اليوم المخزن في الكائن %j و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%j'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%U')
في المثال التالي سنمرر الرمز %U كنص للدالة strftime() لإظهار رقم الأسبوع بالنسبة للسنة, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 00 - 53 و أول يوم في كل أسبوع هو يوم الإثنين ( Monday ).
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# نسبة للسنة و من ثم قمنا بطباعته dt لها كنص حتى ترجع رقم الأسبوع المخزن في الكائن %U و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%U'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%W')
في المثال التالي سنمرر الرمز %W كنص للدالة strftime() لإظهار رقم الأسبوع بالنسبة للسنة, مع الأخذ بالإعتبار أن هذا الرقم سيكون ضمن النطاق 00 - 53 و أول يوم في كل أسبوع هو يوم الأحد ( Sunday ).
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# نسبة للسنة و من ثم قمنا بطباعته dt لها كنص حتى ترجع رقم الأسبوع المخزن في الكائن %W و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%W'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%c')
في المثال التالي سنمرر الرمز %c كنص للدالة strftime() لإظهار التاريخ و الوقت الحالي بشكل كامل.
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# بشكل كامل و من ثم قمنا بطباعته dt لها كنص حتى ترجع التاريخ و الوقت الحالي المخزن في الكائن %c و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%c'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%x')
في المثال التالي سنمرر الرمز %x كنص للدالة strftime() لإظهار التاريخ الحالي بشكل كامل.
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين التاريخ و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# بشكل كامل و من ثم قمنا بطباعته dt لها كنص حتى ترجع التاريخ الحالي المخزن في الكائن %x و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%x'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Python datetime.strftime('%X')
في المثال التالي سنمرر الرمز %X كنص للدالة strftime() لإظهار الوقت الحالي بشكل كامل.
مثال
# datetime هنا قمنا بتضمين كل محتوى الموديول
import datetime
# dt في الكائن datetime ككائن من الكلاس now() هنا قمنا بتخزين الوقت و الوقت الحالي الذي سترجعه الدالة
dt = datetime.datetime.now()
# بشكل كامل و من ثم قمنا بطباعته dt لها كنص حتى ترجع الوقت الحالي المخزن في الكائن %X و تمرير الرمز strftime() هنا قمنا باستدعاء الدالة
print(dt.strftime('%X'))
•سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
الموديول calendar في بايثون
الموديول calendar يحتوي على مجموعة كلاسات و دوال جاهزة للتعامل مع التقويم و لعرضه بشكل جميل جداً.
فمثلاً, يحتوي على دوال جاهزة لعرض تقويم سنة معينة أو شهر محدد في السنة.
في المثال التالي قمنا بعرض تقويم سنة 2018 بالإعتماد على الدالة prcal() الموجودة في الكلاس calendar الموجود بداخل الموديول calendar.
المثال الأول
# calendar هنا قمنا بتضمين كل محتوى الموديول import calendar # لعرض تقويم سنة 2018 calendar من الكلاس prcal() هنا قمنا باستدعاء الدالة calendar.prcal(2018)
•سنحصل على النتيجة التالية عند التشغيل.
2018
January February March
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7 1 2 3 4 1 2 3 4
8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11
15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18
22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25
29 30 31 26 27 28 26 27 28 29 30 31
April May June
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 1 2 3 4 5 6 1 2 3
2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10
9 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 17
16 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 24
23 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 30
30
July August September
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 1 2 3 4 5 1 2
2 3 4 5 6 7 8 6 7 8 9 10 11 12 3 4 5 6 7 8 9
9 10 11 12 13 14 15 13 14 15 16 17 18 19 10 11 12 13 14 15 16
16 17 18 19 20 21 22 20 21 22 23 24 25 26 17 18 19 20 21 22 23
23 24 25 26 27 28 29 27 28 29 30 31 24 25 26 27 28 29 30
30 31
October November December
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7 1 2 3 4 1 2
8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 9
15 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 16
22 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 23
29 30 31 26 27 28 29 30 24 25 26 27 28 29 30
31
دوال الكلاس calendar
الجدول التالي يحتوي على دوال الكلاس calendar الأكثر إستخداماً.
| إسم الدالة مع تعريفها | |
|---|---|
calendar.prcal(year, w=0, l=0, c=6, m=3)
تستخدم لطباعة تقويم سنة معينة.مكان الباراميتر year نمرر السنة التي نريد طباعة تقويمها. |
|
calendar.isleap(year)
تستخدم لمعرفة ما إذا كانت السنة كبيسة أم لا.مكان الباراميتر year نمرر رقم السنة التي نريد التشييك عليها.في حال كانت قيمة year تمثل سنة كبيسة ترجع True, إن لم تكن كذلك ترجع False. |
|
calendar.leapdays(y1, y2)
ترجع عدد السنوات الكبيسة الموجودة من سنة إلى سنة محددة.مكان الباراميتر y1 نمرر رقم السنة التي نريد أن نبدأ من عندها.مكان الباراميتر y2 نمرر رقم السنة التي نريد أن نتوقف قبلها. |
|
calendar.setfirstweekday(weekday)
إفتراضياً, عند عرض التقويم فإنه يظهر يوم الإثنين ( Monday ) كأول يوم في الأسبوع.هذه الدالة تستخدم لتحديد أول يوم سيبدأ به كل أسبوع. مكان الباراميتر weekday نمرر إحدى ثوابت الكلاس calendar التي تشير إلى إسم اليوم أو Index الثابت:
| |
Pythonالدالة prcal()
تعريفها
تستخدم لطباعة تقويم سنة معينة.
بناؤها
prcal.calendar(year, w=0, l=0, c=6, m=3)
باراميترات
الباراميتر
yearنمرر له رقم يمثل السنة التي نريد طباعة تقويمها.الباراميتر
wيمكنك أن تغير قيمته الإفتراضية لتحديد حجم المسافة الفارغة بين كل يومين في التقويم.الباراميتر
lيمكنك أن تغير قيمته الإفتراضية لتحديد عدد الأسطر الفارغة تحت كل شهر في التقويم.الباراميتر
cيمكنك أن تغير قيمته الإفتراضية لتحديد حجم المسافة الفارغة بين كل شهرين في التقويم.الباراميتر
mيمكنك أن تغير قيمته الإفتراضية لتحديد تقويم كل شهر سيتم عرض على نفس المستوى لأنه إفتراضياً يتم عرض تقويم كل ثلاثة أشهر بجانب بعضهم.
قيمة الإرجاع
لا ترجع قيمة.
المثال الأول
# calendar هنا قمنا بتضمين كل محتوى الموديول import calendar # لعرض تقويم سنة 2018 calendar من الكلاس prcal() هنا قمنا باستدعاء الدالة calendar.prcal(2018)
•سنحصل على النتيجة التالية عند التشغيل.
2018 January February March Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 1 2 3 4 1 2 3 4 8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11 15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18 22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25 29 30 31 26 27 28 26 27 28 29 30 31 April May June Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 1 2 3 4 5 6 1 2 3 2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10 9 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 17 16 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 24 23 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 30 30 July August September Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 1 2 3 4 5 1 2 2 3 4 5 6 7 8 6 7 8 9 10 11 12 3 4 5 6 7 8 9 9 10 11 12 13 14 15 13 14 15 16 17 18 19 10 11 12 13 14 15 16 16 17 18 19 20 21 22 20 21 22 23 24 25 26 17 18 19 20 21 22 23 23 24 25 26 27 28 29 27 28 29 30 31 24 25 26 27 28 29 30 30 31 October November December Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 1 2 3 4 1 2 8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 9 15 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 16 22 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 23 29 30 31 26 27 28 29 30 24 25 26 27 28 29 30 31
المثال الثاني
# calendar هنا قمنا بتضمين كل محتوى الموديول import calendar # لعرض تقويم سنة 2018. مع تحديد أننا نريد عرض كل 4 أشهر بجانب بعض calendar من الكلاس prcal() هنا قمنا باستدعاء الدالة calendar.prcal(2018, m=4)
•سنحصل على النتيجة التالية عند التشغيل.
2018 January February March April Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 1 2 3 4 1 2 3 4 1 8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11 2 3 4 5 6 7 8 15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18 9 10 11 12 13 14 15 22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25 16 17 18 19 20 21 22 29 30 31 26 27 28 26 27 28 29 30 31 23 24 25 26 27 28 29 30 May June July August Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 1 2 3 1 1 2 3 4 5 7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8 6 7 8 9 10 11 12 14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15 13 14 15 16 17 18 19 21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22 20 21 22 23 24 25 26 28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29 27 28 29 30 31 30 31 September October November December Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 1 2 3 4 5 6 7 1 2 3 4 1 2 3 4 5 6 7 8 9 8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 9 10 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 16 17 18 19 20 21 22 23 22 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 23 24 25 26 27 28 29 30 29 30 31 26 27 28 29 30 24 25 26 27 28 29 30 31
Python الدالة isleap()
تعريفها
تستخدم لمعرفة ما إذا كانت السنة كبيسة أم لا.
بناؤها
calendar.isleap(year)
باراميترات
year نمرر مكانه رقم يمثل السنة التي نريد معرفة إن كانت كبيسة أم لا.
قيمة الإرجاع
ترجع True في حال كانت قيمة year تمثل سنة كبيسة.
غير ذلك ترجع False.
مثال
# calendar هنا قمنا بتضمين كل محتوى الموديول import calendar # لمعرفة ما إن كانت السنوات 2018, 2019 و 2020 هي سنوات كبيسة أم لا, و من ثم عرضنا ما سترجعه في كل مرة calendar من الكلاس isleap() هنا قمنا باستدعاء الدالة print(calendar.isleap(2018)) print(calendar.isleap(2019)) print(calendar.isleap(2020))
•سنحصل على النتيجة التالية عند التشغيل.
False
True
Python الدالة leapdays()
تعريفها
ترجع عدد السنوات الكبيسة الموجودة من سنة إلى سنة محددة.
بناؤها
calendar.leapdays(y1, y2)
باراميترات
مكان الباراميتر
y1نمرر رقم السنة التي نريد أن نبدأ من عندها.مكان الباراميتر
y2نمرر رقم السنة التي نريد أن نتوقف قبلها.
قيمة الإرجاع
ترجع عدد السنوات الكبيسة الموجودة من سنة إلى سنة محددة.
مثال
# calendar هنا قمنا بتضمين كل محتوى الموديول import calendar # لمعرفة عدد السنوات الكبيسة الموجودة من عام 2000 إلى ما قبل العام 2018. و من ثم عرضنا العدد الذي سترجعه leapdays() هنا قمنا باستدعاء الدالة print(calendar.leapdays(2000, 2018))
•سنحصل على النتيجة التالية عند التشغيل.
Python الدالة setfirstweekday()
تعريفها
إفتراضياً, عند عرض التقويم فإنه يظهر يوم الإثنين ( Monday ) كأول يوم في الأسبوع.
هذه الدالة تستخدم لتحديد أول يوم سيبدأ به كل أسبوع.
بناؤها
calendar.setfirstweekday(weekday)
باراميترات
مكان الباراميتر weekday نمرر إحدى ثوابت الكلاس calendar التي تشير إلى إسم اليوم أو Index الثابت:
calendar.MONDAYأو 0 لتعيين الإثنين كأول يوم في الأسبوع.calendar.TUESDAYأو 1 لتعيين الثلاثاء كأول يوم في الأسبوع.calendar.WEDNESDAYأو 2 لتعيين الأربعاء كأول يوم في الأسبوع.calendar.THURSDAYأو 3 لتعيين الخميس كأول يوم في الأسبوع.calendar.FRIDAYأو 4 لتعيين الجمعة كأول يوم في الأسبوع.calendar.SATURDAYأو 5 لتعيين السبت كأول يوم في الأسبوع.calendar.SUNDAYأو 6 لتعيين الأحد كأول يوم في الأسبوع.
قيمة الإرجاع
لا ترجع قيمة.
أخطاء محتملة
ترمي الإستثناء calendar.IllegalWeekdayError في حال قمت بتمرير رقم خارج عن النطاق 0 <= weekday &tl;= 6.
مثال
# calendar هنا قمنا بتضمين كل محتوى الموديول import calendar # لتعيين يوم الأحد كأول يوم في أيام الأسبوع calendar.SUNDAY و تمرير الثابت setfirstweekday() هنا قمنا باستدعاء الدالة calendar.setfirstweekday(calendar.SUNDAY) # لعرض تقويم سنة 2018 calendar من الكلاس prcal() هنا قمنا باستدعاء الدالة calendar.prcal(2018)
•سنحصل على النتيجة التالية عند التشغيل.
2018 January February March Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 1 2 3 1 2 3 7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10 14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17 21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24 28 29 30 31 25 26 27 28 25 26 27 28 29 30 31 April May June Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 1 2 3 4 5 1 2 8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9 15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16 22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23 29 30 27 28 29 30 31 24 25 26 27 28 29 30 July August September Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 1 2 3 4 1 8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8 15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15 22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22 29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29 30 October November December Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 1 2 3 1 7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8 14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15 21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22 28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29 30 31