Python के डेटा प्रकार
- संख्याएँ:
int(पूर्ण: 25, −3),float(दशमलव: 3.14, 2e3),complex(3 + 4j)। - bool:
TrueयाFalse(int का एक रूप: True = 1, False = 0)। - None: 'कोई मान नहीं'; प्रकार NoneType।
- अनुक्रम (क्रमबद्ध, इंडेक्स वाले):
str'hello',list[1, 'a', 2.5],tuple(1, 2, 3)। - मैपिंग:
dict{'name': 'Riya', 'age': 16}, key: value जोड़े।
मान का प्रकार देखने के लिए type(x)।
म्यूटेबल और इम्यूटेबल प्रकार
म्यूटेबल: नया ऑब्जेक्ट बनाए बिना मान अपनी जगह बदल सकता है: list, dict (और set)।
इम्यूटेबल: नहीं बदलता; 'बदलने' पर नई id वाला नया ऑब्जेक्ट बनता है: int, float, bool, complex, str, tuple।
L = [1, 2, 3]; L[0] = 5 # ठीक, वही id s = 'cat'; s[0] = 'b' # TypeError
Python में ऑपरेटर
- अंकगणितीय: + − * / (हमेशा float) // (फ़्लोर भाग) % (शेष) ** (घात)। 7/2 = 3.5, 7//2 = 3, 7%2 = 1, 2**3 = 8, −7//2 = −4।
- संबंधपरक: < > <= >= == != → True/False।
- तार्किक: and, or, not।
5 > 3 and 2 > 4→ False। - असाइनमेंट: = और += −= *= /= //= %= **=।
x += 2यानी x = x + 2। - पहचान: is, is not — क्या दोनों नाम एक ही ऑब्जेक्ट (एक id) की ओर हैं?
- सदस्यता: in, not in — क्या मान अनुक्रम के अंदर है?
'a' in 'cat'→ True।
ऑपरेटर प्राथमिकता
ऊँची से नीची:
()कोष्ठक**(दाएँ से बाएँ: 2**3**2 = 2**9 = 512)- एकल
+x −x * / // %+ −- तुलना
< > == != …,is,in notandor
एक स्तर पर: बाएँ से दाएँ (** को छोड़कर)। 2 + 3 * 4 ** 2 = 2 + 3 * 16 = 2 + 48 = 50।
टाइप रूपांतरण
अंतर्निहित (implicit): डेटा न खोए, इसलिए Python अपने-आप बदलता है: 5 + 2.0 = 7.0 (int → float)।
स्पष्ट (explicit, टाइप कास्टिंग): फ़ंक्शन से बदलते हैं: int('25') → 25, float('3.5') → 3.5, str(10) → '10', int(7.9) → 7 (दशमलव कटता है), bool(0) → False। int('abc') से ValueError।
इनपुट और आउटपुट
input(संदेश) संदेश दिखाकर उपयोगकर्ता का लिखा स्ट्रिंग के रूप में लौटाता है। संख्या के लिए: n = int(input('n लिखें: '))।
print(मान, sep=' ', end='\n') मानों को sep से अलग करके और end पर ख़त्म करके दिखाता है। print(1, 2, 3, sep='-') → 1-2-3; print('Hi', end='!') → Hi! बिना नई पंक्ति।
त्रुटियाँ: सिंटैक्स, लॉजिकल और रनटाइम
- सिंटैक्स त्रुटि: कोड Python का व्याकरण तोड़ता है, इसलिए चलता ही नहीं: कोलन छूटा, कोष्ठक बंद नहीं, जैसे
print('hi'। - रनटाइम त्रुटि (एक्सेप्शन): कोड सही है पर चलते समय रुक जाता है: शून्य से भाग (ZeroDivisionError),
int('abc')(ValueError), अपरिभाषित नाम (NameError), गलत इंडेक्स (IndexError)। - लॉजिकल त्रुटि: प्रोग्राम चलता है पर उत्तर गलत, जैसे औसत = a + b / 2 जबकि चाहिए (a + b) / 2। सबसे कठिन; टेस्टिंग से पकड़ में आती है।
मुख्य सूत्र और परिभाषाएँ
- / → float; // → फ़्लोर; % → शेष; ** → घात
- प्राथमिकता: () > ** > एकल > * / // % > + − > तुलना > not > and > or
- म्यूटेबल: list, dict · इम्यूटेबल: int, float, bool, str, tuple
- input() → str; int()/float() से बदलें
- त्रुटियाँ: सिंटैक्स, रनटाइम, लॉजिकल
हल किए गए उदाहरण
1. निकालें: 17 // 5, 17 % 5, 17 / 5, 2 ** 4।
3, 2, 3.4, 16।
2. चरणों में निकालें: 10 - 4 * 2 ** 2 + 6 / 3
2 ** 2 = 4 → 10 - 4 * 4 + 6 / 3 → 16 और 2.0 → 10 - 16 + 2.0 = -4.0।
3. निकालें: not 5 > 3 or 4 < 6 and 2 == 3
पहले तुलना: not True or True and False → False or (True and False) → False or False → False।
4. आउटपुट? a = '7'; b = 3; print(a * b, int(a) * b)
777 21। स्ट्रिंग × int दोहराता है; int('7') * 3 = 21।
5. त्रुटि का प्रकार बताएँ: (i) print('Hi' (ii) x = 10 / 0 (iii) आयत का क्षेत्रफल = l + b
(i) सिंटैक्स (कोष्ठक बंद नहीं)। (ii) रनटाइम: ZeroDivisionError। (iii) लॉजिकल: चलता है पर सूत्र गलत।
6. a = [1, 2]; b = a; c = [1, 2]। a is b, a is c, a == c निकालें।
a is b → True (एक ही ऑब्जेक्ट)। a is c → False। a == c → True (मान बराबर)।
7. आउटपुट? print(10, 20, 30, sep='*', end='#')
10*20*30#
आम गलतियाँ
- 7 / 2 से 3 की उम्मीद करना। / हमेशा float (3.5) देता है; 3 के लिए //।
- input() को बदलना भूल जाना: input() + 5 से TypeError।
- मान तुलना के लिए is लेना। मान के लिए ==; is एक ही ऑब्जेक्ट जाँचता है।
- -7 // 2 = -3 समझना। फ़्लोर भाग नीचे की ओर: -4।