مرحباً جميعاً
المهمة المطلوبة
بإمكانك الإطلاع على المهمة المطلوبة من هنا
بإمكانك الإطلاع على المهمة المطلوبة من هنا
السلام عليكم ورحمة الله
عمل رائع يا عادل
بإمكانك حل المشكلة مباشرة على الريبو
السلام عليكم
عمل رائع يا عادل, لكن الأرقام خدعتك هذه المرة
جرب التالي:
atm2.withdraw(300)
وشاهد النتيجة, سيظهر لديك متبقي 300 دولار من الألف, والمفترض تكون 700
السبب أنك استعملت 500, وألف ناقص 500 = 500, لهذا الأرقام خدعتك.
السؤال الأهم: هل تحتاج لإرجاع result داخل الدالة في الكلاس ؟
سوف ألقي نظرة على الكود وأحاول تعديله، شكرا لمجهودك معنا
عمل رائع يا أحمد… ما رأيك بإخراج هذا الجزء لدالة منفصلة مثلاً اسمها give_money, لإتباع Single Responsibility Principle - SRP:
self.withdrawals_list.append(request)
self.balance -= request
notes = [100, 50, 10, 5]
for note in notes:
while request >= note:
request -= note
print("give ", str(note))
while request < 5 and request > 0:
print("give " + str(request))
request -= request
break```
أستاذ @YaserAlnajjar الكريم
إذا لديك بعض الوقت للاطلاع على التعديل
أتمنى تكون مضبوطة هذه المرة
جميل جداً… ما رأيك أن تتخلص من المتغير result لأننا لا نحتاج هنا ارجاع قيمة balance لأنها موجودة داخل الكلاس أساساً, ليصبح الكود هكذا:
def withdraw(self, request):
print("Current balance = "+ str(self.balance))
result = self.balance
if request > self.balance:
print("Can't give you all this money !!")
elif request < 0:
print("More than zero plz!")
else:
self.withdrawals_list.append(request)
self.balance -= request
notes = [100, 50, 10, 5]
for note in notes:
while request >= note:
request -= note
print("give " + str(note))
if request % 5 != 0:
print('give ' + str(request) + ' pieces')
request = 0
print("new balance: "+str(self.balance))
الآن بقي أن تطبق مبدأ SRP, وتستخرج الجزء الخاص بالـ give_money إلى دالة منفصلة
لقد قمت بعمل مبدأ فصل كل مهمة بدالة خاصة بها
أتمنى أن يكون هذا هو المطلوب، شكرا أستاذ @YaserAlnajjar
أصبحت الأكواد نظيفة ورائعة
بالنسبة للدالة:
def get_current_balance(self):
print("Current balance = " + str(self.balance))
لاحظ أنها مجرد wrapper حول print, أي أن الأفضل أن تكتبها كما هي بدون دالة داخل withdraw, لأنها لا تتصل بقاعدة بيانات أو أي شيء, مجرد print
نفس الأمر بالنسبة ل get_new_balance
لوحة فنية يا عادل
بفضل توجيهاتك أستاذنا العزيز
اشكرك علي التوجيهات المفيدة , تم التعديل
ممتاز جداً
عمل رائع يا أسماء
بقي فقط اتباع مبدأ Don’t Repeat Yourself - DRY, كما هو موضح بالدرس, بدلاً من تكرار هذه الأسطر المتشابهه:
if request >= 100:
request -= 100
print("give 100")
elif request >= 50:
request -= 50
print("give 50")
elif request >= 10:
request -= 10
print("give 10")
else:
request -= 5
print("give 5")
تمام جزاك الله خيرا
ساقوم بتعديل الكود