Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में ठोस अपवाद

पायथन में कुछ सामान्य अपवाद हैं। ये अपवाद आमतौर पर विभिन्न कार्यक्रमों में उठाए जाते हैं। ये प्रोग्रामर द्वारा स्पष्ट रूप से उठा सकते हैं, या पायथन दुभाषिया इस प्रकार के अपवादों को स्पष्ट रूप से उठा सकता है। इनमें से कुछ अपवाद हैं -

अपवाद अभिकथन त्रुटि

जब कोई मुखर कथन विफल हो जाता है, तो AssertionError बढ़ सकता है। पायथन में कुछ हैं, हम अपने कोड में कुछ मुखर कथन भी सेट कर सकते हैं। मुखर कथन हमेशा सत्य होना चाहिए। यदि स्थिति विफल हो जाती है, तो यह AssertionError उठाएगी।

उदाहरण कोड

class MyClass:
   def __init__(self, x):
      self.x = x
      assert self.x > 50
 myObj = MyClass(5)

आउटपुट

---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
<ipython-input-21-71785acdf821> in <module>()
      4         assert self.x > 50
      5 
----> 6 myObj = MyClass(5)

<ipython-input-21-71785acdf821> in __init__(self, x)
      2     def __init__(self, x):
      3         self.x = x
----> 4         assert self.x > 50
      5 
      6 myObj = MyClass(5)

AssertionError:

अपवाद विशेषता त्रुटि

विशेषता त्रुटि तब बढ़ सकती है, जब हम किसी वर्ग की किसी विशेषता तक पहुँचने का प्रयास करेंगे, लेकिन यह उसमें मौजूद नहीं है।

उदाहरण कोड

class point:
   def __init__(self, x=0, y=0):
      self.x = x
      self.y = y
        
   def getpoint(self):
      print('x= ' + str(self.x))
      print('y= ' + str(self.y))
      print('z= ' + str(self.z))
pt = point(10, 20)
pt.getpoint()

आउटपुट

x= 10
y= 20
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-15-f64eb52b2192> in <module>()
     10 
     11 pt = point(10, 20)
---> 12 pt.getpoint()

<ipython-input-15-f64eb52b2192> in getpoint(self)
      7         print('x= ' + str(self.x))
      8         print('y= ' + str(self.y))
----> 9         print('z= ' + str(self.z))
     10 
     11 pt = point(10, 20)

AttributeError: 'point' object has no attribute 'z'

अपवाद आयात त्रुटि

आयात त्रुटि तब हो सकती है जब आयात कथन कुछ मॉड्यूल आयात करने में कुछ समस्या का सामना कर रहा है। इसे तब भी उठाया जा सकता है, जब किसी स्टेटमेंट से पैकेज का नाम सही हो, लेकिन निर्दिष्ट नाम के रूप में कोई मॉड्यूल नहीं मिला हो।

उदाहरण कोड

from math import abcd    def __init__(self, x=0, y=0):

आउटपुट

---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-23-ff4519a07c77> in <module>()
----> 1 from math import abcd

ImportError: cannot import name 'abcd'

अपवाद मॉड्यूलNotFoundError

यह ImportError का एक उपवर्ग है। जब कोई मॉड्यूल स्थित नहीं होता है, तो यह त्रुटि बढ़ सकती है। इसे तब भी उठाया जा सकता है जब कोई नहीं sys.modules में पाया जाता है।

उदाहरण कोड

import abcd

आउटपुट

---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-24-7b45aaa048eb> in <module>()
----> 1 import abcd

ModuleNotFoundError: No module named 'abcd'

अपवाद अनुक्रमणिकात्रुटि

अनुक्रमणिका त्रुटि तब बढ़ सकती है जब किसी अनुक्रम की सबस्क्रिप्ट (सूची, टपल, सेट आदि) सीमा से बाहर हो।

उदाहरण कोड

myList = [10, 20, 30, 40]
print(str(myList[5]))

आउटपुट

---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-29-a86bd85b04c9> in <module>()
      1 myList = [10, 20, 30, 40]
----> 2 print(str(myList[5]))

IndexError: list index out of range

अपवाद पुनरावर्तन त्रुटि

RecursionError एक रनटाइम त्रुटि है। जब रिकर्सन की अधिकतम गहराई पार हो जाती है, तो इसे बढ़ा दिया जाएगा।

उदाहरण कोड

def myFunction():
   myFunction()
myFunction()

आउटपुट

---------------------------------------------------------------------------
RecursionError Traceback (most recent call last)
<ipython-input-39-8a59e0fb982f> in <module>()
      2     myFunction()
      3 
----> 4 myFunction()

<ipython-input-39-8a59e0fb982f> in myFunction()
      1 def myFunction():
----> 2     myFunction()
      3 
      4 myFunction()

... last 1 frames repeated, from the frame below ...

<ipython-input-39-8a59e0fb982f> in myFunction()
      1 def myFunction():
----> 2     myFunction()
      3 
      4 myFunction()

RecursionError: maximum recursion depth exceeded

अपवाद स्टॉपइटरेशन

पायथन में, हम अगले () नामक इनबिल्ट विधि द्वारा StopIteration त्रुटि प्राप्त कर सकते हैं। जब एक पुनरावर्तक के पास कोई और तत्व नहीं होता है, तो अगली () विधि StopIteration त्रुटि को बढ़ा देगी।

उदाहरण कोड

myList = [10, 20, 30, 40]
myIter = iter(myList)
while True:
   print(next(myIter))

आउटपुट

10
20
30
40
---------------------------------------------------------------------------
StopIteration Traceback (most recent call last)
<ipython-input-42-e608e2162645> in <module>()
      2 myIter = iter(myList)
      3 while True:
----> 4     print(next(myIter))

StopIteration: 

अपवाद इंडेंटेशन त्रुटि

जब पायथन कोड में कुछ अमान्य इंडेंटेशन होते हैं, तो यह इस तरह की त्रुटियों को बढ़ाएगा। यह सिंटैक्स त्रुटि . इनहेरिट करता है अजगर का वर्ग।

उदाहरण कोड

for i in range(10):
   print("The value of i: " + str(i))

आउटपुट

File "<ipython-input-44-d436d50bbdc8>", line 2
    print("The value of i: " + str(i))
        ^
IndentationError: expected an indented block

अपवाद प्रकार त्रुटि

TypeError तब हो सकता है जब अनुपयुक्त प्रकार के ऑब्जेक्ट पर कोई ऑपरेशन किया जाता है। उदाहरण के लिए, यदि हम सरणी अनुक्रमणिका में एक फ़्लोटिंग पॉइंट नंबर प्रदान करते हैं, तो यह एक TypeError लौटाएगा।

उदाहरण कोड

muList = [10, 20, 30, 40]
print(myList[1.25])

आउटपुट

---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-46-e0a2a05cd4d4> in <module>()
      1 muList = [10, 20, 30, 40]
----> 2 print(myList[1.25])

TypeError: list indices must be integers or slices, not float

अपवाद ZeroDivisionError

जब ऐसी स्थिति होती है जहां एक विभाजन समस्या के लिए भाजक 0 (शून्य) होता है, तो यह ZeroDivisionError उठाएगा।

उदाहरण कोड

print(5/0)

आउटपुट

---------------------------------------------------------------------------
ZeroDivisionError  Traceback (most recent call last)
<ipython-input-48-fad870a50e27> in <module>()
----> 1 print(5/0)

ZeroDivisionError: division by zero

  1. टिंकर पायथन में बंधनेवाला फलक

    टिंकर पाइथन की जीयूआई बिल्डिंग लाइब्रेरी है। इस लेख में हम देखेंगे कि हम एक बंधनेवाला फलक कैसे बना सकते हैं। वे तब उपयोगी होते हैं जब हमारे पास जीयूआई कैनवास पर प्रदर्शित होने के लिए कुछ बड़ी मात्रा में डेटा होता है लेकिन हम हमेशा प्रदर्शित नहीं होना चाहते हैं। इसे बंधनेवाला बनाया गया है ताकि जरूरत

  1. पायथन में बाइनरी ट्री का व्यास

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें पेड़ के व्यास की लंबाई की गणना करनी है। बाइनरी ट्री का व्यास वास्तव में एक पेड़ में किन्हीं दो नोड्स के बीच सबसे लंबे पथ की लंबाई है। जरूरी नहीं कि यह रास्ता जड़ से ही गुजरे। तो अगर पेड़ नीचे जैसा है, तो व्यास 3 होगा क्योंकि पथ की लंबाई [4,2,1,3] या [5,2,1

  1. पायथन में विरासत

    इस लेख में, हम पायथन 3.x में इनहेरिटेंस और एक्सटेंडिंग क्लासेस सीखेंगे। या पहले। वंशानुक्रम वास्तविक दुनिया के संबंधों का अच्छी तरह से प्रतिनिधित्व करता है, पुन:प्रयोज्य प्रदान करता है और पारगमन का समर्थन करता है। यह तेजी से विकास समय, आसान रखरखाव और विस्तार में आसान प्रदान करता है। वंशानुक्रम को