خطأ Spyder: 'int' الكائن غير قابل للاستدعاء ولكن لا يوجد خطأ في IDE مختلفة

لدي مشكلة غريبة أنا بحاجة للمساعدة. لدي هذا الكود أريد تشغيله في Spyder لكني أستمر في الحصول على الخطأ

TypeError: الكائن "int" غير قابل للاستدعاء.

s ='abcdefgbobaaaaabob'
end = 3
bobs = 0
for i in range(len(s)):
    finder = s[i:end]
    if finder == 'bob':
        bobs += 1
    end += 1
print('Number of times bob occurs is: '+ str(bobs))

الجزء الغريب هو أنه عندما أقوم بتشغيل نفس الكود في IDLE ، فإنه يعمل بشكل جيد ويعطي النتائج التي أحتاجها. حاولت حتى تشغيل الرمز في pythontutor.com ، أي خطأ.

هل يمكن لشخص ما أن يخبرنا لماذا يحدث هذا؟

0

2 إجابة

يحدث هذا الخطأ عندما يكون لديك كائن يمثل رقمًا صحيحًا ، ولكن التعليمات البرمجية الخاصة بك تحاول استخدامه كما لو كانت دالة. فمثلا:

  • أنت تستخدم دالة تتوقع وظيفة أخرى كإحدى وسيطاتها ، ولكنك قمت بتمريرها عددًا صحيحًا بدلاً من ذلك ، أو
  • تجاوزت إحدى الدالات بتعيين قيمة عددية لنفس الاسم.

لا يبدو أن أول هذه المشاكل هنا ، لذا ربما تجاوزت عن طريق الخطأ إحدى الوظائف التي تستخدمها؟

>>> str(3)
'3'
>>> str = 17
>>> str(3)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'int' object is not callable

في Spyder ، يمكنك التحقق من ذلك في علامة التبويب المتغير Explorer ، ثم النقر بزر الماوس الأيمن فوقه واختيار إزالة ، أو كتابة (مثل) del (str) في وحدة التحكم Python لحذف الواجب غير الصحيح.

0
وأضاف
آه حسنا. شكرا جزيلا. لقد حللت المشكلة.
وأضاف المؤلف BluHaz, مصدر

ركضت باستخدام Spyder أيضا ، وأنها تعمل بشكل جيد. هل تستخدم Python3؟

0
وأضاف
نعم ايم باستخدام Python3
وأضاف المؤلف BluHaz, مصدر
كيف كان يعمل!
وأضاف المؤلف BluHaz, مصدر
يعمل لي أيضا.
وأضاف المؤلف nekomatic, مصدر
هل يمكن أن تعطي المزيد من المعلومات عن مشكلتك
وأضاف المؤلف Florian Lalande, مصدر