Program တစ်ခု user နဲ့ စကားပြောတဲ့အခါ သုံးတဲ့ဘာသာစကားက string ပါပဲ။ login form မှာ ရိုက်ထည့်တဲ့ နာမည်၊ chat app ထဲက မက်ဆေ့ချ်၊ ဆိုင်ရဲ့ ဘေလ်စာရွက် — အားလုံးက string တွေချည်းပါ။ ဒီအခန်းမှာ string ကို ဖန်တီးတာ၊ ဆက်တာ၊ ပုံဖော်တာ၊ user ဆီက ရယူတာတွေကို အခြေခံကနေ သင်သွားမယ်။
ဒီအခန်းပြီးရင်...
- String ဆိုတာ ဘာလဲ၊ ဂဏန်းနဲ့ ဘာကွာလဲဆိုတာ ရှင်းပြနိုင်မယ်။
- Single, double, triple quote သုံးမျိုးကို နေရာမှန်မှာ ရွေးချယ်သုံးနိုင်မယ်။
+နဲ့ string တွေကို ဆက်နိုင်မယ် (concatenation)။- f-string သုံးပြီး variable တန်ဖိုးတွေကို စာသားထဲ ထည့်နိုင်မယ် (interpolation)။
input()နဲ့ user ဆီက input ယူနိုင်ပြီးint()/float()နဲ့ type ပြောင်းနိုင်မယ်။
String ဆိုတာဘာလဲ
Program တစ်ခု အလုပ်လုပ်တဲ့အခါ ဂဏန်းတွေတင်မက စာသားတွေနဲ့ပါ အလုပ်လုပ်ရတယ် — လူနာမည်၊ မြို့နာမည်၊ မက်ဆေ့ချ်၊ menu စာသားတွေ။ Python မှာ ဒီလို စာသားတွေကို string လို့ခေါ်တယ်။
အဓိပ္ပာယ်ဖွင့်ဆိုရရင် string ဆိုတာ Unicode character တွေရဲ့ အစီအစဉ် (sequence) တစ်ခုပါ။ Unicode ဆိုတာ ကမ္ဘာပေါ်က ဘာသာစကားအများစုရဲ့ အက္ခရာတွေကို တစ်နေရာတည်းမှာ စုစည်းထားတဲ့ စံနစ်ပါ။ ဒါကြောင့် Python string ထဲမှာ မြန်မာစာ၊ အင်္ဂလိပ်စာ၊ ဂဏန်း၊ သင်္ကေတ — ကြိုက်တာထည့်ရေးလို့ရတယ်။
name = "Aung Aung"
city = "ရန်ကုန်"
print(name)
print(city)
print(type(name))
Aung Aung
ရန်ကုန်
<class 'str'>
type() က variable ရဲ့ type ကို စစ်ပေးတဲ့ function ပါ။ <class 'str'> လို့ပေါ်လာတာက ဒါ string type ပါလို့ Python က အတည်ပြုပေးတာပါ။
String နဲ့ ဂဏန်း မတူဘူး
အစပိုင်းမှာ လူတိုင်းနီးပါး ရောထွေးတတ်တဲ့အချက် — "5" (quote ပါတဲ့ ၅) နဲ့ 5 (quote မပါတဲ့ ၅) မတူဘူး။ တစ်ခုက စာသား၊ တစ်ခုက ဂဏန်း။ + နဲ့ စမ်းကြည့်ရင် ကွာခြားချက် ပေါ်လွင်လာတယ် —
num = 5
text = "5"
print(num + num) # ဂဏန်းခြင်း ပေါင်းတယ်
print(text + text) # စာသားခြင်း ဆက်တယ်
10
55
ဒါကြောင့် ဖုန်းနံပါတ်၊ မှတ်ပုံတင်အမှတ်၊ လိပ်စာလိုမျိုး တွက်ချက်စရာမလိုတဲ့ ဂဏန်းတွေကို string အဖြစ်ပဲ သိမ်းလေ့ရှိတယ်။ "09123456789" လို ဖုန်းနံပါတ်ကို ဂဏန်းအဖြစ်သိမ်းရင် အစမှာရှိတဲ့ 0 ပျောက်သွားနိုင်လို့ပါ။
နေ့စဉ်သုံးတဲ့ app တွေမှာ string က နေရာတိုင်းလိုလိုရှိတယ်။ Facebook မှာ post တင်တဲ့စာသား၊ Messenger က မက်ဆေ့ချ်၊ online shop ရဲ့ ပစ္စည်းနာမည်နဲ့ ဈေးနှုန်းစာရင်း၊ ဘဏ် SMS ထဲက အကြောင်းကြားစာ — ဒါတွေအားလုံးကို program က string အဖြစ် ကိုင်တွယ်တယ်။ ဒါကြောင့် string ကို ကျွမ်းကျင်တာဟာ program ရေးတတ်ဖို့ရဲ့ အခြေခံအကျဆုံး အရည်အချင်းတစ်ခုပါပဲ။
မှတ်ချက် — စာသားကို variable ထဲထည့်တဲ့အခါ quote (" ဒါမှမဟုတ် ') နဲ့ အမြဲကာထားရတယ်။ quote မပါဘဲ name = Aung Aung လို့ရေးရင် Python က Aung ကို variable နာမည်လို့ထင်ပြီး error ပြလိမ့်မယ်။
Reference
- Strings — string အခြေခံကို ဥပမာတွေနဲ့ ရှင်းထားတယ်
- Built-in types — str အပါအဝင် Python type တွေရဲ့ တရားဝင်စာရွက်စာတမ်း
Quote အမျိုးအစားများ
Python မှာ string ရေးဖို့ quote သုံးမျိုးသုံးလို့ရတယ်။ သုံးမျိုးလုံး အတူတူအလုပ်လုပ်ပေမဲ့ တစ်ခုချင်းစီမှာ သုံးသင့်တဲ့နေရာရှိတယ်။
msg1 = 'single quote နဲ့ ရေးထားတယ်'
msg2 = "double quote နဲ့ ရေးထားတယ်"
msg3 = """triple quote နဲ့ ရေးထားတယ်"""
print(msg1)
print(msg2)
print(msg3)
ပုံမှန်အားဖြင့် ကိုယ်ကြိုက်ရာတစ်မျိုးကို ရွေးပြီး တသမတ်တည်း သုံးသွားလို့ရတယ်။ programmer အများစုက double quote (") ကို ပိုသုံးကြတယ်။ အရေးကြီးတာက စာသားထဲမှာ ပါလာမယ့် quote နဲ့ မတိုက်မိဖို့ပဲ။
Single Quote နဲ့ Double Quote ရွေးချယ်နည်း
စာသားထဲမှာ ' ကိုယ်တိုင်ပါလာရင် " နဲ့ ကာရေးတာ အဆင်အပြေဆုံးပါ။
sentence = "I'm learning Python."
print(sentence)
'I'm learning Python.' လို့ single quote နဲ့ ကာရေးမိရင် Python က 'I' အပြီးမှာ string ဆုံးပြီလို့ထင်ပြီး ကျန်တဲ့အပိုင်းကို နားမလည်ဘဲ error ပြလိမ့်မယ်။ ပြောင်းပြန်အနေနဲ့လည်း စာသားထဲမှာ " ပါရင် ' နဲ့ ကာပါ။
quote = 'ဆရာမက "မနက်ဖြန် စာမေးပွဲရှိတယ်" လို့ ပြောတယ်။'
print(quote)
Quote နှစ်မျိုးလုံးပါလာရင်
စာသားထဲမှာ single quote ရော double quote ပါ နှစ်မျိုးလုံးပါလာရင် triple quote က ကယ်တင်ရှင်ပါ —
message = """သူမက 'မင်္ဂလာပါ' လို့ နှုတ်ဆက်ပြီး "သွားပြီနော်" လို့ ပြောသွားတယ်။"""
print(message)
triple quote ထဲမှာဆို ' ရော " ပါ လွတ်လွတ်လပ်လပ် ရေးလို့ရတယ်။ ဒါကြောင့် စာသားရှည်တွေ၊ dialogue တွေရေးတဲ့အခါ triple quote က အမြဲအဆင်ပြေတယ်။
မှတ်ထားရန် — triple quote ကို single quote သုံးမျိုးနဲ့လည်း ရေးလို့ရတယ် (''')။ """ နဲ့ အတူတူပဲ အလုပ်လုပ်တယ်။
msg = '''triple single quote လည်း ရတယ်'''
print(msg)
လက်တွေ့ program တွေမှာ triple quote ကို စာသားရှည်တွေအတွက် အမြဲသုံးတယ် — user ကို ပြတဲ့ အကူအညီစာသား (help message)၊ email ပုံစံ၊ menu ရှည်တွေ။ တစ်ကြောင်းချင်း print() အထပ်ထပ် ရေးရတာထက် triple quote တစ်ခုတည်းနဲ့ ရေးတာက ပြင်ဆင်ရပိုလွယ်တယ်။
Triple Quote — စာကြောင်းများများ ရေးချင်တဲ့အခါ
စာပိုဒ်ရှည် ဒါမှမဟုတ် line break ပါတဲ့ စာသားရေးချင်ရင် triple quote (""") သုံးပါ။ Enter ခေါက်ထားတဲ့အတိုင်း အတိအကျ သိမ်းပေးတယ်။
poem = """လရောင်အောက်မှာ
တိတ်ဆိတ်စွာ
ထိုင်နေမိတယ်"""
print(poem)
လရောင်အောက်မှာ
တိတ်ဆိတ်စွာ
ထိုင်နေမိတယ်
ဇယားပုံစံ စာရင်းထုတ်ချင်တဲ့အခါလည်း triple quote က အရမ်းအသုံးဝင်တယ် —
report = """Name Age City
Aung 20 Yangon
Su 25 Mandalay"""
print(report)
Name Age City
Aung 20 Yangon
Su 25 Mandalay
သတိပြုရန် — triple quote မှာ အဖွင့် """ နဲ့ အပိတ် """ အတွဲလိုက်ပါရမယ်။ အပိတ်မေ့ကျန်ခဲ့ရင် Python က အောက်က code တွေအားလုံးကို string ထဲမှာ ပါတယ်လို့ထင်ပြီး program တစ်ခုလုံး ပျက်သွားလိမ့်မယ်။
Reference
- Strings — quote အမျိုးအစားနဲ့ multi-line string ဥပမာများ
- Input/output, print(), f-strings — string တွေကို screen မှာ ဘယ်လိုထုတ်ပြရမလဲ
String တွေကို ပေါင်းဆက်ခြင်း (Concatenation)
string နှစ်ခုကို တစ်ခုတည်းဖြစ်အောင် ဆက်ချင်ရင် + သုံးတယ်။ ဒါကို concatenation လို့ခေါ်တယ်။ ဂဏန်းပေါင်းသလိုပဲ + ပဲသုံးပေမဲ့ string မှာတော့ ပေါင်း မဟုတ်ဘဲ ထိပ်ချင်းဆက် တဲ့သဘောပါ။
greeting = "မင်္ဂလာပါ"
name = "မောင်မောင်"
message = greeting + " " + name
print(message)
မင်္ဂလာပါ မောင်မောင်
အလယ်က " " (space တစ်လုံး) ကို သတိထားပါ။ မထည့်ရင် စကားလုံးနှစ်လုံး ကပ်သွားလိမ့်မယ် —
first = "Super"
second = "Man"
print(first + second) # space မပါဘူး
print(first + " " + second) # space ပါတယ်
SuperMan
Super Man
တစ်ခုထက်ပိုတဲ့ အပိုင်းတွေကိုလည်း တစ်ဆက်တည်း ဆက်လို့ရတယ်။ နာမည်အပြည့်အစုံ တည်ဆောက်တဲ့ဥပမာ ကြည့်ရအောင် —
first_name = "Aung"
middle_name = "Kaung"
last_name = "Myat"
full_name = first_name + " " + middle_name + " " + last_name
print(full_name)
print("Welcome, " + full_name + "!")
Aung Kaung Myat
Welcome, Aung Kaung Myat!
ဒီမှာ "Welcome, " နဲ့ "!" ဆိုတဲ့ စာသားအသေတွေကို variable တွေနဲ့ ရောဆက်ထားတယ်။ ကြားထဲက ခြားနားချက်စာသား (separator) ကို ကြိုက်သလိုပြောင်းလို့ရတယ် —
day = "Monday"
date = "5"
month = "October"
full_date = day + ", " + date + " " + month
print(full_date)
Monday, 5 October
+ က ဘယ်ကနေ ညာကို တစ်ဆင့်ချင်း ဆက်သွားတယ် —
a = "A"
b = "B"
c = "C"
print(a + b + c) # ABC
အပိုင်းများများဆက်တဲ့အခါ ဒီအစီအစဉ်ကို သိထားရင် တွက်ရလွယ်တယ်။
ဒီပုံစံက စာသားတည်ဆောက်တဲ့အခါ အခြေခံအကျဆုံးနည်းပါပဲ။ ဒါပေမဲ့ အပိုင်းများလာရင် ဖတ်ရခက်လာတယ် — အဲဒီအခါကျရင် နောက်အပိုင်းက f-string က ပိုအဆင်ပြေတယ်။
မှတ်ချက် — string နဲ့ ဂဏန်းကို + နဲ့ တိုက်ရိုက်ဆက်လို့မရဘူး။ "အသက်: " + 20 လို့ရေးရင် error တက်မယ်။ ဂဏန်းကို စာသားထဲထည့်ချင်ရင် နောက်အပိုင်းက f-string က အဖြေပါ။
Reference
- Strings — concatenation အပါအဝင် string အခြေခံလုပ်ဆောင်ချက်များ
f-String နှင့် Interpolation
variable ရဲ့ တန်ဖိုးကို စာသားထဲထည့်ချင်တဲ့အခါ f-string က အလွယ်ဆုံးနည်းပါ။ စာသားအစမှာ f (ဒါမှမဟုတ် အကြီး F) ထည့်ပြီး variable နာမည်ကို curly brace { } ထဲထည့်ရေးရုံပဲ။ Python က brace တွေ့တဲ့နေရာမှာ တန်ဖိုးအစစ်ကို အစားထိုးထည့်ပေးတယ်။ ဒါကို interpolation လို့ခေါ်တယ်။
name = "Thiri"
age = 21
intro = f"ကျွန်မနာမည်က {name} ပါ။ အသက်က {age} နှစ်ပါ။"
print(intro)
ကျွန်မနာမည်က Thiri ပါ။ အသက်က 21 နှစ်ပါ။
အရေးကြီးဆုံးအချက် — အစမှာပါတဲ့ f ကို မေ့လို့မရဘူး။ f မပါရင် brace တွေက အလှဆင်သက်သက်ဖြစ်ပြီး စာသားအတိုင်းပဲ ပေါ်လာလိမ့်မယ် —
name = "Nanda"
print("My name is {name}.") # f မပါဘူး
print(f"My name is {name}.") # f ပါတယ်
My name is {name}.
My name is Nanda.
brace { } ထဲမှာ variable နာမည်တင်မက တွက်ချက်မှုပါ တိုက်ရိုက်ထည့်လို့ရတယ် —
price = 1500
quantity = 3
print(f"စုစုပေါင်း ကျသင့်ငွေက {price * quantity} ကျပ်ပါ။")
print(f"နှစ်ယောက်ခွဲရင် တစ်ယောက် {price * quantity / 2} ကျပ် ကျမယ်။")
စုစုပေါင်း ကျသင့်ငွေက 4500 ကျပ်ပါ။
နှစ်ယောက်ခွဲရင် တစ်ယောက် 2250.0 ကျပ် ကျမယ်။
စာကြောင်းရှည်တစ်ခုကို အပိုင်းလေးတွေခွဲဆောက်ပြီးမှ ပေါင်းလို့လည်းရတယ် —
shop = "Shwe Market"
item = "ဆန်"
weight = 5
line1 = f"ဆိုင်နာမည်: {shop}"
line2 = f"ပစ္စည်း: {item} ({weight} ပြည်)"
line3 = f"စုစုပေါင်း: {weight * 2800} ကျပ်"
print(line1)
print(line2)
print(line3)
ဆိုင်နာမည်: Shwe Market
ပစ္စည်း: ဆန် (5 ပြည်)
စုစုပေါင်း: 14000 ကျပ်
နောက်ဥပမာတစ်ခု — စာအုပ်ဆိုင်အတွက် စာရင်းထုတ်တာ —
book = "Python အခြေခံ"
pages = 240
price = 15000
print(f"စာအုပ်အမည်: {book}")
print(f"စာမျက်နှာ: {pages} မျက်နှာ")
print(f"တန်ဖိုး: {price} ကျပ်")
စာအုပ်အမည်: Python အခြေခံ
စာမျက်နှာ: 240 မျက်နှာ
တန်ဖိုး: 15000 ကျပ်
နည်းလမ်းနှစ်ခုကို ယှဉ်ကြည့်ရအောင် —
name = "Hla Hla"
city = "Yangon"
# နည်းလမ်း ၁: concatenation
print("I am " + name + " from " + city + ".")
# နည်းလမ်း ၂: f-string
print(f"I am {name} from {city}.")
I am Hla Hla from Yangon.
I am Hla Hla from Yangon.
အဖြေချင်းတူပေမဲ့ ဒုတိယနည်းက ဖတ်ရပိုရှင်းတယ်။ အထူးသဖြင့် variable များလာတဲ့အခါ + တွေနဲ့ " " တွေကြားမှာ မျက်စိလည်တတ်တယ်။ f-string မှာတော့ စာကြောင်းအတိုင်း ရေးထားသလိုပဲ မြင်ရတယ်။ ဒါကြောင့် ယနေ့ခေတ် Python programmer တွေက စာသားတည်ဆောက်တဲ့အခါ f-string ကို အဓိကထားသုံးကြတယ် — ဂဏန်းကို ကြိုပြောင်းစရာမလို၊ space တွေ လိုက်ထည့်စရာမလို၊ ဖတ်ရတာလည်း ရှင်းရှင်းလင်းလင်း။
မှတ်ချက် — f အစား F အကြီးနဲ့လည်း ရတယ် (F"...")။ ဒါပေမဲ့ programmer တော်တော်များများက f အသေးပဲ သုံးကြတော့ အသေးနဲ့ရေးတာ အလေ့အကျင့်ကောင်းပါ။
brace { } ကိုယ်တိုင်ကို စာသားအဖြစ် ပြချင်ရင် နှစ်ထပ်ရေးရတယ် —
print(f"{{name}}") # {name} လို့ ပေါ်တယ်
Reference
- f-strings guide — f-string အသေးစိတ်၊ ဥပမာများစွာနဲ့
- Input/output, print(), f-strings — Python တရားဝင် သင်ခန်းစာ
User ဆီက Input ရယူခြင်း
အခုထိရေးခဲ့တဲ့ program တွေက ကိုယ်ကြိုထည့်ထားတဲ့ တန်ဖိုးတွေနဲ့ပဲ အလုပ်လုပ်တယ်။ တကယ့် program ဆိုရင် user ကို မေးပြီး အဖြေယူရတယ်။ အဲဒီအတွက် input() ဆိုတဲ့ built-in function ရှိတယ်။
nickname = input()
print(f"မင်္ဂလာပါ {nickname}!")
input() ကို ခေါ်လိုက်တာနဲ့ program က ရပ်စောင့်နေတယ်။ user က စာရိုက်ပြီး Enter ခေါက်မှ ဆက်သွားတယ်။ ရိုက်လိုက်တဲ့စာက nickname variable ထဲ ရောက်သွားတယ်။
ဒါပေမဲ့ ဒီပုံစံမှာ ပြဿနာတစ်ခုရှိတယ် — screen မှာ ဘာမှမပေါ်ဘဲ cursor လေးပဲ မှိတ်တုတ်မှိတ်တုတ်နဲ့ စောင့်နေတော့ user က ဘာရိုက်ရမှန်းမသိဘူး။ ဒါကြောင့် input() ထဲမှာ လမ်းညွှန်စာသား (prompt) ထည့်ပေးလေ့ရှိတယ် —
nickname = input("နာမည်ပြောင် ပြောပြပါ: ")
print(f"မင်္ဂလာပါ {nickname}! Python လောကက ကြိုဆိုပါတယ်။")
"နာမည်ပြောင် ပြောပြပါ: " ဆိုတဲ့ စာသားက အရင်ပေါ်လာပြီး ပြီးမှ user ရိုက်တာ စောင့်တယ်။ run ကြည့်ရင် ဒီလိုမြင်ရမယ် —
နာမည်ပြောင် ပြောပြပါ: Ko Ko
မင်္ဂလာပါ Ko Ko! Python လောကက ကြိုဆိုပါတယ်။
(ပထမလိုင်းက program ပြတာ၊ Ko Ko က user ကိုယ်တိုင်ရိုက်ထည့်တာ။)
input ကို တစ်ခုထက်ပိုယူချင်ရင်လည်း input() ကို အကြိမ်ကြိမ်ခေါ်ရုံပဲ —
city = input("ဘယ်မြို့ကလဲ: ")
food = input("အကြိုက်ဆုံးအစားအစာက: ")
print(f"{city} က {food} ကို မြည်းစမ်းကြည့်ချင်တယ်။")
ဘယ်မြို့ကလဲ: Mandalay
အကြိုက်ဆုံးအစားအစာက: မုန့်ဟင်းခါး
Mandalay က မုန့်ဟင်းခါး ကို မြည်းစမ်းကြည့်ချင်တယ်။
prompt စာသားရေးတဲ့အခါ အဆုံးမှာ space ဒါမှမဟုတ် : ထည့်ပေးတာ အလေ့အကျင့်ကောင်းပါ။ မထည့်ရင် user ရိုက်တဲ့စာနဲ့ prompt စာသား ကပ်သွားပြီး ဖတ်ရအဆင်မပြေဘူး။ "နာမည်ထည့်ပါ:" နဲ့ "နာမည်ထည့်ပါ: " ယှဉ်ကြည့်ရင် ကွာခြားချက် သိသာတယ်။
input ကို variable ထဲ မသိမ်းဘဲ f-string ထဲမှာ တိုက်ရိုက်သုံးလို့လည်း ရတယ် —
print(f"မင်္ဂလာပါ {input('နာမည်: ')}!")
နာမည်: May Thazin
မင်္ဂလာပါ May Thazin!
program အသေးလေးတွေမှာ ဒီလိုတစ်ကြောင်းတည်း ရေးတာက အဆင်ပြေတယ်။ ဒါပေမဲ့ input တန်ဖိုးကို နောက်ထပ်သုံးဦးမယ်ဆိုရင်တော့ variable ထဲ သိမ်းထားတာ ပိုကောင်းတယ်။
Reference
- User input — input() အသုံးပြုပုံ အခြေခံ
- Built-in functions — input() အပါအဝင် built-in function များ
Input က အမြဲ String — Type Conversion
ဒီအခန်းရဲ့ အရေးအကြီးဆုံးအချက် — input() ကနေ ရလာသမျှက အမြဲ string ပါ။ user က 25 လို့ရိုက်ထည့်လည်း Python အတွက်တော့ "25" (စာသား) ဖြစ်နေတယ်။ ဂဏန်းအဖြစ် တွက်ချက်ချင်ရင် ကိုယ်တိုင် type ပြောင်းပေးရတယ်။ ဒါကို type conversion (တစ်နည်းအားဖြင့် casting) လို့ခေါ်တယ်။
age_text = input("အသက်ဘယ်လောက်လဲ: ")
print(type(age_text)) # အမြဲ <class 'str'> ပဲ
age = int(age_text) # string → integer
print(type(age))
print(f"နောက်နှစ်ဆို အသက် {age + 1} နှစ်ပြည့်ပြီ။")
အသက်ဘယ်လောက်လဲ: 20
<class 'str'>
<class 'int'>
နောက်နှစ်ဆို အသက် 21 နှစ်ပြည့်ပြီ။
အလေ့အကျင့်မှာတော့ တစ်ကြောင်းတည်းပေါင်းရေးလေ့ရှိတယ် —
age = int(input("အသက်ဘယ်လောက်လဲ: "))
print(f"နောက်နှစ်ဆို အသက် {age + 1} နှစ်ပြည့်ပြီ။")
ဒဿမဂဏန်း (ဥပမာ အရပ်၊ ကိုယ်အလေးချိန်၊ ဈေး) လိုချင်ရင် float() သုံးပါ —
height = float(input("အရပ် (ပေ) ထည့်ပါ: "))
print(f"မင်းအရပ်က {height} ပေ ရှိတယ်။")
အရပ် (ပေ) ထည့်ပါ: 5.6
မင်းအရပ်က 5.6 ပေ ရှိတယ်။
ဈေးတွက်တဲ့ ဥပမာတစ်ခုထပ်ကြည့်ရအောင် —
price = float(input("ပစ္စည်းဈေး: "))
qty = int(input("အရေအတွက်: "))
print(f"စုစုပေါင်း {price * qty} ကျပ် ကျသင့်ပါတယ်။")
ပစ္စည်းဈေး: 2500.5
အရေအတွက်: 4
စုစုပေါင်း 10002.0 ကျပ် ကျသင့်ပါတယ်။
ဒီအချက်ကို မမေ့ဖို့ ဂန္တဝင်အမှားဥပမာ တစ်ခုထပ်ကြည့်ရအောင်။ input() နှစ်ခုကို int() မပြောင်းဘဲ တိုက်ရိုက်ပေါင်းမိရင် ဘာဖြစ်မလဲ?
a = input("ပထမဂဏန်း: ")
b = input("ဒုတိယဂဏန်း: ")
print(a + b) # string နှစ်ခု ဆက်သွားတာ!
print(int(a) + int(b)) # ဒါမှ တကယ့် ပေါင်းခြင်း
ပထမဂဏန်း: 12
ဒုတိယဂဏန်း: 8
128
20
a + b က "12" + "8" ဆိုတဲ့ string concatenation ဖြစ်သွားလို့ "128" ထွက်တယ်။ int() နဲ့ ပြောင်းပြီးမှ ပေါင်းမှ 20 ရတယ်။ ဒါ beginner တွေ အမှားအများဆုံး အချက်ပဲ — သေချာမှတ်ထားပါ။
ဒဿမပါတဲ့ စာသားကိုလည်း float() က လက်ခံတယ် — ဒါပေမဲ့ စာလုံးပါလာရင် error ပဲ။ float("abc") ဆိုရင် ValueError တက်တယ်။ int() နဲ့ အတူတူပဲ — ဂဏန်းနဲ့တူတဲ့ စာသားမှသာ ပြောင်းလို့ရတယ်။
နောက်ထပ်သိထားသင့်တာတစ်ခု — float() ကနေ int() ပြောင်းတဲ့အခါ ဒဿမအပိုင်းကို အပြတ်လှီးထုတ်ပစ်တယ် (အဝိုင်းမလုပ်ဘူး) —
print(int(7.9)) # 7 — .9 ကို လှီးထုတ်ပစ်တယ်
print(int(-7.9)) # -7
ဒါကြောင့် ဈေးတွက်တာလိုမျိုး တိကျမှုလိုတဲ့နေရာမှာ float အတိုင်းပဲ ဆက်သုံးပါ။ int ကို ပြောင်းလိုက်ရင် အချက်အလက်ဆုံးရှုံးနိုင်တယ်။
နောက်ဆုံးအချက် — user က ဘာမှမရိုက်ဘဲ Enter ပဲ ခေါက်လိုက်ရင် input() က စာသားအလွတ် ("") ပြန်ပေးတယ်။ error မတက်ဘူး။
name = input("နာမည်: ") # Enter ပဲ ခေါက်လိုက်ရင် name = ""
print(f"မင်္ဂလာပါ {name}!")
အရာအားလုံးပေါင်းစပ်ခြင်း — ဂဏန်းပေါင်းစက်
အခန်း ၁ က ဂဏန်းသင်္ချာနဲ့ ဒီအခန်းက input/f-string တို့ကို ပေါင်းပြီး ဂဏန်းပေါင်းစက် အသေးလေး ရေးကြည့်ရအောင် —
x = int(input("ပထမဂဏန်း: "))
y = int(input("ဒုတိယဂဏန်း: "))
print(f"{x} + {y} = {x + y}")
print(f"{x} - {y} = {x - y}")
print(f"{x} * {y} = {x * y}")
ပထမဂဏန်း: 10
ဒုတိယဂဏန်း: 3
10 + 3 = 13
10 - 3 = 7
10 * 3 = 30
int() မပါရင် ဒီ program က လုံးဝအလုပ်မလုပ်ဘူး — "10" + "3" ဆို "103" ထွက်သွားမယ်။ type conversion က program တိုင်းလိုလိုမှာ မပါမဖြစ် အဆင့်တစ်ခုဆိုတာ ဒီဥပမာက သက်သေပြနေတယ်။
သတိပြုရန် — ဂဏန်းမဟုတ်တဲ့ စာသားကို int() နဲ့ ပြောင်းလို့မရဘူး။ ဥပမာ int("hello") ဆိုရင် ValueError ဆိုတဲ့ error တက်မယ်။ ဒီလို error တွေကို ဘယ်လိုကိုင်တွယ်ရမလဲဆိုတာ နောက် chapter (exception handling) မှာ သင်ရမယ်။ အခုအချိန်မှာတော့ user က ဂဏန်းပဲရိုက်ထည့်မယ်လို့ ယူဆပြီး ရေးထားပါ။
Reference
- User input — input နဲ့ type conversion တွဲသုံးပုံ
- Built-in functions — int(), float() တို့ရဲ့ တရားဝင်ရှင်းလင်းချက်
Mini Program — ကိုယ်ရေးအကျဉ်း ထုတ်စက်
ဒီအခန်းသင်ထားသမျှကို ပေါင်းသုံးတဲ့ program အသေးလေးတစ်ခု ရေးကြည့်ရအောင်။ user ဆီက နာမည်၊ အသက်၊ ဝါသနာတို့ကို ယူပြီး လှပတဲ့ ကိုယ်ရေးအကျဉ်းကတ် ထုတ်ပေးမယ် —
name = input("နာမည်: ")
age = int(input("အသက်: "))
hobby = input("ဝါသနာ: ")
card = f"""------------------------
ကိုယ်ရေးအကျဉ်း
------------------------
နာမည် : {name}
အသက် : {age} နှစ်
ဝါသနာ : {hobby}
နောက် ၅ နှစ်ဆို အသက် {age + 5} နှစ် ရှိမယ်။
------------------------"""
print(card)
နာမည်: Thandar
အသက်: 19
ဝါသနာ: စာဖတ်ခြင်း
------------------------
ကိုယ်ရေးအကျဉ်း
------------------------
နာမည် : Thandar
အသက် : 19 နှစ်
ဝါသနာ : စာဖတ်ခြင်း
နောက် ၅ နှစ်ဆို အသက် 24 နှစ် ရှိမယ်။
------------------------
ဒီ program မှာ အခန်းရဲ့ အကြောင်းအရာအားလုံးပါဝင်တယ် — input() နဲ့ prompt၊ int() conversion၊ triple-quoted f-string၊ brace ထဲက တွက်ချက်မှု ({age + 5})။ ဒီလို အပိုင်းလေးတွေကို တွဲဆက်တတ်လာရင် ကိုယ်ပိုင် program တွေ စရေးနိုင်ပြီ။
ကိုယ်တိုင်စမ်းကြည့်ပါ — အထက်က program ကို ဒီလိုပြောင်းကြည့်ပါ။
- ဝါသနာအစား အကြိုက်ဆုံးအစားအစာကို မေးပါ။
- နောက် ၅ နှစ်အစား နောက် ၁၀ နှစ်ဆို အသက်ဘယ်လောက်ရှိမလဲ တွက်ပြပါ။
- ကတ်ရဲ့ အပေါ်ဆုံးမှာ
***အစား ကိုယ်ကြိုက်တဲ့ အလှဆင်စာသား ထည့်ပါ။
Reference
- f-strings guide — f-string နဲ့ program အသေးလေးတွေ ရေးကြည့်ရန်
- User input — input() ကို လက်တွေ့ program တွေမှာ သုံးပုံ
အမှားများလေ့ရှိတဲ့အချက်များ
ဒီအခန်းရဲ့ သင်ခန်းစာတွေကို ပြန်ချုပ်ရင်း beginner တွေ ခဏခဏမှားတတ်တဲ့အချက်တွေကို စုပေးထားတယ်။ ကိုယ်တိုင်မှားဖူးရင် ဒီအခန်းကို တကယ်နားလည်ပြီလို့ ဆိုနိုင်တယ်။
၁။ quote မပိတ်မိတာ — အဖွင့်နဲ့အပိတ် အတွဲလိုက်ပါရမယ်။
# အမှား: print("မင်္ဂလာပါ) ← အပိတ် " ကျန်ခဲ့တယ်
print("မင်္ဂလာပါ") # အမှန်
၂။ f မေ့တာ — brace { } ထည့်ပြီး f မေ့ရင် variable အစားထိုးမပေးဘူး။
name = "Nanda"
print("My name is {name}.") # {name} အတိုင်းပဲ ပေါ်မယ်
print(f"My name is {name}.") # ဒါမှ အမှန်
၃။ string နဲ့ ဂဏန်း + နဲ့ ဆက်မိတာ — error တက်မယ်။ f-string သုံးပါ။
age = 20
# အမှား: print("အသက်: " + age)
print(f"အသက်: {age}") # အမှန်
၄။ input() ကို int() မပြောင်းဘဲ တွက်မိတာ — "12" + "8" = "128" ဖြစ်သွားမယ်။ ဂဏန်းလိုချင်ရင် int(input(...)) လို့ တစ်ခါတည်း ပြောင်းယူပါ။
၅။ prompt စာသားမှာ space မေ့တာ — အသေးအဖွဲလေးပေမဲ့ user အတွက် အရေးပါတယ်။ input("နာမည်:") ဆိုရင် ရိုက်ထည့်တဲ့စာက : နဲ့ ကပ်နေမယ်။ input("နာမည်: ") လို့ space တစ်လုံးထည့်ပေးမှ သပ်သပ်ရပ်ရပ်မြင်ရတယ်။
၆။ ဒဿမပါတဲ့စာသားကို int() နဲ့ တိုက်ရိုက်ပြောင်းမိတာ — int("5.6") ဆိုရင် error တက်မယ်။ အရင် float() နဲ့ ပြောင်း၊ ပြီးမှ int() နဲ့ ထပ်ပြောင်းရတယ်။
# int("5.6") ← ValueError တက်မယ်
print(int(float("5.6"))) # 5 — အရင် float၊ ပြီးမှ int
Reference
- Strings — string အခြေခံ ပြန်လည်လေ့လာရန်
- User input — input() နဲ့ type conversion ပြန်လည်လေ့လာရန်
လေ့ကျင့်ခန်းများ
၁။ user ရဲ့ နာမည်နဲ့ နေတဲ့မြို့ကို input() နဲ့ ယူပြီး f-string သုံးပြီး အောက်ပါအတိုင်း print ထုတ်တဲ့ program ရေးပါ။
နာမည်ထည့်ပါ: May
မြို့ထည့်ပါ: Taunggyi
မင်္ဂလာပါ May! Taunggyi က ရာသီဥတု ဘယ်လိုလဲ?
၂။ ပစ္စည်းနာမည်၊ တစ်ခုဈေး၊ အရေအတွက်တို့ကို input ယူပြီး စုစုပေါင်းကျသင့်ငွေကို တွက်ပြတဲ့ program ရေးပါ။ ဈေးနဲ့ အရေအတွက်ကို ဂဏန်းအဖြစ် ပြောင်းဖို့ မမေ့ပါနဲ့။
ပစ္စည်းနာမည်: ကြက်ဥ
တစ်ခုဈေး: 300
အရေအတွက်: 10
ကြက်ဥ 10 လုံး = 3000 ကျပ်
၃။ အသက်ကို input ယူပြီး မွေးသက္ကရာဇ်ကို တွက်ထုတ်တဲ့ program ရေးပါ။ ဒီနှစ်ကို 2026 လို့ ယူဆပါ။
အသက်ထည့်ပါ: 22
မင်းကို 2004 ခုနှစ်မှာ မွေးခဲ့တာဖြစ်မယ်။
၄။ triple-quoted f-string ကို သုံးပြီး user ရဲ့ နာမည်၊ အကြိုက်ဆုံးအရောင်၊ ကံကောင်းဂဏန်းတို့ကို ယူကာ ID ကတ်ပုံစံ print ထုတ်တဲ့ program ရေးပါ။
နာမည်ထည့်ပါ: Hla Hla
အကြိုက်ဆုံးအရောင်: အပြာ
ကံကောင်းဂဏန်း: 7
------------------------
ID CARD
Name : Hla Hla
Color : အပြာ
Lucky #: 7
------------------------
၅။ (အနည်းငယ်ခက်သည်) ခရီးစရိတ် ခွဲဝေတဲ့ program ရေးပါ။ စုစုပေါင်းကုန်ကျစရိတ်နဲ့ လူဦးရေကို input ယူပြီး တစ်ယောက်ကျသင့်ငွေကို တွက်ပါ။ ကုန်ကျစရိတ်အတွက် float()၊ လူဦးရေအတွက် int() သုံးပြီး အဖြေကို f-string နဲ့ လှလှပပထုတ်ပါ။
စုစုပေါင်းကုန်ကျစရိတ်: 45500
လူဦးရေ: 4
တစ်ယောက် 11375.0 ကျပ် ကျပါမယ်။