Types of errors in python program- प्रोग्राम त्रुटियों के प्रकार

 Python types of errors in program in hindi- Python tutorial के इस आर्टिकल में हम प्रोग्राम की त्रुटियां और उनके प्रकारों के बारे में जानेंगे।
  • program में कोन कोनसी त्रुटियां होती है
  •  प्रोग्राम त्रुटियों के प्रकार
  •  syntax error क्या है
  •  logical error क्या है
  •  run time error क्या है

Types of errors in program
program में कोन कोनसी त्रुटियां होती है


नए programmers अनुभवहीनता और programming से अपरिचित होने के कारण अपने programs में त्रुटियां करते हैं। कभी कभी अच्छे प्रोग्रामर्स भी लापरवाही के कारण गलतियाँ करते हैं। Interpreter द्वारा python program में त्रुटि दर्शाने के कई सारे कारण हो सकते है जैसे-

  • Syntax गलत लिखना
  • किसी समस्या का प्रस्तावित समाधान दोषपूर्ण होना
  • गलत समाधान के सही कार्यान्वयन के कारण

गलत समाधान के सही कार्यान्वयन के कारण interpreter प्रोग्राम में त्रुटि तो नहीं दर्शाता लेकिन यह एक त्रुटि ही माना जाता है। क्योंकि इसके कारण हमे सही और अपेक्षित output नहीं मिलता है। 

Types of errors- त्रुटियों के प्रकार

पाइथन में मुख्य तीन प्रकार की त्रुटियां होती है

No. Types of errors
1. Syntax error
2. Logic error
3. Run time error

Syntax error क्या है?

interpreter को वैध और सही प्रोग्राम कोड निष्पादित करने के लिए डिज़ाइन किया गया है। Interpreter पाइथन कोड को पहले पड़ता है और उसे बाद में निष्पादन योग्य (executable) मशीन भाषा में परिवर्तित करता है। Interpreter कोड को पड़ते समय यदि पाइथन कोड को मशीन कि भाषा (machine language) अनुवाद के दौरान त्रुटि का पता लगा लेता है, तो ओ प्रोग्राम का निष्पादन (execution) रोख देगा और तुरंत त्रुटि दिखायेगा।
 इस तरह की त्रुटि प्रोग्रामर की लापरवाही या दुरुपयोग के कारण होती है।

उदाहरण के लिए, अंग्रेजी में हम लिखते है john plays cricket. इस वाक्य का syntax सही है। अगर कोई इसे john play cricket लिखेगा तो यह गलत syntax होगा। क्योंकि यह अंग्रेजी भाषा के व्याकरणिक नियमों का पालन नहीं करता है। यहां पे play की जगह plays लिखना सही है।

इसी तरह पाइथन में अगर हम  x = z + 7 जैसा स्टेटमेंट लिखते हैं।  यह वाक्यात्मक रूप से सही है।  लेकिन आप इसे z + 7 = x के रूप में लिखते हैं, यह syntax के रूप से गलत हो जाएगा और Interpreter  त्रुटि दिखाता है। 

Logic error क्या है?

Program लिखते समय logic बहुत महत्वपूर्ण होता है। अगर हम प्रोग्राम में गलत logic लगाते है तो हमें उसका output भी गलत मिलता है। इसलिए प्रोग्राम में सही logic लगाना आवश्यक है।

पाइथन प्रोग्राम में अगर syntax error है तो interpreter हमे तुरंत बता देता है कि error कहा पे है। इसलिए syntax error को सुधारना आसान है।लेकिन प्रोग्राम में logical error है तो उसे सुधारना थोड़ा कठिन है क्योंकि interpreter logical error और उसके स्थान को दिखता नहीं है।

चलिए इेस हम एक उदाहरण के जरिए समझते है

1:  x=int(input ("enter dividend:"))  
2: y=int(input("enter divisor:"))
3: Quotient=x/y
4: Print("quotient is", Quotient)
Output:

enter dividend:25
enter divisor: 5
quotient is 5
यदि उपरोक्त उदाहरण में हम भागफल के सूत्र को बदलते हैं

 Quotient = divisor / dividend या y / x

 हमें उत्तर 0.2 मिलेगा और interpreter कभी त्रुटि नहीं दिखाएगा। यह एक logical error है क्योंकि हमे अपना अपेक्षित उत्तर नहीं मिला है।

Run time error क्या हैं?

इस त्रुटि को run time exception भी कहा जाता है।

सटीक रूप से सही प्रोग्राम में भी त्रुटियां हो सकती हैं।  इन त्रुटियों को Run time error कहा जाता है क्योंकि ये त्रुटियां अनुवाद चरण (translation phase) के बाद और अनुष्पाद चरण (execution phase) के दौरान उत्पन्न होती है।

मांन लीजिए की उपर दिए गए प्रोग्राम में अगर हम भाजक (divisor) को zero लेते है तो interpreter भागफल की गणना में त्रुटि दर्शाता है। यह एक Run time error होगा।

पाइथन प्रोग्राम की कुछ सामान्य त्रुटियां

Interepreter और भी कई तरह के error दर्शाता है लेकिन उपर दिए गए तीन errors, program erros के मुख्य प्रकार है।

चलिए interpreter द्वारा दर्शाएं हुए कुछ महत्वपूर्ण त्रुटियों को जानते है। जो कि अक्सर प्रोग्रामर्स द्वारा अनजाने में हो जाती है। यह त्रुटियां किसी भी प्रकार की हो सकती है जैसे कि syntax error, logic error और run time error जो कि हमने ऊपर इनके बारे बात की है।

Index error क्या है?

पाइथन प्रोग्राम में यह error हमेशा data structures जैसे कि list, tuple, set, dictionary और string के साथ होती है। क्योंकि इन data structures में हमे elelments को access करने के लिए indexing method का उपयोग होता है। अगर हम प्रोग्राम में कुछ गलत index का उपयोग करते है तो interpreter हमे index error दिखता है। 

जैसे नीचे दिए उदाहरण में, हमने हमने एक list को x variable की मदद से declare किया है। इस list में सिर्फ 3 elements है मतलब highest index 2 है और हमने पहले print स्टेटमेंट में पूरे लिस्ट को प्रिंट किया है, अगले दो print स्टेटमेंट में 0 और 2 index elements को प्रिंट किया है।यहां तक प्रोग्राम run हो जाएगा। लेकिन इसके आगे हमने 5 index वाले element को प्रिंट किया है, लेकिन लिस्ट में सिर्फ 2 index तक ही elements होने का कारण interpreter ने index error दर्शाया है।
1:  x=["mango","apple","banana"]  
2: print(x)
3: print(x[0])
4: print(x[2])
5: print(x[5])
Output:
Traceback (most recent call last):
File "script.py", line 5, in <module>
print(x[5])
IndexError: list index out of range


Output:
['mango', 'apple', 'banana']
mango
banana

Module not found error क्या है?

यह error ज्यादा तर नए प्रोग्रामर्स करते हैं। क्योंकि interpreter यह module not found error तभी दर्शाता है जब हम कुछ गलत module import करते है। मतलब ऐसा module जो कि पाइथन की लाइब्रेरी में predefined नहीं है। नए प्रोग्रामर्स को built-in modules के बारे ज्यादा जानकारी नहीं होती है। इसलिए वह ज्यादा तर गलत module import करके ऎसी गलतियां करते हैं।

नीचे दिए उदाहरण में nomodule को import किया है, ऐसा किसी प्रकार का मॉड्यूल पाइथन लाइब्रेरी में नहीं है। इसलिए यहां पर module not found का error दिखाया है।

1:  import nomodule  
Output:
Traceback (most recent call last):
File "script.py", line 1, in <module>
import nomodule
ModuleNotFoundError: No module named 'nomodule'

Import error क्या है?

यह error भी module को import करते समय ही होती है। जैसे हमे math module से square root function को import करना है तो उसके लिए सही syntax क्या है? from math import sqrt । यदि इसे अगर कोई ऐसा लिखे – from math import square root तो यह एक गलत syntax होगा क्योंकि math module में square root function को sqrt के रूप में परिभाषित किया है और उसे ऐसा ही लिखना अनिवार्य है। तब यदि आप येसी गलती करते हैं तो interpreter ये import error को दर्शाता है। 
1:  from math imort squareroot  
Output:
Traceback (most recent call last):
File "script.py", line 1, in <module>
from math import squareroot
ImportError: cannot import name 'squareroot' from 'math' (unknown location)

Value error क्या है?

Interpreter प्रोग्राम में यह error तभी दर्शाता है जब function को गलत argument/parameter दिया जाता है। क्योंकि हर एक function कुछ विशिष्ट डेटा टाइप के arguments को ही मान्य करता है। यदि उसे कुछ दूसरे डेटा टाइप का argument दिया जाए तो वह इस तरह की त्रुटि दिखता है।

नीचे दिए उदाहरण में हमने int() function को string argument दिया है।लेकिन यह int function केवल numbers को ही मान्य करता है।इसलिए यहां interpreter ने value error को दर्शाया है।
1:  int('abc')  
Output:
Traceback (most recent call last):
File "script.py", line 1, in <module>
int('abc')
ValueError: invalid literal for int() with base 10: 'abc'

Zero division error क्या है?

यह एक run time error का प्रकार है। हमने इसे उपर पहले से ही run time error में स्पष्ट किया है। यह error प्रोग्राम में तभी आता है जब हम प्रोग्राम में कुछ मूल्यों का भागफ़ल (division) निकाल रहे है और हमने denominator में शुन्य लिया हो। जैसे ही हम प्रोग्राम में किसी मूल्य(value) को zero से divide करते हैं, तब इस तरह का error हमें interpreter दर्शाता है।

नीचे उदाहरण में हमने 5 को 0 से divide किया है इसलिए इंटरप्रेटर ने zero division error दर्शाया है।
1:  division=5  
2: divisor=0
3: Quotient=division/divisor
4: print("quotient is", Quotient)
Output:
Traceback (most recent call last):
File "script.py", line 3, in <module>
Quotient=x/y
ZeroDivisionError: division by zero

Name error क्या है?

यह error तब आता है जब हम किसी value या variable को define न करके उसे प्रोग्राम इस्तेमाल करते है। मतलब यदि आपने प्रोग्राम में कोई num variable declare नहीं किया है और आप उसे print कर रहे जैसे की print(num) तब interpreter ये name error को दिखायेगा। जैसे कि नीचे उदाहरण में स्पष्ट किया है

नीचे उदाहरण में हमने num variable को declare नहीं किया है और उसे print कर रहे है।इसलिए इंटरप्रेटर ने name error को दर्शाया है।
1:  >>> num  
Output:
Traceback (most recent call last):
File "script.py", line 1, in <module>
num
NameError: name 'num' is not defined

Indentation error क्या है?

आप सभी को पता होगा कि पाइथन में indentation बेहद ही महत्वपूर्ण है। सही output के लिए हमे प्रोग्राम में अच्छे तरह से indentation का इस्तेमाल करना होता है। यदि indentation गलत हो गया तो प्रोग्राम इस तरह का indentation error दिखता है।

नीचे उदाहरण में print function के नीचे block of codes को indented नहीं किया है, जो कि indented करना जरूरी है। इसलिए इंटरप्रेटर ने यह indentation error दर्शाया है।

1:  x=10  
2: for i in range(10):
3: print(i)
4: i=i+1

Output:

File "script.py", line 3
print(i)
^
IndentationError: expected an indented block

Keyboard intrupt error क्या है?

यह error ज्यादा तर प्रोग्रामर्स की छोटी से गलती कि वजह से होता है। जब प्रोग्राम run होता है तब अगर enter बटन की जगह कोई और बटन दब गया जैसे ctrl, shift, आदी तब interpreter इस तरह का त्रुटि दर्शाता है।

यह सभी errors का ज्ञान प्रोग्रामर्स को होना जरूरी है ताकि वह प्रोग्राम लिखते समय गलतियां ना करें। इन प्रोग्राम त्रुटियों को कम करने के लिए हमें रोजाना प्रोग्राम लिखने का सराव करना होगा। तभी हम एक अच्छा त्रुटिहीन प्रोग्राम को लिख सकते हैं।



Leave a Comment

Your email address will not be published. Required fields are marked *