"حل خطأ TypeError: أنواع المعاملات غير المدعومة لـ -: 'str' و 'int'"
عند محاولة البرمجة في Python، ليس من غير المألوف مواجهة أخطاء مثل الخطأ "TypeError: نوع (أنواع) المعاملات غير المدعومة لـ -: 'str' و'int'". يحدث هذا الخطأ عادةً عند محاولة إجراء عمليات حسابية على أنواع بيانات مختلفة، مثل طرح عدد صحيح من سلسلة.
لفهم هذا الخطأ، دعنا نفحص الكود الذي أدى إليه:
def cat_n_times(s, n):
while s != 0:
print(n)
s = s - 1
text = input("What would you like the computer to repeat back to you: ")
num = input("How many times: ")
cat_n_times(num, text)
تكمن المشكلة هنا في وظيفة الإدخال، التي تُرجع سلسلة لكل من النص والرقم. بينما يحاول الكود طرح عدد صحيح (s - 1) من سلسلة (num)، مما يؤدي إلى الخطأ.
الحل 1: تحويل الإدخال
واحد الحل هو تحويل المدخلات من سلسلة إلى عدد صحيح قبل إجراء العمليات الحسابية. يمكن القيام بذلك باستخدام الدالة int():
num = int(input("How many times: "))
من خلال تحويل num إلى عدد صحيح، يمكننا التأكد من ذلك التوافق للعمليات الرياضية مع s.
الحل 2: استخدام التكرار البديل
بدلاً من تتبع المؤشرات يدويًا، فكر في استخدام نهج بايثوني أكثر للتكرار:def cat_n_times(s, n):
for i in range(n):
print(s)
text = input("What would you like the computer to repeat back to you: ")
num = int(input("How many times: "))
cat_n_times(text, num)
هنا، حلقة for مع النطاق(n) تتعامل مع التكرار بشكل فعال.اعتبارات واجهة برمجة التطبيقات
الخطأ أيضًا يسلط الضوء على المشكلات المحتملة في تصميم واجهة برمجة التطبيقات. قد يكون من البديهي أن يكون النص هو السلسلة والرقم لتمثيل عدد المرات. وفي هذه الحالة، يمكن تعديل واجهة برمجة التطبيقات وفقًا لذلك.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3