عمل جميل جدا اخي خير الدين، اتبع رابط الفيديو الذي ارسلته لك امس لتنسيق الكود.
بارك الله فيك
لاحظت مشاركتك الآن يا اسراء
المشكلة بسيطة جداً، لاحظي أنك تقومي في الأخير بعمل return balance - request، لكن وقتها تكون قيمة request صفر لأنه تم سحب كل المبلغ منه خلال حلقة while
الحل هو جعل الدالة بهذا الشكل:
def withdraw(balance, request):
result = request
if request < balance:
result = balance - request
while request>0:
if request>=100:
...
return result
الكود بهذا الشكل يحتفظ بقيمة request في متغير آخر اسمه result
لو الطلب مناسب (request < balance)، يقوم بإنقاص القيمة في السطر result = balance - request
وفي الأخير يرجع result
لو هناك أي شيء غير واضح، أخبريني وسأكون سعيد بتوضيحه
شكرا لك يا استاذ
هذا صحيح سوف اجربها واخبرك اذا كانت هناك مشكلة
def withdraw(balance, request):
print(balance)
if request > 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
return balance
balance = 500
balance = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)
def withdraw (balance,request):
if request > balance:
print("Can't give you all this money !!")
elif request < 0:
print("More than zero plz!")
else:
balance=balance-request
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))
request = 0
return balance
balance=500
balance=withdraw (balance,277)
print(balance)
balance=withdraw (balance,125)
print(balance)
balance=withdraw (balance,600)
print(balance)
balance=withdraw (balance,-10)
print(balance)
جميل جدا يا خير الدين
ملاحظة بسيطة: لاحظ ان البرنامج لا يطبع قيمة الرصيد الاولي.
البرنامج يظهر خطء , الخطء فى قيم المتغيرات مع الشرح ل if elif else
def withdraw(balance, request):
if request > 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
balance = 500
balance = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)
عمل جميل اخي عبد الله
الخطأ أن قيمة المتغير balance غير معروفة في العملية الثانية
balance = withdraw(balance, 30)
يعني انه امامك حلين
اما ان تقوم بمنح المتغير balance قيمة قبل كل عملية هكذا
balance = 500
balance = withdraw(balance, 277)
balance = 500
balance = withdraw(balance, 30)
balance = 500
balance = withdraw(balance, 5)
balance = 500
balance = withdraw(balance, 500)
و هذا الامر غير مقبول لأن فيه نسخ و لصق
الحل الثاني تضع في نهاية الدالة الامر
return balance
و هذا الامر يعيد قيمة المتغير balance
هناك امر آخر
لاحظ ان القيمة balance لا تتغير يعني انك لم تنقص قيمة request من القيمة الاصلية للرصيد balance.
بالتوفيق
def withdraw(balance, request):
# allowed papers: 100 , 50 , 10 , 5 , and cents
print('current balance= ', balance)
result = balance
if request > balance:
print('cant give you all this money !')
elif request < 0:
print('more then zero plz!')
else:
result = balance - request
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
return result
balance = 500
balance = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)
سامحونى على الاطالة لكنى اعمل والوقت غير كافى.
@makhlouf
def withdraw(balance, request):
if request > 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
return balance
balance = 500
balance = withdraw(balance, 277)
balance = withdraw(balance, 10)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)
هكذا اكثر من المطلوب
give 100
give 100
give 50
give 10
give 10
give 5
give 2
give 10
give 5
give 100
give 100
give 100
give 100
give 100
عمل رائع اخي abdallahmiri.
balance=500
def withdraw(balance,request):
print("your balace is:",balance)
if request>balance:
print("can't give you all this money!!")
elif request<0:
print("More than zero plz")
else:
balance=balance-request
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-=request
request=0
print("the remaining balance is:",balance)
return balance
balance=withdraw(balance,277)
balance=withdraw(balance,30)
balance=withdraw(balance,5)
withdraw(balance,500)
جميل جدا امال
def withdraw(balance , request):
if request > balance:
print("cant give it")
elif request <0:
print("more plz")
else:
newbalance = balance - request
print(newbalance)
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
return newbalance
balance = 500
balance = withdraw(balance, 277)
عمل جيد أمينة
لكن في حال قمنا بعمل:
balance = 500
balance = withdraw(balance, 700)
ماهي قيمة balance ؟
#App: ATM card program
# Author: Fadi Rustom
balance=500
# Definition of Function
def withdraw(request, balance, i=1):
if request > balance:
print("أدخل مبلغاً أقل لأن رصيدك حاليا",balance,"$")
else :
while request >0:
if request > 99:
print(i, " Give 100$")
request -= 100
elif request > 49:
print(i, " Give 50$")
request -= 50
elif request > 9:
print(i, " Give 10$")
request -= 10
elif request > 4:
print(i, " Give 5$")
request -= 5
else:
if i < 5:
print(i, " Giv 1$")
request -= 1
else:
print(i, " Give ", request, " $")
request -= i
i += 1
balance -= request
return balance
print ( "Req1 ")
request=int(input("أدخل المبلغ المراد سحبه"))
balance = withdraw(request,balance)
print ( "Req2 ")
request=int(input("أدخل المبلغ المراد سحبه"))
balance = withdraw(request,balance)
print ( "Req3 request= 99")
balance = withdraw(99,balance)
print ( "Req4 ")
balance = withdraw(139,500)
عمل رائع يا فادي … انتقل للمهمة التالية
def verifying(pin):
# todo varification PIN code.
if pin == '1234':
return True
else:
return False
def login():
# todo a multible login (4 as maximam)
tries = 0
while tries < 4:
pin = input('Please Enter Your 4 Digit Pin: ')
if verifying(pin):
print(" Welcome ! ")
return True
else:
print("Invalid pin")
tries += 1
print("Too many incorrect tries. couldn't login")
return False
# allowed papers: 100, 50, 10, 5, and rest of request
def withdraw(money, request):
# Todo function for allowed papers requests
while request > 0:
if request > money:
print("Sorry, this account is out of amount !")
break
elif request >= 100:
request -= 100
print('export 100')
elif request >= 50:
request -= 50
print('export 50')
elif request >= 10:
request -= 10
print('export 10')
elif request >= 5:
request -= 5
print('export 5')
elif request < 5:
print('rest', request)
request -= request
return money - request
def main():
print("Welcome to the atm!")
if login():
balance1 = 500
balance1 = withdraw(money=balance1, request=int(input('enter the withdraw..:')))
balance1 = withdraw(money=balance1, request=int(input('enter the withdraw..:')))
print('done..')
main()