Python Input/Output | print() සහ input() functions | SC Guide

කට්ටියම කොහොමද? අද අපි කතා කරන්න යන්නේ programming වල මුල්ම පියවරක් ගැන – ඒ තමයි Input සහ Output (I/O) ගැන. හිතන්නකෝ, ඔයා computer එකට මොනවා හරි දෙනවා, ඊටපස්සේ computer එක ඔයාට මොනවා හරි පෙන්නනවා. මේක තමයි I/O කියන්නේ. Programming වලදී user එක්ක interact වෙන්න මේක ඈත්තටම essential. අපි හදන program එකක core functionality එකක් විදියට මේ Input/Output operations තියෙනවා.
අද අපි බලමු Python වලදී මේ දේවල් කරන්නේ කොහොමද කියලා. ගොඩක්ම පාවිච්චි වෙන print()
සහ input()
functions දෙක ගැන තමයි අපි ගැඹුරින් කතා කරන්නේ. එහෙනම් වැඩේට බහිමුද?
1. Output දකින්න – print() function එක
ඔයාගේ program එකෙන් userට මොනවා හරි පණිවිඩයක්, result එකක්, නැත්නම් මොනවා හරි information එකක් පෙන්නන්න ඕනේ නම්, ඒකට අපි print()
function එක පාවිච්චි කරනවා. මේක Programming වලදී තියෙන මූලිකම function එකක්. හිතන්නකෝ, ඔයා computer එකට කියනවා 'මේක පෙන්නපන්' කියලා. ඒක තමයි print()
එක කරන්නේ.
සාමාන්ය print() භාවිතය
සරලම විදියට, print()
function එක ඇතුලට ඔයාට print කරන්න ඕන message එක දාන්න පුළුවන්. ඒක String එකක් වෙන්න පුළුවන්, Number එකක් වෙන්න පුළුවන්, නැත්නම් වෙන ඕනම data type එකක් වෙන්න පුළුවන්.
print("Hello, Sri Lanka!")
print(12345)
print(3.14)
print(True)
මේ code එක run කරාම output එක මේ වගේ පෙනෙයි:
Hello, Sri Lanka!
12345
3.14
True
f-strings භාවිතයෙන් Output Format කිරීම (Modern Way)
දැන් කාලේ Python වලදී Output Format කරන්න තියෙන පහසුම සහ හොඳම ක්රමයක් තමයි f-strings. මේක Python 3.6 න් පස්සේ ආපු feature එකක්. f-strings කියන්නේ String එකක් ඇතුලට variables එහෙම කෙලින්ම දාලා format කරන්න පුළුවන් ක්රමයක්. 'f' අකුරක් String එකට ඉස්සරහින් දාලා, variable එක curly braces {}
ඇතුලට දැම්මම හරි.
name = "Sandun"
age = 30
city = "Kandy"
print(f"My name is {name} and I am {age} years old.")
print(f"I live in {city}.")
product = "Laptop"
price = 120000.50
quantity = 2
print(f"You bought {quantity} units of {product}. Total cost: Rs. {price * quantity:.2f}")
Output එක මෙහෙම වෙයි:
My name is Sandun and I am 30 years old.
I live in Kandy.
You bought 2 units of Laptop. Total cost: Rs. 240001.00
දැක්කා නේද? {price * quantity:.2f}
කියන තැනින් price එක calculate කරලා, දශම ස්ථාන දෙකකට format කරලා පෙන්නුවා. f-strings කියන්නේ ඇත්තටම නියම වැඩක්!
.format() Method එක භාවිතයෙන් Output Format කිරීම (Older Way)
f-strings එන්න කලින් Output Format කරන්න ගොඩක්ම පාවිච්චි කළේ .format()
method එක. මේක තවමත් වලංගුයි, සමහර වෙලාවට මේකත් ප්රයෝජනවත් වෙන්න පුළුවන්.
item = "Smartphone"
price = 75000.00
message1 = "The {} costs Rs. {}.".format(item, price)
print(message1)
# Position-based formatting
message2 = "The {0} costs Rs. {1}. I bought a {0}.".format(item, price)
print(message2)
# Keyword-based formatting
message3 = "The {product_name} costs Rs. {product_price:.2f}.".format(product_name=item, product_price=price)
print(message3)
Output එක මේ වගේ වෙයි:
The Smartphone costs Rs. 75000.0.
The Smartphone costs Rs. 75000.0. I bought a Smartphone.
The Smartphone costs Rs. 75000.00.
ගොඩක් වෙලාවට f-strings පාවිච්චි කරන එක තමයි හොඳම practice එක. ඒත් මේ .format()
method එකත් දැනගෙන ඉන්න එක වැදගත්.
2. Input ගන්න – input() function එක
දැන් අපි බලමු userගෙන් data ගන්න විදිය. ඒකට අපි input()
function එක පාවිච්චි කරනවා. මේකෙන් වෙන්නේ, program එක userගෙන් data එකක් එනකල් බලාගෙන ඉන්නවා. User data එක type කරලා Enter එබුවම, program එකට ඒ data එක ගන්න පුළුවන්.
user_name = input("ඔයාගේ නම මොකක්ද? ")
print(f"ආයුබෝවන්, {user_name}!")
favorite_color = input("ඔයාගේ කැමතිම පාට මොකක්ද? ")
print(f"හ්ම්, {favorite_color} කියන්නේ ලස්සන පාටක්!")
ඔයා මේ code එක run කරාම, මුලින්ම “ඔයාගේ නම මොකක්ද?” කියලා අහයි. ඊටපස්සේ ඔයාට නම type කරන්න පුළුවන්. ඒක Enter කරාම ඊලඟ පේළිය execute වෙයි.
ඔයාගේ නම මොකක්ද? (ඔබේ නම මෙතනට)
ආයුබෝවන්, (ඔබේ නම මෙතනට)!
ඔයාගේ කැමතිම පාට මොකක්ද? (ඔබේ පාට මෙතනට)
හ්ම්, (ඔබේ පාට මෙතනට) කියන්නේ ලස්සන පාටක්!
වැදගත් කරුණක්: input() හැමවිටම String එකක්!
මේක තමයි input()
function එක ගැන මතක තියාගන්න ඕනේ වැදගත්ම කරුණ. input()
function එකෙන් අපිට ලැබෙන හැම data එකක්ම String data type එකක් විදියටයි ලැබෙන්නේ. User Number එකක් type කරත්, ඒකත් String එකක් විදියටයි ගන්නේ. උදාහරණයක් විදියට, ඔයා වයස අහලා 25
කියලා type කරත්, program එකට ඒක "25"
කියන String එක විදියටයි ලැබෙන්නේ, 25
කියන Integer එක විදියට නෙවෙයි.
මේක මොන තරම් වැදගත්ද කියලා ඊළඟ section එකේදී ඔයාට තේරෙයි.
3. Data Type Conversion සහ ValueError
අපි userගෙන් Number එකක් බලාපොරොත්තු වෙනවා නම් (උදාහරණයක් විදියට වයස, උස, මිල ගණන් වගේ), input()
එකෙන් String එකක් එන නිසා අපිට ඒක Number එකකට convert කරගන්න වෙනවා. ඒකට අපි int()
(Integer එකකට convert කරන්න) හෝ float()
(Floating-point Number එකකට convert කරන්න) වගේ functions පාවිච්චි කරනවා.
age_str = input("ඔයාගේ වයස කීයද? ") # input() gives a string, e.g., "25"
age_int = int(age_str) # Convert the string "25" to an integer 25
print(f"ඔයාගේ වයස අවුරුදු {age_int}යි.")
print(f"තව අවුරුදු 5න් ඔයාට අවුරුදු {age_int + 5} වෙනවා.")
මෙතනදී අපි age_int + 5
කියලා ගණන් හදන්න පුළුවන් වුණේ, අපි age_str
එක int()
function එකෙන් Number එකක් බවට පත් කරපු නිසා. age_str + 5
කියලා ලිව්වා නම් error එකක් එනවා, මොකද String එකකට Number එකක් එකතු කරන්න බෑනේ.
ValueError එකට මුහුණ දෙමු!
හැබැයි මතක තියාගන්න, String එකක් Number එකකට convert කරන්න බැරි වුණොත් ValueError
එකක් එනවා. උදාහරණයක් විදියට, user වයස අහපුවාම "abx"
කියලා type කරොත්, int("abx")
කියන එක කරන්න බැරි නිසා program එක crash වෙනවා.
# User 'abx' කියලා input දුන්නා කියලා හිතමු
# age_str = "abx"
# age_int = int(age_str) # This will cause a ValueError!
මෙහෙම වෙන්නේ 'abc' වගේ String එකක් int()
එකට දුන්නොත්. ඒක නිසා user දෙන input එක ගැන පරිස්සම් වෙන්න ඕනේ. Real-world applications වලදී, මේ වගේ වැරදි input handle කරන්න try-except
blocks වගේ දේවල් පාවිච්චි කරනවා. ඒ ගැන අපි පස්සේ article එකකින් කතා කරමු.
4. ප්රායෝගික උදාහරණයක්: "නම සහ වයස" Program එක
දැන් අපි මේ ඉගෙන ගත්ත දේවල් ටික එකතු කරලා පොඩි Program එකක් හදමු. මේකෙන් userගෙන් නමයි වයසයි අරන්, ඒ information ටික ලස්සනට print කරන්න පුළුවන්.
print("--- ඔයාගේ විස්තර දැනගනිමු ---")
# Userගෙන් නම අහනවා
name = input("ඔයාගේ නම කියන්න: ")
# Userගෙන් වයස අහනවා
# මෙතනදී අපි userට කියනවා අංක වලින් පමණක් වයස දෙන්න කියලා, ValueError එකක් එන එක අඩුකරගන්න
age_str = input("ඔයාගේ වයස කීයද? (අංක වලින් පමණක්): ")
# Type conversion කරනවා, වැරදි input ආවොත් handle කරන්න try-except block එකක් පාවිච්චි කරනවා.
# මේක advanced concept එකක්, තේරෙන්නේ නැත්තම් කලබල වෙන්න එපා. දැනට තේරුම් ගන්න, වැරදි input වලින් program crash වෙන එක වළක්වනවා කියලා.
try:
age_int = int(age_str) # String එක Integer එකක් බවට පත් කරනවා
# දැන් formatted output එක print කරනවා
print(f"ආයුබෝවන් {name}! ඔයාගේ වයස අවුරුදු {age_int}යි.")
if age_int < 18:
print("ඔයා තාම තරුණයි!")
elif age_int >= 18 and age_int < 60:
print("ඔයා සම්පූර්ණ වැඩිහිටියෙක්!")
else:
print("ඔයාට දිගු ජීවිතයක් ලැබේවා!")
except ValueError:
# ValueError එකක් ආවොත් මේ message එක print කරනවා
print("සමාවෙන්න! වයස අංක වලින් පමණක් ඇතුලත් කරන්න.")
print("-------------------------------")
print("අපේ program එක භාවිතා කලාට ස්තූතියි!")
මේ Program එක run කරලා බලන්න. ඔයා විවිධ inputs දීලා බලන්න. උදාහරණයක් විදියට, වයසට "twenty"
කියලා දීලා බලන්න. එතකොට ඔයාට ValueError
එක try-except
block එකෙන් handle කරන විදිය තේරෙයි.
5. I/O සඳහා හොඳ පුරුදු (Best Practices)
දැන් අපි Input/Output operations කරනකොට මතක තියාගන්න ඕන හොඳ පුරුදු ටිකක් ගැන කතා කරමු. මේවා ඔයාගේ code එක professional කරන්න උදව් වෙයි.
Error Handling ගැන හිතන්න:
හැමවිටම හිතන්න userගෙන් වැරදි input එන්න පුළුවන් කියලා. (උදා: Number එකක් ඕනේ තැන String එකක් දෙන එක). ඒකට handle කරන්න ලෑස්ති වෙන්න. try-except
blocks මේ වගේ අවස්ථාවලදී program එක crash වෙන එක වළක්වා ගන්න උපකාරී වෙනවා. (අපේ උදාහරණ Program එකේ වගේ).
පැහැදිලි සහ තේරුම්ගත හැකි Output:
Output එකත් පැහැදිලිව, පිළිවෙලට පෙන්නන්න. Userට program එකේ output එක දැක්කම ඒකෙන් මොකක්ද කියවෙන්නේ කියලා පහසුවෙන් තේරෙන්න ඕනේ. අද අපි කතා කරපු f-strings වගේ දේවල් මේකට ගොඩක් උදව් වෙනවා.
පැහැදිලි user prompts දෙන්න:
input()
function එක පාවිච්චි කරනකොට, userට පැහැදිලිව තේරෙන විදියට prompt එකක් දෙන්න. උදාහරණයක් විදියට, input("ඔයාගේ නම? ")
කියන එක input()
කියන එකට වඩා ගොඩක් හොඳයි. Userට මොනවාද type කරන්න ඕනේ කියලා පැහැදිලිව දැනගන්න පුළුවන් වෙන්න ඕනේ.
නිගමනය
හරි, අද අපි Input/Output ගැන ගොඩක් දේවල් ඉගෙන ගත්තා. print()
function එකෙන් data පෙන්නන විදියයි, input()
function එකෙන් data ගන්න විදියයි, ඒ වගේම data types convert කරන විදියයි දැනගත්තා. මේ concepts ඔයාගේ programming journey එකේදී ගොඩක් වැදගත් වෙනවා. Programming කරන ඕනෑම කෙනෙක්ට මේ I/O operations මූලිකම අවබෝධයක් දෙයි. මේවා අනිවාර්යයෙන්ම ඔයාගේ computer එකේ Python environment එකේ try කරලා බලන්න. මොනවා හරි ප්රශ්න තියෙනවා නම්, පහළින් comment එකක් දාන්න. අපි ඒවට උත්තර දෙන්න ලෑස්ති වෙලා ඉන්නවා. හැමෝටම ජය වේවා!