बुनियाद · #1 / 11
Variables, Types, और I/O
Names, casting, और user input
यह क्यों मायने रखता है
Python में आप जो भी bug ठीक करते हैं, उसकी शुरुआत types, names, और input/output को समझने से होती है।
मूल विचार
Variables objects पर चिपकाए गए लेबल होते हैं। आप कभी भी फिर से लेबल लगा सकते हैं, पर object वही रहता है — और object हमेशा अपना type साथ रखता है।
आज़माकर देखिए
type() आपका सबसे तेज़ debugger है। जब numbers strings की तरह बर्ताव करें (या इसका उल्टा), तो type() बता देता है कि क्यों।
age = 25
height = 5.9
name = "Ada"
is_engineer = True
print(age, type(age).__name__)
print(height, type(height).__name__)
print(name, type(name).__name__)
print(is_engineer, type(is_engineer).__name__)
input() हमेशा एक string लौटाता है। गणित करने से पहले cast कीजिए — वरना "2" + "3" == "23"।
# input() blocked in Pyodide — pretend the user typed "42"
raw = "42"
print("raw:", raw, type(raw).__name__)
n = int(raw)
print("n*2 =", n * 2)
# What happens if you forget to cast?
try:
print(raw + 1)
except TypeError as e:
print("TypeError:", e)
झटपट जाँच
- प्र:
input()का type क्या है? उ:str - प्र:
int("10.5")के साथ क्या होता है? उ: यह error देता है — पहलेfloatमें बदलिए।
छोटे अभ्यास
- दो numbers माँगिए और उनका योग print कीजिए।
- input का इस्तेमाल करके सेंटीमीटर को मीटर में बदलिए।
आम ग़लतियाँ
- ग़लती:
age = input(...)फिरage + 1। समाधान:age = int(input(...))। - ग़लती:
list = []जैसे built-ins को shadow करना। समाधान: बेहतर names इस्तेमाल करें।
मुख्य बातें
- Variables objects की ओर इशारा करते हैं; type object के पास होता है।
input()हमेशा एकstrलौटाता है — गणित से पहलेint()/float()से cast कीजिए।- रहस्यमय bugs पकड़ने के लिए
type()का इस्तेमाल कीजिए। - Python dynamically typed है: वही name किसी अलग type से फिर से bind हो सकता है।