मैं यह जांचने की कोशिश कर रहा हूं कि कोड चलने से पहले एक निश्चित डिवीजन स्टेटमेंट निष्पादित किया जा सकता है (कोई तार नहीं है, शून्य से कोई विभाजन नहीं है, आदि ...) और मुझे एक त्रुटि देता है। मैं अपवादों का उपयोग नहीं कर सकता और अगर कथनों का उपयोग करना है। मैं जानता हूं कि प्रत्येक स्थिति की जांच कैसे की जाती है, लेकिन मुझे एक बयान की आवश्यकता है जो आम तौर पर जांचता है कि विभाजन संभव है या नहीं। यह मेरा कोड है:

a = input("Enter first list:")
b = input("Enter second list:")
def my_divide(a,b):
    if  (a statement to check if [(ai/bi) for ai, bi in zip(a, b)] would work):
        return [(ai/bi) for ai, bi in zip(a, b)]
    else:
        return [], "Something is wrong. Can't perform division"

print my_divide(a,b)
0
R.Bair 15 अक्टूबर 2017, 03:12

2 जवाब

यह गैर-संख्यात्मक मानों और शून्य भाजक को पकड़ लेगा।

if (isinstance(ai, numbers.Number) and isinstance(bi, numbers.Number) and bi != 0)

बेशक, इससे पहले numbers मॉड्यूल आयात किया जाना चाहिए। हालांकि, if स्टेटमेंट में फ्लोटिंग-पॉइंट ओवरफ्लो को पकड़ना बहुत मुश्किल है।

1
Rory Daulton 15 अक्टूबर 2017, 03:21

आप इसे try फंक्शन के साथ भी कर सकते हैं। कुछ इस तरह:

def my_divide(a, b):
    quotient = []
    for ai, bi in zip(a, b):
        try:
            quotient.append(ai/bi)
        except ZeroDivisionError:
            quotient.append('Something is wrong. Cannot perform division')
    return quotient

print my_divide(a, b)
0
kjmerf 15 अक्टूबर 2017, 03:46