جاري التحميل...

الدوال المدمجة في بايثون

الدوال المدمجة في بايثون هي مجموعة من الوظائف الجاهزة التي يوفرها المفسر بشكل افتراضي دون الحاجة إلى استيراد مكتبات خارجية. هذه الدوال تمثل حجر الأساس في بناء التطبيقات البرمجية، حيث أنها توفر عمليات أساسية وفعّالة تتعلق بهياكل البيانات، التحويل بين الأنواع، معالجة النصوص، الحسابات الرياضية، والتكامل مع مبادئ البرمجة الكائنية (OOP). أهميتها تكمن في كونها مكتوبة بلغة C ومهيأة لتكون سريعة وآمنة، مما يقلل من أخطاء الذاكرة ويمنع المطورين من إعادة اختراع العجلة. في سياق تطوير الباك-إند، الدوال المدمجة تساعد في كتابة خوارزميات فعّالة، إدارة البيانات الكبيرة، وتحسين الأداء مع تقليل التعقيد. المفاهيم الرئيسية التي سنتناولها تشمل الصياغة الصحيحة لاستدعاء هذه الدوال، كيفية التعامل مع هياكل البيانات (مثل القوائم والقواميس)، دمجها مع الخوارزميات المتقدمة، ودورها في دعم مبادئ الـ OOP عبر الدوال مثل super و classmethod. سيتعلم القارئ كيفية استغلال هذه الدوال بشكل عملي لبناء أنظمة قابلة للتوسع، آمنة، وسهلة الصيانة ضمن سياق هندسة البرمجيات المتقدمة.

لنأخذ مثالاً عملياً في نظام باك-إند يحتاج إلى استقبال بيانات المستخدمين، معالجتها، والتحقق من صحتها قبل تخزينها في قاعدة البيانات. يمكننا استخدام عدة دوال مدمجة لتحقيق هذه الخطوات بكفاءة. على سبيل المثال، نستخدم input() لقراءة البيانات، ثم int() للتحويل إلى نوع صحيح عند الحاجة، مع استخدام isinstance() لضمان صحة النوع. بعد ذلك، يمكننا استخدام abs() للتأكد من أن القيم العددية غير سالبة، واستخدام sorted() لترتيب البيانات قبل تخزينها. إذا كان لدينا قائمة من القيم النصية، يمكننا تطبيق map() للتحويل، أو filter() لإزالة العناصر غير الصالحة. هذا المثال يوضح أن الدوال المدمجة ليست مجرد أدوات صغيرة، بل هي عناصر أساسية تدعم بناء أنظمة كاملة. في حالة الباك-إند، هذه الدوال تساعد في منع الأخطاء الشائعة مثل معالجة أنواع غير متوافقة، تجنب استهلاك الذاكرة غير الضروري، وضمان أن الخوارزميات تعمل بكفاءة عالية. النتيجة النهائية هي كود مختصر، آمن، وسهل الصيانة في أنظمة حقيقية.

Example

python
PYTHON Code
def معالجة_البيانات(قائمة_مدخلات):
\# التحقق من أن المدخلات قائمة
if not isinstance(قائمة_مدخلات, list):
raise TypeError("يجب أن تكون المدخلات قائمة")

# تحويل القيم إلى أعداد صحيحة باستخدام map و int
أعداد = list(map(int, قائمة_مدخلات))

# استخدام abs للتأكد من أن الأعداد موجبة
أعداد_موجبة = [abs(x) for x in أعداد]

# حساب بعض الإحصائيات باستخدام sum و len و max و min
مجموع = sum(أعداد_موجبة)
أكبر = max(أعداد_موجبة)
أصغر = min(أعداد_موجبة)
عدد = len(أعداد_موجبة)

# ترتيب النتائج باستخدام sorted
مرتبة = sorted(أعداد_موجبة)

return {
"العدد": عدد,
"المجموع": مجموع,
"الأكبر": أكبر,
"الأصغر": أصغر,
"مرتبة": مرتبة
}

# تجربة

بيانات = \["-4", "10", "3", "-7"]
print(معالجة_البيانات(بيانات))

📊 Comprehensive Reference

الدالة الوصف الصياغة المثال ملاحظات
abs إرجاع القيمة المطلقة abs(x) abs(-7) يدعم int و float و complex
all إرجاع True إذا كانت جميع العناصر صحيحة all(iterable) all(\[1, True, 3]) القائمة الفارغة تعطي True
any إرجاع True إذا كان أحد العناصر صحيح any(iterable) any(\[0, False, 5]) القائمة الفارغة تعطي False
ascii تمثيل ASCII للكائن ascii(object) ascii("café") يهرب الأحرف غير ASCII
bin تحويل إلى ثنائي bin(x) bin(10) تضيف "0b"
bool تحويل إلى قيمة منطقية bool(x) bool(\[]) قائمة فارغة تعطي False
breakpoint دخول المصحح breakpoint() breakpoint() يستعمل pdb افتراضياً
bytearray إنشاء بايتات قابلة للتغيير bytearray(\[src]) bytearray(b"text") مقابل bytes
bytes إنشاء بايتات ثابتة bytes(\[src]) bytes("abc","utf-8") غير قابلة للتغيير
callable التحقق إن كان قابلاً للاستدعاء callable(obj) callable(len) الدوال والكلاسات تعطي True
chr إرجاع محرف من رقم Unicode chr(i) chr(65) عكس ord()
classmethod تعريف دالة صف @classmethod classmethod(func) يستقبل cls بدلاً من self
compile ترجمة الكود compile(src,fn,mode) compile("3+5","","eval") مع exec/eval
complex إنشاء عدد مركب complex(r,i) complex(2,3) يدعم السلاسل
delattr حذف خاصية delattr(obj,name) delattr(obj,"x") يرفع خطأ إن لم يوجد
dict إنشاء قاموس dict(\[map]) dict(a=1,b=2) مرن جداً
dir عرض الخصائص dir(\[obj]) dir(str) يشمل الدوال
divmod قسمة مع باقي divmod(a,b) divmod(9,2) ترجع (قسم، باقي)
enumerate ترقيم العناصر enumerate(it) list(enumerate(\["a","b"])) يدعم start
eval تقييم تعبير eval(expr) eval("3+5") خطر أمنياً
exec تنفيذ كود exec(obj) exec("x=5") تنفيذ ديناميكي
filter تصفية عناصر filter(func,it) list(filter(lambda x:x>0,\[1,-2,3])) ترجع iterator
float تحويل إلى عدد عشري float(x) float("3.14") يدعم inf, nan
format تنسيق نص format(val,fmt) format(5,"03") أوسع في str.format
frozenset مجموعة ثابتة frozenset(it) frozenset(\[1,2]) قابلة للتجزئة
getattr إرجاع خاصية getattr(obj,name\[,d]) getattr(obj,"x",0) آمن ضد AttributeError
globals المجال العام globals() globals()\["name"] ترجع dict
hasattr التحقق من خاصية hasattr(obj,name) hasattr(\[], "append") ترجع bool
hash إرجاع قيمة تجزئة hash(obj) hash("abc") يعمل مع القيم القابلة للتجزئة
help مساعدة تفاعلية help(\[obj]) help(str) أداة سطر الأوامر
hex تحويل إلى ست عشري hex(x) hex(255) تضيف "0x"
id إرجاع هوية الكائن id(obj) id(42) فريد طوال عمر الكائن
input إدخال المستخدم input(\[msg]) input("Name: ") يعيد str
int تحويل إلى عدد صحيح int(x\[,b]) int("101",2) يدعم bases
isinstance التحقق من النوع isinstance(obj,cls) isinstance(5,int) يدعم tuple
issubclass التحقق من الوراثة issubclass(c,b) issubclass(bool,int) True إذا كان فرعي
iter إنشاء مكرر iter(obj) iter(\[1,2,3]) يدعم sentinel
len إرجاع الطول len(obj) len("abc") يدعم الحاويات
list إنشاء قائمة list(\[it]) list("abc") قابلة للتغيير
locals المجال المحلي locals() locals()\["x"] تتغير ديناميكياً
map تطبيق دالة map(func,it) list(map(str,\[1,2])) ترجع iterator
max القيمة الكبرى max(it) max(\[1,5,3]) يدعم key
memoryview عرض الذاكرة memoryview(obj) memoryview(b"abc") فعال جداً
min القيمة الصغرى min(it) min(\[1,5,3]) يدعم key
next العنصر التالي next(it\[,d]) next(iter(\[1,2])) يرفع StopIteration
object كائن أساسي object() obj = object() جذر الوراثة
oct تحويل إلى ثماني oct(x) oct(8) تضيف "0o"
open فتح ملف open(fn,mode) open("f.txt","r") مدير سياق
ord إرجاع Unicode ord(char) ord("A") عكس chr
pow الأسس مع mod pow(x,y\[,z]) pow(2,3,5) أكثر كفاءة مع mod
print طباعة print(obj) print("Hi") يدعم args متعددة
property تعريف خاصية @property property(f) OOP
range توليد أعداد range(\[s],e\[,st]) range(5) كسول
repr تمثيل نصي repr(obj) repr(\[1,2]) للـ debug
reversed عكس تسلسل reversed(seq) list(reversed(\[1,2])) يتطلب sequence
round تقريب عدد round(x\[,n]) round(3.1415,2) تقريب بنكي
set إنشاء مجموعة set(\[it]) set("abc") عناصر فريدة
setattr تعيين خاصية setattr(obj,n,v) setattr(obj,"a",10) تعيين ديناميكي
slice إنشاء شريحة slice(s,e\[,st]) slice(1,5) يستعمل في \[]
sorted ترتيب sorted(it) sorted(\[3,1,2]) يدعم key, reverse
staticmethod دالة ثابتة @staticmethod staticmethod(f) بدون self
str إنشاء نص str(obj) str(123) غير قابل للتغيير
sum جمع sum(it\[,s]) sum(\[1,2,3]) يدعم start
super استدعاء الأب super() super().method() OOP
tuple إنشاء tuple tuple(\[it]) tuple("ab") غير قابل للتغيير
type إرجاع النوع type(obj) type(5) يدعم إنشاء الكلاسات
vars إرجاع dict vars(\[obj]) vars(str) قاموس الخصائص
zip دمج zip(*its) list(zip(\[1,2],\[3,4])) ترجع iterator
import استيراد import(name) import("math") داخلي

📊 Complete Properties Reference

الدالة نوع الإرجاع السلوك الافتراضي الوصف التوافق
abs int/float/complex إرجاع القيمة المطلقة حساب رياضي كل الإصدارات
all bool True للقائمة الفارغة التحقق من جميع العناصر كل الإصدارات
any bool False للقائمة الفارغة التحقق من عنصر واحد كل الإصدارات
ascii str يهرب غير ASCII تمثيل آمن 3+
bin str إرجاع نص ثنائي تحويل int لثنائي كل الإصدارات
bool bool False للقيم الفارغة تحويل منطقي كل الإصدارات
breakpoint None تشغيل pdb مصحح أخطاء 3.7+
bytearray bytearray فارغ تسلسل بايت متغير كل الإصدارات
bytes bytes فارغ تسلسل بايت ثابت كل الإصدارات
callable bool يتحقق من الاستدعاء كائن قابل للاستدعاء كل الإصدارات
chr str محرف واحد تحويل int إلى char كل الإصدارات
classmethod classmethod تغليف دالة تعمل على الصف كل الإصدارات
compile code ترجمة نص كائن كود كل الإصدارات
complex complex إنشاء مركب عدد مركب كل الإصدارات
delattr None حذف خاصية إزالة خاصية كل الإصدارات
dict dict قاموس فارغ إنشاء قاموس كل الإصدارات
dir list عرض خصائص استكشاف الكائن كل الإصدارات
divmod tuple قسم وباقي قسمة كل الإصدارات
enumerate enumerate ترقيم عناصر Enumerate كل الإصدارات
eval Any تقييم نص تنفيذ تعبير كل الإصدارات
exec None تنفيذ كود تنفيذ ديناميكي كل الإصدارات
filter iterator ترشيح تصفية عناصر كل الإصدارات
float float 0.0 تحويل إلى float كل الإصدارات
format str تنسيق إرجاع نص كل الإصدارات
frozenset frozenset مجموعة فارغة مجموعة ثابتة كل الإصدارات
getattr Any يرفع خطأ إن لم يوجد إرجاع خاصية كل الإصدارات
globals dict المجال العام إرجاع globals كل الإصدارات
hasattr bool False إذا لم يوجد التحقق من خاصية كل الإصدارات
hash int تجزئة قيمة hash كل الإصدارات
help None مساعدة نظام المساعدة كل الإصدارات
hex str سلسلة hex تحويل int كل الإصدارات
id int معرف الكائن هوية فريدة كل الإصدارات
input str طلب المستخدم إدخال نصي كل الإصدارات
int int 0 تحويل إلى int كل الإصدارات
isinstance bool تحقق النوع فحص نوع الكائن كل الإصدارات
issubclass bool فحص الوراثة علاقات الكلاسات كل الإصدارات
iter iterator إنشاء مكرر مكرر للكائن كل الإصدارات
len int طول عدد العناصر كل الإصدارات
list list قائمة فارغة إنشاء قائمة كل الإصدارات
locals dict المجال المحلي إرجاع locals كل الإصدارات
map iterator تطبيق دالة تحويل عناصر كل الإصدارات
max Any أكبر عنصر قيمة كبرى كل الإصدارات
memoryview memoryview عرض ذاكرة مؤشر بايتات كل الإصدارات
min Any أصغر عنصر قيمة صغرى كل الإصدارات
next Any العنصر التالي مؤشر كل الإصدارات
object object كائن أساسي جذر الوراثة كل الإصدارات
oct str نص ثماني تحويل int كل الإصدارات
open file object وضع r فتح ملفات كل الإصدارات
ord int رمز Unicode char إلى int كل الإصدارات
pow int/float الأسس حساب الأس كل الإصدارات
print None إلى stdout طباعة كل الإصدارات
property property إدارة خاصية كبسلة OOP كل الإصدارات
range range فارغ توليد نطاق كل الإصدارات
repr str تمثيل غير غامض Debug كل الإصدارات
reversed iterator عكس تسلسل Iterator كل الإصدارات
round int/float تقريب تقريب أعداد كل الإصدارات
set set مجموعة فارغة إنشاء مجموعة كل الإصدارات
setattr None تعيين تعيين خاصية كل الإصدارات
slice slice شريحة كائن slice كل الإصدارات
sorted list تصاعدي ترتيب عناصر كل الإصدارات
staticmethod staticmethod تغليف بدون self/cls كل الإصدارات
str str نص فارغ إنشاء نص كل الإصدارات
sum int/float 0 جمع عناصر كل الإصدارات
super super الوصول للأب وراثة كل الإصدارات
tuple tuple tuple فارغ إنشاء tuple كل الإصدارات
type type إرجاع النوع كائن النوع كل الإصدارات
vars dict dict خصائص الكائن كل الإصدارات
zip iterator دمج دمج متوازٍ كل الإصدارات
import module استيراد استيراد ديناميكي كل الإصدارات

🧠 اختبر معرفتك

جاهز للبدء

اختبر معلوماتك

اختبر فهمك للدوال المدمجة في بايثون

1
الأسئلة
🎯
70%
للنجاح
♾️
الوقت
🔄
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى