مشاركة حلول: تجنب النسخ واللصق باسخدام الدوال

عمل رائع يا يوسف :+1:

1 Like

مساعده لحل اخطاء

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

مساعده فى الخطاء

1 Like

بإمكانك متابعة النقاش والأسئلة حول الموضوع هنا:

-كنت اريد ان يسحب من المكنه 1000 شخص

  • وكنت هرفع راس المال
  • سمحنى ان نظرت لكن الاجابه تتاخر ف جروب انا اريد انا اتعلم سريعا وانا عندما انظر اتعلم ماذا فعل لكى اكتسب الخبره هل هذا صحيح ؟
    كنت اريد برنامج يشبه المنحه
1 Like
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)
2 Likes
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 )
2 Likes

عمل جميل جدا يا نور الدين

1 Like
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)
2 Likes

عمل جميل جدا يا NorElhoda91.
ملاحظة بسيطة: لاحظ ان البرنامج لا يقوم بإنقاص القيمة المسحوبة من الرصيد الاصلي يعني يسحب 275 و 30 و 5 من المفروض لما تصل الى المبلغ 500 يقول لك بان رصيدك غير كافي، لكنه يقم بسحب 500 ايضا.

1 Like
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)

%D8%A8%D8%AF%D9%88%D9%86%20%D8%B9%D9%86%D9%88%D8%A7%D9%86

يبدو انك لاحظت المشكلة التي اواجهها لايتم اكمال عمليات السحب

2 Likes

السطر return balance-request يجب ان يكون في نفس المستوى مع while.

2 Likes

سويتها
صار ماينقص من الbalance
%D8%A8%D8%AF%D9%88%D9%86%20%D8%B9%D9%86%D9%88%D8%A7%D9%86

2 Likes

ذهبت الى درس التنقيح
وتم حل المشكله

2 Likes

بالتوفيق اخي

2 Likes
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)
2 Likes

عمل جميل يا BassamMsmar
ملاحظة بسيطة: لو تحاول سحب مبلغ 177 النتيجة تكون هكذا:

100
50
10
10
5
5

يعني سيمنحك 180 لأنك لم تمنح فرصة سحب قيمة اقل من 5.
بالتوفيق

1 Like

هلا ؛
قمت بعمل الحل باستخدام دالتين withdraw1 و withdraw :upside_down_face:
أحدههم تستخدم الـ 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)

ونتيجة تشغيل التطبيق هي :blush: :

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
1 Like


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)
المحافظة على التنسيق

2 Likes
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
واذا وضعتها في الاسفل تعمل ؟!!

2 Likes

عمل جميل يا alaa_aimen
ملاحظة بسيطة:
return balence-requaset هذا السطر البرمجي يوقف تنفيذ البرنامج لأن دالة return معناه ارجاع نتيجة تنفيذ الكود و يكون عادة في آخر الدالة.
كما انك لم تضع احتمال القيمة اقل من 5 مثلا لو تسحب المبلغ 277 سيمنحك 275 و يبقى 2 لا تسحب.
من فضلك قم بتنسيق الكود في المهام القادمة و هذا باتباع الفيديو من الرابط التالي:

1 Like