လေ့ကျင့်ခန်း အမေးအဖြေ များ
လေ့ကျင့်ခန်း ၁
မေးခွန်း ၁။
အောက်ပါ program မှာ k ရဲ့ value က ဘာဖြစ်ပါသလဲ။
i = 7 + 3
k = i + 2
အဖြေက
A. 7 B. 10 C. 12 —
C.12
မေးခွန်း ၂။
လူတစ်ယောက်၏ မွေးဖွားသည့် နှစ်ကို လက်ခံပါ။ ထို့နောက် ၂၀၁၈ တွင် ရောက်ရှိနေသည့် အသက်ကို ဖော်ပြပါ။
birthday = int(input("Please enter your birth year: "))
print("Your age is ", 2018 - birthday)
လေ့ကျင့်ခန်း ၂
လေ့ကျင့်ခန်း ၂ - ၁
x = input("Enter first value : ")
y = input("Enter second value : ")
op = input("Operator (+ - * /) : ")
try :
x = int(x)
y = int(y)
output = True
if op == "+" :
result = x+y
elif op == "-" :
result = x-y
elif op == "*" :
result = x*y
elif op == "/" :
result = x/y
else :
output = False
print("Wrong Operator")
if output :
print("Result is ",result)
except ValueError:
print("Please enter number only")
print(ValueError);
အထက်တွင် ဖော်ပြထားသော Calculator code ကို flow chart ဆွဲပါ။
လေ့ကျင့်ခန်း ၂ - ၂
မေးခွန်း ၁။
total = 0
for x in range(10):
total = total + x
print(total)
program ကို run လိုက်ရင် Total က
A. 0 B. 10 C. 45 —
C. 45
မေးခွန်း ၂။
total = 0;
for x in range(10):
total = total + 1
print(total)
program ကို run လိုက်ရင် Total က
A. 0 B. 10 C. 45 —
B. 10
မေးခွန်း ၃။
range(5) ဆိုရင်
A. 0 ကနေ 5 ထိ B. 0 ကနေ 4 ထိ C. 1 ကနေ 5 ထိ D. 1 ကနေ 4 ထိ —
B. 0 ကနေ 4 ထိ
မေးခွန်း ၄။
While loop က အနည်းဆုံး တစ်ကြိမ် အလုပ်လုပ်တယ်။
A. မှန် B. မှား —
A.
မေးခွန်း ၅။
While loop အသုံးပြုဖို့ အခေါက် အရေအတွက် အတိအကျ ရှိရမယ်။
A. မှန် B. မှား —
B.
မေးခွန်း ၆။
Fibonacci program လို့ ခေါ်ရအောင်။ ကျွန်တော်တို့တွေ user ဆီက နံပတ် လက်ခံမယ်။ နံပတ် က 5 ဖြစ်ရင် Fibonacci sequence အရ နံပတ် ၅ ခု ထုတ်ပြမယ်။
1 1 2 3 5
7 ဖြစ်ခဲ့ရင်တော့
1 1 2 3 5 8 13
လို့ ထုတ်ပြမယ်။
Fibonacci sequence ဆိုတာကတော့ ရှေ့က နံပတ် ၂ ခု ကို ပေါင်းပြီးတော့ နောက်ထပ် ဂဏန်း တစ်ခု ရပါတယ်။
n = input("Enter number: ")
n = int(n)
f = 0
s = 1
for i in range(n):
t = f
f = s
s = t + s
print(f,end=" ")
မေးခွန်း ၇။
Even/odd စစ်ထုတ်တဲ့ program ပါ။ user ဆီကနေ ဂဏန်း လက်ခံမယ်။ ပြီးရင် 1 ကနေ စပြီးတော့ even ဖြစ်လား odd ဖြစ်လား ဆိုပြီး ထုတ်ပြရမယ်။
ဥပမာ user က 3 လို့ ရိုက်လိုက်ရင်
1 is Odd
2 is Even
3 is Odd
ဆိုပြီး ထုတ်ပြမယ်။
တကယ်လို့ 5 လို့ ရိုက်လိုက်ရင်
1 is Odd
2 is Even
3 is Odd
4 is Even
5 is Odd
ဆိုပြီး ထုတ်ပြရပါမယ်။
n = input("Enter number: ")
n = int(n)
f = 0
s = 1
for i in range(1,n+1):
if i % 2 == 0 :
print(i,"is Even")
else:
print(i,"is Odd")
လေ့ကျင့်ခန်း ၂-၃
မေးခွန်း ၁။
Max Number လိုမျိုး အငယ်ဆုံး ဂဏန်းကို ရှာတဲ့ code ရေးကြည့်ပါ။
list = [1255,2125,1050,2506,1236,1048,2010,1055]
minnumber = list[0]
for x in list:
if minnumber > x :
minnumber = x
print("MAX number in array is",minnumber)
မေးခွန်း ၂။
list = [1,5,2,7,8,9,200,155]
print(len(list))
အဖြေသည်
A. ၉ B. ၈ C. ၇
B
မေးခွန်း ၃။
Array [3,4,1,2,9,7]
ဆိုပြီး ရှိပါသည်။ user ဆီက နံပတ်ကို လက်ခံပြီး array အခန်းထဲတွေ တွေ့မတွေ့ user ကို print ထုတ်ပြပါမည်။ တွေ့ခဲ့ပါက အခန်း ဘယ်လောက်မှာ တွေ့ခဲ့သည်ကို print ထုတ်ပြပါမည်။
n = input("Enter number: ")
n = int(n)
arr = [3,4,1,2,9,7]
room = 0
while room < len(arr):
if arr[room] == n:
print ("Found at ", room)
exit()
room = room + 1
print("Not found")
မေးခွန်း ၄။
Max number ကို ရှာပါ။ ဘယ်နံပတ်က အကြီးဆုံးလဲ။ ဘယ်အခန်းမှာ ရှိတာလဲ ဆိုတာကို print ရိုက် ပြပါ။
list = [1255,2125,1050,2506,1236,1048,2010,1055]
maxnumber = list[0]
foundAt = 0
room = 0
while room < len(list):
x = list[room]
if maxnumber < x :
maxnumber = x
foundAt = room
room = room + 1
print("MAX number in array is",maxnumber," Room is",foundAt)
လေ့ကျင့်ခန်း ၂-၄
မေးခွန်း ၁။
minus ဆိုသည့် function ရေးပြပါ။ ဂဏန်း ၂ လုံး ပို့လိုက်ပြီး ရလာဒ်ကို return ပြန်ပေးရမည်။
def minus(val1,val2):
return val1-val2
print("5 - 2 =",minus(5,2))
မေးခွန်း ၂။
triangle_star ဆိုတဲ့ function ကို ရေးပါ။ user ဆီက နံပတ်တောင်းပါ။ 3 လို့ရိုက်ရင triangle_star(3) ဆိုပြီး ပို့ပေးပါ။ triangle_star မှ အောက်ပါ အတိုင်း ရိုက်ထုတ်ပြပါ။
*
**
***
အကယ်၍ 5 လို့ ရိုက်ထည့်လျှင် ၅ လိုင်း ထုတ်ပြပါမည်။
def triangle_star(stars):
for start in range(stars):
for star in range(start+1):
print("*", end="")
print("")
triangle_star(5)
လေ့ကျင့်ခန်း ၃
မေးခွန်း ၁။
ပေါင်းနှုတ်မြှောက်စား ပါဝင်သည့် MyMath class တစ်ခုကို တည်ဆောက်ပါ။
class MyMath:
def sum(self,x,y):
return x+y
def minus(self,x,y):
return x-y
def multiply(self,x,y):
return x*y
def division(self,x,y):
return x/y
math = MyMath()
print("4+3",math.sum(4,3))
print("4-3",math.minus(4,3))
print("4*3",math.multiply(4,3))
print("4/3",math.division(4,3))
မေးခွန်း ၂။
MyMath class ကို base ယူပြီး MyMathExt ဆိုသည့် class ကို ဆောက်ပါ။ ၂ ထပ် ၊ ၃ ထပ် တွက်ရန် ထည့်သွင်းပါ။
class MyMath:
def sum(self,x,y):
return x+y
def minus(self,x,y):
return x-y
def multiply(self,x,y):
return x*y
def division(self,x,y):
return x/y
class MyMathExt(MyMath):
def sqaure(self,x):
return x**2
def three(self,x):
return x**3
math = MyMathExt()
print("4+3",math.sum(4,3))
print("4-3",math.minus(4,3))
print("4*3",math.multiply(4,3))
print("4/3",math.division(4,3))
print("4 square",math.sqaure(4))
print("4 power 3 is",math.three(4))
လေ့ကျင့်ခန်း ၄
မေးခွန်း ၁။
Base 8 ကို ပြောင်းသည့် divdeBy8 function ကို ရေးပါ။ 668 (base 10) ၏ base 8 တန်ဖိုးသည် တန်ဖိုးသည် 1234 ဖြစ်သည်။ divideBy8(668) ၏ အဖြေသည် 1234 ထွက်လာရမည်။
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[len(self.items) - 1]
def size(self):
return len(self.items)
def divideBy8(number):
remstack = Stack()
base = 8
while number > 0:
rem = number % base
remstack.push(rem)
number = number // base
binString = ""
while not remstack.is_empty():
binString = binString + str(remstack.pop())
return binString
print(divideBy8(668))
မေးခွန်း ၂။
Base 16 ကို ပြောင်းသည့် divdeBy16 function ကို ရေးပါ။ 668 (base 10) ၏ base 16 တန်ဖိုးသည် တန်ဖိုးသည် 29C ဖြစ်သည်။ divdeBy16(668) ၏ အဖြေသည် 29C ထွက်လာရမည်။ base 16 သည် အောက် ဖော်ပြပါ အတိုင်း ပြောင်းလဲ ပေးရန် လိုသည်။
ထို့ကြောင့် အကြွင်း ကို if condition သုံးကာ 10 မှ 15 value များကို ပြောင်းပေးရန် လိုသည်။
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[len(self.items) - 1]
def size(self):
return len(self.items)
def divideBy16(number):
remstack = Stack()
base = 16
while number > 0:
rem = number % base
if rem == 10:
rem = "A"
elif rem == 11:
rem = "B"
elif rem == 12:
rem = "C"
elif rem == 13:
rem = "D"
elif rem == 14:
rem = "E"
elif rem == 15:
rem = "F"
remstack.push(rem)
number = number // base
binString = ""
while not remstack.is_empty():
binString = binString + str(remstack.pop())
return binString
print(divideBy16(987))
မေးခွန်း ၁။
class Queue:
def __init__(self):
self.items = []
def isEmpty(self):
return self.items == []
def enqueue(self, item):
self.items.insert(0,item)
def dequeue(self):
return self.items.pop()
def size(self):
return len(self.items)
q=Queue()
q.enqueue(12)
q.enqueue('dog')
q.enqueue(True)
print(q.dequeue())
အဖြေသည်
12
လေ့ကျင့်ခန်း ၆
မေးခွန်း ၁
အောက်ပါ code တွင် gender သည် male ဖြစ်သော သူများကို ဖော်ပြပါ။
room = [{'Name': 'Aung Ko', 'Age': 7, 'Gender' : 'male'}, {'Name': 'Ko Ko', 'Age': 8, 'Gender' : 'male'},{'Name': 'Aye Aye', 'Age': 7, 'Gender' : 'female'},{'Name': 'Htet Htet', 'Age': 8, 'Gender' : 'female'},{'Name': 'Win Aung', 'Age': 7, 'Gender' : 'male'}]
Answer:
room = [{'Name': 'Aung Ko', 'Age': 7, 'Gender' : 'male'}, {'Name': 'Ko Ko', 'Age': 8, 'Gender' : 'male'},{'Name': 'Aye Aye', 'Age': 7, 'Gender' : 'female'},{'Name': 'Htet Htet', 'Age': 8, 'Gender' : 'female'},{'Name': 'Win Aung', 'Age': 7, 'Gender' : 'male'}]
for obj in room:
if obj["Gender"] == "male":
print(obj["Name"])
မေးခွန်း ၂
အထက်ပါ code တွင် room ထဲတွင် ရှိသော လူများ၏ စုစုပေါင်း အသက်ကို ဖော်ပြသော code ရေးပြပါ။
Answer:
room = [{'Name': 'Aung Ko', 'Age': 7, 'Gender' : 'male'}, {'Name': 'Ko Ko', 'Age': 8, 'Gender' : 'male'},{'Name': 'Aye Aye', 'Age': 7, 'Gender' : 'female'},{'Name': 'Htet Htet', 'Age': 8, 'Gender' : 'female'},{'Name': 'Win Aung', 'Age': 7, 'Gender' : 'male'}]
total_age = 0
for obj in room:
total_age = total_age + obj["Age"]
print(total_age)
လေ့ကျင့်ခန်း ၉
လေ့ကျင့်ခန်း ၉-၁
မေးခွန်း ၁
အထက်ပါ binary tree တစ်ခု တည်ဆောက်ပါ။ ထို binary tree အတွက် dfs ကို သုံးပြီး search function ကို ရေးပါ။ ဥပမာ ။ F လို့ ထည့်လိုက်လျှင် binary tree တွင် ပါဝင်သောကြောင့် true ဟု return ပြန်ပါမည်။ H ဟု ထည့်လိုက်လျှင် ရှာ မတွေ့သောကြောင့် false ဟု return ပြန်ရမည်။
class BinaryTree:
def __repr__(self):
return "Binary Tree, Key is " + self.key
def __init__(self,root):
self.key = root
self.left_child = None
self.right_child = None
def insert_left(self,new_node):
if self.left_child == None:
self.left_child = BinaryTree(new_node)
else:
t = BinaryTree(new_node)
t.left_child = self.left_child
self.left_child = t
def insert_right(self,new_node):
if self.right_child == None:
self.right_child = BinaryTree(new_node)
else:
t = BinaryTree(new_node)
t.right_child = self.right_child
self.right_child = t
def get_right_child(self):
return self.right_child
def get_left_child(self):
return self.left_child
def set_root_val(self,obj):
self.key = obj
def get_root_val(self):
return self.key
def search(self,value):
if self != None:
if self.get_left_child() != None:
if self.get_left_child().search(value):
return True
if(self.get_root_val() == value):
return True
if self.get_right_child() != None:
if self.get_right_child().search(value):
return True
return False
root = BinaryTree("A")
root.insert_left("B")
root.insert_right("C")
b = root.get_left_child()
b.insert_left("D")
b.insert_right("E")
d = b.get_left_child()
d.insert_left("F")
d.insert_right("G")
found = root.search("F")
if found :
print("FOUND")
else:
print("NOT FOUND")
လေ့ကျင့်ခန်း ၉-၂
မေးခွန်း ၁
အထက်ပါ binary tree တစ်ခု တည်ဆောက်ပါ။ ထို binary tree အတွက် bfs ကို သုံးပြီး search function ကို ရေးပါ။ ဥပမာ ။ F လို့ ထည့်လိုက်လျှင် binary tree တွင် ပါဝင်သောကြောင့် true ဟု return ပြန်ပါမည်။ H ဟု ထည့်လိုက်လျှင် ရှာ မတွေ့သောကြောင့် false ဟု return ပြန်ရမည်။
class BinaryTree:
def __repr__(self):
return "Binary Tree, Key is " + self.key
def __init__(self,root):
self.key = root
self.left_child = None
self.right_child = None
def insert_left(self,new_node):
if self.left_child == None:
self.left_child = BinaryTree(new_node)
else:
t = BinaryTree(new_node)
t.left_child = self.left_child
self.left_child = t
def insert_right(self,new_node):
if self.right_child == None:
self.right_child = BinaryTree(new_node)
else:
t = BinaryTree(new_node)
t.right_child = self.right_child
self.right_child = t
def get_right_child(self):
return self.right_child
def get_left_child(self):
return self.left_child
def set_root_val(self,obj):
self.key = obj
def get_root_val(self):
return self.key
def search(self,value):
thislevel = [self]
while thislevel:
nextlevel = []
level = []
for n in thislevel:
if (n.get_root_val() == value):
return True
level.append(n.get_root_val())
if n.get_left_child() != None:
nextlevel.append(n.get_left_child())
if n.get_right_child() != None:
nextlevel.append(n.get_right_child())
thislevel = nextlevel
return False
root = BinaryTree("A")
root.insert_left("B")
root.insert_right("C")
b = root.get_left_child()
b.insert_left("D")
b.insert_right("E")
d = b.get_left_child()
d.insert_left("F")
d.insert_right("G")
found = root.search("H")
if found :
print("FOUND")
else:
print("NOT FOUND")
လေ့ကျင့်ခန်း ၉-၃
မေးခွန်း ၁
၁။ အထက်ပါ Tree ကို DFS ဖြင့် ရေးသားပါ။ တစ်ခုထက်မက child တွေ ဖြစ်နိုင်သည့် အတွက် preoder နှင့် postorder သာ အသုံးပြုနိုင်ပါသည်။ ထို့ကြောင့် preoder နှင့် postorder function ရေးသားပါ။
class Node:
def __init__(self,value):
self.value = value
self.child = []
def __repr__(self):
return "Value is " + self.value
def insert_child(self,node):
self.child.append(node)
def get_child(self):
return self.child
class Node:
def __init__(self,value):
self.value = value
self.child = []
def __repr__(self):
return "Value is " + self.value
def insert_child(self,node):
self.child.append(node)
def get_child(self):
return self.child
def postorder(self):
if self != None:
if len(self.get_child()) > 0:
for child in reversed(self.get_child()):
child.postorder()
print(self.value)
def preorder(self):
if self != None:
print(self.value)
if len(self.get_child()) > 0:
for child in self.get_child():
child.preorder()
root = Node("A")
b = Node("B")
c = Node("C")
d = Node("D")
root.insert_child(b)
root.insert_child(c)
root.insert_child(d)
e = Node("E")
f = Node("F")
g = Node("G")
b.insert_child(e)
b.insert_child(f)
b.insert_child(g)
h = Node("H")
i = Node("I")
c.insert_child(h)
c.insert_child(i)
j = Node("J")
d.insert_child(j)
print("---- PRE OREDER ----")
root.preorder()
print("---- POST OREDER ----")
root.postorder()
လေ့ကျင့်ခန်း ၁၁
လေ့ကျင့်ခန်း ၁၁-၁
မေးခွန်း ၁
ကားလိုင်စင် စစ်ဆေးသည့် regular expression တစ်ခု ရေးသားပါ။ A-Z
နှင့် စမယ်။ /
လာမယ်။ ဂဏန်း ၅ လုံးပါမယ်။ /
ပါမယ်။ ဂဏန်း ၂ လုံးပါမယ်။ ဥပမာ B/11111/16
ပုံစံပါ။
import re
text = "K/12344/32"
if re.match("[A-Z]\/[0-9]{5}\/[0-9]{2}",text) == None:
print("NOT MATCH")
else:
print("MATCH")
မေးခွန်း ၂
mention ခေါ်သည့် ပုံစံကို regular expression မှာ ရေးကြည့်ရအောင်။ @mgmg ဆိုပြီး ရေးထားသည့် စာတွေကို html အနေနဲ့ ပြန်ပြောင်းပါမယ်။ <a href="/username/mgmg">@mgmg</a>
ဆိုပြီး ဖော်ပြပေးပါမည်။
import re
text = "@mgmg"
replacement = re.sub("@(.*)\s*","<a href=\"/username/\\1\">@\\1</a>",text)
print(replacement)
မေးခွန်း ၃
markdown က code တစ်ကြောင်းအတွက် `code here` ဆိုရင် <code>code here</code>
ဆိုပြီးပြောင်းပါတယ်။
import re
text = "hello `code here` world"
replacement = re.sub("`(.*)`","<code>\\1</code>",text)
print(replacement)