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

مرحباً جميعاً

المهمة المطلوبة

بإمكانك الإطلاع على المهمة المطلوبة من هنا

كيفية كتابة الأكواد في المنتدى

  • إذا كان لديك كيبورد فرنسي, اضغط على alt gr و 7 لكتابة الرمز `

3 Likes
balance = 500
def withdraw(balance, request):
	print(balance)
	if request <= balance:
		if request > 0 :
			while request > 0 :
				if request >= 100 :
					request -= 100
					balance -= 100
					print("give 100")

				elif request < 100 and request >= 50 :
					request -= 50
					balance -= 50
					print("give 50")

				elif request < 50 and request >= 10 :
					request -= 10
					balance -= 10
					print("give 10")

				elif request < 10 and request >= 5 :
					request -= 5
					balance -= 5
					print("give 5")

				else:
					balance -= request
					print("give",request)
					break
		else:
			print("please try again")
	else:
		print("not enough money")
	return balance
	


balance = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance= withdraw(balance, 5)
balance = withdraw(balance, 500)
Summary

This text will be hidden

1 Like
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:
        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 = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)
1 Like

عمل رائع :+1:

كان بإمكانك اختصار السطر balance -= وكتابته في مكان واحد :wink:

1 Like

عمل جميل !

هل انت متاكد من تغيير الرصيد في كل عملية سحب ؟

شكراً مهندس
لقد رأيت الحل الذي قدمته في الفيديو
منك نتعلم :grinning:

1 Like

صراحة لا

1 Like

لاحظ مالذي تقوم هذه الأسطر في أكواد Yahya:

balance -= 100
1 Like

def withdraw(balance , request):

	print("balance: " + str(balance))

	if balance < request:
		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")

			else:
				request -= 5
				print("give 5")
 
	return balance
2 Likes

السلام عليكم
اليكم محاولتي

balance = 500
blacknotes = [100, 50, 10, 5]
def withdraw(balance, request):
    if request > balance:
        print('Sorry! You have\'nt enough money')

    elif request < 0:
        print("More than zero plz!")

    else:
        print('Your balance is: '+str(balance))
        while request > 0:
            if request >= blacknotes[0]:
                print('give '+str(blacknotes[0]))
                request-= blacknotes[0]
            elif request < blacknotes[0] and request >= blacknotes[1]:
                print('give '+str(blacknotes[1]))
                request-= blacknotes[1]
            elif request < blacknotes[1] and request >= blacknotes[2]:
                print('give '+str(blacknotes[2]))
                request-= blacknotes[2]
            elif request < blacknotes[2] and request >= blacknotes[3]:
                print('give '+str(blacknotes[3]))
                request-= blacknotes[3]
            elif request < blacknotes[3]:
                print('Can\'t give blacknote of: '+str(request))
                break
            balance-= request
        print('New balance = '+ str(balance))
    return balance

balance = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)
1 Like

السلام عليكم ورحمة الله وبركاته
هذه محاولتي

def withdraw(balance, money):
    r = int(input("Enter your request, plz :"))
    money = r
    result = balance
    if money > balance:
        print("Sorry we have not enough money!")
    elif money < 0:
        print("Please , the number should be greater than zero ")
    else:
        result = balance - money
        print("Yes , just seconds.....")
        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


balance = 1000

balance = withdraw(balance, 200)
balance = withdraw(balance, 200)
balance = withdraw(balance, 100)
print(balance)
1 Like

حل مضبوط ونظيف :+1:

1 Like

عمل جميل يا عادل :+1:

بالنسبة للسطر:

balance-= request

هل أنت متأكد من مكانه ؟
hint: watch debugging video :wink:

بما أنك استعملت list
ما رأيك تستعمل for loop على هذه القائمة ثم تقوم بالحصول على باقي القسمة باستعمال modulus operator:

5 % 2 = 1
4 % 2 = 0
250 % 100 = 50

حل رائع :+1:

ماهي فائدة المتغير r ؟

    r = int(input("Enter your request, plz :"))
    money = r

هل بإمكانك استعمل سطر واحد بدلاً من السطرين ؟

السلام عليكم ورحمة الله وبركاته
لاني حبيت اجعله اكتر تفاعلية
وطبعا حاولت اعدل في الدالة بحيث تقبل الارقام المدخلة لها فقط ما نفع
فاكتفيت باضافة

بس هي تعمل تاخذ من المستخدم الارقام وايضا اذا لم يدخل ارقام تعمل بالارقام الموجودة في استدعائها
وسأحاول ان اعدلها بحيث تقبل الارقام من المستخدم فقط؟ ودي مهمة بالنسبة لي مش سهلة ابدا!!

1 Like

ما اقصد انه يمكن كتابة

money = int(input...

وبهذا نتخلص من المتغير r

1 Like

تم التعديل
شكرا لحضرتك
هو ممكن يكتفي البرنامج بالارقام المدخلة من المستخدم فقط ؟

1 Like

نعم والدالة int تضمن انه يدخل فقط ارقام

balance = 500
blacknotes = [100, 50, 10, 5]
def withdraw(balance, request):
    if request > balance:
        print('Sorry! You have\'nt enough money')

    elif request < 0:
        print("More than zero plz!")

    else:
        print('Your balance is: '+str(balance))
        balance -= request
        while request > 0:
            if request >= blacknotes[0]:
                print('give '+str(blacknotes[0]))
                request-= blacknotes[0]
            elif request < blacknotes[0] and request >= blacknotes[1]:
                print('give '+str(blacknotes[1]))
                request-= blacknotes[1]
            elif request < blacknotes[1] and request >= blacknotes[2]:
                print('give '+str(blacknotes[2]))
                request-= blacknotes[2]
            elif request < blacknotes[2] and request >= blacknotes[3]:
                print('give '+str(blacknotes[3]))
                request-= blacknotes[3]
            elif request < blacknotes[3]:
                print('Can\'t give blacknote of: '+str(request))
                break

        print('New balance = '+ str(balance))
    return balance

balance = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)
balance = 500
blacknotes = [100, 50, 10, 5]
def withdraw(balance, request):
    if request > balance:
        print('Sorry! You have\'nt enough money')

    elif request < 0:
        print("More than zero plz!")

    else:
        print('Withdraw: ' , request)
        print('Your balance is: ' + str(balance))

        for blacknote in blacknotes:
            while request >= blacknote:
                print('give ' + str(blacknote))
                request -= blacknote
                balance -= blacknote
        if request % 5 != 0:
            print('give ' + str(request) + ' pieces')
            balance -= request
            request = 0


        print('New balance = '+ str(balance))
    return balance

balance = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)

شكرا جزيلا أستاذنا الغالي @yaserAlnajjar

1 Like

أصبح الكود رائع جداً يا عادل … well done :wink:

1 Like