2: Basic String & List

2-2: Basic String & List operation

** ถ้าใช้งานบนมือถือหรือ tablet แนะนำให้ใช้ Chrome หรือ Safari เท่านั้น **

แบบฝึกหัด 2-2 ข้อที่ 1

เขียนคำสั่งตามที่แสดงใน 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 ไม่ถูกต้อง")
แบบฝึกหัด 2-2 ข้อที่ 2

เขียนคำสั่งตามที่แสดงใน 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")
แบบฝึกหัด 2-2 ข้อที่ 3

เขียนคำสั่งตามที่แสดงใน 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, ไม่ใช่สร้างลิสต์ใหม่")