लूप्स: चीज़ों को बार-बार दोहराना
कंप्यूटर कभी बोर नहीं होते। स्टेप्स को दोहराने के लिए, और एक ही बार में कई वैल्यूज़ को जोड़ने या जाँचने के लिए for, range और while का इस्तेमाल करें।
60 सेकंड में
लूप्स: चीज़ों को बार-बार दोहराना
कंप्यूटर कभी बोर नहीं होते। स्टेप्स को दोहराने के लिए, और एक ही बार में कई वैल्यूज़ को जोड़ने या जाँचने के लिए for, range और while का इस्तेमाल करें।
for लूप
for लूप वैल्यूज़ के एक ग्रुप से एक-एक करके गुज़रता है। हर चक्कर में, लूप वैरिएबल अगली वैल्यू को पकड़ता है, और इंडेंट (indented) की गई लाइनें फिर से चलती हैं।runs = [4, 6, 1, 0, 4]
for r in runs:
print("This ball:", r)
print("Over finished!")r पहले 4 है, फिर 6, फिर 1, फिर 0, फिर 4। आखिरी लाइन इंडेंट नहीं है, इसलिए यह लूप खत्म होने के बाद एक बार चलती है।range के साथ गिनती करना
range() लूप चलाने के लिए पूरे नंबरों (पूर्णांकों) की एक सीरीज़ बनाता है।| कोड | यह जो नंबर देता है | याद रखें |
|---|---|---|
range(5) | 0, 1, 2, 3, 4 | 0 से शुरू होता है और 5 से पहले रुक जाता है |
range(1, 6) | 1, 2, 3, 4, 5 | 1 से शुरू करें, 6 से पहले रुकें |
range(2, 11, 2) | 2, 4, 6, 8, 10 | तीसरा नंबर स्टेप (कदम) है |
for i in range(1, 11):
print(f"7 x {i} = {7 * i}")लूप के साथ जोड़ना
- 1
शुरुआत
total = 0 - 2
लूप
लिस्ट की हर वैल्यू के लिए… - 3
अपडेट
total = total + value - 4
लूप के बाद
total में अब सब कुछ जोड़ने के बाद का योग है।
runs = [4, 6, 1, 0, 4, 2]
total = 0
for r in runs:
total = total + r # you can also write: total += r
print("Runs in the over:", total)sum() होता है जो इसे एक ही स्टेप में कर देता है। लेकिन रनिंग-टोटल का तरीका सीखने से आप वे काम कर सकते हैं जो sum() नहीं कर सकता, जैसे सिर्फ चौके-छक्के गिनना, या पहले ही रुक जाना।runs = [4, 6, 1, 0, 4, 2]
boundaries = 0
for r in runs:
if r == 4 or r == 6:
boundaries += 1
print("Boundaries:", boundaries)while लूप
while लूप तब तक दोहराता है जब तक कि कोई शर्त True रहती है। इसका इस्तेमाल तब करें जब आपको पहले से पता न हो कि कितनी बार दोहराना है।savings = 0
weeks = 0
while savings < 1000: # target in rupees
savings = savings + 150 # pocket money saved each week (made-up)
weeks = weeks + 1
print(f"After {weeks} weeks you have Rs {savings}.")while लूप में कुछ ऐसा बदलना चाहिए जिससे कि उसकी शर्त किसी दिन False हो जाए। अगर आप savings = savings + 150 भूल जाते हैं, तो शर्त हमेशा के लिए True रह जाएगी। इसे इन्फिनिट लूप (infinite loop) कहते हैं, और इससे पेज हैंग हो सकता है। अगर ऐसा हो, तो पेज रीलोड करें, कोड ठीक करें और फिर से चलाएँ।दो काम के शब्द: break और continue
breakलूप को तुरंत रोक देता है।continueइस चक्कर के बाकी हिस्से को छोड़ देता है और अगली वैल्यू पर चला जाता है।
balls = ["1", "4", "0", "W", "6"]
for b in balls:
if b == "W":
print("Wicket! Stop.")
break
print("Runs:", b)और देखें और पढ़ें
लैब
दो लूप फ़ंक्शंस: एक पहाड़ा (times table) और एक टोटल-रन काउंटर, बिना किसी शॉर्टकट के लिखे गए।
समस्या
स्टार्टर में दिए गए दो फ़ंक्शंस को ठीक करें:
table(n)कोnके पहले 10 गुणजों (multiples) की एक लिस्ट लौटानी चाहिए। उदाहरण के लिएtable(7)से[7, 14, 21, …, 70]मिलता है। अभी यह बहुत जल्दी रुक जाता है:rangeको देखें।total_runs(scores)को लिस्ट के सभी नंबरों को जोड़ना चाहिए और एकforलूप तथा रनिंग टोटल का इस्तेमाल करके कुल योग लौटाना चाहिए। यहाँsum()का इस्तेमाल न करें; मकसद लूप की प्रैक्टिस करना है। एक खाली लिस्ट का परिणाम 0 होना चाहिए।
आउटपुट देखने के लिए Run दबाएँ, फिर Check करें।
प्रैक्टिस लैब
कोड में बदलाव करें और इसे रन करें। Python आपके ब्राउज़र में चलता है — हमारे सर्वर पर कुछ नहीं भेजा जाता।
कोई आउटपुट नहीं। वैल्यूज़ देखने के लिए print(...) जोड़ें।
आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1एक ऐसा लूप लिखें जो max() का इस्तेमाल किए बिना लिस्ट में सबसे बड़ा स्कोर ढूँढता है। शुरुआती वैल्यू क्या होनी चाहिए?दिखाएं
सुरक्षित शुरुआत पहला आइटम है: best = scores[0]। फिर लूप चलाएँ और जब भी आपको कोई बड़ी वैल्यू मिले, best को उससे बदल दें। 0 से शुरू करना तब फेल हो जाएगा जब हर स्कोर नेगेटिव हो, जैसे सर्दियों का तापमान। (खाली लिस्ट के लिए अपने नियम की ज़रूरत होती है, क्योंकि इसमें कोई सबसे बड़ी वैल्यू नहीं होती।)
Q2जवाब देने के लिए while लूप का इस्तेमाल करें: अगर कोई बैटर हर गेंद पर 4 रन बनाता है, तो उसे 50 रन तक पहुँचने के लिए कितनी गेंदों की ज़रूरत होगी? while लूप इसके लिए सही क्यों है?दिखाएं
runs = 0; balls = 0, फिर while runs < 50: runs += 4; balls += 1। यह 13 गेंदों (52 रन) पर खत्म होता है। एक while लूप इसलिए सही बैठता है क्योंकि हमें पहले से चक्करों की संख्या नहीं पता; हमें सिर्फ यह पता है कि कब रुकना है।
अक्सर पूछे जाने वाले सवाल
range(5) 4 पर क्यों रुक जाता है?
range(5) 0 से शुरू होकर 5 नंबर देता है: 0, 1, 2, 3, 4। पायथन आमतौर पर 0 से गिनती करता है। शुरुआत में यह अजीब लगता है, लेकिन आगे चलकर यह कई चीज़ों को आसान बना देता है, जैसे किसी लिस्ट में पोज़िशन।
मुझे for कब इस्तेमाल करना चाहिए और while कब?
जब आप किसी जानी-पहचानी लिस्ट या तय गिनती से गुज़र रहे हों, तब for का इस्तेमाल करें। जब आप तब तक दोहराना चाहते हैं जब तक कुछ घटित न हो जाए, जैसे कि किसी टारगेट तक पहुँचना, और आपको नहीं पता कि इसमें कितने चक्कर लगेंगे, तब while का इस्तेमाल करें।
+= का क्या मतलब है?
total += r, total = total + r लिखने का एक छोटा तरीका है। ऐसे ही -=, *= और दूसरे भी होते हैं।
मेरा लूप सिर्फ एक बार प्रिंट हुआ। क्यों?
इंडेंटेशन (indentation) की जाँच करें। जो लाइनें दोहरानी हैं, उन्हें for वाली लाइन के नीचे इंडेंट किया जाना चाहिए। यह भी जाँच लें कि आपने गलती से लूप के अंदर return या break तो नहीं डाल दिया।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।