نوعخطأ غير معتمد نوع المعامل(ق) ل %:تعويم و نونيتيب

StackOverflow https://stackoverflow.com//questions/22022534

  •  21-12-2019
  •  | 
  •  

سؤال

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

def Main():
    Weight = float(input ("How much does your package weigh? :"))
    CalcShipping(Weight)

def CalcShipping(Weight):

    if Weight>=2:
        PricePerPound=1.10

    elif Weight>=2 & Weight<6:
        PricePerPound=2.20

    elif Weight>=6 & Weight<10:
        PricePerPound=float(3.70)

    else:
        PricePerPound=3.8

    print ("The total shipping cost will be $%.2f") % (PricePerPound) 


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

المحلول

ال print() إرجاع الوظيفة None;ربما كنت تريد نقل % العملية في استدعاء الدالة:

print ("The total shipping cost will be $%.2f" % PricePerPound) 

لاحظ أن الخاص بك if الاختبارات تستخدم بيتويز و المشغل &;ربما كنت تريد استخدام and بدلا من ذلك ، باستخدام المنطق المنطقي:

elif Weight >= 2 and  Weight < 6:
    PricePerPound = 2.20

elif Weight >= 6 and Weight < 10:
    PricePerPound = 3.70

أو باستخدام تسلسل المقارنة:

elif 2 <= Weight < 6:
    PricePerPound = 2.20

elif 6 <= Weight < 10:
    PricePerPound = 3.70

تبحث على الاختبارات الخاصة بك ، يمكنك اختبار ل Weight >= 2 مبكر جدا;إذا Weight ما بين 2 و 6 سوف تتطابق مع الأول if وتجاهل البيانات الأخرى تماما.أعتقد أنك أردت:

PricePerPound = 1.10

if 2 <= Weight < 6:
    PricePerPound = 2.20

elif 6 <= Weight < 10:
    PricePerPound = 3.70

elif Weight >= 10:
    PricePerPound = 3.8

على سبيل المثال.السعر 1.10 ، ما لم يكن لديك حزمة تزن 2 أو أكثر ، وبعد ذلك يرتفع السعر تدريجيا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top