Please log in to earn points for visiting this page.
ఇప్పుడు పైథాన్ లో ఉండే ఫర్ లూప్స్ ఏవిదంగా యూజ్ అవుతాయో ఈ ట్యుటోరియల్ లో తెలుసుకుందాం.
గీత రకరకాల ఫ్రూట్స్ ను ఒక variable లో డిక్షనరీ లాగా స్టోర్ చేసుకుంది. ఇప్పుడు ఆ డిక్షనరీ లో ఉండే ఒక్కక్క ఫ్రూట్ ను 1బై 1 వచ్చే విదంగా ప్రింట్ చేయాలనుకుంది. దీని కోసం గీత పైథాన్ లో ఉండే ఫర్ లూప్ ను యూజ్ చేసింది. అంటే ఒక sequence పైన ఇరిటేట్ చేయడం కోసం గీత లాగా మనం కూడా ఫర్ లూప్ ను యూజ్ చేయాలన్నమాటా !
అయితే ఇది ఇతర ప్రోగ్రామింగ్ లాంగ్వేజ్లలోని కీవర్డ్ లాగా తక్కువగా ఉంటుంది. అంతేకాకుండా ఇతర ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్లలో కనిపించే విధంగా ఇటరేటర్ పద్ధతి వలె బాగా పనిచేస్తుంది.
ఇక్కడ మనం ఫర్ లూప్తో లిస్ట్లోని ప్రతి ఐటెమ్కు ఒకసారి, టుపుల్/సెట్ మొదలైన స్టేట్మెంట్ల సెట్ ని కూడా ఎగ్జిక్యూట్ చేయవచ్చు.
1st : లిస్ట్ ను create చేయండి. 2nd : స్పేస్ ఇవ్వకుండా for కీవర్డ్ అనే ఇవ్వండి.. తరువాత కొత్త variable name ను టైప్ చేయండి.. తరువాత in కీవర్డ్ అనే ఇవ్వండి..తరువాత ముందుగా క్రియేట్ చేసుకున్న లిస్ట్ యొక్క name ను ఇక్కడ టైప్ చేసి కోలన్ ఇవ్వండి.. అంతే చివరకు ఇలా ఉంటుంది. for x in fruits: ఇప్పుడు స్పేస్ ఇచ్చి కొత్త variable name ను ప్రింట్ చేయండి.
ఇక్కడ ఫ్రూట్ అనే లిస్ట్ లో నుండి ప్రతి ఫ్రూట్ ను ప్రింట్ చేస్తున్నారు :
అయితే for loop కి మాత్రం ముందుగా సెట్ చేయడానికి ఇండెక్సింగ్ వేరియబుల్ అవసరం లేదు.
స్ట్రింగ్ ద్వారా లూపింగ్ చేయడం అయితే స్ట్రింగ్స్ కూడా iterative object లు, ఇవి అక్షరాల క్రమాన్ని కలిగి ఉంటాయి : అంటే ఏదైనా ఒక స్ట్రింగ్ లో ఉన్న characters ( అక్షరాలు ) లిస్ట్ లాగా అనుకోండి. ఇక్కడ w3badi అనే స్ట్రింగ్ లో / వర్డ్ లో
ఇక్కడ "w3badi" అనే పదంలోని అక్షరాల ద్వారా లూప్ చేసి 1బై 1 ప్రింట్ చేస్తున్నారు :
గీత తన లిస్ట్ లో ఉండే 5 ఫ్రూట్స్ ను మొత్తం ప్రింట్ చెయ్యకుండా ఎప్పుడైతే mango ఫ్రూట్ కు వస్తుందో అప్పుడు లూప్ ను స్టాప్ చేయాలనుకుంది. అప్పుడు ఇక్కడ if బ్లాక్ ను మరియు break అనే కీవర్డ్ ను యూజ్ చేసింది. అంటే ముందుగా క్రియేట్ చేసుకున్న లిస్ట్ యొక్క name ను == అనే ఆపరేటర్ ను యూజ్ చేసి mango అనే ఫ్రూట్ ను ఇచ్చింది. ఇక్కడ x అనేది mango అనే ఫ్రూట్ కి ఎప్పుడైతే లిస్ట్ లో ఉండే mango అనే ఫ్రూట్ కి సమానం అవుతుందో అప్పుడు వెంటనే లూప్ నుండి బయటకు వస్తుంది. అప్పుడు mango వరకు మాత్రమే ప్రింట్ అవుతాయి. అయితే దీని కోసం break అనే కీవర్డ్ ను ఖచ్చితంగా if బ్లాక్ లో ఇవ్వాలి. సింపుల్ గా బ్రేక్ స్టేట్మెంట్తో మనం లూప్ని అన్ని ఐటెమ్ల ద్వారా లూప్ చేసే ముందు స్టాప్ చేయవచ్చు:
ఇక్కడ x అనేది "mango" అయినప్పుడు లూప్ నుండి బయటకు వస్తుంది :
x
ఉదాహరణ : 2
ఇక్కడ x "mango" అయినప్పుడు లూప్ నుండి బయటకు వస్తుంది, కానీ ఈసారి mango అనేది ప్రింట్ కాదు :
పైన example లో mango వరకు మాత్రమే ప్రింట్ చేసాము. కానీ ఇప్పుడు mango ను మాత్రమే ప్రింట్ చేయ్యకుండా మిగతావన్నీ కూడా ప్రింట్ చేయాలి. ఎలా ? దీని కోసం మనం continue అనే కీవర్డ్ ను యూజ్ చేస్తాము.
అంటే పైన example లో mango వరకు ప్రింట్ చేసాము. కానీ ఇప్పుడు mango మాత్రమే వదిలేసి ప్రింట్ చేస్తాము. కానీ ఇక్కడ if బ్లాక్ ను యూజ్ చేస్తాము.
ఎప్పుడైతే x "mango" లిస్ట్ లో ఉండే mango అనే ఫ్రూట్ కి సమానం అవుతుందో అప్పుడు వెంటనే లూప్ నుండి బయటకు రాకుండా అలాగే లూప్ రన్ చేయడం. అంటే mango మాత్రమే ప్రింట్ కాకుండా లూప్ ను రన్ చేస్తాము. ఎందుకంటే if బ్లాక్ లో continue అనే కీవర్డ్ ను ఇచ్చాము కాబట్టి.
ఇక్కడ mango కాకుండా మిగతావన్నీ కూడా ప్రింట్ చేస్తున్నారు.
ఇక్కడ గీత variable ని క్రియేట్ చేయకుండా కేవలం 10 వరకు ప్రింట్ చేయాలనుకుంది. దాని కోసం range() అనే ఫంక్షన్ ను యూజ్ చేసింది. ఇక్కడ గీత బ్రాకెట్ లో 11 ను ఇచ్చింది. అంతే వెంటనే 10 వరకు ప్రింట్ అయ్యాయి. అంటే ఎక్కడిదాకా ప్రింట్ చేయలనుకుంటుమో ఆ సంఖ్యను ఇస్తే అక్కడ దాకా ప్రింట్ అవుతాయన్నమాటా !
సింపుల్ గా చెప్పాలంటే నిర్దిష్ట సంఖ్యలో కోడ్ని లూప్ చేయడం కోసం, range() అనే ఫంక్షన్ ను యూజ్ చేయవచ్చు, range() అనే ఫంక్షన్ డిఫాల్ట్గా 0 నుండి ప్రారంభమయ్యే సంఖ్యల క్రమాన్ని అందిస్తుంది మరియు 1 ద్వారా ఇంక్రిమెంట్ (డిఫాల్ట్గా) అవుతుంది. అంతే కాకుండా నిర్దిష్ట సంఖ్యలో ఎండ్ అవుతుంది.
ఇక్కడ range() అనే ఫంక్షన్ని యూజ్ చేస్తున్నారు :
ఇక్కడ range(11) అనేది 0 నుండి 11 వరకు ఉండే విలువలు కాదని, 0 నుండి 10 వరకు ఉన్న విలువలు అని మీరు గమనించండి.
అయితే range() అనే ఫంక్షన్ డిఫాల్ట్గా 0 కి ప్రారంభ విలువగా ఉంటుంది, అయితే పరామితిని మనం జోడించడం ద్వారా ప్రారంభ విలువను ఇవ్వడం సాధ్యమవుతుంది: range(2,8) , అంటే 2 నుండి 8 వరకు విలువలు (ఇక్కడ 6 ప్రింట్ కాదు):
ఇక్కడ starting వాల్యూ ను ఇచ్చి ప్రింట్ చేస్తున్నారు :
కానీ ఇక్కడ క్రమాన్ని 1 ద్వారా పెంచడానికి range() ఫంక్షన్ డిఫాల్ట్ అవుతుంది. అయితే మీరు మూడవ వాల్యూ ను యాడ్ చేయడం ద్వారా ఇంక్రిమెంట్ విలువను ఇవ్వడం సాధ్యమవుతుంది : range(2, 30, 3) ): అంటే ఇక్కడ 2 తో start అయ్యి +3 కలుపుకుంటూ పోతుంది. 2,5,8....
ఇక్కడ క్రమాన్ని 3తో పెంచుతూ ప్రింట్ చేస్తున్నారు ( అయితే డిఫాల్ట్ 1 ఉంటుంది ) :
ఇక్కడ ఈ for లూప్లోని else అనే కీవర్డ్ లూప్ పూర్తయినప్పుడు ఎగ్జిక్యూట్ చేయవలసిన కోడ్ బ్లాక్ను నిర్దేశిస్తుంది:
0 నుండి 10 వరకు అన్ని సంఖ్యలను ప్రింట్ చేస్తున్నాము మరియు లూప్ ముగిసినప్పుడు else స్టేట్మెంట్ లో రాసిన మెసేజ్ ను ప్రింట్ చేస్తున్నాము :
నీకో గమనిక: break (బ్రేక్ ) స్టేట్మెంట్ ద్వారా లూప్ ఆపివేయబడినట్లయితే మాత్రం else బ్లాక్ ఎగ్జిక్యూట్ చేయబడదు.
break (బ్రేక్ )
else
x 5 అయినప్పుడు లూప్ను బ్రేక్ చేస్తూ.. అలాగే అసలు else బ్లాక్తో ఏమి జరుగుతుందో ఇక్కడ చూడండి:
నెస్టెడ్ లూప్ అంటే ఏమిటి ? ఏదైనా ఒక లూప్ లోపల ఉండే మరో లూప్ ను మనం నెస్టెడ్ లూప్ అని అంటాము. అంటే కలర్ అనే లిస్ట్ లో ఉండే ప్రతి value ఫ్రూట్స్ అనే లిస్ట్ లిస్ట్ లో ఉండే ప్రతి value తో కలిసి ఇరిటేట్ అవుతుంది. ఇక్కడ
red banana red cherry red mango big apple big banana big cherry big mango tasty apple tasty banana tasty cherry tasty mango
అని ప్రింట్ అవుతాయి.
అంటే ఇక్కడ "అవుటర్ లూప్" యొక్క ప్రతి పునరావృతం కోసం "ఇన్నర్ లూప్" ఒకసారి తప్పకుండా అమలు (ఎగ్జిక్యూట్ ) అవుతుంది:
ఇక్కడ ప్రతి ఫ్రూట్ కోసం ఒక్కో విశేషణాన్ని( adjective ) ప్రింట్ చేస్తున్నారు :
అయితే ఇక్కడ లూప్లు మాత్రం ఖాళీగా ఉండకూడదు, కానీ మీరు ఎప్పుడైనా కొన్ని కారణాల వల్ల కంటెంట్ లేకుండా లూప్ ఉంటే, ఎర్రర్ రాకుండా ఉండటానికి పాస్ స్టేట్మెంట్ను యూజ్ చేయవచ్చు.
ఒక వేళా పాస్ స్టేట్మెంట్ను యూజ్ చేయకపోతే ఎలా ? ఒక వేళా మీరు పాస్ స్టేట్మెంట్ను యూజ్ చేయకపోతే SyntaxError: unexpected EOF while parsing అనే ఎర్రర్ వస్తుంది. ఈ example ను ఒక్కసారి చూడండి.