สร้าง set ชื่อ vowels ภายในเก็บตัวอักษรอังกฤษตัวเล็กที่เป็นสระ
vowels = {"a", "e", "i", "o", "u"}
obj = Ex().check_object('vowels', missing_msg = "ไม่มีตัวแปร vowels")
obj.has_equal_value(incorrect_msg = "vowels มีค่าไม่ตรงตามโจทย์")
obj.has_equal_value(expr_code="type(vowels)", incorrect_msg="vowels ต้องเป็น set")
อินพุตมีสองบรรทัด แต่ละบรรทัดเป็นรายการของจำนวนเต็ม (คั่นด้วยช่องว่าง) จงสร้างเซตชื่อ s เก็บจำนวนที่ปรากฏทั้งในบรรทัดแรก และ/หรือบรรทัดที่สอง
___inp___ = ["1 2 3 4 5", "0 3 4 1 6 9 10"]
def input():
t = ___inp___.pop(0)
___inp___.append(t)
return t
x1 = [int(e) for e in input().split()]
x2 = [int(e) for e in input().split()]
s1 = set([int(e) for e in input().split()])
s2 = set([int(e) for e in input().split()])
s = s1 | s2
obj = Ex().check_object('s', missing_msg = "ไม่มีตัวแปร `s`")
obj.multi(
has_equal_value(expr_code = "type(next(iter(s)))", incorrect_msg = "`s` เป็นเซตของจำนวนเต็ม"),
has_equal_value(incorrect_msg = "`s` มีค่าไม่ตรงตามโจทย์")
)
อินพุตมีสองบรรทัด แต่ละบรรทัดเป็นรายการของจำนวนเต็ม (คั่นด้วยช่องว่าง) จงสร้างเซตชื่อ s เก็บจำนวนที่ปรากฏทั้งในบรรทัดแรกและบรรทัดที่สองเท่านั้น
___inp___ = ["1 2 3 4 5", "0 3 4 1 6 9 10"]
def input():
t = ___inp___.pop(0)
___inp___.append(t)
return t
s1 = set([int(e) for e in input().split()])
s2 = set([int(e) for e in input().split()])
s = s1 & s2
obj = Ex().check_object('s', missing_msg = "ไม่มีตัวแปร `s`")
obj.multi(
has_equal_value(expr_code = "type(next(iter(s)))", incorrect_msg = "`s` เป็นเซตของจำนวนเต็ม"),
has_equal_value(incorrect_msg = "`s` มีค่าไม่ตรงตามโจทย์")
)
อินพุตมีสองบรรทัด แต่ละบรรทัดเป็นรายการของจำนวนเต็ม (คั่นด้วยช่องว่าง) จงสร้างเซตชื่อ s เก็บจำนวนที่ปรากฏเฉพาะในบรรทัดแรก แต่ไม่มีในบรรทัดที่สอง
___inp___ = ["1 2 3 4 5", "0 3 4 1 6 9 10"]
def input():
t = ___inp___.pop(0)
___inp___.append(t)
return t
s1 = set([int(e) for e in input().split()])
s2 = set([int(e) for e in input().split()])
s = s1 - s2
obj = Ex().check_object('s', missing_msg = "ไม่มีตัวแปร `s`")
obj.multi(
has_equal_value(expr_code = "type(next(iter(s)))", incorrect_msg = "`s` เป็นเซตของจำนวนเต็ม"),
has_equal_value(incorrect_msg = "`s` มีค่าไม่ตรงตามโจทย์")
)
อินพุตมีสองบรรทัด แต่ละบรรทัดเป็นรายการของจำนวนเต็ม (คั่นด้วยช่องว่าง) จงสร้างเซตชื่อ s เก็บจำนวนที่ปรากฏเฉพาะในบรรทัดแรก และจำนวนที่ปรากฏเฉพาะในบรรทัดที่สอง
___inp___ = ["1 2 3 4 5", "0 3 4 1 6 9 10"]
def input():
t = ___inp___.pop(0)
___inp___.append(t)
return t
s1 = set([int(e) for e in input().split()])
s2 = set([int(e) for e in input().split()])
s = s1 ^ s2
obj = Ex().check_object('s', missing_msg = "ไม่มีตัวแปร `s`")
obj.multi(
has_equal_value(expr_code = "type(next(iter(s)))", incorrect_msg = "`s` เป็นเซตของจำนวนเต็ม"),
has_equal_value(incorrect_msg = "`s` มีค่าไม่ตรงตามโจทย์")
)
อินพุตมีสองบรรทัด แต่ละบรรทัดเป็นรายการของจำนวนเต็ม (คั่นด้วยช่องว่าง) จงแสดง True ถ้าจำนวนในบรรทัดแรกทุกตัวปรากฎในบรรทัดสอง ไม่เช่นนั้นแสดง False
___inp___ = ["1 2 3 4 5", "0 3 4 1 6 9 10"]
def input():
t = ___inp___.pop(0)
___inp___.append(t)
return t
s1 = set([int(e) for e in input().split()])
s2 = set([int(e) for e in input().split()])
print(s1 <= s2)
for v in [["1 2 3 4 5", "0 3 4 1 6 9 10"], ["04 05 03", "1 4 5 2 3"], ["4 5 3", "3 5 4"]]:
Ex().has_equal_output(pre_code = "___inp___[:] =" + str(v),
incorrect_msg = "แสดงผลไม่ถูกต้อง กรณีอินพุตเป็น "+" กับ ".join(v))
อินพุตมีสองบรรทัด แต่ละบรรทัดเป็นรายการของจำนวนเต็ม (คั่นด้วยช่องว่าง) จงแสดง True ถ้าไม่มีจำนวนใดในบรรทัดแรก ปรากฏในบรรทัดที่สองเลย ไม่เช่นนั้นแสดง False
___inp___ = ["1 2 3 4 5", "0 3 4 1 6 9 10"]
def input():
t = ___inp___.pop(0)
___inp___.append(t)
return t
s1 = set([int(e) for e in input().split()])
s2 = set([int(e) for e in input().split()])
print(len(s1 & s2) == 0)
for v in [["1 2 3 4 5", "9 8 7 6"], ["04 5 3", "4 9 11"], ["4 5 3", "3 5 4"]]:
Ex().has_equal_output(pre_code = "___inp___[:] =" + str(v),
incorrect_msg = "แสดงผลไม่ถูกต้อง กรณีอินพุตเป็น "+" กับ ".join(v))
จงเขียนฟังก์ชัน goo(x)
ที่รับลิสต์ x แล้วคืนลิสต์ที่มีข้อมูลเหมือน x แต่ไม่มีตัวซ้ำ และเรียงลำดับข้อมูลจากน้อยไปมาก เช่น goo([1,1,5,5,5,3,2,0,0])
จะได้ [0, 1, 2, 3, 5]
def goo(x):
def goo(x):
return sorted(set(x))
q = "`"
fname = "goo"
func = Ex().check_function_def(fname, missing_msg="ไม่พบฟังก์ชัน " + (q+fname+q))
func.has_equal_part_len('args', 'ฟังก์ชันนี้รับพารามิเตอร์ตัวเดียว')
func.check_body().check_function("sorted", missing_msg="หัดใช้ฟังก์ชัน sorted ในข้อนี้")
import random
x = [random.randint(0,5) for e in range(15)]
for a in [[1,2,2,3,3], x]:
fcall = fname + "(" + str(a) + ")"
func.check_call(fcall).has_equal_value(incorrect_msg=(q+fcall+q) + " ให้ผลผิด")
อินพุตประกอบด้วยหลายบรรทัด (บรรทัดแรกเป็นจำนวนเต็ม k ตามด้วยอีก k บรรทัด) แต่ละบรรทัดเป็นรหัสคูปอง จงเขียนโปรแกรมอ่านรหัสคูปองมาเก็บ โดยระบบจะอนุญาตให้เก็บคูปองในแต่ละรหัสได้แค่ใบเดียว (แต่ในอินพุตอาจมีรหัสซ้ำหลายใบก็ได้) หลังจากอ่านจนครบ ให้แสดงรหัสคูปองทั้งหมด บรรทัดละใบเรียงตามรหัสจากน้อยไปมาก
___inp___ = ["7", " CODE-10%", "AUG88-80", " CODE-5%",
"CODE-10%", "CODE-5%", "KERRY-FREE"," KERRY-FREE"]
def input():
t = ___inp___.pop(0)
___inp___.append(t)
return t
coupons = set()
k = int(input())
for k in range(k):
c = input().strip()
coupons.add(c)
for c in sorted(coupons):
print(c)
for v in [["3", "A", "A", "A"], ["5", " Z", "B", " B", "Z ", "C"]]:
Ex().has_equal_output(pre_code = "___inp___[:] =" + str(v),
incorrect_msg = "แสดงผลไม่ถูกต้อง (อย่าลืม strip สตริงที่อ่านเข้ามาด้วย)")
จงเขียนฟังก์ชัน all_unique_alphabets(text)
ที่รับ text เป็นสตริง แล้วคืนเซตของตัวอักษรอังกฤษทั้งหมด (a ถึง z) เฉพาะที่มีใน text (ให้ถือว่าตัวเล็กกับตัวใหญ่เหมือนกัน) เช่น all_unique_alphabets("555, Ha Ha Ha")
ได้ {"h", "a"}
def all_unique_alphabets( text ):
def all_unique_alphabets( text ):
return set([c for c in text.lower() if "a"<=c<="z"])
q = "`"
fname = "all_unique_alphabets"
func = Ex().check_function_def(fname, missing_msg="ไม่พบฟังก์ชัน " + (q+fname+q))
func.has_equal_part_len('args', 'ฟังก์ชันนี้รับพารามิเตอร์ตัวเดียว')
import random
t = "".join([chr(random.randint(65, 75)) for i in range(20)])
args = ["Mamma Mia! (2018)", "Kill Bill: Vol. 1 (2003)", t]
for a in args:
fcall = fname + "('" + str(a) + "')"
func.check_call(fcall).has_equal_value(incorrect_msg=(q+fcall+q) + " ให้ผลผิด")
func.check_call(fcall).has_equal_value(
expr_code = "type("+fcall+")", incorrect_msg="ต้องคืนเซต")
จงเขียนฟังก์ชัน common_alphabets(t1, t2)
ที่รับสตริง t1 และ t2 แล้วคืนลิสต์ของตัวอักษรอังกฤษทั้งหมด (a ถึง z) ที่มีทั้งใน t1 และ t2 (ให้ถือว่าตัวเล็กกับตัวใหญ่เหมือนกัน) โดยเรียงตัวอักษรจากน้อยไปมากตามพจนานุกรม เช่น common_alphabets("iPhone", "Huawei")
ได้ ["e", "h", "i"]
def common_alphabets(t1, t2):
def common_alphabets(t1, t2):
s1 = set([c for c in t1.lower() if "a"<=c<="z"])
s2 = set([c for c in t2.lower() if "a"<=c<="z"])
return sorted(s1 & s2)
q = "`"
fname = "common_alphabets"
func = Ex().check_function_def(fname, missing_msg="ไม่พบฟังก์ชัน " + (q+fname+q))
func.has_equal_part_len('args', 'ฟังก์ชันนี้รับพารามิเตอร์สองตัว')
import random
t1 = "".join([chr(random.randint(65, 75)) for i in range(10)])
t2 = "".join([chr(random.randint(65, 75)) for i in range(10)])
args = ["'Adolescent', 'Teenage'", "'"+t1+"', '"+t2+"'"]
for a in args:
fcall = fname + "(" + a + ")"
func.check_call(fcall).has_equal_value(incorrect_msg=(q+fcall+q) + " ให้ผลผิด")
func.check_call(fcall).has_equal_value(
expr_code = "type("+fcall+")", incorrect_msg="ต้องคืนลิสต์")
Pangram คือสตริงที่มีตัวอักษรอังกฤษทุกตัว (ใหญ่หรือเล็กก็ได้) เช่น "Pack my box with five dozen liquor jugs." จงเขียนฟังก์ชัน is_pangram(s)
ที่รับสตริง s เพื่อตรวจว่า s เป็น pangram หรือไม่ หมายเหตุ: ให้เขียนฟังก์ชันนี้โดยใช้คำสั่งน้อย ๆ ไม่ต้องใช้วงวนและคำสั่ง if ใด ๆ
def is_pangram(s):
def is_pangram(s):
alphabets = 'abcdefijklmnopqrstuvwxyz'
return set(alphabets) <= set(s.lower())
q = "`"
fname = "is_pangram"
func = Ex().check_function_def(fname, missing_msg="ไม่พบฟังก์ชัน " + (q+fname+q))
func.has_equal_part_len('args', 'ฟังก์ชันนี้รับพารามิเตอร์หนึ่งตัว')
func.check_body().check_not(has_code(r"(for|while|if)"), msg="ไม่ใช้ for หรือ while หรือ if นะ")
import random
t = "".join([chr(random.randint(65, 65+27)) for i in range(50)])
args = ["'Aexizious'", "'The quick brown fox jumps over the lazy dog.'", "'"+t+"'", ]
for a in args:
fcall = fname + "(" + a + ")"
func.check_call(fcall).has_equal_value(incorrect_msg=(q+fcall+q) + " ให้ผลผิด")