मॉड्यूल पाठ (1/4)
लूप और रेंज के लिए
पायथन में for लूप का उपयोग आइटमों के अनुक्रम को पुनरावृत्त करने के लिए किया जाता है:
एक सूची, एक स्ट्रिंग, एक श्रेणी, एक निर्देश... कुछ भी जो "पुनरावर्तनीय" है।
parole = ["ciao", "mondo", "!"]
for p in parole:
print(p)
# ciao
# mondo
# !पैटर्न हमेशा एक जैसा होता है: for <variable> in <iterable>: इसके बाद
इंडेंटेड ब्लॉक जिसे प्रत्येक आइटम के लिए एक बार निष्पादित किया जाएगा।
range(...): पूर्णांक अंतराल उत्पन्न करना
range पूर्णांकों का एक आलसी अनुक्रम उत्पन्न करता है। तीन रूप:
range(5) # 0, 1, 2, 3, 4
range(2, 6) # 2, 3, 4, 5
range(0, 10, 2) # 0, 2, 4, 6, 8 (step)
range(5, 0, -1) # 5, 4, 3, 2, 1 (negative step)range दाहिने छोर पर अनन्य है, जैसे slice। यह एक आलसी वस्तु है:
यह सभी नंबरों के लिए मेमोरी आवंटित नहीं करता है, यह उन्हें एक समय में एक उत्पन्न करता है।
totale = 0
for i in range(1, 11):
totale = totale + i
totale # 55 (1+2+...+10)एक सूचकांक के साथ पुनरावृत्ति: enumerate
जब आपको आइटम और उसके इंडेक्स की एक साथ आवश्यकता हो, तो enumerate का उपयोग करें:
parole = ["ciao", "mondo", "!"]
for i, p in enumerate(parole):
print(i, p)
# 0 ciao
# 1 mondo
# 2 !enumerate (index, value) जोड़े तैयार करता है जिन्हें हम सीधे दो को असाइन करते हैं
ट्यूपल अनपैकिंग के माध्यम से वेरिएबल्स (हम इसे समर्पित मॉड्यूल में देखेंगे
डेटा संरचनाएं)।
दो अनुक्रमों को समानांतर में दोहराना: zip
nomi = ["Ada", "Linus", "Grace"]
anni = [36, 54, 79]
for n, a in zip(nomi, anni):
print(f"{n} ha {a} anni")zip सबसे छोटे क्रम पर रुकता है।
रेंज() और पायथन का आलस्य
पायथन में, range() फ़ंक्शन मेमोरी में एक वास्तविक सूची आवंटित नहीं करता है: यह एक आलसी जनरेटर लौटाता है जो अनुरोध के अनुसार एक समय में नंबर एक उत्पन्न करता है (उदाहरण के लिए, for लूप में)। यह रैम को फुलाए बिना लाखों पूर्णांकों को पुनरावृत्त करने की अनुमति देता है। सूची के रूप में श्रेणी मानों का निरीक्षण करने के लिए, आप इसे list(range(5)) के साथ स्पष्ट रूप से डाल सकते हैं।
खुद कोशिश करना
रेंज(...) पर लूप के उपयोग से 1 से 100 (समावेशी) तक की संख्याओं के योग की गणना करें, इसे `कुल` पर निर्दिष्ट करें और इसका मूल्यांकन करें।
संकेत दिखाएँ
रेंज(1,101) 1, 2, ..., 100 उत्पन्न करता है (दाईं ओर विशेष)।
3 प्रयासों के बाद समाधान उपलब्ध है
व्यायाम की समीक्षा करें
सूची `शब्द = ['uno', 'due', 'tre']` को देखते हुए, गणना का उपयोग करके '0:uno', '1:due', '2:tre' जैसे स्ट्रिंग्स के `जोड़े` की एक सूची बनाएं। `जोड़े` का मूल्यांकन करें.
संकेत दिखाएँ
प्रत्येक पुनरावृत्ति पर गणना (शब्द) रिटर्न (सूचकांक, मूल्य)।
3 प्रयासों के बाद समाधान उपलब्ध है
अतिरिक्त चुनौती
Calculate the sum of all even numbers from 2 to 20 inclusive using a `for` loop over a `range`. Store the final sum in `even_sum` and evaluate it.
संकेत दिखाएँ
केवल 2 से 20 तक के सम पूर्णांकों को पुनरावृत्त करने के लिए श्रेणी (2, 21, 2) का उपयोग करें।
3 प्रयासों के बाद समाधान उपलब्ध है