class Atm:
def __init__(self, bla,bank_name):
self.bla = bla
self.back_name =bank_name
def withdraw(self,req):
self.bla
if req >self.bla:
print("plz again")
elif req <= 0:
print("are you kidning me ???")
else:
print(self.back_name)
while req > 0:
if req >= 100:
req -= 100
print("give 100")
elif req >= 50:
req -= 50
print("give 50")
elif req >= 10:
req -= 10
print("give 10")
elif req >= 5:
req -= 5
print("give 5")
elif req < 5:
print("give" + str(req))
req = 0
re = self.bla - req
return re
bl1 = 1000
atm = Atm(bl1,"smart bank")
atm2 = Atm(10000,"bank hmoody")
atm.withdraw(400)
atm2.withdraw(900)
عمل جميل أخي لكن أنصحك بعدم اعتماد الإختصارات كإسم للمتغيرات لكي يكون الكود واضح وسهل فهمه:
req => request
bla => balance
انشاءالله اخي
ما رأيكم في هذا الكود ؟
class ATM:
def __init__(self, bank_name, balance):
self.bank_name = bank_name
self.balance = balance
def withdraw(self, request):
if self.balance <= 0:
print(f'Your balance is empty: {str(self.balance)} $')
elif request <= 0:
print('Please enter a valid amount')
elif request > self.balance:
print('Your request is upper than your balance!')
else:
print(f'Your {self.bank_name} balance is: {str(self.balance)} $.')
self.balance -= request
while request > 0 < self.balance:
if request >= 100:
request -= 100
print('100 $')
elif request >= 50:
request -= 50
print('50 $')
elif request >= 20:
request -= 20
print('20 $')
elif request >= 10:
request -= 10
print('10 $')
elif request >= 5:
request -= 5
print('5 $')
elif request >= 2:
request -= 2
print('2 $')
elif request >= 1:
request -= 1
print('1 $')
print(f'Your new {self.bank_name} balance is: {str(self.balance)} $.')
balance1 = 500
balance2 = 300
atm1 = ATM('AGB', balance1)
atm2 = ATM('BDL', balance2)
atm1.withdraw(400)
atm1.withdraw(10)
atm2.withdraw(140)
atm2.withdraw(170)
شكرا هشام شكلنا محتاجين دعم معنوي :v:
أكيد…
مهمة عمل اكثر من ATM
بافتراض اننا نريد سحب نفس المبالغ من اكثر من بنك + طباعة اسم البنك والمبلغ المتبقى به بعد كل عمليات السحب منه
class ATM:
def __init__(self, balance, bank_name):
self.balance = balance
self.bank_name = bank_name
def withdraw(self, request):
# allowed papers: 100, 50, 10, 5, and cents
print("Welcome to " , self.bank_name)
print("Current balance = ", 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:
while request > 0:
if request >= 100:
request -= 100
print("give 100")
elif request >= 50:
request -= 50
print("give 50")
elif request >= 10:
request -= 10
print("give 10")
elif request >= 5:
request -= 5
print("give 5")
elif request < 5:
print("give " + str(request))
request = 0
result = self.balance - request
return result
balance1 = 500
balance2 = 1000
balance3 = 2000
atm1 = ATM(balance1, "Smart Bank")
atm2 = ATM(balance2, "Baraka Bank")
atm3 = ATM(balance3, "Hedra Bank")
# For example, if I withdraw the same amounts from each atms
# Then, print out the rest on each atm after all withdrawals
atms = [atm1, atm2, atm3]
req = [252, 2050, 97, 305 ]
for atm in atms:
for r in req:
atm.withdraw(r)
if atm.balance > r:
atm.balance -= r
print("The rest of the balance", ":" , atm.balance)
print("The end of this atm --------------- ")
عمل ممتاز يا هدرا
class ATM:
def __init__(self, bank_name, balance):
self.bank_name = bank_name
self.balance = balance
def print_information(self):
print("Welcome to %s,Your balance is %d"%( self.bank_name, self.balance) )
def valid(self , request):
if request <= 0 | request > self.balance:
return False
else:
return True
def withdraw(self, request):
self.print_information()
if self.valid(request):
while request > 0:
if request >= 100:
print('give100')
request -= 100
elif request >= 50:
print('give50')
request -= 50
elif request >= 10:
print('give10')
request -= 10
elif request >= 5:
print('give5')
request -= 5
elif request > 0 :
print('give' , request)
request=0
else:
print("Your request is not valid")
atm1=ATM("barakeh",10000)
atm1.withdraw(4054)
class ATM:
def __init__(self, bank_name, balance):
self.bank_bame = bank_name
self.balance = balance
def withdraw(self, request):
print("Current balance = ", 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:
while request > 0:
if request >= 100:
request -= 100
print("give 100")
elif request >= 50:
request -= 50
print("give 50")
elif request >= 10:
request -= 10
print("give 10")
elif request >= 5:
request -= 5
print("give 5")
elif request < 5:
print("give " + str(request))
request = 0
result = self.balance - request
return result
balance1 = 500
balance2 = 1000
atm1 = ATM(balance1, "Samba Bank")
atm2 = ATM(balance2, "Ryadh Bank")
atm1.withdraw(700)
atm1.withdraw(300)
atm2.withdraw(500)
atm2.withdraw(250)
print(balance)
كود مضبوط
جيد ندى ولكن انتبهي الى بعض الملاحظات :
في داله init
راعي دائما الترتيب في كتابة المعاملات عند استدعاء الدالة
atm1 = ATM(balance1, "Samba Bank")
هنا كتبت balance قبل bank_name والصحيح ان يكون نفس ترتيب كتابتهم في داله init
atm1 = ATM("Samba Bank", balance1)
أيضا انتبهي الى indentation وهي المسافات المتروكة للكود داخل البلوك
في دالة withdraw
def withdraw(self, request):
print("Current balance = ", 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!")
بمعنى ان يكون الكود الخاص بالداله داخلها بمسافه واحده اوي 4 مسافات وكل الكود يكون بنفس الطريقه
أيضا return result
المفروض يتم تفيذها بعد الحلقه اي خارج while loop
قومي بالتعديل ومعك اذا في اي استفسار
class ATM:
def __init__(self,balance,bank_name):
self.balance=balance
self.bank_name=bank_name
def withdraw(self,request):
print("Current balance = ", 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:
while request > 0:
if request >= 100:
request -= 100
print("give 100")
elif request >= 50:
request -= 50
print("give 50")
elif request >= 10:
request -= 10
print("give 10")
elif request >= 5:
request -= 5
print("give 5")
elif request < 5:
print("give " + str(request))
request = 0
result = self.balance - request
return result
balance1=300
balance2=2000
a1=ATM(balance1,"cack bank")
a2=ATM(balance2,"al_korime")
a1.withdraw(500)
a1.withdraw(175)
a2.withdraw(1300)
a2.withdraw(291)
عمل جميل يا yaznhassen
صباح الخير لكم جميعا
money = 500
print("your balance", money)
# withdraw function
def withdraw(request):
if request > money :
print(" deposite more money into your account")
elif request < 0:
print("more than zero please")
else:
while request > 0:
if request >= 100:
request = request - 100
print("give 100")
elif request >= 50:
request = request - 50
print("give 50")
elif request >= 10:
request = request - 10
print("give 10")
elif request >= 5:
request = request - 5
print("give 5")
elif request < 5:
print("give " + str(request)) # str for change the int to string
request = 0
print("-----------")
return request
# end of the withdraw function
withdraw(277)
withdraw(100)
withdraw(125)
عمل اكثر من ATM
money = 500
print("your balance", money)
class ATM:
# init
def __init__(self,money,bank_name):
self.money = money
self.bank_name = bank_name
# withdraw function
def withdraw(self, request):
print("Current Balance: ", self.money)
result = money
if request > self.money:
print(" deposite more money into your account")
elif request < 0:
print("more than zero please")
else:
while request > 0:
if request >= 100:
request = request - 100
print("give 100")
elif request >= 50:
request = request - 50
print("give 50")
elif request >= 10:
request = request - 10
print("give 10")
elif request >= 5:
request = request - 5
print("give 5")
elif request < 5:
print("give " + str(request)) # str for change the int to string
request = 0
result = self.money - request
return result
# objects
customer1 = 1000
customer2 = 500
customer3 = 0
atm1 = ATM(customer1, "Ahli")
atm2 = ATM(customer2,"SABB")
atm3 = ATM(customer3, "Rajhi")
atm1.withdraw(277)
atm2.withdraw(300)
atm3.withdraw(100)
class ATM :
def __init__(self,balance,bank_name):
self.balance=balance
self.bank_name=bank_name
def widthraw(self,request):
print(self.bank_name,'current balance=',self.balance,'$')
result=self.balance
if request > self.balance :
print('')
elif request < 0 :
print('')
else :
while request > 0 :
if request >= 100 :
request-=100
print('give 100$')
if request >= 50 :
request-=50
print('give 50$')
elif request >= 10 :
request-=10
print('give 10$')
elif request >= 5 :
request-=5
print('give 5$')
elif request < 5 :
print("give " + str(request))
request = 0
result = self.balance - request
print('')
return result
balance1=500
balance2=1000
atm1 = ATM(balance1,"Smart_bank")
atm2 = ATM(balance2,"Taslef_bank")
atm1.widthraw(100)
atm1.widthraw(300)
atm2.widthraw(100)
atm2.widthraw(800)
class ATM:
def __init__(self, balance, bank_name):
self.balance = balance
self.bank_name = bank_name
def give(self, request):
if request > self.balance:
print("Can't give you all this money !!")
elif request < 0:
print("More than zero plz!")
else:
while request > 0:
if request >= 100:
request -= 100
print("give 100")
elif request >= 50:
request -= 50
print("give 50")
elif request >= 10:
request -= 10
print("give 10")
elif request >= 5:
request -= 5
print("give 5")
elif request < 5:
print("give " + str(request))
request = 0
def withdraw(self, request):
print(f"your bank is {self.bank_name}")
print("Current balance = ", self.balance)
result = self.balance
self.give(request)
result = self.balance - request
return result
atm1 = ATM(700, "baraka bank")
atm1.withdraw(185)