اهنيك، كود ممتاز ونظيف. رغم ذلك عندي ملاحظة واقتراح واحد لتحسين عمل المشروع
ملاحظتي : عند إضافة جهة اتصال جديدة ممكن المستخدم يكتب ID أو رقم موجود بالفعل، يفضل تضيف كود يتأكد هل الID أو الرقم موجدين ولا لا
إقتراحي : لو في طريقه تخلي الكمبيوتر بنفسه ينشئ ID تلقائي بدون ما يكتبه المستخدم بشكل يدوي، بس مادري شلون بسويه بحاول ويارب أقدر🙂
اكيد طبعا في طريقة بس لازم نبحث عنها, ممكن الاستاذ يذكرها لاحقا لانه عطانا اكثر من مشروع بالفكرة هذي وممكن فالمستقبل او فالحلقات الي لسا ما وصلت لها هيشرح النقطة هذي, اذا عاد تعلمها مع نفسك وشاركها معنا
الموضوع سهل استخدم len ()
مثال:
user_id = len (contacts) + 1
مافهمت إيش العلاقة بين لن وترتيب التسلسلي؟
داله len ترجع عدد العناصر، عند اضافه اول عضو يكون القاموس contacts فارغ فيرجع 0 وعندما يضاف الواحد فى هذا الكود :
user_id = len (contacts) + 1
يكون id = 1 وعند ما تضيف العضو الثانى يكون هناك عنصر واحد فى القاموس (العضو الاول) وعند اضافه الواحد يكون ال id = 2 وهكذا الى اي عدد يتم انشاءه من الاعضاء
يوووه صح, تصدق ما فكرت فيها
هذه هى البرمجه ، يكون الحل سهل ولاكن غير متوقع
نعم عندى تليجرام ولاكن حاليا جوالى بيتصلح فما اقدر اكلمك عليه
اتوقع كان هذا اسم اليوزر بتاعى على تليجرام : @AHMAD.THE.LEGENDARY بس مش متأكد من الاسم
عموما هو قريب من هذا الاسم يعنى ممكن تبدل .
ب _
او -
مفيش ملقتش, مفيش ديسكورد مثلا؟ للاسف بستخدم تلقرام ودسكورد بس
بكل الاحوال ما راح اقدر اكلمك الا لما جوالى يتصلح ، لما يتصلح هبعتكل اسم اليوزر فى تليجرام
يعم اشطا, كان في سؤال بس عاوزك تجاوبني عليه لو تعرف
الحين لما اسوي دالة فالكود, واحط لها برامتر عشان تشتغل, بس لو حطيتها بدون برامتر وكتبت مثلا اسم القائمة او المتغير او حاجة مباشرة الدالة رح تتعرف عليها, فليش مرات بنحط برامتر ومرات لا حتى لو انه واضح وموجود قدامنا بالكود مثلا فهمت علي ولا اوضح اكثر
على حسب مهمه الداله، فمثلا هنا البرامتر افضل :
# المثال الاول:
def calculator1 (math_problem): # انشاء داخله تحتاج إلى برامتر
return eval (math_problem)
def calculator2 (): #انشاء داله لا تحتاج إلى برامتر
return eval (math_problem)
math_problem1 = "6/2*7" # الناتج: 21
math_problem2 = "7*7-2" #الناتج: 47
math_problem3 = "5/5*6-5" # الناتج:1
# كما تلاحظ نستطيع طباعه ناتج اي مسأله من الداله الاولى بسهوله
print (calculator1(math_problem1))
print (calculator1(math_problem2))
print (calculator1(math_problem3))
print ("\n\n\n")
# كما تلاحظ صنعاء متغير جديد (مساحه تخزين اكبر)
# 6 اسطر بدل من 3 فى الداله الاولى
math_problem = math_problem1
print (calculator2())
math_problem = math_problem2
print (calculator2())
math_problem = math_problem3
print (calculator2())
"""
هنا الداله الاولى اكثر عمليه وفاعليه
الداله الاولى اقل في المساحه
ولاكن هذا لا يعنى ان دائما البرامتر افضل
انظر الى المثال الثاني:
"""
اما هنا بدون برامتر افضل :
# المثال الثاني:
import os
import time
def clear1 (library): # تاخذ اسم المكتبه
library. system ("cls" if library.name == "nt" else "clear")
def clear2 (): # لا تاخذ اى برامتر
os.system ("cls" if os.name == "nt" else "clear")
print ("ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ")
time.sleep (1) # تأخير...
clear1 (os) # باستخدام البرمتر (مساحه تخزين اكبر )
time. sleep (1) # تأخير...
print ("ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ")
time. sleep (1) # تأخير...
clear2 () # تجربه الداله الثانيه (بدون برامتر = مساحه تخزين اقل)
"""
الاولى اكبر في المساحه
لا يوجد حاجه الى المكتبه كـ برامتر
هنا الثاني افضل
هنا لا تحتاج الى البرامتر
"""
فإنت شوف هل الداله تحتاج إلى برامتر ام لا؟
هل هذا ما كنت تقصده؟ ام انك تقصد شيء آخر؟
لما جوالي يتصلح هل ارسل لك اسم اليوزر بتاعي في التليجرام ولا خلاص؟
للاسف ما فهمت مره بس فهمت الفكرة العامة، بي برضو ما اقدر اميز متى احط ومتى لا
على حسب مهمه الداله ، اذا كانت مهمه الداله ثابته كما في المثال الثاني (مهمه الداله هى مسح ما على الشاشة ولا تحتاج الى اي متغير) على عكس المثال الاول (مهمه الداله ارجاع الناتج لاي مسأله، ولاكن اذا كانت المسأله محدده فلن تحتاج الى برامتر)
اليك امثله من دوال بايثون المدمجه :
مثال بالبرامتر : الداله (print) التى لا تعرف ما الذى سيتم طباعته لذالك تأخذ برامتر
مثال بدون برامتر : الداله (exit) التي تعرف مهمتها وهى الخروج من التطبيق لذلك لا تاخذ برامتر
اذا ما فهمت اخبرني وسأحاول ان اشرح بتفصيل اكثر
يمكنك إخباري بمهمه الداله التي تريد صنعها ( اذا كنت تريد صنع داله) لمساعدتك
ملاحظة جميلة ممكن اضيف التحقق من الID اذا موجود ام لا
لكن بالنسبة للاقتراح لسه وصلت للنقطة اللي انت بتقول عليها تبع انه ينشئ كود تلقائي ممكن ابحث عنها واشوف اذا اقدر اعملها ولو انت عملتها ممكن تشاركها معنا
اذا وقتك يسمح وضح لي اكثر جزاك الله خير, انا لا اريد انشاء دالة فقط اريد فهم هذه النقطة
تكتب حرفين ثم طول القائمة
مثل:point_down:
f"AB {len(contacts) + 1}"