سؤال

list == []

def MultiplesNumber(a):
    for i in range(1, a+1):
             if a % i == 0:
                    return i

list.append(MultiplesNumber(100))
TypeError: descriptor 'append' requires a 'list' object but received a 'int'

لا أستطيع أن أضيف i ل list, ، اي فكرة؟

هل كانت مفيدة؟

المحلول

هناك شيئان خاطئان في شفرتك:

  • أنت تقوم ب list == [] والتي ترجع صحيح أو خطأ منذ ذلك الحين == هو عامل المقارنة.وفي هذه الحالة يعود False.تحتاج إلى استخدام = لتهيئة متغير.
  • list هو اسم نوع مدمج في بايثون، استخدم شيئًا آخر كاسم متغير.

إصلاح كل منهما:

alist = []

def MultiplesNumber(a):
    for i in range(1, a+1):
             if a % i == 0:
                    return i

alist.append(MultiplesNumber(100))

يعطي الإخراج الصحيح.

نصائح أخرى

list هي الكلمة الأساسية التي يحمل في ثناياه عوامل الظلال الخاصة بك list عامل.تحتاج إلى تعيين قائمة لمتغير وليس التحقق من مساواتها.

lst = []


def MultiplesNumber(a):
    return [x for x in range(1, a + 1) if a % 2 == 0]


lst.append(MultiplesNumber(100))
print(lst)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top