वेरिएबल और प्रकार

हर प्रोग्राम को चीजें याद रखनी होती हैं। एक क्विज को खिलाड़ी का नाम चाहिए। एक गेम को वर्तमान स्कोर चाहिए। एक मौसम स्क्रिप्ट को जांचे जाने वाले शहर की जरूरत होती है। Python इसके लिए वेरिएबल का उपयोग करता है: नाम जो आप मानों से जोड़ते हैं ताकि आप उन्हें अपने पूरे प्रोग्राम में उपयोग कर सकें।
player_name = "राज"
score = 0
city = "दिल्ली"तीन लाइनें, तीन चीजें जो Python अब याद रखता है। प्रत्येक के लिए, Python पहले दाईं ओर का मान निकालता है, फिर इसे बाईं ओर के नाम के तहत संग्रहीत करता है। बाद में उस नाम का उपयोग करें और Python आपको मान वापस देगा।
एक मान संग्रहीत करना
= चिन्ह लगभग हर किसी को मैथ क्लास से भ्रमित करता है। Python में, = का अर्थ "बराबर" नहीं है। इसका अर्थ है इस मान को इस नाम के तहत संग्रहीत करें:
city = "दिल्ली"city को "दिल्ली" मिलता है। आप Python को बता रहे हैं: "दिल्ली" को याद रखें और इसे city लेबल करें।
आप किसी भी समय वेरिएबल का मान बदल सकते हैं। Python सबसे हाल का उपयोग करता है:
score = 0
score = 10 # अब score 10 है
score = 15 # अब score 15 है= मैथ क्लास "बराबर" नहीं है, यह "इस मान को इस नाम के तहत छिपाएं" है। इसे कभी भी बदलें और Python सबसे नए को रखता है। कोई घोषणा नहीं, कोई सेटअप नहीं, आप इसे नाम देते हैं और यह मौजूद है। मुझे इसे ओवरथिंक करना बंद करने में बहुत समय लगा। अपने वेरिएबल का नाम रखना
आप नाम चुनते हैं। 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 बिल्ट-इन जैसे list, input, type, या print के बाद वेरिएबल का नाम न रखें। Python इसे अनुमति देता है, लेकिन आप चुप से बिल्ट-इन को उस स्कोप के बाकी के लिए तोड़ देंगे और परिणामी त्रुटियां ट्रेस करने के लिए कठिन हैं।
snake_case के लिए रहें और आप बिल्कुल ठीक हैं। मेरी एक नौसिखिया गलती: किसी वेरिएबल को list या print न कहें। Python इसे अनुमति देता है, फिर बाद में शून्य चेतावनी के साथ सब कुछ विचित्र हो जाता है। आप क्या संग्रहीत कर सकते हैं
Python के पास चार प्रकार हैं जिनका आप लगभग हर प्रोग्राम में उपयोग करेंगे। Python यह पता लगाता है कि आप किस प्रकार का अर्थ रखते हैं कि आप मान कैसे लिखते हैं। आप कभी भी एक प्रकार को स्पष्ट रूप से घोषित नहीं करते।
पाठ (str)
कोई भी पाठ उद्धरण चिह्नों में जाता है, एकल या दोहरे। उद्धरण चिह्न Python को बताते हैं कि आप शाब्दिक वर्णों का मतलब रखते हैं, न कि एक वेरिएबल नाम। एक बार बनने के बाद, एक स्ट्रिंग को जगह में नहीं बदला जा सकता। स्ट्रिंग्स अध्याय सब कुछ कवर करता है जो आप उनके साथ कर सकते हैं।
player_name = "राज"
city = "दिल्ली"
message = 'खेल खत्म'यदि आपके पाठ में एक एपोस्ट्रॉफ है, तो इसे से बचने के लिए डबल उद्धरण चिह्नों का उपयोग करें:
note = "यह एक बढ़िया दिन है"
note = 'यह एक बढ़िया दिन है' # एक एस्केप का उपयोग करके समान परिणामपूर्ण संख्याएं (int)
पूर्ण संख्याएं बिना उद्धरण चिह्न या दशमलव बिंदु के जाती हैं। Python उन्हें पूर्णांक कहता है। वे जितनी बड़ी हो सकती हैं; Python आपकी ओर से कोई विशेष प्रयास किए बिना मनमाने ढंग से बड़ी संख्याओं को संभालता है।
score = 0
age = 28
population = 8_100_000_000 # अंडरस्कोर केवल पठनीयता के लिए हैं8_100_000_000 में अंडरस्कोर केवल इसलिए हैं ताकि आप इसे पढ़ सकें। दशमलव संख्याएं (float)
कोई भी संख्या जिसमें दशमलव बिंदु है एक float है। वे अधिकांश गणनाओं के लिए अपेक्षित रूप से काम करते हैं। जानने के लिए एक चीज: कुछ दशमलव मान बाइनरी में बिल्कुल संग्रहीत नहीं किए जा सकते, इसलिए आप एक छोटी राउंडिंग त्रुटि पा सकते हैं:
price = 4.99
temperature = 36.6
0.1 + 0.2 # 0.30000000000000004रोज़मर्रा के काम के लिए यह शायद ही कभी मायने रखता है। वित्तीय गणनाओं के लिए जहां सेंट के अंश गिनते हैं, Python के पास एक decimal मॉड्यूल है जो इसे सही ढंग से संभालता है। यह नंबर्स अध्याय में कवर किया गया है।
0.1 + 0.2 0.30000000000000004 देता है। एक बग नहीं, यह बाइनरी है। पैसे के लिए, decimal.Decimal तक पहुंचें। सच या गलत (bool)
कुछ चीजें चालू या बंद होती हैं। Python इसके लिए booleans का उपयोग करता है: बिल्कुल दो मान, True और False। वे इस चरण में मामूली दिखते हैं, लेकिन आपके प्रोग्राम में हर स्थिति और शाखा एक बूलियन पर चलती है।
is_logged_in = True
has_errors = FalsePython कुछ मानों को भी इलाज करता है जैसे कि वे False थे जब किसी स्थिति में उपयोग किए गए हों: 0, 0.0, "", और None (Python का "कोई मान नहीं") सभी False की तरह व्यवहार करते हैं। बाकी सब कुछ True की तरह व्यवहार करता है। यह नियंत्रण प्रवाह अध्याय में उपयोगी हो जाता है।
True और False, और वे हर if के पीछे हैं जो आप कभी लिखेंगे। मजेदार बिट: 0, "", [] और None सभी False के रूप में गिनते हैं, बाकी सब कुछ True के रूप में गिनता है। प्रकार की जांच और रूपांतरण
जब आप निश्चित नहीं हैं कि किसी मान का प्रकार क्या है, तो type() आपको बताता है। यह जांचने के लिए कि क्या कोई मान एक विशिष्ट प्रकार है, isinstance() अधिक विश्वसनीय उपकरण है:
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 प्रकारों को स्वचालित रूप से मिश्रण नहीं करता। एक स्ट्रिंग और एक संख्या को जोड़ना एक TypeError उठाता है:
score = 42
print("आपका स्कोर है " + score) # TypeError
print("आपका स्कोर है " + str(score)) # काम करता हैप्रकार नाम का उपयोग करके स्पष्ट रूप से परिवर्तित करें एक फंक्शन के रूप में:
| कॉल | परिणाम |
|---|---|
str(42) | "42" |
int(3.9) | 3 (ट्रंकेट करता है, गोल नहीं करता) |
float("3.14") | 3.14 |
int("3.14") | ValueError: एक दशमलव स्ट्रिंग को सीधे int में परिवर्तित नहीं किया जा सकता है |
int(float("3.14")) | 3 (पहले float में बदलें, फिर int में) |
bool(0) / bool("") | False |
type() बताता है कि कुछ क्या है, isinstance() जांचता है कि क्या यह दिया गया प्रकार है। और Python एक स्ट्रिंग और एक संख्या को एक साथ गोंद नहीं देगा, इसलिए पहले `str()` या `int()` से परिवर्तित करें। हर कोई एक बार इस पर ठोकर खाता है। व्यावहारिक रूप से
सभी चार प्रकार एक छोटी स्क्रिप्ट में एक साथ काम करते हैं। आउटपुट लाइनें f-strings का उपयोग करती हैं पाठ में मान एम्बेड करने के लिए: उद्घाटन उद्धरण से पहले 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 आपके लिए चुपचाप उन्हें मिश्रण नहीं करेगा।

