for Loop, range() और Nested Loops
दोहराना क्यों?
Data का काम दोहराव से भरा है: 40 students के marks जोड़ना, 365 दिनों का temperature जाँचना, हर item की bill line print करना। Loop statements के block को दोहराता है, इसलिए वही code 4 items या 4 लाख items संभाल लेता है।
for loop
for loop sequence (string, list, tuple, range) से एक-एक item लेकर हर एक के लिए body चलाता है।
for city in ['Delhi', 'Mumbai', 'Chennai']:
print('Weather report for', city)
for ch in 'DATA':
print(ch, end='-')
print()range()
range(start, stop, step) start से stop − 1 तक numbers देता है, हर बार step बढ़ाते हुए। सिर्फ़ stop ज़रूरी है।
print(list(range(5))) print(list(range(3, 8))) print(list(range(0, 50, 10))) print(list(range(5, 0, -1)))
Totals, averages और counts
IP में loop के दो सबसे काम के patterns: accumulator (total += value) और counter (count += 1)।
temps = [31.5, 33.0, 29.8, 35.2, 34.1, 30.6, 32.4] # one week
total = 0
hot_days = 0
for t in temps:
total += t
if t > 33:
hot_days += 1
print('Average temperature:', round(total / len(temps), 2))
print('Days above 33 °C:', hot_days)Input के साथ loops
n = int(input('How many students? '))
total = 0
for i in range(1, n + 1):
m = int(input('Marks of student ' + str(i) + ': '))
total += m
print('Class average =', total / n)Nested loops
एक loop के अंदर दूसरा loop: outer loop के हर round पर inner loop पूरा चलता है।
for i in range(1, 4):
for j in range(1, 4):
print(i, 'x', j, '=', i * j, end=' ')
print()Patterns और text charts
for i in range(1, 6):
print('#' * i)
for i in range(4, 0, -1):
print(str(i) * i)इसी idea से text में जल्दी से "bar chart" बनता है — Class XII में Matplotlib से बनने वाले charts की झलक:
sales = {'Mon': 12, 'Tue': 7, 'Wed': 15, 'Thu': 4}
for day in sales:
print(f'{day} {"█" * sales[day]} {sales[day]}')while, break और continue
while loop तब तक दोहराता है जब तक condition True है। break loop से जल्दी बाहर निकालता है; continue अगले round पर ले जाता है।
n = 5
i = 1
while i <= n:
print(i * i, end=' ')
i += 1
print()
for x in range(1, 20):
if x % 7 == 0:
print('First multiple of 7:', x)
breakfor marks in [45, -3, 88, 120, 67]:
if marks < 0 or marks > 100:
continue # skip invalid entries
print('Valid marks:', marks)सारांश और practice
for item in sequence:हर item के लिए दोहराता है;range(start, stop, step)में stop शामिल नहीं।- Accumulator और counter patterns से totals, averages और counts।
- Nested loops: हर outer round पर inner loop पूरा।
whilecondition पर दोहराता है;breakबाहर;continueछोड़ता है।
1) 1 से 10 तक के numbers के squares print करें। 2) 5 items की prices input करके total और सबसे महँगी price print करें। 3) यह pattern print करें: 1 / 1 2 / 1 2 3 / 1 2 3 4। 4) 1 से 100 तक कितने numbers 3 और 5 दोनों से divisible हैं?
Answer 4: 6 (15, 30, 45, 60, 75, 90)।
