เขียนคำสั่งตามที่แสดงใน comment
v1 = [1.2, 3.4, 5.6]
v2 = [3.2, 4.1, 4.5]
# มีตัวแปร v1 กับ v2 ซึ่งเป็นลิสต์ของ
# จำนวนจริง มาให้เรียบร้อยแล้ว
#
# v1 กับ v2 เป็นลิสต์ที่มี 3 ช่อง
# ลิสต์ทั้งคู่แทนเวกเตอร์ในสามมิติ
# จงแสดงค่า dot product ของ v1 กับ v2
#
d = v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2]
print(d)
Ex().has_equal_output(incorrect_msg = "ค่า dot product ไม่ถูกต้อง")
เขียนคำสั่งตามที่แสดงใน comment
x = list(range(3,200,7))
# มีตัวแปร x ซึ่งเป็นลิสต์ของจำนวนเต็มมาให้แล้ว
#
# ให้ a เป็นจำนวนเต็มเก็บผลรวมของค่าใน x
# ตัวที่ index 5,8 และสองตัวขวาสุดของ x
# ให้ b เป็นลิสต์เก็บเฉพาะที่ข้อมูลใน x
# ที่อยู่ ณ index ที่หารด้วย 3 ลงตัว
# ให้ c เป็นลิสต์เก็บค่ากลับลำดับกับค่าใน x
# ให้ d เป็นลิสต์เก็บค่าใน x ที่ถูก "หมุน"
# ทางขวา 1 ครั้ง เช่น หมุน [1,2,3,4]
# ทางขวา 1 ครั้ง ได้ [4,1,2,3]
# การทำคำสั่งข้างบนทั้งหมดต้องไม่เปลี่ยนค่าใน x
#
a = x[5] + x[8] + x[-2] + x[-1]
b = x[::3]
c = x[::-1]
d = [x[-1]] + x[:-1]
for v in 'abcd':
obj = Ex().check_object(v, missing_msg = "ไม่มีตัวแปร "+v)
obj.has_equal_value(incorrect_msg = v+" มีค่าไม่ตรงตามโจทย์")
obj.has_equal_value(expr_code="type("+v+")", incorrect_msg=v+" เก็บข้อมูลประเภทที่ไม่ตรงตามโจทย์")
Ex().check_object("x").has_equal_value(incorrect_msg = "ไม่ควรเปลี่ยนค่าใน x")
เขียนคำสั่งตามที่แสดงใน comment
v1 = [1.2, 3.4, 5.6]
v2 = [3.2, 4.1, 4.5]
v3 = [0.0, 0.0, 0.0]
v4 = v3
# มีตัวแปร v1, v2 และ v3 ซึ่งเป็นลิสต์ของ
# จำนวนจริง มาให้เรียบร้อยแล้ว
#
# v1, v2 และ v3 เป็นลิสต์ที่มี 3 ช่อง
# แต่ละลิสต์แทนเวกเตอร์ในสามมิติ
# จงตั้งค่าภายในของเวกเตอร์ v3 ให้เป็น
# ผลบวกของเวกเตอร์ v1 กับ v2
#
v3[0] = v1[0] + v2[0]
v3[1] = v1[1] + v2[1]
v3[2] = v1[2] + v2[2]
Ex().check_object("v3").has_equal_value(expr_code="v3[:3]", incorrect_msg="ผลลัพธ์ไม่ถูกต้อง")
Ex().check_object("v4").has_equal_value(incorrect_msg = "ต้องใส่ผลกลับในแต่ละช่องของ v3, ไม่ใช่สร้างลิสต์ใหม่")