عمل مضبوط جداً
عمل رائع
بالنسبة لـ:
if request <= self.balance:
if request > 0 :
كان بإمكانك جمعها في شرط واحد, وجعل رسالة الخطأ Error Occurred بشكل عام (الحل الأصح هو استعمال exceptions عند حدوث أي خطأ).
ما رأيك أن تتبع مبدأ 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))
if request < note and request != 0:
print("give ", str(request))
سلام عليكم وأخيرا عملي على موقع Github شكرا لك أستاذ ياسر على مجهوداتك معنا انا متحمسة جذا معكم
الرابط https://github.com/mofilamamra/My-First-Project-ATM
عمل رائع جداً
ترقبي الورشة القادمة خلال الشهر القادم إن شاء الله حول بناء أول موقع (إن شاء الله تكون جاهزة بنهاية شهر ديسمبر)
ان شاء الله تعالى بارك الله فيكم وجعلكم ذخرا للأمة الإسلامية يا رب
ما شاء الله عمل رائع يا نورا !
فقط عندي ملاحظتين:
- ماهي فائدة السطر:
if request != 0 and request % 20 != 0:
print("enter valid number !!")
- لما قمتي بتكرار عملية السحب هنا:
else:
self.balance = self.balance - self.main_request
print("The remaining balance is: ", self.balance)
while self.main_request
...
شكرا ياسر … هو الحقيقة ان ممكن يكون في اجزاء زيادة مكانتش مطلوبة في المهمة بس انا حبيت اعملها اشبه شيء للواقع. عشان كدا هي ال withdraw function بتحتوي علي جزئين. الجزء الاول لل verification و هو جزء ال if statement
# To validate inserted amount that it matches available banknotes
if request > self.balance or request <= 0:
print('Please enter valid number')
elif request < self.balance:
# while request >= 100:
# request -= 100
# # print(request)
#
# while request >= 50 and (request % 20 != 0):
# request -= 50
# # print(request)
#
# while request >= 20:
# request -= 20
# # print(request)
# To shorten all the while loops above, use for loop with notes
notes = [100, 50, 20]
for note in notes:
while request >= note and (request % 20 != 0):
request -= note
if request != 0 and request % 20 != 0:
print("enter valid number !!")
اما جزء ال else هو السحب الفعلي
و عشان كدا هتلاقي في 2 متغير ال request دا لل validation
و ال main_request اللي استخدمته في السحب
else:
self.balance = self.balance - self.main_request
print("The remaining balance is: ", self.balance)
while self.main_request >= 100:
print('give 100')
self.main_request -= 100
# print("rest is: ", main_request)
while self.main_request >= 50 and (self.main_request % 20 != 0):
print('give 50')
self.main_request -= 50
# print("rest is: ", main_request)
while self.main_request >= 20:
print('give 20')
self.main_request -= 20
# print("rest is: ", main_request)
اما السطر
if request != 0 and request % 20 != 0:
print("enter valid number !!")
فبعد طرح كل الفئات الممكنة ال 100 و ال50 و ال20
لو الباقي مش صفر و باقي قسمته علي 20 مش صفر زي مثلا 17
فهطلب من العميل يدخل مبلغ صحيح يتناسب مع الفئات المتاحة
اذا جميل جدا، يوجد طرق افضل للتحكم بسير البرنامج باستعمال exceptions لكن هكذا جميل كذلك
جربت ال try… except لكن لم تنجح معي
همم، اليك الفكرة الرئيسية:
-
داخل الدالة عند حدوث اي verification error مباشرة اعملي raise exception
-
خارج الدالة في المكان الذي تستدعي فيه الدالة استعملي try except ولا تنسي اضافة print في معالجة ال exception
شكرا بشمهندس … هحاول تاني و ان شاء الله نظبط
https://github.com/Alalaf/coretabs.git
كالعادة عمل رائع
عمل ممتاز يا علي… واستخدامك للـ github gist في مكانه الصحيح
مرحبا جميعا هذا رابط المشروع على githhub