نعم أتفهم مقصدك لكتابة الكود بهذا الشكل, لكن ما كنت أقصده أنه ممكن بدل أن تكتب:
if request >= i:
تجعلها while لتقوم بتنقيص المبلغ كاملاً من هذه الفئة (لنقل فئة ورقة 100), حتى لا يستطيع أخذ المبلغ ينتقل على الفئة التالية
while request >= i:
وبهذا لن نحتاج لـ break (لاحظ أن المشكلة الرئيسية أنك كنت تقوم بالتحكم بسير البرنامج يدوياً, لهذا غالباً break يكرهها أغلب المبرمجين لأنها تدل على أنه يمكن كتابة الكود بشكل أفضل).
وبعد التخلص من request+=1 و -=1
نحصل على:
money = 500
papers=[100, 50, 10, 5, 2]
request = 277
while request > 0:
for i in papers:
while request >= i:
print('give' +' '+ str(i))
request-=i