Saturday, October 1, 2016

පයිතන් : 1 පාඩම - පයිතන් වලින් නිවැරදිව input එකක් ගමු (Python : lesson 1)




                         Python කියන්නෙ මෑත කාලයේ ගොඩක්ම ජනප්‍රිය වෙච්ච පරිගණක භාෂාවක් කියල හැමෝම දන්නවනේ. Python වල ජනප්‍රියත්වයට ගොඩක්ම හේතු වෙලා තියෙන්නෙ syntax වල තියන සරල බව සහ ඉක්මනින් ඉගෙනගන්න පුළුවන් කම කිව්වොත් වැරද්දක් නෑ. මේ සරල බව නිසාම ගොඩක් අය Hackathon වලදි පාවිච්චි කරන language එක python බවට පත්වෙලා තියනව.
                         මේ පාඩම් මාලාවෙන් මම බලාපොරොත්තු වෙන්නෙ Hackathon එකකට සහභාගී වෙන්න ඉන්න අයට Python භාවිතා කරල  Hackathon එකට සාර්ථකව මුහුණදෙන්නේ කොහොමද කියන එක ගැන අවබෝධයක් ලබාදෙන්න.

                         දැනටමත් python install කරගෙන නැති කට්ටිය මේ link එකෙන් python install කරගන්න.
python_forWindows

                         හරි. දැන් ඔයාලගෙ dows search bar එකේ 'idle' කියල type කරන්න. එතනින් python IDLE එක තෝරගන්න


                            දැන් Ctrl+N ඔබල අලුත් window එකක් ගන්න.
                      

Hello World:

                            අපි බලමු python වල  Hello World program එක හදන්නෙ කොහොමද කියල. අලුත් window එකේ පහලින් තියන code එක type කරන්න.
print("Hello World")

                             ඒ තමයි python Hello World program එක. එක line එකයි. හරි..දැන් menu bar එකේ Run > Run Module click කරන්න. නැත්නම් f5 press කරන්න. ඊට පස්සෙ ඔයාගෙ program එක save කරන්න. දැන් program එක run වෙයි.


input එකක් ගමු:

                       Hackathon වලදි මුලින්ම දැනගන්න ඕනෙ දේ තමයි අපේ program එකට user input එකක් ගන්නෙ කොහොමද කියන එක. සාමාන්‍ය විදිහට input එකක් ගන්න python code එක  පහලින් තියෙන්නෙ

          a=input()  
                       
                      මෙතන a කියන්නේ variable එකක්. code එකෙන් වෙන්නෙ user දෙන input එක a කියන variable එකේ store වෙන එක.හැබැයි මේක store වෙන්නෙ string එකක් විදිහට. Input එක integer එකක් විදිහට store කරගන්න ඕනෙනම් code එක මෙ විදිහට වෙනස් කරන්න ඕනෙ.
         
         a=int((input())
  
                       මේ code එකෙනුත් අපිට input විදිහට ගන්න පුළුවන් එක අංකයක් විතරයි. එකට වඩා input කරන්න හැදුවොත් error එකක් එනව.

                      එත් hackathon වලදි අපිට input විදිහට ගොඩක් වෙලාවට හම්බවෙන්නෙ තනි පේළියක තියන අංක ගොඩක් (උදා: 7 4 3 54 35). මෙහෙම input එකක් හම්බවුනොත් අපි කරන්න ඕනෙ මේ අංක ටික වෙන වෙනම ගන්න ලේසි වෙන විදිහට array (python වලනම් list) එකකට දාගන්න එක. මේකට අපි පාවිච්චි කරන්නෙ split() කියන function එක. මේකෙදි වෙන්නෙ string එකක space එකකින් වෙන්වෙලා තියන හැම අංකයක්ම වෙනම element එකක් විදිහට store වෙන එක. මේක test කරන්න පහලින් තියන code එක run කරල බලන්න.

        li=input().split()
        print(li)

                     run කරල input එක විදිහට මේ වගේ අංක පේලියක් දෙන්න  

        3 35 7 4 2 6 76 43

                    Output එක විදිහට මේ වගේ list එකක් ලැබෙයි.

       ['3', '35', '7', '4', '2', '6', '76', '43']

                    දැන් code එක පහත විදිහට modify කරල බලන්න
 
      li=input().split()
      print(li[0])
      print(li[1])
      print(li[2])
      print(li[3])

                   දැන් input එක දීල බැලුවොත් ඔයාලට දකින්න පුළුවන් එක එක අංකෙ වෙන වෙනම print වෙනව. ඒත් තාම මෙතන පොඩි ප්‍රශ්නයක් තියනව.ඒ තමයි මේ අංක තාමත් තියෙන්නෙ strings විදිහට. ඒ කියන්නෙ මෙ අංක වලට අපිට කිසිම mathematical operation එකක් කරන්න බෑ. උදාහරණයක් විදිහට අපිට මේ list එකේ මුල්ම elements දෙක එකතු කරන්න ඕනෙනම් මෙ විදිහට code එක දෙන්න වෙනව.

     print(int(li[0])+int(li[1]))

                    පේන විදිහට ටිකක් කරදර වැඩක්. Hackathon එකක ඔහොම type කර කර ඉන්න එක ඇත්තටම කාලෙ නාස්තියක්. මේකට කරන්න තියෙන්නෙ අපි inputs ටික list එකට දාගනිද්දීම int වලට convert කරල ගන්න එක. පහලින් තියෙන්නෙ ඒ code එක

    li=[int(i) for i in (input().split())] 

                    මේ code එක බැලු බැල්මට තේරුම්ගන්න ටිකක් අමාරුයි. ඒත් අපිට අවශ්‍ය දේ මේකෙන් වෙනව. ඉතින් hackathon එකකදි නිකන්ම copy > paste කරල පාවිච්චි කලත් ප්‍රශ්නයක් නෑ.
                    ඇත්තටම මේකෙදි වෙන්නෙ for loop එක පාවිච්චි කරල එක එක element එක අරගෙන ඒව int විදිහට convert කරල list එකේ store කරන එක.දැන් අපිට කලින් code එක මේ විදිහට වෙනස් කරන්න පුළුවන්. 

     print(li[0]+li[1]) 
  

Example:

                 හරි. දැන් මෙච්චරවෙලා ඉගෙනගත්තු ටික example එකකට දාල බලමු. හිතන්නකො අපිට input lines දෙකක් දෙනව කියල. පලවෙනි line එකේ තියෙන්නෙ දෙවනි line එකේ තියන අංක ගාන. දෙවනි line එකේ තියෙන්නෙ අංක පේලියක්. මේ වගේ 

    5
    18 24 1 75 8 

               අපිට කියනව දෙවනි line එකේ තියන මුල්ම අංකෙයි අන්තිම අංකෙයි එකතුකරල print කරන්න කියල. ඒකට අපි type කරන්න ඕනෙ මෙන්න මේ වගේ code එකක්.  

     input()
     li=[int(i) for i in (input().split())]
     print(li[0]+li[-1]) 


                Input එකේ දීල තියන පලවෙනි line එක python වලදි අපිට එච්චර වැදගත් වෙන්නෙ නෑ. මොකද වෙන language වල වගේ list එකක් හදන්න කලින් ඒකෙ size එක python වලදි දැනගෙන ඉන්න ඕනෙ නෑ. ඒ නිසා අපි ඒ input line එක skip කරන්න නිකන්ම input() function එක use කරනව. දෙවනි line එකේදි අපි ඉගෙනගත්ත විදිහට elements ටික int වලට convert කරල list එකට දාගන්නව. තුන්වෙනි line එකේදි කරල තියෙන්නෙ li කියල අපි හදපු list එකේ පලවෙනි element එකයි අන්තිම element එකයි එකතු කරල print කරන එක.

Conclusion:  

              හරි..අද පාඩම මෙතනින් ඉවරයි. Hackathon එකක python use කරද්දි වැදහත් වෙන තවත් දේවල් ගැන ඊලග පාඩමේදී බලමු.


**PS : input ගනිද්දී ගොඩක් අය කරන වැරැද්දක් තමයි මොනවද input කරන්නෙ කියල විස්තරයක් දාන එක. ඒ කිවුවෙ  

                input("Enter your marks:")

                    වගේ statement එකක් දාන එක. මේකෙ වැරැද්දක් නෑ. එත් hackathon වලදි මෙහෙම දැම්මොත් අනිවාර්යෙන්ම error එකක් පෙන්නනව. මොකද මේක run කරද්දි පලවෙනි output එක විදිහට ගන්නෙ "Enter your marks:" කියන sentence එක. ඒත් hacker rank environment එකේදි check කරන්නෙ ප්‍රශ්නෙට අදාළ input එකයි output එකයි විතරයි. වෙන විස්තර අදාළ වෙන්නෙ නෑ. ඒක නිසා අනිවාර්යෙන්ම problem එකට දීල තියන  sample code එකේ විදිහටම input output දෙන්න.

2 comments: