عمل رائع يا يوسف
مساعده لحل اخطاء
money = 500
def bank( money,request):
print(money)
try:
request = input('how much:')
request = int (request)
if request <= money:
if request > 0:
while request > 0:
if request >= 100:
request -= 100
print("donner 100")
elif request < 100 and request >= 50:
request -= 50
print("donner 50")
elif request < 50 and request >= 10:
request -= 10
print("donner 10")
elif request < 10 and request >= 5:
request -= 5
print("donner 5")
else:
print("donner" , request)
break
else:
print("impossible de retirer ",request,"$ veuillez réessayer")
else:
print("votre solde est insuffisant pour effectuer cette operation. veuillez recharger votre compte")
return money
except ValueError:
bank( money,277)
count = 0
while count < 1000:
bank(money,request)
count += 1
مساعده فى الخطاء
بإمكانك متابعة النقاش والأسئلة حول الموضوع هنا:
-كنت اريد ان يسحب من المكنه 1000 شخص
- وكنت هرفع راس المال
- سمحنى ان نظرت لكن الاجابه تتاخر ف جروب انا اريد انا اتعلم سريعا وانا عندما انظر اتعلم ماذا فعل لكى اكتسب الخبره هل هذا صحيح ؟
كنت اريد برنامج يشبه المنحه
balance = 500
def withdraw(balance, request):
x=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-=x
return balance
balance = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)
balance = withdraw(balance, 500)
money = 500
def withdraw ( money , request ) :
x = request
if money < request :
print( " sorry there is not enough money " , " عذرا لا يوجد مال كافي " )
else:
while request >= 100 :
print( " give 100 " )
request -= 100
while request >= 50 :
print ( " give 50 " )
request -= 50
while request >= 10 :
print ( " give 10 " )
request -= 10
while request >= 5 :
print ( " give 5 " )
request -= 5
if request > 0 :
print ( " give " + str ( request ) )
request = 0
money -= x
return money
money = withdraw ( money , 277 )
money = withdraw ( money , 30 )
money = withdraw ( money , 5 )
money = withdraw ( money , 500 )
عمل جميل جدا يا نور الدين
def withdrow(money,request):
if request>money:
print("the money not enough")
elif request<0:
print("Not Avaluable")
else :
while request>0:
if request>=100:
request-=100
print("out=100")
elif request>=50:
request-=50
print("out=50")
elif request>=10:
request-=10
print("out=10")
elif request>=5:
request-=5
print("out=5")
else :
print("error")
return money - request
money=500
request=275
money=withdrow(money,275)
money=withdrow(money,30)
money=withdrow(money,5)
money=withdrow(money,500)
عمل جميل جدا يا NorElhoda91.
ملاحظة بسيطة: لاحظ ان البرنامج لا يقوم بإنقاص القيمة المسحوبة من الرصيد الاصلي يعني يسحب 275 و 30 و 5 من المفروض لما تصل الى المبلغ 500 يقول لك بان رصيدك غير كافي، لكنه يقم بسحب 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:
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 >= 1:
request -= 1
print("give 1")
return balance-request
balance=500
balance = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)
يبدو انك لاحظت المشكلة التي اواجهها لايتم اكمال عمليات السحب
السطر return balance-request يجب ان يكون في نفس المستوى مع while.
سويتها
صار ماينقص من الbalance
ذهبت الى درس التنقيح
وتم حل المشكله
بالتوفيق اخي
def withdraw(balance , request):
if request > balance:
print("Sorry !! you can't have many ")
elif request < 0 :
print("oops !? Add another zero to complete the request")
else:
print("your pleance :" , str(balance))
balance = balance -request
while request > 0:
if request >=100 :
request -=100
print("100")
elif request >=50:
request -=50
print("50")
elif request >=10:
request -=10
print("10")
else:
request -=5
print("5")
return balance
balance =500
balance = withdraw(balance, 300)
balance = withdraw(balance, 200)
balance = withdraw(balance, 400)
balance = withdraw(balance, 150)
عمل جميل يا BassamMsmar
ملاحظة بسيطة: لو تحاول سحب مبلغ 177 النتيجة تكون هكذا:
100
50
10
10
5
5
يعني سيمنحك 180 لأنك لم تمنح فرصة سحب قيمة اقل من 5.
بالتوفيق
هلا ؛
قمت بعمل الحل باستخدام دالتين withdraw1 و withdraw
أحدههم تستخدم الـ array لتجنب تكرار جمل الشرط المستخدم في اختبار فئة العملة المنصرفة ؛
والاخرى مع جمل شرط متكررة حسب فئة العملة.
الكود :-
balance = 700
papers=[100, 50, 10, 5,4,3,2,1]
def withdraw(balance, request):
if balance < request :
print('Sorry, you are try withdraw: {0}, but Your balance just : {1}'.format(request, balance))
else:
print ('your balance >>', balance)
orgnal_request = request
while request > 0:
for i in papers:
while request >= i:
print('give', i)
request-=i
balance -= orgnal_request
return balance
def withdraw1(balance, request):
give = 0
if balance < request :
print('Sorry, you are try withdraw: {0}, but Your balance just : {1}'.format(request, balance))
else:
print ('your balance >>', balance)
balance -= request
while request > 0:
if request >= 100:
give = 100
elif request >= 50:
give = 50
elif request >= 10:
give = 10
elif request >= 5:
give = 5
else :
give = request
print('give',give)
request -= give
return balance
balance = withdraw(balance, 777)
balance = withdraw(balance, 276)
balance = withdraw1(balance, 276)
balance = withdraw(balance, 34)
balance = withdraw1(balance, 5)
balance = withdraw1(balance, 500)
ونتيجة تشغيل التطبيق هي :
Sorry, you are try withdraw: 777, but Your balance just : 700
your balance >> 700
give 100
give 100
give 50
give 10
give 10
give 5
give 1
your balance >> 424
give 100
give 100
give 50
give 10
give 10
give 5
give 1
your balance >> 148
give 10
give 10
give 10
give 4
your balance >> 114
give 5
Sorry, you are try withdraw: 500, but Your balance just : 109
…
balence=500
def sahb(balence,requaset):
if balence<requaset:
print(“we dont have this some”)
elif requaset<0:
print(“please check you code”)
else:
return balence-requaset
while requaset>0:
if requaset>=100:
requaset-=100
print(“give 100”)
elif requaset>=50:
requaset-=50
print(“give 50”)
elif requaset>=10:
requaset-=10
print(“give 10”)
elif requaset >=5:
requaset-=5
print(“give 5”)
elif requaset<5:
requaset=0
print(“give”+ str(requaset))
return balence
balence=sahb(balence,300)
balence=sahb(balence,200)
balence=sahb(balence,0)
…المحافظة على التنسيق
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, 30)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)
لماذا اذا وضعت balance = 500
في الاعلى يطلع Error
واذا وضعتها في الاسفل تعمل ؟!!
عمل جميل يا alaa_aimen
ملاحظة بسيطة:
return balence-requaset هذا السطر البرمجي يوقف تنفيذ البرنامج لأن دالة return معناه ارجاع نتيجة تنفيذ الكود و يكون عادة في آخر الدالة.
كما انك لم تضع احتمال القيمة اقل من 5 مثلا لو تسحب المبلغ 277 سيمنحك 275 و يبقى 2 لا تسحب.
من فضلك قم بتنسيق الكود في المهام القادمة و هذا باتباع الفيديو من الرابط التالي: