Home › Hindi › Beginners की common galtiyan
Python beginners की 12 सबसे common galtiyan — Hindi में
🌐 यह page Hindi में है · Read this in English →
12 galtiyan + fixहर galti के साथ practice linkएक बार पढ़ो, महीनों बचाओ
1–4: Type और input की galtiyan
1. input() को number समझ लेना. input() हमेशा string देता है। int(input(...)) लिखो, वरना "5" + 1 पर TypeError या "5" * 3 पर चुपचाप "555" मिलेगा।
2. + से text और number जोड़ना. "Score: " + 90 ❌ → f"Score: {90}" ✅।
3. Float की तुलना == से. 0.1 + 0.2 == 0.3 → False। math.isclose(a, b) इस्तेमाल करो।
4. / और // की उलझन. Python 3 में 10 / 2 देता है 5.0 (float), 10 // 2 देता है 5 (int)। Index या count में float जाते ही TypeError आता है।
5–8: List और dictionary की galtiyan
5. nums = nums.sort() लिखना. sort() None देता है — बाद में हर operation पर 'NoneType' object... आएगा। सिर्फ nums.sort() लिखो या sorted(nums)।
6. b = a को copy समझना. Lists और dicts में दोनों नाम एक ही object पर लगते हैं — एक में बदलाव दूसरे में दिखता है। Copy के लिए a.copy(), nested के लिए copy.deepcopy(a)।
7. Loop के बीच list/dict बदलना. Items skip हो जाते हैं (dict में तो RuntimeError आता है)। नई list बनाओ: nums = [n for n in nums if n >= 0]।
8. Dictionary से सीधा d["key"] पढ़ना जहाँ key optional है. d.get("key", default) ज़्यादा safe है — पर ज़रूरी keys पर [] ही रखो ताकि galti छुपे नहीं।
9–12: Logic और structure की galtiyan
9. = की जगह ==. if marks = 40: SyntaxError देता है। तुलना हमेशा == से।
10. Function में return भूल जाना. print() सिर्फ screen पर दिखाता है; value आगे इस्तेमाल करनी है तो return ज़रूरी है — वरना variable में None आएगा।
11. Mutable default argument. def f(items=[]) ❌ — default सिर्फ एक बार बनता है और calls के बीच बचा रहता है। items=None रखो।
12. except: से सब कुछ पकड़ लेना. इससे आपके अपने typos तक छुप जाते हैं। Specific लिखो: except ValueError:।
Bonus: नाम रखने की तीन galtiyan
list = [1, 2, 3] # ❌ built-in list() बर्बाद हो गया
sum = sum(nums) # ❌ अगली बार sum() call नहीं होगा
# file का नाम: random.py ❌ असली random module छुप जाता है
Python आपको ये सब करने से रोकता नहीं — बस बाद में 'int' object is not callable जैसे अजीब errors देता है। अच्छे नाम रखो: nums, total, dice_game.py।
इन galtiyon से बचने की आदतें
1. छोटे-छोटे हिस्से चलाओ — पूरा program लिखकर एक बार में मत चलाओ।
2. Crash से पहले print(f"{x=} {type(x)=}") लगाना सबसे तेज़ debugging है।
3. Error message पूरा पढ़ो — Python 3.10+ अक्सर सही नाम खुद suggest करता है।
4. रोज़ 2–3 broken programs खुद fix करो; पढ़ने से नहीं, हाथ चलाने से ही debugging आती है।
🛠️ Practice करो (free, browser में)
पढ़ना काफी नहीं — यही bug खुद fix करके देखो। नीचे के problems browser में ही चलते हैं, कोई install नहीं, कोई login नहीं।
- print में text + number — galti #2
- sort() ने None लौटाया — galti #5
- Copy बनाम reference — galti #6
- = की जगह == चाहिए — galti #9
- Function कुछ return नहीं करता — galti #10
- Mutable default argument — galti #11
अक्सर पूछे जाने वाले सवाल
Python beginners सबसे ज़्यादा कौन सी galti करते हैं?
input() को number मान लेना। input() हमेशा string लौटाता है, इसलिए calculation से पहले int() या float() लगाना ज़रूरी है — वरना TypeError आता है या चुपचाप गलत result मिलता है।
nums = nums.sort() क्यों गलत है?
क्योंकि sort() list को जगह पर sort करके None लौटाता है, इसलिए nums में None चला जाता है। सिर्फ nums.sort() लिखें या nums = sorted(nums) इस्तेमाल करें।
Python में variable का नाम list या sum रखना क्यों नहीं चाहिए?
क्योंकि ये built-in functions के नाम हैं। इन पर variable बनाने के बाद वही function call करने पर 'int' object is not callable जैसा TypeError आता है।
इन galtiyon से बचने का सबसे अच्छा तरीका क्या है?
code को छोटे हिस्सों में चलाना, crash से पहले print(f"{x=}") लगाकर values देखना, error message पूरा पढ़ना, और रोज़ कुछ broken programs खुद fix करके practice करना।