शुरुआत से Pythonशुरुआतीपाठ 1027 मिनट का पाठ

लूप्स: चीज़ों को बार-बार दोहराना

कंप्यूटर कभी बोर नहीं होते। स्टेप्स को दोहराने के लिए, और एक ही बार में कई वैल्यूज़ को जोड़ने या जाँचने के लिए for, range और while का इस्तेमाल करें।

पाठ वीडियो में

60 सेकंड में

लूप्स: चीज़ों को बार-बार दोहराना

कंप्यूटर कभी बोर नहीं होते। स्टेप्स को दोहराने के लिए, और एक ही बार में कई वैल्यूज़ को जोड़ने या जाँचने के लिए for, range और while का इस्तेमाल करें।

1/5
आसान शब्दों में
आपके टीचर आपसे 100 बार "I will do my homework" लिखने को कहते हैं। इसमें आपको बहुत समय लग जाएगा। कंप्यूटर इसे पलक झपकते ही कर सकता है, बस आपको उसे एक बार कहना होगा: "इसे 100 बार दोहराओ"। इस निर्देश को लूप (loop) कहते हैं।

for लूप

एक for लूप वैल्यूज़ के एक ग्रुप से एक-एक करके गुज़रता है। हर चक्कर में, लूप वैरिएबल अगली वैल्यू को पकड़ता है, और इंडेंट (indented) की गई लाइनें फिर से चलती हैं।
Python: loop over a list of runspython
runs = [4, 6, 1, 0, 4]
for r in runs:
    print("This ball:", r)
print("Over finished!")
लूप 5 बार चलता है, लिस्ट की हर वैल्यू के लिए एक बार। r पहले 4 है, फिर 6, फिर 1, फिर 0, फिर 4। आखिरी लाइन इंडेंट नहीं है, इसलिए यह लूप खत्म होने के बाद एक बार चलती है।

range के साथ गिनती करना

range() लूप चलाने के लिए पूरे नंबरों (पूर्णांकों) की एक सीरीज़ बनाता है।
कोडयह जो नंबर देता हैयाद रखें
range(5)0, 1, 2, 3, 40 से शुरू होता है और 5 से पहले रुक जाता है
range(1, 6)1, 2, 3, 4, 51 से शुरू करें, 6 से पहले रुकें
range(2, 11, 2)2, 4, 6, 8, 10तीसरा नंबर स्टेप (कदम) है
Python: the 7 times tablepython
for i in range(1, 11):
    print(f"7 x {i} = {7 * i}")

लूप के साथ जोड़ना

एक बहुत आम तरीका: 0 से रनिंग टोटल (चल रहा कुल योग) शुरू करें, फिर लूप के अंदर हर वैल्यू को उसमें जोड़ते जाएँ।
  1. 1

    शुरुआत

    total = 0
  2. 2

    लूप

    लिस्ट की हर वैल्यू के लिए…
  3. 3

    अपडेट

    total = total + value
  4. 4

    लूप के बाद

    total में अब सब कुछ जोड़ने के बाद का योग है।
Python: total runs in an overpython
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() नहीं कर सकता, जैसे सिर्फ चौके-छक्के गिनना, या पहले ही रुक जाना।
Python: counting with a conditionpython
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 रहती है। इसका इस्तेमाल तब करें जब आपको पहले से पता न हो कि कितनी बार दोहराना है।
Python: saving up for a cricket batpython
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 इस चक्कर के बाकी हिस्से को छोड़ देता है और अगली वैल्यू पर चला जाता है।
Python: stop at the first wicketpython
balls = ["1", "4", "0", "W", "6"]
for b in balls:
    if b == "W":
        print("Wicket! Stop.")
        break
    print("Runs:", b)
इसे आज़माएँ। 13 का पहाड़ा प्रिंट करने के लिए टेबल बदलें, लेकिन सिर्फ 13 x 5 तक। आपको सिर्फ दो नंबर बदलने होंगे। 🎉

और देखें और पढ़ें

लैब

दो लूप फ़ंक्शंस: एक पहाड़ा (times table) और एक टोटल-रन काउंटर, बिना किसी शॉर्टकट के लिखे गए।

~12 min

समस्या

स्टार्टर में दिए गए दो फ़ंक्शंस को ठीक करें:

  1. table(n) को n के पहले 10 गुणजों (multiples) की एक लिस्ट लौटानी चाहिए। उदाहरण के लिए table(7) से [7, 14, 21, …, 70] मिलता है। अभी यह बहुत जल्दी रुक जाता है: range को देखें।
  2. 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%)।

टेस्ट देने और अपनी प्रोग्रेस सेव करने के लिए साइन इन करें