กระดาษทดเขียนโปรแกรมไพธอน

In [1]:
# ใช้ for i in range ทำงานซ้ำๆ

for i in range(1,11):
    print(i)
1
2
3
4
5
6
7
8
9
10
In [2]:
# x เป็นลิสต์ที่มีสมาชิกสิบตัว เป็นเลข 1 ถึง 10
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
In [3]:
# ดูจำนวนสมาชิกในลิสต์ได้ด้วยคำสั่ง len()
len(x)
Out[3]:
10
In [4]:
# สร้าง y เป็นลิสต์ว่างๆแล้วเติม 1 เข้าไปเป็นสมาชิก

y = []
y.append(1)
In [5]:
y
Out[5]:
[1]
In [6]:
# เติม 2 เข้าไปเป็นสมาชิก
y.append(2)
In [7]:
y
Out[7]:
[1, 2]
In [8]:
# ใช้ ลิสต์.append(...) เพื่อเติมสมาชิกทีละตัว
y = []
y.append(1**2)
y.append(2**2)
y.append(3**2)
y.append(4**2)
y.append(5**2)
y.append(6**2)
y.append(7**2)
y.append(8**2)
y.append(9**2)
y.append(10**2)
In [9]:
y
Out[9]:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
In [10]:
# ใช้ for i in range ทำงาน append ซ้ำๆให้
y2 = []
for i in range(1, 11):
    y2.append(i**2)
In [11]:
y2
Out[11]:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
In [12]:
# ใช้วิธี list comprehension สร้างลิสต์ก็ได้

y3 = [i**3 for i in range(1,11)]
In [13]:
y3
Out[13]:
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
In [14]:
# ตอนนี้ x เป็นลิสต์
x
Out[14]:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
In [15]:
# for i in ไม่จำเป็นต้องตามด้วย range ก็ได้ ตามด้วยอะไรก็ได้ที่มีสมาชิกหลายๆตัวเช่นลิสต์ x

[i/2 for i in x]
Out[15]:
[0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0]
In [16]:
# List comprehension สามารถสร้างคู่ลำดับก็ได้

[(i, i**2) for i in range(1,11)]
Out[16]:
[(1, 1),
 (2, 4),
 (3, 9),
 (4, 16),
 (5, 25),
 (6, 36),
 (7, 49),
 (8, 64),
 (9, 81),
 (10, 100)]
In [17]:
# List comprehension สามารถใช้ตัวแปรมากกว่าหนึ่งตัวในการวน 
# ในที่นี้ใช้ i และ j

x = [(i,j) for i in range(1,7) for j in range(1,7)]
print(x)
[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6)]
In [18]:
len(x)
Out[18]:
36
In [19]:
# List comprehension สามารถคัดกรองเฉพาะข้อมูลที่เราต้องการได้
# ในที่นี้เราต้องการเฉพาะ i+j == 7

x = [(i, j) for i in range(1,7) for j in range(1,7) if i + j == 7 ]

print(x)
[(1, 6), (2, 5), (3, 4), (4, 3), (5, 2), (6, 1)]
In [20]:
# ในที่นี้เราต้องการเฉพาะ i+j == 6

y = [(i, j) for i in range(1,7) for j in range(1,7) if i + j == 6 ]
print(y)
[(1, 5), (2, 4), (3, 3), (4, 2), (5, 1)]
In [21]:
# ในที่นี้เราต้องการเฉพาะ i+j == 8

[(i, j) for i in range(1,7) for j in range(1,7) if i + j == 8 ]
Out[21]:
[(2, 6), (3, 5), (4, 4), (5, 3), (6, 2)]
In [22]:
# คราวนี้เราใช้ตัวแปร i, j, k วนเลย 
# วน i, j  จาก 1 ถึง 6
# วน k จาก 1 ถึง 12
# สร้างคู่่่ลำดับ (i,j) ที่ i+j == k

[(k, [(i,j) for i in range(1,7) for j in range(1,7) if i+j == k]) for k in range(1,13)]
Out[22]:
[(1, []),
 (2, [(1, 1)]),
 (3, [(1, 2), (2, 1)]),
 (4, [(1, 3), (2, 2), (3, 1)]),
 (5, [(1, 4), (2, 3), (3, 2), (4, 1)]),
 (6, [(1, 5), (2, 4), (3, 3), (4, 2), (5, 1)]),
 (7, [(1, 6), (2, 5), (3, 4), (4, 3), (5, 2), (6, 1)]),
 (8, [(2, 6), (3, 5), (4, 4), (5, 3), (6, 2)]),
 (9, [(3, 6), (4, 5), (5, 4), (6, 3)]),
 (10, [(4, 6), (5, 5), (6, 4)]),
 (11, [(5, 6), (6, 5)]),
 (12, [(6, 6)])]
In [ ]: