Nested Loops
Nested Loops అంటే ఏమిటి?
ఒక loop లోపల మరొక loop ఉంటే దాన్ని Nested Loop అంటారు. అంటే outer loop యొక్క ప్రతి iteration సమయంలో inner loop పూర్తిగా అమలవుతుంది.
Nested Loops ఎందుకు ఉపయోగిస్తాము?
Rows మరియు columns ఉన్న data, patterns, tables, matrix లాంటి వాటిని process చేయడానికి nested loops ఉపయోగిస్తాము.
ఇది ఎలా పనిచేస్తుంది?
మొదట outer loop ఒకసారి run అవుతుంది. ఆ సమయంలో inner loop మొదటి iteration నుంచి చివరి iteration వరకు పూర్తిగా run అవుతుంది. తరువాత outer loop తదుపరి iteration కు వెళ్తుంది. ప్రతి outer iteration కు inner loop మళ్లీ మొదటి నుంచి ప్రారంభమవుతుంది.
Python Syntax
for outer_value in sequence:
for inner_value in sequence:
statement
లోపలి loop తప్పనిసరిగా indentation తో outer loop లో ఉండాలి. Indentation తప్పుగా ఉంటే nested loop సరిగ్గా పనిచేయదు.
ఎక్కడ ఉపయోగిస్తాము?
- Rows మరియు columns ఉన్న data ను చదవడానికి
- Stars లేదా numbers తో patterns తయారు చేయడానికి
- Multiplication tables తయారు చేయడానికి
- Two-dimensional lists లేదా grids పై పని చేయడానికి
Simple Explanation
Nested loop ను ఒక loop లోపల మరో loop గా ఊహించండి. Outer loop ఒక row ను ఎంచుకున్నప్పుడు, inner loop ఆ row లోని అన్ని columns పై పని చేస్తుంది. ఉదాహరణకు 3 rows మరియు 3 columns ఉన్న grid లో, outer loop 3 సార్లు run అవుతుంది. ప్రతి సారి inner loop 3 సార్లు run అవుతుంది. కాబట్టి మొత్తం 3 × 3 = 9 సార్లు inner statement అమలవుతుంది.
ముఖ్యంగా గుర్తుంచుకోవాల్సింది: outer loop యొక్క ప్రతి ఒక్క iteration కు inner loop పూర్తిగా run అవుతుంది.
Real-Life Example
ఒక పాఠశాలలో 3 తరగతులు ఉన్నాయని అనుకుందాం. ప్రతి తరగతిలో 4 మంది విద్యార్థులు ఉన్నారు. ప్రతి తరగతిని outer loop గా, ఆ తరగతిలోని విద్యార్థులను inner loop గా తీసుకోవచ్చు. మొదట మొదటి తరగతిలోని 4 మంది విద్యార్థులపై పని పూర్తవుతుంది. తరువాత రెండవ తరగతి, చివరగా మూడవ తరగతి పరిశీలించబడుతుంది.
Code Examples
Nested Loop తో Number Pairs
for number in range(1, 4):
for count in range(1, 3):
print(number, count)
ఈ code లో outer loop number విలువలను 1 నుంచి 3 వరకు తీసుకుంటుంది. ప్రతి number కోసం inner loop count విలువలను 1 మరియు 2 గా తీసుకుంటుంది. అందువల్ల ప్రతి number తో రెండు pairs print అవుతాయి.
1 1 1 2 2 1 2 2 3 1 3 2
Nested Loop తో Star Pattern
for row in range(1, 4):
for column in range(1, 4):
print("*", end=" ")
print()
ఈ code 3 rows మరియు ప్రతి row లో 3 stars ఉన్న pattern ను తయారు చేస్తుంది. Inner loop ఒక row లో stars ను print చేస్తుంది. end=" " వల్ల stars ఒకే line లో print అవుతాయి. Inner loop పూర్తయిన తరువాత ఉన్న print() కొత్త line కు వెళ్తుంది.
* * * * * * * * *
Line-by-Line Explanation
ఈ line outer loop ను ప్రారంభిస్తుంది. range(1, 4) వల్ల number విలువలు 1, 2, 3 అవుతాయి. ప్రతి విలువ కోసం లోపలి loop పూర్తిగా అమలవుతుంది.
ఈ line inner loop ను ప్రారంభిస్తుంది. ప్రతి number కోసం count విలువలు 1 మరియు 2 అవుతాయి. ఈ line indentation తో outer loop లోపల ఉంది.
ఈ line ప్రస్తుతం ఉన్న number మరియు count విలువలను print చేస్తుంది. Inner loop ప్రతి iteration లో ఈ line ను అమలు చేస్తుంది.
ఈ line 1 నుంచి 3 వరకు rows ను నియంత్రించే outer loop. ప్రతి row కోసం ఒక కొత్త pattern line తయారవుతుంది.
ఈ line ప్రతి row లోని columns ను నియంత్రించే inner loop. ఇది ప్రతి row కోసం 3 సార్లు run అవుతుంది.
ఈ line ఒక star ను print చేస్తుంది. end=" " వల్ల print చేసిన తరువాత వెంటనే కొత్త line కు వెళ్లకుండా ఒక space ఉంచుతుంది. అందువల్ల ఒకే row లో మూడు stars కనిపిస్తాయి.
Inner loop పూర్తయిన తరువాత ఈ line అమలవుతుంది. ఇది cursor ను కొత్త line కు పంపుతుంది, కాబట్టి తరువాతి row కొత్త line లో print అవుతుంది.
Try It
Try this Python code:
for row in range(1, 4):
for column in range(1, 5):
print("#", end=" ")
print()
Practice
Practice: Nested loops ఉపయోగించి 3 rows మరియు ప్రతి row లో 4 @ symbols ఉన్న pattern ను print చేయండి.
Hint: Outer loop ను 3 సార్లు, inner loop ను 4 సార్లు run చేయండి. ఒకే line లో symbols కోసం end=" " ఉపయోగించండి.
Practice: Nested loops ఉపయోగించి ఈ output ను తయారు చేయండి: ప్రతి row లో 2 numbers ఉండాలి మరియు మొత్తం 3 rows ఉండాలి. Numbers స్థానంలో + symbol ను print చేయండి.
Hint: Outer loop కోసం range(1, 4), inner loop కోసం range(1, 3) ఉపయోగించవచ్చు.
Common Mistakes
Inner loop ను outer loop కింద సరైన indentation లేకుండా రాయడం.
Inner loop ను outer loop లోపల చూపించడానికి నాలుగు spaces indentation ఇవ్వాలి. Inner loop లోని statements కు ఇంకా ఎక్కువ indentation ఇవ్వాలి.
Inner loop ఒక్కసారి మాత్రమే run అవుతుందని అనుకోవడం.
Outer loop యొక్క ప్రతి iteration సమయంలో inner loop మొదటి నుంచి చివరి వరకు పూర్తిగా run అవుతుందని గుర్తుంచుకోండి.
Pattern లో ప్రతి symbol కొత్త line లో రావడం.
ఒకే row లో output కావాలంటే print("*", end=" ") లాగా end ఉపయోగించండి. Row పూర్తయిన తరువాత మాత్రమే print() ఉపయోగించండి.
range() లో చివరి విలువ కూడా వస్తుందని అనుకోవడం.
range(1, 4) లో 1, 2, 3 మాత్రమే వస్తాయి; 4 రాదు. కాబట్టి కావలసిన count ను బట్టి ending value ఎంచుకోండి.
Interview Questions
Nested Loop అంటే ఏమిటి?
Answer: ఒక loop లోపల మరో loop ఉంటే దాన్ని Nested Loop అంటారు.
Nested loop లో inner loop ఎప్పుడు run అవుతుంది?
Answer: Outer loop యొక్క ప్రతి iteration సమయంలో inner loop పూర్తిగా run అవుతుంది.
ఈ code లో print statement ఎన్ని సార్లు run అవుతుంది? for i in range(1, 4): for j in range(1, 5): print(i, j)
Answer: Outer loop 3 సార్లు, inner loop ప్రతి సారి 4 సార్లు run అవుతుంది. కాబట్టి print statement 3 × 4 = 12 సార్లు run అవుతుంది.
Nested loops ఎక్కడ ఉపయోగిస్తారు?
Answer: Patterns, rows and columns, tables, grids మరియు two-dimensional data పై పని చేయడానికి ఉపయోగిస్తారు.
Exam Questions
క్రింది code యొక్క output ఏమిటి?for i in range(1, 3): for j in range(1, 3): print(i, j)
Answer:
Output:1 11 22 12 2
3 rows మరియు 5 columns ఉన్న star pattern కోసం outer మరియు inner loops ఎన్ని సార్లు run కావాలి?
Answer:
Outer loop 3 సార్లు, inner loop ప్రతి outer iteration కు 5 సార్లు run కావాలి.
Nested loops లో indentation ఎందుకు ముఖ్యమైనది?
Answer:
Indentation ద్వారా Python కు inner loop outer loop లో భాగమని తెలుస్తుంది. సరైన indentation లేకపోతే code error ఇవ్వవచ్చు లేదా ఆశించిన విధంగా run కాకపోవచ్చు.
Quick Revision
- ఒక loop లోపల మరో loop ఉంటే Nested Loop అంటారు.
- Outer loop యొక్క ప్రతి iteration కు inner loop పూర్తిగా run అవుతుంది.
- Rows మరియు columns ఉన్న data కోసం nested loops ఉపయోగిస్తారు.
- Inner loop తప్పనిసరిగా సరైన indentation తో ఉండాలి.
- range() లో చివరి విలువ చేర్చబడదు.
- ఒకే row లో output కోసం print() లో end ఉపయోగించవచ్చు.
