अध्याय 04

वेरिएबल और प्रकार (Types) — प्रोग्राम कैसे याद रखता है

वेरिएबल में मान संग्रहीत करना, उनके नामकरण के नियम और चार बुनियादी प्रकार — int, float, str, bool — साथ ही वह त्रुटि जो शुरुआती लोगों को सबसे अधिक मिलती है।

30 मिनटPython 3.12
  1. 1समस्या
  2. 2समझें
  3. 3उदाहरण
  4. 4अनुमान
  5. 5स्वयं करें
  6. 6चुनौती

वह समस्या जिसे हम हल कर रहे हैं

अब तक हमारे प्रोग्राम कुछ भी याद नहीं रख पाते थे। जो कुछ भी प्रिंट हुआ, वह खत्म हो गया।

वास्तविक सॉफ़्टवेयर ऐसे काम नहीं करता। एक बिलिंग प्रोग्राम में मूल्य की गणना एक बार की जाती है और उसकी आवश्यकता तीन अलग-अलग स्थानों पर होती है। किसी रिपोर्ट में कुल योग पहले निकाला जाता है और बाद में उपयोग किया जाता है। प्रोग्राम को डेटा याद रखना होता है।

इसके साथ एक दूसरी समस्या भी है: पिछले अध्याय में "2" + "3" ने 23 दिया, जबकि 2 + 3 ने 5 दिया — प्रतीक एक ही, लेकिन व्यवहार दो। ऐसा इसलिए है क्योंकि पायथन की दृष्टि में वे दोनों अलग-अलग प्रकार (Types) के हैं। प्रकार को डेटा टाइप कहा जाता है, और शुरुआती स्तर की अधिकांश त्रुटियां यहीं से आती हैं।

इस मिशन के अंत तक आप सीखेंगे

  • किसी वेरिएबल में मान संग्रहीत करना और बाद में उसे बदलना
  • ऐसे नाम चुनना जो पायथन स्वीकार करता है और मनुष्य आसानी से पढ़ सकते हैं
  • चार बुनियादी डेटा प्रकारों को पहचानना: int, float, str, bool
  • type() फ़ंक्शन से किसी भी मान का प्रकार जाँचना
  • TypeError को पढ़ना और समझना कि समस्या क्या है

पूर्वापेक्षाएँ: print से देखना, टिप्पणियों से समझाना.


वेरिएबल एक नाम (लेबल) है

python
city_count = 4

उस पंक्ति को दाएँ से बाएँ पढ़ें: मान 4 अस्तित्व में आया, और city_count नाम का लेबल उससे जुड़ गया। अब जब भी आप city_count लिखेंगे, आपको वह मान मिल जाएगा।

python
city_count = 4
print("Cities:", city_count)
print("Double:", city_count * 2)
text
Cities: 4
Double: 8
= का अर्थ गणितीय समानता नहीं है। पायथन में = एक निर्देश (Assignment) है: "इस मान को उस नाम के अंतर्गत सुरक्षित रखें।" यही कारण है कि total = total + 5 — जो गणित में असंभव है — पायथन में पूरी तरह से वैध है। इसका अर्थ है: "जो मान total में अभी है, उसमें 5 जोड़ें और परिणाम वापस total में रख दें।"

मान बदलना (Reassignment)

किसी वेरिएबल को नया मान देने पर पुराना मान मिट जाता है:

python
stock = 20
print("Before:", stock)

stock = stock - 3
print("After:", stock)
text
Before: 20
After: 17

चार मुख्य डेटा प्रकार

  1. int (पूर्णांक): 10, -5, 0
  2. float (दशमलव संख्याएं): 19.99, -0.5, 3.14
  3. str (स्ट्रिंग / टेक्स्ट): "Python", 'Delhi'
  4. bool (बूलियन — सत्य या असत्य): True, False

एक संपूर्ण उदाहरण

invoice.py:

python
# Invoice for a single order
customer_name = "Rafi"
unit_price = 249.50
quantity = 3
is_member = True

subtotal = unit_price * quantity
discount = 50.0
total = subtotal - discount

print("Customer  :", customer_name)
print("Quantity  :", quantity)
print("Subtotal  :", subtotal)
print("Discount  :", discount)
print("Total     :", total)
print("Member    :", is_member)
text
Customer  : Rafi
Quantity  : 3
Subtotal  : 748.5
Discount  : 50.0
Total     : 698.5
Member    : True

मूल्य बदलने के लिए आपको केवल unit_price की पंक्ति को बदलना होगा, और नीचे की प्रत्येक गणना अपने आप सही हो जाएगी।


सामान्य गलतियाँ और समाधान

NameError: name 'total' is not defined आपने जिस नाम का उपयोग किया है उसे अभी तक कोई मान नहीं दिया गया है, या वर्तनी (spelling) गलत है। पायथन केस-संवेदनशील (case-sensitive) है, इसलिए Total और total अलग-अलग नाम हैं।

TypeError: can only concatenate str (not "int") to str आपने टेक्स्ट में संख्या को सीधे जोड़ने का प्रयास किया। या तो int() से रूपांतरित करें या print("Age:", age) में कॉमा का उपयोग करें।

NameError: name 'true' is not defined पायथन में बूलियन मान बड़े अक्षर से शुरू होते हैं: True और False।