while लूप — शर्त सत्य रहने तक चलना
एक ही काम को बार-बार दोहराना, अनंत लूप कैसे बनते हैं और उन्हें कैसे रोकें, break और continue, तथा मान्य इनपुट मिलने तक पूछते रहना।
- 1समस्या
- 2समझें
- 3उदाहरण
- 4अनुमान
- 5स्वयं करें
- 6चुनौती
वह समस्या जिसे हम हल कर रहे हैं
पिछले पाठ में हमने अमान्य इनपुट को पकड़ना सीखा — जब कोई twenty टाइप करता है, तो प्रोग्राम कह सकता है "यह एक संख्या नहीं है"।
लेकिन ऐसा कहने के बाद वह क्या करता है? वह रुक जाता है। उपयोगकर्ता को पूरा प्रोग्राम फिर से चलाना पड़ता है। कोई भी वास्तविक सॉफ़्टवेयर ऐसा व्यवहार नहीं करता — वह फिर से पूछता है, और तब तक पूछता रहता है जब तक कि उसे कोई मान्य उत्तर नहीं मिल जाता।
लूप इसी काम के लिए होते हैं: एक ही काम को बार-बार दोहराना, जब तक उसकी आवश्यकता हो। आज हम while सीखते हैं, जो तब तक चलता है जब तक कि कोई शर्त सत्य बनी रहती है।
इस मिशन के अंत तक आप सीखेंगे
whileलूप लिखना और यह बताना कि यह कब रुकेगा- अनंत लूप (infinite loops) को पहचानना और
Ctrl + Cसे रोकना - लूप के अंदर योग (accumulator) और गिनती जोड़ना
breakऔरcontinueका सही स्थानों पर उपयोग करना- मान्य इनपुट मिलने तक लगातार पूछते रहना
पूर्वापेक्षाएँ: निर्णय लेना — if, elif, else.
सबसे सरल लूप
count = 3
while count > 0:
print(count)
count = count - 1
print("Go")3
2
1
Goयह संरचना दिखने में बिल्कुल if जैसी है — शर्त, कोलन, इंडेंटेड ब्लॉक। केवल एक बड़ा अंतर है: if शर्त को केवल एक बार जाँचता है; while ब्लॉक समाप्त होने पर हर बार शर्त को दोबारा जाँचता है।
प्रत्येक कार्यशील while लूप के तीन भाग होते हैं:
- एक प्रारंभिक मान — लूप से पहले (
count = 3) - एक शर्त — कब तक चलते रहना है (
count > 0) - एक परिवर्तन — ब्लॉक के अंदर कुछ ऐसा जो अंततः शर्त को असत्य बना दे (
count = count - 1)
अनंत लूप (Infinite loops)
यदि तीसरा भाग छूट जाए तो क्या होता है:
count = 3
while count > 0:
print(count)यह हमेशा के लिए 3 प्रिंट करता रहेगा।
इसे कैसे रोकें: टर्मिनल में Ctrl + C दबाएँ। यह तुरंत रुक जाता है।
अनंत लूप सीखना सीखने की प्रक्रिया का एक सामान्य हिस्सा है। जब भी आप लूप लिखें, बस खुद से एक बार पूछें: "यह शर्त कब और कैसे असत्य होगी?"
संचय करना (Accumulation)
लूप का सबसे आम काम किसी चीज़ को संचित करना होता है — एक योग, एक गिनती:
total = 0
number = 1
while number <= 5:
total = total + number
number = number + 1
print("Sum of 1 to 5:", total)Sum of 1 to 5: 15total को एक्यूमुलेटर कहा जाता है। ध्यान दें कि यह लूप के बाहर 0 से शुरू होता है।
break — तुरंत बाहर निकलना
break लूप को तुरंत समाप्त कर देता है, भले ही शर्त कुछ भी कह रही हो:
number = 1
while number <= 100:
if number % 7 == 0:
print("First multiple of 7:", number)
break
number = number + 1First multiple of 7: 7break हमें while True का उपयोग करने की भी अनुमति देता है:
while True:
answer = input("Type 'quit' to exit: ").strip().lower()
if answer == "quit":
print("Goodbye")
break
print(f"You typed: {answer}")Type 'quit' to exit: hello
You typed: hello
Type 'quit' to exit: QUIT
Goodbyecontinue — इस चक्कर को छोड़ना
continue लूप को समाप्त नहीं करता; यह ब्लॉक के शेष भाग को छोड़ देता है और सीधे अगले पुनरावृत्ति (iteration) पर चला जाता है:
number = 0
while number < 10:
number = number + 1
if number % 2 == 0:
continue
print(number)1
3
5
7
9सावधानी: यदि शर्त को आगे बढ़ाने वाली पंक्ति (number = number + 1)continueके बाद लिखी जाए, तो लूप हमेशा के लिए अटक जाएगा।
मान्य इनपुट मिलने तक पूछते रहना
while True:
raw = input("Your age: ").strip()
if raw.isdigit():
age = int(raw)
break
print("Please type a whole number, digits only.")
print(f"Thank you. Age recorded as {age}.")Your age: twenty
Please type a whole number, digits only.
Your age: 22.5
Please type a whole number, digits only.
Your age: 22
Thank you. Age recorded as 22.एक संपूर्ण उदाहरण
shopping.py:
# Keep taking item prices until the user is done, then summarise
total = 0.0
item_count = 0
print("Enter item prices. Type 'done' to finish.")
while True:
entry = input("Price: ").strip().lower()
if entry == "done":
break
if entry == "":
print(" Nothing typed — try again.")
continue
# Accept only digits and at most one decimal point
if entry.replace(".", "", 1).isdigit():
price = float(entry)
total = total + price
item_count = item_count + 1
print(f" Added {price:.2f}. Running total {total:.2f}")
else:
print(f" '{entry}' is not a price. Try again.")
print()
if item_count == 0:
print("No items were entered.")
else:
average = total / item_count
print(f"Items : {item_count}")
print(f"Total : {total:.2f}")
print(f"Average : {average:.2f}")Enter item prices. Type 'done' to finish.
Price: 120
Added 120.00. Running total 120.00
Price: abc
'abc' is not a price. Try again.
Price: 85.5
Added 85.50. Running total 205.50
Price: done
Items : 2
Total : 205.50
Average : 102.75जब यह टूटता है
प्रोग्राम रुक नहीं रहा है, टेक्स्ट तेज़ी से भाग रहा है Ctrl + C दबाएँ। फिर जाँचें कि क्या लूप में शर्त बदलने वाली पंक्ति मौजूद है।
लूप कभी चला ही नहीं शर्त पहले से ही असत्य थी। प्रारंभिक मान की जाँच करें।
IndentationError while के बाद की पंक्ति ठीक से इंडेंटेड नहीं है।
चरण 4 / 6 — अनुमान
अपनी समझ की जाँच करें
What is the complete output of this loop?
count = 3
while count > 0:
print(count)
count = count - 1
print("Go")- A3 2 1 Go
- B3 2 1 0 Go
- C3 Go
- D2 1 0 Go
This program never stops. What is missing?
total = 0
number = 1
while number <= 5:
total = total + number
print(total)- AThere is no `number = number + 1` inside the loop, so the condition never becomes false
- B`total` was not initialised inside the loop
- CThe `while` should be an `if`
- DChanging `<=` to `<` in the condition would make it stop
With that continue in place, what does this loop print?
number = 0
while number < 5:
number = number + 1
if number == 3:
continue
print(number)- A1 2 4 5
- B1 2
- C1 2 3 4 5
- D1 2 4
उत्तर देने के लिए अकाउंट आवश्यक है
अपने उत्तर जाँचने के लिए साइन इन करें
प्रश्न ऊपर दिए गए हैं, और मन में उत्तर सोचना ही मुख्य कार्य है। सही उत्तर, व्याख्या और तीन-स्तरीय संकेत देखने के लिए साइन इन करें।
आपकी बारी
एक संख्या अनुमान लगाने का खेल बनाएं, guess.py:
- कोड में 1 और 100 के बीच एक गुप्त संख्या निर्धारित करें
- खिलाड़ी से अनुमान लगाने के लिए कहें, और हर बार "higher" या "lower" बताएं
- सही अनुमान पर बधाई दें और लूप से बाहर निकलें
- प्रिंट करें कि कितने प्रयास लगे
- यदि उपयोगकर्ता अमान्य इनपुट देता है, तो प्रोग्राम क्रैश नहीं होना चाहिए — संदेश दें और दोबारा पूछें
- सात प्रयासों के बाद खेल समाप्त हो जाए और गुप्त संख्या प्रकट हो।
There is more in this mission
What you read above is the complete mission — nothing was cut out of it. Pro adds:
- भीतर वास्तव में क्या होता है — पायथन इसे कैसे निष्पादित करता है
- अभ्यास का संपूर्ण समाधान, चरण-दर-चरण स्पष्टीकरण के साथ
- कठिन अतिरिक्त अभ्यास
- इस विषय पर साक्षात्कार में क्या पूछा जाता है और उसका आदर्श उत्तर
Step 6 of 6
चुनौती — the chapter quiz
सरल से कठिन — दस प्रश्न, अंतिम वाले जानबूझकर चुनौतीपूर्ण बनाए गए हैं।
Sign in to take the quiz