شكرا لكم على هذه المنصة الرائعة، عند وصولي دروس الكلاس والاوبجكت اصبحت اشعر بعدم الفهم واستيعاب كل شيء، حتى وإن حللت التمارين سيكون حفظ بدون فهم هل سيكون هناك توضيحات لاحقة عن ذلك لاحقاً، بخصوص ريتورن أو سيلف وما شابه، مثلا لماذا يجب أن يكون سيلف اول عنصر وهكذا
أعتذر منك يا خالد على التأخر بالرد…
لا تقلق، الأمر عادي جدا كونها مفاهيم جديدة
نعم يوجد توضيحات لاحقة، وأيضا لو يوجد أي سؤال محدد ضعه هنا أو في موضوع منفصل في المنتدى (سؤال)، وسيتم إيضاح كل شيء
بإمكانك اختيار اي اسم اخر بدل self، مثلا x أو this
لكن احسب حساب أن المتغير الأول يشير إلى الـ object نفسه،
يعني لو تريد الدخول على قيمة الـ balance داخل الصراف الآلي نفسه تكتب self.balance… هذه هي فكرة الاوبجكت والكلاس أن كل اوبجكت تقدر تعدل بياناته لوحده
شكرا لردك اخ ياسر،
يعني مثل this اللي في php والفرق أنه في هنا لازم نعرفها صح
بالضبط، المهم هو معرفة البرمجة ككل… أما طريقة الكتابة (أو ما يعرف بـ syntax) لغات البرمجة يخلتف من لغة إلى أخرى
def kd (bla, req):
if bla ==0:
print("مافي فلوس ")
if req>bla:
print("plz again no maony enough ")
elif req <0 :
print("are you kidning me ???")
else:
while req >0:
if req >=100:
req -=100
print("give 100")
elif req >=50:
req -=50
print("give 50")
elif req >=10:
req -=10
print("give 10")
elif req >=5:
req -= 5
print("give 5")
elif req <5:
print("give"+str(req))
req =0
return req-bla
bla = 500
kd(bla,300)
kd(bla,245)
kd(bla,50)
kd(bla,100)
عمل جيد يا محمد
بالنسبة لتنسيق الأكواد أرجوا أن تطلع على الطريقة هنا:
أيضا جرب الكود:
bla = 500
kd(bla,300)
kd(bla,300)
المطلوب هو 600، لكن الرصيد 500… مع ذلك سيقوم بقبول العمليتين
ماهو الحل برأيك؟
نخصم من الرصيد ميه في كل عملية صح؟
بحاول احلها ببايثون
لا، الحل المناسب هو تعديل الرصيد خلال كم عملية حسب القيمة الراجعة:
bla = 500
bla = kd(bla,300)
bla = kd(bla,300)
from random import randint
def withdraw():
balance = randint(-10, 1000)
request = randint(-10, 1000)
requested = 0
if balance <= 0:
print('Your balance does not enough!')
elif request <= 0:
print('Please enter an valid amount.')
elif request > balance:
print("Can't give you all this money !!")
else:
print('your balance is: ', balance, '\nyour request is: ', request)
while request > 0:
if request >= 100:
request -= 100
requested += 100
print("give 100 Dollar(s)")
elif request >= 50:
request -= 50
requested += 50
print("give 50 Dollar(s)")
elif request >= 20:
request -= 20
requested += 20
print("give 20 Dollar(s)")
elif request >= 10:
request -= 10
requested += 10
print("give 10 Dollar(s)")
elif request >= 5:
request -= 5
requested += 5
print("give 5 Dollar(s)")
elif request >= 2:
request -= 2
requested += 2
print("give 2 Dollar(s)")
elif request >= 1:
request -= 1
requested += 1
print("give 1 Dollar(s)")
print('new balance is: ', (balance - requested))
withdraw()
مرحبا اخي الكود شبه صحيح بس مطلوب في المهمه استعمال بارامترات balance و request يعني نريد المستخدم هو يدخل البيانات وليس جلبهم عشوائيا.
عدل الكود وابعت من جديد هنا
اعلم لكن أردت أن يعطيني الكود مخرجات مختلفة
اهاا هكذا معك حق
مشاركتـــي:
balance=500
def withdraw(balance , request):
print("your 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
balance -= 100
print("give 100")
elif request >= 50:
request -= 50
balance -= 50
print("give 50")
elif request >= 10:
request -= 10
balance -= 10
print("give 10")
elif request >= 5:
request -= 5
balance -= 5
print("give 5")
elif request < 5:
print("give " + str(request))
balance -= request
request = 0
print("the rest is: ",balance-request,"$")
return balance
balance=withdraw(balance,277)
balance=withdraw(balance,50)
balance=withdraw(balance,5)
balance=withdraw(balance,8)
balance=withdraw(balance,120)
````
عمل رائع يا هشام
**مهمة تجنب النسخ واللصق باستخدام الدوال **
سحب اربع مبالغ على التوالى من اجمالى رصيد 500 وطباعة المبلغ المتبقى من الاجمالى فى كل مرة سحب
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 " , request)
request = 0
break
req = [252, 50, 87, 105 ]
for r in req:
withdraw(balance, r)
balance -= r
print("The rest of the balance", ":" , balance)
def withdraw(money,request):
if request <= 0:
print("input valid value")
elif request > money:
print('no enough money')
else:
while request > 0:
if request >= 100:
print('give100')
request -= 100
elif request >= 50:
print('give50')
request -= 50
elif request >= 10:
print('give10')
request -= 10
elif request >= 5:
print('give5')
request -= 5
elif request > 0 :
print('give' , request)
request=0
money = 500
request = int(input())
withdraw(money,request)
money-=request
request = int(input())
withdraw(money,request)
money-=request
request = int(input())
withdraw(money,request)
كالعادة حلولك رائعة يا هدرا
انتقل على التالي
عمل رائع يا صفاء
بالنسبة لتنسيق الأكواد، لو ممكن تطلعي على هذا الموضوع:
مرجع استعمال المحرر في مجتمع كورتابز
فقط تستعملي ``` قبل وبعد الكود
قمت بعمل التعديلات اللازمة على الكود خاصتك
def withdraw(balance, request):
# your function here
# allowed papers: 100, 50, 10, 5, and cents
#balance = 500; request = 275;
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 - request
balance = 500
balance = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)
balance=500
def withdraw(balance,request):
print(balance)
while request>0:
if request > balance:
print("Can't give you all this money !!")
elif request >=100:
print('give 100')
request-=100
elif request >=50:
print('give 50')
request-=50
elif request >=10:
print('give 10')
request-=10
elif request >=5:
print('give 5')
request-=5
elif request >0:
print('give 1')
request-=1
elif request < 0:
print("More than zero plz!")
return balance-request
balance = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)
balance=500
def withdraw(balance,request):
print(balance)
while request>0:
if request > balance:
print("Can't give you all this money !!")
elif request >=100:
print('give 100')
request-=100
elif request >=50:
print('give 50')
request-=50
elif request >=10:
print('give 10')
request-=10
elif request >=5:
print('give 5')
request-=5
elif request >0:
print('give 1')
request-=1
elif request < 0:
print("More than zero plz!")
return balance-request
balance = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)
balance=500
def withdraw(balance,request):
print(balance)
while request>0:
if request > balance:
print("Can't give you all this money !!")
elif request >=100:
print('give 100')
request-=100
elif request >=50:
print('give 50')
request-=50
elif request >=10:
print('give 10')
request-=10
elif request >=5:
print('give 5')
request-=5
elif request >0:
print('give 1')
request-=1
elif request < 0:
print("More than zero plz!")
return balance-request
balance = withdraw(balance, 277)
balance = withdraw(balance, 30)
balance = withdraw(balance, 5)
balance = withdraw(balance, 500)