वेरिएबल और डेटा प्रकार
हर प्रोग्राम को चीज़ें याद रखनी होती हैं। एक क्विज़ को खिलाड़ी का नाम चाहिए। एक गेम को मौजूदा स्कोर चाहिए। एक मौसम स्क्रिप्ट को वह शहर चाहिए जो आप जाँच रहे हैं। Python इसके लिए वेरिएबल का उपयोग करती है: वे नाम जो आप मानों से जोड़ते हैं ताकि उन्हें पूरे प्रोग्राम में इस्तेमाल कर सकें।
player_name = "अर्जुन"
score = 0
city = "नई दिल्ली"तीन पंक्तियाँ। तीन चीज़ें जो Python अब याद रखती है। बाद में उन नामों में से कोई भी उपयोग करें और Python आपको वह मान वापस दे देगी।
एक मान संग्रहीत करना
= चिह्न लगभग सभी को गणित की कक्षा से आने पर उलझन में डालता है। Python में, = का अर्थ "बराबर है" नहीं है। इसका अर्थ है इस मान को इस नाम से संग्रहीत करो। इसे बाएँ से दाएँ पढ़ें:
city = "नई दिल्ली"city को "नई दिल्ली" मिलता है। आप Python को बता रहे हैं: "नई दिल्ली" याद रखो और उसे city नाम दो।
आप किसी भी समय वेरिएबल का मान बदल सकते हैं। Python बस सबसे हालिया मान का उपयोग करती है:
score = 0
score = 10 # score अब 10 है
score = 15 # score अब 15 हैअपने वेरिएबल का नाम रखना
नाम आप चुनते हैं। Python के कुछ कठोर नियम हैं, और समुदाय उन परंपराओं का पालन करता है जिन्हें पहले दिन से अपनाना उचित है। स्पष्ट नाम कोड को हफ्तों बाद भी पठनीय बनाते हैं। रहस्यमय नाम परेशानी का कारण बनते हैं।
Python द्वारा लागू किए गए नियम:
- केवल अक्षर, अंक और अंडरस्कोर। कोई स्थान या हाइफन नहीं।
- अक्षर या अंडरस्कोर से शुरू होना चाहिए, कभी अंक से नहीं
- केस-संवेदी:
score,Score, औरSCOREतीन अलग-अलग वेरिएबल हैं
सभी के द्वारा अनुसरण की जाने वाली परंपराएँ (PEP 8):
| चीज़ | शैली | उदाहरण |
|---|---|---|
| वेरिएबल और फ़ंक्शन | snake_case | user_name, total_price |
| स्थिरांक | UPPER_SNAKE_CASE | MAX_RETRIES, BASE_URL |
| क्लास | PascalCase | UserAccount, DataLoader |
# स्पष्ट नाम, एक नज़र में पठनीय
user_name = "अर्जुन"
total_price = 49.99
is_logged_in = True
MAX_RETRIES = 3
# एक घंटे के भीतर आपको पछतावा होगा
x = "अर्जुन"
tp = 49.99
b = Trueएक जाल जो जल्दी जानना ज़रूरी है: किसी वेरिएबल का नाम Python के built-in जैसे list, input, type, या print के नाम पर मत रखें। Python इसकी अनुमति देती है, लेकिन आप उस scope के बाकी हिस्से के लिए built-in को चुपचाप तोड़ देंगे और परिणामी त्रुटियाँ ढूंढना कठिन होती हैं।
आप क्या संग्रहीत कर सकते हैं
Python के चार प्रकार हैं जिनका उपयोग आप लगभग हर प्रोग्राम में करेंगे। Python यह समझ लेती है कि आप किस प्रकार का अर्थ रखते हैं, इस आधार पर कि आप मान कैसे लिखते हैं। आप कभी स्पष्ट रूप से एक प्रकार घोषित नहीं करते।
पाठ (str)
कोई भी पाठ quote marks के अंदर जाता है, एकल या दोहरे। quotes Python को बताते हैं कि आपका अर्थ literal अक्षर हैं, न कि कोई वेरिएबल नाम। एक बार बनने के बाद, string को in place नहीं बदला जा सकता। Strings अध्याय उनके साथ आप जो कुछ भी कर सकते हैं वह सब कवर करता है।
player_name = "अर्जुन"
city = "नई दिल्ली"
message = 'खेल समाप्त'यदि आपके पाठ में apostrophe है, तो उसे escape करने से बचने के लिए दोहरे quotes का उपयोग करें:
note = "यह एक अच्छा दिन है"
note = 'यह एक अच्छा दिन है' # escape का उपयोग करके समान परिणामपूर्ण संख्याएँ (int)
पूर्ण संख्याएँ बिना quotes या दशमलव बिंदु के जाती हैं। Python उन्हें integers कहती है। वे उतनी बड़ी हो सकती हैं जितनी आपको जरूरत हो; Python बिना किसी विशेष प्रयास के मनमाने रूप से बड़ी संख्याएँ संभालती है।
score = 0
age = 28
population = 8_100_000_000 # अंडरस्कोर केवल पठनीयता के लिए हैंदशमलव संख्याएँ (float)
दशमलव बिंदु वाली कोई भी संख्या float है। वे अधिकांश गणनाओं के लिए अपेक्षित रूप से काम करती हैं। एक बात जाननी चाहिए: कुछ दशमलव मानों को binary में ठीक से संग्रहीत नहीं किया जा सकता, इसलिए आपको एक छोटी सी rounding error मिल सकती है:
price = 4.99
temperature = 36.6
0.1 + 0.2 # 0.30000000000000004रोज़मर्रा के काम के लिए यह शायद ही कभी मायने रखता है। वित्तीय गणनाओं के लिए जहाँ पैसे के अंश मायने रखते हैं, Python में एक decimal module है जो इसे सही तरीके से संभालता है। यह Numbers अध्याय में शामिल है।
सच या झूठ (bool)
कुछ चीज़ें बस चालू या बंद होती हैं। Python इसके लिए booleans का उपयोग करती है: ठीक दो मान, True और False। वे इस चरण में मामूली लगते हैं, लेकिन आपके प्रोग्राम में हर condition और branch एक boolean पर चलती है।
is_logged_in = True
has_errors = FalsePython कुछ मानों को भी False की तरह मानती है जब उन्हें किसी condition में उपयोग किया जाता है: 0, 0.0, "", और None (Python का "यहाँ कोई मान नहीं") सभी False की तरह व्यवहार करते हैं। बाकी सब True की तरह व्यवहार करते हैं। यह Control flow अध्याय में उपयोगी हो जाता है।
प्रकार जाँचना और बदलना
जब आप निश्चित नहीं हों कि कोई मान किस प्रकार का है, type() आपको बताता है। यह जाँचने के लिए कि कोई मान किसी विशिष्ट प्रकार का है, isinstance() अधिक विश्वसनीय tool है:
print(type("hello")) # <class 'str'>
print(type(42)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type(True)) # <class 'bool'>
isinstance(42, int) # True
isinstance("hi", str) # TruePython प्रकारों को स्वचालित रूप से नहीं मिलाती। एक string और एक number को concatenate करने पर TypeError होता है:
score = 42
print("आपका स्कोर है " + score) # TypeError
print("आपका स्कोर है " + str(score)) # काम करता हैप्रकार नाम को function के रूप में उपयोग करके स्पष्ट रूप से रूपांतरित करें:
| कॉल | परिणाम |
|---|---|
str(42) | "42" |
int(3.9) | 3 (truncate करता है, round नहीं) |
float("3.14") | 3.14 |
int("3.14") | ValueError: decimal string को सीधे int में नहीं बदल सकते |
int(float("3.14")) | 3 (पहले float में बदलें, फिर int में) |
bool(0) / bool("") | False |
व्यवहार में
एक छोटी स्क्रिप्ट में सभी चार प्रकार एक साथ काम कर रहे हैं। output पंक्तियाँ पाठ में मानों को embed करने के लिए f-strings का उपयोग करती हैं: opening quote से पहले f लगाएँ और किसी भी वेरिएबल को {} में लपेटें। Python इसे वेरिएबल के वास्तविक मान से बदल देती है। आप उन्हें अगले अध्याय में ठीक से सीखेंगे।
player_name = "अर्जुन"
level = 3
accuracy = 0.94
is_premium = True
print(f"{player_name} स्तर {level} पर है, {accuracy:.0%} सटीकता के साथ।")
print(f"प्रीमियम खाता: {is_premium}")प्रकार मायने रखते हैं क्योंकि level + 1 काम करता है और player_name + 1 नहीं करता। प्रत्येक वेरिएबल ठीक एक प्रकार की चीज़ रखता है; Python उन्हें आपके लिए चुपचाप नहीं मिलाएगी।

