Theory
वही 30, तीन अलग मतलब
आपके PocketMoney tracker में, संख्या 30 तीन अलग चीज़ों का मतलब हो सकती है: आपने ख़र्च किए पूरे rupees (30), paise के साथ एक सटीक amount (30.50), या बस 'क्या मैंने ज़्यादा ख़र्च किया?' का जवाब (नहीं)।
Python को जानना ज़रूरी है कि यह किस तरह की value रख रहा है, क्योंकि आप हर एक के साथ बहुत अलग चीज़ें कर सकते हैं। आप amounts का एक decimal average ले सकते हैं, पर 'क्या मैंने ज़्यादा ख़र्च किया' सिर्फ़ true या false हो सकता है।
वह 'किस तरह' value का data type है, और Python के पास मूल types का एक छोटा set है। इनसे मिलिए और आप लगभग कोई भी Python program पढ़ सकते हैं।
Theory
Types container का आकार हैं
values को liquids और types को उन containers की तरह सोचिए जिनमें वे आते हैं: सटीक decimals के लिए एक measuring jug, पूरे counts के लिए एक tally counter, text के लिए एक name tag, एक सरल yes/no switch। आप एक light switch से बारिश नहीं नापेंगे। Python में एक value का type तय करता है कि कौन से operations समझ में आते हैं, यही वजह है कि Python हमेशा इसे आपके लिए track करता रहता है।
Theory
मूल types
Python के रोज़मर्रा के built-in types:
- str (text): quotes में कुछ भी, जैसे
"samosa"। - int (whole numbers):
30,-5,2026। कोई decimal point नहीं। - float (decimals):
30.5,0.0,3.14। एक decimal point होता है। - complex: एक imaginary part वाले numbers,
2 + 3jलिखे जाते हैं (Pythonjइस्तेमाल करता है,iनहीं)। - bool (truth): बिल्कुल दो values,
TrueऔरFalse।
function type(value) आपको बताता है कि आप कौन सी रख रहे हैं, checking के लिए आपका मुख्य tool।
At a glance
पाँच मूल types। str, int, float, और bool रोज़ के चार हैं; complex विशेष है।
| Type | उदाहरण value | PocketMoney में किसके लिए इस्तेमाल |
|---|---|---|
| str | "samosa" | एक entry में item का नाम |
| int | 30 | ख़र्च किए पूरे rupees, एक day counter |
| float | 30.50 | paise के साथ एक सटीक amount |
| complex | 2 + 3j | accounts में दुर्लभ; engineering maths में इस्तेमाल |
| bool | True | 'क्या budget पार हुआ है?' का जवाब |
Practical
type() से types जाँचना
balance = 500 # int
amount = 30.50 # float
item = "samosa" # str
over_budget = False # bool
print(type(balance)) # <class 'int'>
print(type(amount)) # <class 'float'>
print(type(item)) # <class 'str'>
print(type(over_budget)) # <class 'bool'>This example runs in Gri-Learn on the web, where you can edit it and see the output.
Think first
int या float?
tap करने से पहले: 10 का type क्या है और 10.0 का type क्या है? क्या वे एक जैसे हैं?
Show the answer
10 एक int है और 10.0 एक float है: एक जैसा type नहीं, भले ही वे संख्यात्मक रूप से बराबर हैं। decimal point पूरी कहानी है: यह एक value को एक float के रूप में mark करता है। exams में यह मायने रखता है, type(10) int है, type(10.0) float है, और Python में / से भाग हमेशा एक float देता है (तो 10 / 2 5.0 है, 5 नहीं)।
Theory
bool के बारे में आश्चर्य
bool गुप्त रूप से एक तरह का int है। Python में, True 1 की तरह बर्ताव करता है और False 0 की तरह।
यह एक चाल नहीं है जिस पर आपको स्पष्टता के लिए भरोसा करना चाहिए, पर यह असली behaviour समझाता है: True + True 2 है, और True == 1 True है।
यह क्यों मायने रखता है? क्योंकि balance < 100 जैसी एक comparison अस्पष्ट 'yes/no' text नहीं बनाती, यह एक असली bool value बनाती है जिसे आप store, print, या यहाँ तक कि count कर सकते हैं। यह हर if decision का आधार है जो आप अगले unit में लिखेंगे।
Quiz
Python में, expression `True == 1` किसमें evaluate होता है?
- True, क्योंकि bool int का एक subtype है जहाँ True 1 के बराबर है
- False, क्योंकि एक boolean कभी एक number के बराबर नहीं हो सकता
- यह अलग types की तुलना के लिए एक TypeError फेंकता है
- None, क्योंकि comparison अपरिभाषित है
Show the answer
True, क्योंकि bool int का एक subtype है जहाँ True 1 के बराबर है
Python में, bool int के ऊपर बना है: True 1 है और False 0 है, तो True == 1 True है (और False == 0 True है)। Python ख़ुशी से उनकी तुलना करता है क्योंकि वे एक ही अंतर्निहित तरह के हैं। यह एक पसंदीदा exam catch है: यह एक error नहीं फेंकता और None वापस नहीं करता।
Watch out
quotes इसे text बनाते हैं
सबसे बड़ी beginner ग़लती: "30" (quotes में) एक str है, एक number नहीं। यह 30 जैसा दिखता है पर आप इस पर arithmetic नहीं कर सकते, "30" + 5 एक TypeError है, और "30" + "30" "3030" देता है, 60 नहीं। अगर एक value user input या एक text file से आई है, यह लगभग हमेशा एक str है जब तक आप इसे convert न करें। वह conversion बिल्कुल अगला topic है (type casting)।
Theory
C से एक बड़ा बदलाव
BCA104 में आपने पहले type declare किया (int marks;) और यह हमेशा के लिए तय था। Python dynamically typed है: आप कभी एक type declare नहीं करते, आप जो value assign करते हैं वह इसे तय करती है, और type() इसे उजागर करता है। एक नाम अब एक int और बाद में एक str भी रख सकता है। आज़ादी, पर ज़िम्मेदारी भी: चूँकि Python declaration समय पर आपको चेतावनी नहीं देगा, debugging करते समय type() से types जाँचना एक आदत है जिसे बनाए रखना उपयोगी है।
Summary
Key takeaways
- हर Python value का एक type होता है; type(value) इसे उजागर करता है।
- str quotes में text है; int whole numbers है; float में एक decimal point है; complex imaginary part के लिए j इस्तेमाल करता है।
- bool की दो values हैं, True और False, और यह int का एक subtype है (True == 1, False == 0)।
- 10 (int) और 10.0 (float) value में बराबर हैं पर type में अलग; / हमेशा एक float देता है।
- quotes में
"30"एक str है, एक number नहीं: इस पर arithmetic विफल होती या concatenate करती है। - Memory hook: quotes मतलब text, एक dot मतलब float, कोई dot नहीं मतलब int, और True बस एक सजा हुआ 1 है।