شكرا أستاذنا الغالي
def withdraw(balance, request):
if balance<request:
print("لا يوجد رصيد كافِ للتسديد")
return balance
elif request<=0:
print("يرجى ادخال قيمة ")
return balance
else:
result=balance-request
while request >= 100:
request =request-100
print("give 100")
while request<100 and request>=50:
request=request-50
print ("give 50")
while request<50 and request>=10:
request=request -10
print("give 10")
while request<10 and request>=5:
request=request-5
print("give 5")
if request!=0:
print ("give "+str(request))
return result
balance = 500
balance = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance = withdraw(balance, 0)
balance = withdraw(balance, 500)
رائع جداً يا صهيب… ما رأيك بجعل المتغير result يحتوي على القيمة الراجعة وارجاعه في نهاية الدالة بدل استعمال أكثر من return
here is my code after a little bit of searching
money = 500
allowed1 = [50, 100, 10, 5]
allowed = sorted(allowed1,key=int,reverse=True)
def withdraw(balance,request):
print('you have', balance,'in there :D')
if request <=balance:
while request > 0:
for i in allowed :
while request >= i:
print ('give',i)
request -= i
balance -= i
print ('give',request)
request -= request
return balance
else:
print('Sorry, no enough money')
return balance
money = withdraw(money,277)
عمل منظم ورائع
بإمكانك استعمال نفس المتغير في السطرين:
allowed1 = [50, 100, 10, 5]
allowed = sorted(allowed1,key=int,reverse=True)
لتصبح:
allowed = [50, 100, 10, 5]
allowed = sorted(allowed, key=int, reverse=True)
مرحبا استاذي هذي محاولتي هل أنا صحيحة
لقد لاحظت اني الوحيدة التي استعملت القيمة val لحفظ القيمة الأولية لـ request لان الدالة تقوم بتغيير قيمتها الأولية وهذا من أجل الحصول على قيمة الباقي من الرصيد أي return balance-val ما ؤايك استاذ
balance = 500
val = 0
def withdraw(balance, request):
val = request
print("the balance is",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-val
balance = withdraw(balance, 277)
print("a new balance is :",balance)
balance = withdraw(balance, 30)
print("a new balance is :",balance )
balance = withdraw(balance, 5)
print("a new balance is :",balance )
balance = withdraw(balance, 500)
print("a new balance is :",balance )
عمل رائع… لكن يوجد حل بدون الإحتفاظ بقيمة المتغير, هل بإمكانك اكتشافه
ما اظن راح القاه استاذ ياسر ياريت تساعدني
ثانيا حبذا لو تعملنا درس خاص حول الكلاس والابجكت object مع بعض التمارين لأننا المبتدئين يصعب علينا فهمها جيدا وبارك الله فيك
الأمر سهل, قبل البدء بعملية تغيير الـ request بإمكانك إضافة السطر هنا:
else:
result = balance-val
while request > 0:
if request >= 100:
request -= 100
...
return result
الدروس القادمة حول الـ OOP فيها بعض المفاهيم, طبقي الورشات حولها.
شكرا
def withdraw(balance,request):
# allowed papers: 100, 50, 10, 5, and cents
remain=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
print('------------------------------------------')
return remain
balance = 500
balance = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)
عمل رائع يا محمد
فقط بالنسبة للمتغير remain, نتيجته ممكن تكون بالسالب لو كان request أكبر من balance, ما رأيك كيف يمكن حلها ؟
مثال جرب هذا:
x = withdraw(500, 700)
print(x)
balance = 1000
money=0
def withdraw(balance, money):
money = int(input("Enter your request, please :"))
result = balance
if money > balance:
print("Sorry we have not enough money!")
else:
result = balance - money
while money > 0:
if money >= 100:
money -= 100
print("give 100")
elif money >= 50:
money -= 50
print("give 50")
elif money >= 10:
money -= 10
print("give 10")
elif money >= 5:
money -= 5
print("give 5")
elif money < 5:
print("give " + str(money))
money = 0
return result
while(money<balance):
balance = withdraw(balance, money)
- قائمة العناصر
عمل ممتاز يا فوزي
mony=500
request=277
def withdraw(mony , request):
print(mony)
new_balance=mony-request
print(new_balance)
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 >=2 :
request = request-2
print("give 2")
else:
print("no found else..")
withdraw(500,277)
باستخدام return
mony=500
request=277
def withdraw(mony , request):
print(mony)
#new_balance=mony-request
#print(new_balance)
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 >=2 :
request = request-2
print("give 2")
return mony-request
withdraw(500,277)
عمل رائع يا امنية
ماذا لو قمنا بعمل
x=withdraw(200, 300)
ماهي قيمة x؟ وهل هي مقبولة؟
تجنب النسخ واللصق باستخدام الدوال
papers=[100,50,10,5,2]
while request > 0:
if request > balance :
print(" can't give you all this money !!")
break
for i in papers:
if request >= i:
print('give' +' '+ str(i))
request+=1
balance-=i
request-=i
if not request==0 :break
request-=1
print('Your Balance Is'+' '+ str(balance))
return balance
balance = 500
balance = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)
بعد التعديل
mony=500
request=277
def withdraw(mony , request):
print(mony)
#new_balance=mony-request
#print(new_balance)
while request<=mony:#التعديل
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 >=2 :
request = request-2
print("give 2")
return mony-request
withdraw(500,277)
ما زلت أنتظر التعديلات التي تكلمنا حولها في المهمة السابقة في الدالة يا أحمد