ไฟล์ทั้งหมดที่ใช้และสร้างที่เกี่ยวข้องขณะเข้าร่วมการฝึกทักษะวิจัยที่ NECTEC สวทช.
โดย Prachya Boonkwan and Patsagorn Yuenyong, CC-BY-SA-3.0
ปรัชญา บุญขวัญ
Email: prachya.boonkwan@nectec.or.th
(C) December 2018
print
print
print('Hello')
ก็จะแสดงข้อความว่า Hello
ออกที่หน้าจอ[ ]
หรือกดปุ่ม Shift+Enter ดูสิครับ เห็นข้อความ Hello
ที่อยู่ในบรรทัดต่อมาไหมครับprint('Hello world!')
Hello world!
Hello
ที่เราต้องการจะให้พิมพ์ออกหน้าจอ จะอยู่ในเครื่องหมายคำพูดเดี่ยว (single quote) ในตัวโค้ดเสมอคราวนี้เรามาลองพิมพ์สตริง 'สวัสดีจ้ะ'
ออกที่หน้าจอกันบ้าง ลองเติมข้อความดังกล่าวลงในเครื่องหมายคำพูดเดี่ยวดูนะครับ
print('สวัสดีจ้ะ')
สวัสดีจ้ะ
ลองเปลี่ยนสตริงดูตามใจชอบ แล้วลองรันดูนะครับ
#
(แฮช หรือ hash) นำหน้าหมายเหตุ โดยเมื่อไรก็ตามที่ใช้เครื่องหมาย #
สิ่งที่ตามหลังเครื่องหมายนี้จะเป็นหมายเหตุทั้งหมด เช่นprint('Hello') # แสดงข้อความ Hello ออกที่หน้าจอ
Hello
#
ที่ด้านหน้าสุด เช่น# แสดงข้อความ Hello ออกที่หน้าจอ
print('Hello')
Hello
print('Please')
print('Mr.')
# print('and Ms.')
print('Postman')
print('Look and See')
Please
Mr.
Postman
Look and See
ลองใส่เครื่องหมาย #
หน้าบรรทัดต่างๆ ในโค้ด แล้วสังเกตความเปลี่ยนแปลงของผลลัพธ์
print('Hello')
print('World')
print('My')
# print('name')
print('is')
# print('Peter')
Hello
World
My
is
+
, ลบ -
, คูณ *
, และหาร /
กับตัวเลขได้
*
แทนการคูณนะครับ5 * 2 + 10
20
10 + 5 / 2
12.5
เรามาลองคำนวณค่าของนิพจน์ทางคณิตศาสตร์ต่อไปนี้กันดูบ้างครับ
3/4 + 1/4
1.0
1+6*8-7
42
5*6+7*8-2/5
85.6
( )
ได้เหมือนกับนิพจน์ทางคณิตศาสตร์ปกติเลยครับ4 * 3 + (1 + 2) / 4
12.75
( )
เสมอ **ห้ามใช้**เครื่องหมายก้ามปู [ ]
และเครื่องหมายปีกกา { }
โดยเด็ดขาด((1 / (2 + 3)) * 4 + 5) / 6
0.9666666666666667
(1 + 2) * 3
9
1 + (2 * 3)
7
*
และหาร /
ด้วยนะครับ เพราะถ้าหากไม่ระบุวงเล็บให้ชัดเจน ลำดับการคำนวณก็อาจจะไม่เป็นไปตามที่ท่านต้องการได้เรามาลองคำนวณค่าของนิพจน์ทางคณิตศาสตร์ต่อไปนี้กันครับ
3 * (4 + 1 - 2 * 5)
-15
(1 + 2 + 3) / (4 + 5 + 6)
0.4
7 * ((5 + 6) / 7 + 7/8)
17.125
**
(ดอกจันเขียนติดกัน 2 ดวง) ครับ2 ** 5
32
(2 * 5) ** 3
, 2 * (5 ** 3)
, และ 2 * 5 ** 3
(2 * 5) ** 3
1000
2 * (5 ** 3)
250
2 * 5 ** 3
250
ดังนั้นเพื่อความปลอดภัย เราจึงนิยมเขียนเครื่องหมายยกกำลัง **
ติดกับตัวเลข เพื่อให้เป็นที่รู้กันว่า ถ้าหากไม่มีวงเล็บ เราจะเริ่มทำจากเครื่องหมายยกกำลังก่อนเสมอ เช่น เราจะเขียนนิพจน์ $ 2 \times 5^3 $ ด้วยคำสั่ง 2 * 5**3
เป็นต้น
นอกจากนี้เรายังสามารถคำนวณค่าราก (root) ได้โดยการใช้สูตร:
8**(1/3)
8**(1/3)
2.0
เรามาคำนวณค่าของนิพจน์ดังต่อไปนี้กันครับ
3**(5+3/4)
553.920214840011
(7+3*4)**(1/2)
4.358898943540674
((5+6**2.5)/3.5**(1/2))+3**2
58.8076767100986
a
และทดค่าของ $\sqrt[2]{5}$ เก็บไว้ในตัวแปร b
เพื่อใช้ต่อในการคำนวณต่อๆ ไปได้ ซึ่งในตัวอย่างนี้เราจะคำนวณค่าของ $ a^3 + b^3 $ กันa = 2**5 # ทดค่าไว้ในตัวแปร a
b = 5**(1/2) # ทดค่าไว้ในตัวแปร b
a**3 + b**3
32779.1803398875
print
เช่นเดียวกับการแสดงข้อความ เช่นprint(a)
print(b)
32
2.23606797749979
width
(ความกว้าง), height
(ความสูง), และ area
(พื้นที่) ดังตัวอย่างด้านล่างนี้width = 40
height = 30
area = width * height
print(area)
1200
area_of_triangle
พื้นที่สามเหลี่ยม เป็นต้นwidth = 40
height = 30
area_of_triangle = 1/2 * width * height
print(area_of_triangle)
600.0
print
ยังสามารถพิมพ์ค่าออกหน้าจอได้หลายๆ อันพร้อมกัน เช่นwidth = 40
height = 30
area_of_triangle = 1/2 * width * height
print('width =', width, 'and height =', height)
print('area = width * height =',area_of_triangle)
width = 40 and height = 30
area = width * height = 600.0
a
, b
, และ c
ในโค้ดด้านล่าง แล้วสังเกตความเปลี่ยนแปลงของผลลัพธ์a = 10
b = 20
c = 30
mean = (a + b + c)/3 # เติมโค้ดที่นี่
print(mean)
20.0
ตัวแปร mean
ในโค้ดด้านบนคือค่าอะไร? ทำไมจึงต้องตั้งชื่อตัวแปรแบบนี้?
จงเขียนโค้ดลงในช่องว่างให้สมบูรณ์ เพื่อคำนวณค่าเฉลี่ยฮาร์โมนิก (harmonic mean) ของตัวแปร a
, b
, และ c
โดยค่าเฉลี่ยฮาร์โมนิกมีสูตรดังนี้
a = 10
b = 20
c = 10
hmean = 3/(1/a + 1/b + 1/c) # เติมโค้ดที่นี่
print(hmean)
12.0
ทดลองเปลี่ยนค่าตัวแปร a
, b
, และ c
และสังเกตความเปลี่ยนแปลงของผลลัพธ์
เขียนโค้ดเพื่อคำนวณปริมาตรของทรงรี (ellipsoid) จากตัวแปรต่อไปนี้
width
length
depth
สูตรของปริมาตรทรงรีมีดังนี้
\[\mathtt{volume} = \frac{4}{3} \times \pi \times \mathtt{width} \times \mathtt{length} \times \mathtt{depth}\]pi = 3.1415926 # ค่า 𝜋 (ไพ)
# กำหนดความกว้างในตัวแปร width ให้เท่ากับ 20
width = 20
# กำหนดความยาวในตัวแปร length ให้เท่ากับ 30
length = 30
# กำหนดความลึกในตัวแปร depth ให้เท่ากับ 40
depth = 40
# คำนวณปริมาตรของทรงรีแล้วเก็บในตัวแปร volume
volume = (4/3) * pi * width * length * depth
# พิมพ์ค่าในตัวแปร volume
print(volume)
100530.9632
[ ]
คั่นด้วยเครื่องหมายคอมมา ,
[163.5, 150.0, 167.0, 161.25, 170.0]
[163.5, 150.0, 167.0, 161.25, 170.0]
# ลิสต์ความสูงของนักเรียนในกลุ่ม
student_heights = [163.5, 150.0, 167.0, 161.25, 170.0]
print('student heights =', student_heights)
student heights = [163.5, 150.0, 167.0, 161.25, 170.0]
ลองสร้างลิสต์จากรายการสมาชิกดังต่อไปนี้ [10, 20, 30, 40, 50]
แล้วเก็บลงในตัวแปร my_list
my_list = [10, 20, 30, 40, 50] # เติมโค้ดที่นี่
print(my_list)
[10, 20, 30, 40, 50]
len
ซึ่งย่อมาจากคำว่า length เช่นlen(student_heights)
5
จงหาขนาดของลิสต์ในตัวแปร my_list
ใส่ตัวแปร my_length
แล้วพิมพ์ค่าของตัวแปรดังกล่าวออกหน้าจอ
my_length = len(my_list) # เติมโค้ดที่นี่
print(my_length)
5
student_heights[0]
จะแทนสมาชิกตัวแรกของลิสต์ความสูงของนักเรียน ในขณะที่ student_heights[1]
จะแทนสมาชิกตัวที่ 2 ของลิสต์ ฯลฯprint(student_heights[0])
print(student_heights[1])
print(student_heights[2])
print(student_heights[3])
print(student_heights[4])
163.5
150.0
167.0
161.25
170.0
IndexError
ซึ่งแปลว่าระบุค่าตำแหน่งเกินขนาดของลิสต์ เช่นprint(student_heights[10]) # ทั้งๆ ที่ลิสต์ student_heights มีขนาดแค่ 5 ตัว
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
/tmp/ipykernel_4163/727272617.py in <module>
----> 1 print(student_heights[10]) # ทั้งๆ ที่ลิสต์ student_heights มีขนาดแค่ 5 ตัว
IndexError: list index out of range
จงคำนวณผลรวมของสมาชิกทุกตัวของลิสต์ในตัวแปร my_list
เพื่อหาค่าเฉลี่ยโดยใช้สูตร
เมื่อค่า $ N $ คือจำนวนสมาชิกที่มีในลิสต์ $ \mathbf{a} $
# คำนวณผลรวมของสมาชิกทุกตัวใน my_list
my_summation = sum(student_heights) # เติมโค้ดที่นี่
my_average = my_summation / my_length
print(my_average)
162.35
=
เหมือนกับการกำหนดค่าในตัวแปรstudent_heights
จากค่า 150.0 ให้เป็นค่า 180.0 ได้student_heights[1] = 180.0
print(student_heights)
[163.5, 180.0, 167.0, 161.25, 170.0]
จงเพิ่มค่าให้สมาชิกทุกตัวของลิสต์ในตัวแปร my_list
อย่างละ 5 ด้วยเครื่องหมาย +
และพิมพ์ตัวแปร my_list
ออกหน้าจอ
my_list = [10, 20, 30, 40, 50]
my_list = [i + 5 for i in my_list]
print(my_list)
[15, 25, 35, 45, 55]
ได้ผลลัพธ์เป็น [15, 25, 35, 45, 55]
หรือเปล่าครับ?
ลิสต์[
$a$ :
$b$ ]
จะเลือกสมาชิกตั้งแต่ index ที่ $a$ จนถึง index ที่ $b - 1$student_heights
เราจะใช้คำสั่ง student_heights[1:4]
student_heights
[163.5, 180.0, 167.0, 161.25, 170.0]
student_heights[1:4]
[180.0, 167.0, 161.25]
ลิสต์[
$a$ :]
student_heights
ด้วยคำสั่ง student_heights[1:]
student_heights[1:]
[180.0, 167.0, 161.25, 170.0]
ลิสต์[:
$b$ ]
student_heights[:4]
student_heights[:4]
[163.5, 180.0, 167.0, 161.25]
ในแบบฝึกหัดนี้ เรามีลิสต์ my_list
ที่มีสมาชิก 10 ตัวดังนี้
my_list = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
# เริ่มต้นจากสมาชิกตัวที่ 3 --> index = 2
# จบที่สมาชิกตัวที่ 7 --> index = 6
# แปลว่า เราเลือก index 2 จนถึง index 6
# ขอบล่างของ slicing คือ index 2
# ขอบบนของ slicing คือ index 6 + 1
# จึงเขียนเป็น slicing ได้ว่า my_list[2:7]
my_list[2:7]
[30, 40, 50, 60, 70]
my_list[1:5]
[20, 30, 40, 50]
my_list[:8]
[10, 20, 30, 40, 50, 60, 70, 80]
my_list[3:]
[40, 50, 60, 70, 80, 90, 100]
'Hello'
ไว้ในตัวแปร message
ได้message = 'Hello'
print(message)
Hello
+
ครับmessage1
และ message2
เข้าด้วยกันได้ดังนี้message1 = 'Hello '
message2 = 'World!'
message = message1 + message2
print(message)
Hello World!
*
hello
3 รอบ เราจะทำอย่างนี้ครับ3 * 'hello'
'hellohellohello'
จงสร้างตัวแปร 2 ตัว
message1
เก็บข้อความ 'Hello '
message2
เก็บข้อความ 'World '
หลังจากนั้นให้ทำซ้ำ message1
3 ครั้ง และ message2
5 ครั้ง นำผลลัพธ์ทั้งสองอันมาต่อกัน แล้วนำมาเก็บในตัวแปร message3
message1 = 'Hello ' * 3
message2 ='World ' * 5
message3 = message1 + message2
print(message3)
Hello Hello Hello World World World World World
message = 'hello'
print(message[0])
print(message[1])
print(message[2])
print(message[3])
print(message[4])
h
e
l
l
o
message[1:4]
'ell'
message[1] = 'E'
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/tmp/ipykernel_19426/1623769051.py in <module>
----> 1 message[1] = 'E'
TypeError: 'str' object does not support item assignment
สูตร: ถ้าอยากได้ตัวที่ x จนถึงตัวที่ y จะเขียนเป็น slicing ได้ว่า [x - 1 : y]
'prachya'
จำนวน 10 ครั้งแล้วเก็บไว้ในตัวแปร my_string
my_string = 'prachya' * 10
print(my_string)
prachyaprachyaprachyaprachyaprachyaprachyaprachyaprachyaprachyaprachya
my_string
เริ่มจากตัวที่ 10 จนถึงตัวที่ 30 แล้วเก็บลงในตัวแปร my_string1
my_string1 = my_string[9:30]
print(my_string1)
achyaprachyaprachyapr
my_string
ตั้งแต่ตัวที่ 20 เป็นต้นไป แล้วเก็บลงในตัวแปร my_string2
my_string2 = my_string[19:]
print(my_string2)
yaprachyaprachyaprachyaprachyaprachyaprachyaprachya
my_string
ตั้งแต่ตัวแรกจนถึงตัวที่ 40 แล้วเก็บลงในตัวแปร my_string3
my_string3 = my_string[:40]
print(my_string3)
prachyaprachyaprachyaprachyaprachyaprach
for <ตัวแปร> in <ลิสต์> :
<กระบวนการ>
student_heights
ออกมา เราจะสั่งคำสั่งดังนี้# ลิสต์ความสูงของนักเรียนในกลุ่ม
student_heights = [163.5, 150.0, 167.0, 161.25, 170.0]
# สมาชิกแต่ละตัวของลิสต์ student_heights จะแทนด้วยตัวแปร height
for height in student_heights:
# พิมพ์ค่าของตัวแปร height ออกหน้าจอ
print(height)
print('That is all.')
163.5
150.0
167.0
161.25
170.0
That is all.
print(height)
จะต้องมีย่อหน้าถัดเข้าไปmy_list
ออกหน้าจอโดยใช้ลูปฟอร์และคำสั่ง print
my_list = ['hello', 'my', 'name', 'is', 'prachya']
# ลูปฟอร์
for i in my_list:
print(i)
hello
my
name
is
prachya
my_numbers
ตัวละ 10 และพิมพ์ออกหน้าจอmy_numbers = [100, 90, 80, 70, 60, 50, 40, 30, 20, 10]
# ลูปฟอร์
for number in my_numbers:
number = number + 10
print(number)
110
100
90
80
70
60
50
40
30
20
range(
$a$ ,
$b$ )
เพื่อสร้างช่วงจำนวนในลูปฟอร์ได้ โดย $a$ จะเป็นค่า index เริ่มต้นและ $b - 1$ จะเป็นค่าสุดท้ายครับ เช่นfor i in range(1, 11):
print('i =', i)
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
i = 10
range(
$b$ )
ช่วงจำนวนจะเริ่มต้นจาก 0 และสิ้นสุดที่ $b - 1$ ครับfor i in range(20):
print('i =', i)
i = 0
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
i = 10
i = 11
i = 12
i = 13
i = 14
i = 15
i = 16
i = 17
i = 18
i = 19
range(
$a$ ,
$b$ ,
$c$ )
เมื่อค่า $c$ คือขนาดของก้าว# ก้าวมีขนาดเท่ากับ 2
for i in range(0, 21, 2):
print(f"{i=}")
i=0
i=2
i=4
i=6
i=8
i=10
i=12
i=14
i=16
i=18
i=20
range
ที่กำหนดขนาดของก้าวได้ ก็คือ เราสามารถไล่ index ย้อนหลังได้ด้วย เช่น# ก้าวมีขนาดติดลบ แปลว่าเดินถอยหลัง
for i in range(10, 0, -1):
print(i)
# สังเกตว่าลูปฟอร์จะหยุดทำงานเมื่อค่า index i = 0 ทำให้ไม่พิมพ์ค่า 0 ออกมาทางหน้าจอ
10
9
8
7
6
5
4
3
2
1
i
จากค่า 1 ถึง 20 แล้วพิมพ์ค่าของ 2 * i
ออกมาทางหน้าจอ# วนลูปค่า index i จาก 1 ถึง 20
for i in range(1, 21):
# พิมพ์ค่า 2 * i ออกทางหน้าจอ
print(2 * i)
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
i
จากค่า 100 จนถึง 10 แล้วพิมพ์ค่า i / 10
ออกมาทางหน้าจอ# วนลูปค่า index i จาก 100 จนถึง 10
for i in range(100, 9, -1):
# พิมพ์ค่า i / 10 ออกมาทางหน้าจอ
print(i / 10)
10.0
9.9
9.8
9.7
9.6
9.5
9.4
9.3
9.2
9.1
9.0
8.9
8.8
8.7
8.6
8.5
8.4
8.3
8.2
8.1
8.0
7.9
7.8
7.7
7.6
7.5
7.4
7.3
7.2
7.1
7.0
6.9
6.8
6.7
6.6
6.5
6.4
6.3
6.2
6.1
6.0
5.9
5.8
5.7
5.6
5.5
5.4
5.3
5.2
5.1
5.0
4.9
4.8
4.7
4.6
4.5
4.4
4.3
4.2
4.1
4.0
3.9
3.8
3.7
3.6
3.5
3.4
3.3
3.2
3.1
3.0
2.9
2.8
2.7
2.6
2.5
2.4
2.3
2.2
2.1
2.0
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
1.0
i
จากค่า 0 ถึง len(student_heights) - 1
และแปลงหน่วยความสูงของนักเรียนแต่ละคนจากหน่วยเซนติเมตรเป็นหน่วยเมตร [คำใบ้: 100 เซนติเมตร = 1 เมตร]student_heights = [163.5, 150.0, 167.0, 161.25, 170.0]
for i in range(len(student_heights)):
print(student_heights[i] * 0.01)
1.635
1.5
1.67
1.6125
1.7
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
:
:
:
3 * 12 = 36
# วนลูปค่า index i จาก 1 ถึง 12
for i in range(1, 13):
print(3, "*", i, "=", 3 * i)
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
3 * 10 = 30
3 * 11 = 33
3 * 12 = 36
# วนลูป index m เพื่อไล่แม่สูตรคูณจากแม่ 3 ถึงแม่ 5
for m in range(3, 6):
print('Multiplication of', m)
# วนลูป index i เพื่อไล่ตัวคูณจาก 1 ถึง 12
for i in range(1, 13):
print(m, '*', i, '=', m * i)
# พิมพ์บรรทัดใหม่คั่นระหว่างแม่
print()
Multiplication of 3
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
3 * 10 = 30
3 * 11 = 33
3 * 12 = 36
Multiplication of 4
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
4 * 4 = 16
4 * 5 = 20
4 * 6 = 24
4 * 7 = 28
4 * 8 = 32
4 * 9 = 36
4 * 10 = 40
4 * 11 = 44
4 * 12 = 48
Multiplication of 5
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50
5 * 11 = 55
5 * 12 = 60
for m in range(11,16):
for i in range(1,13):
print(f"{m} * {i} = {m * i}")
11 * 1 = 11
11 * 2 = 22
11 * 3 = 33
11 * 4 = 44
11 * 5 = 55
11 * 6 = 66
11 * 7 = 77
11 * 8 = 88
11 * 9 = 99
11 * 10 = 110
11 * 11 = 121
11 * 12 = 132
12 * 1 = 12
12 * 2 = 24
12 * 3 = 36
12 * 4 = 48
12 * 5 = 60
12 * 6 = 72
12 * 7 = 84
12 * 8 = 96
12 * 9 = 108
12 * 10 = 120
12 * 11 = 132
12 * 12 = 144
13 * 1 = 13
13 * 2 = 26
13 * 3 = 39
13 * 4 = 52
13 * 5 = 65
13 * 6 = 78
13 * 7 = 91
13 * 8 = 104
13 * 9 = 117
13 * 10 = 130
13 * 11 = 143
13 * 12 = 156
14 * 1 = 14
14 * 2 = 28
14 * 3 = 42
14 * 4 = 56
14 * 5 = 70
14 * 6 = 84
14 * 7 = 98
14 * 8 = 112
14 * 9 = 126
14 * 10 = 140
14 * 11 = 154
14 * 12 = 168
15 * 1 = 15
15 * 2 = 30
15 * 3 = 45
15 * 4 = 60
15 * 5 = 75
15 * 6 = 90
15 * 7 = 105
15 * 8 = 120
15 * 9 = 135
15 * 10 = 150
15 * 11 = 165
15 * 12 = 180
1 2 3
4 5 6
7 8 9
for i in range(0, 3):
for j in range(1, 4):
print(3 * i + j, '', end='')
print()
1 2 3
4 5 6
7 8 9
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
16 17 18
19 20 21
22 23 24
25 26 27
หมายเหตุ: เราสามารถระบุให้คำสั่ง print
ไม่ต้องขึ้นบรรทัดใหม่หลังจากพิมพ์ค่าออกหน้าจอได้ด้วยการระบุ end=''
ไว้ในวงเล็บของ print
ครับ
for i in range(3):
for j in range(3):
for k in range(3):
print(9 * i + 3 * j + k + 1, '', end='')
print()
print()
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
16 17 18
19 20 21
22 23 24
25 26 27
if
(แปลว่า ‘ถ้า’) ครับ โดยจะมีรูปแบบดังนี้if <เงื่อนไข>:
<กระบวนการ>
for
เลย
'Hurray!'
ถ้าหากว่าเงินเดือนในตัวแปร salary
มีค่ามากกว่า 10,000 บาทsalary = 50000
if salary > 10000:
print('Hurray!')
Hurray!
salary
แล้วรันใหม่ดูนะครับเครื่องหมาย | ความหมาย | ตัวอย่าง |
---|---|---|
< |
น้อยกว่า | 3 < 5 |
> |
มากกว่า | 5 > 3 |
== |
เท่ากับ | my_salary == your_salary |
!= |
ไม่เท่ากับ | my_salary != your_salary |
>= |
มากกว่าหรือเท่ากับ | my_salary >= your_salary |
<= |
น้อยกว่าหรือเท่ากับ | my_salary <= your_salary |
True
หรือ False
ซึ่งค่าความจริงก็เป็นข้อมูลประเภทหนึ่งเหมือนกัน เรียกว่า ค่าตรรกะ (boolean) ครับ เช่นprint(0.5 > 0.3) # True
print(0.25 < -1.0) # False
print(1.25 == 1.25) # True
print(1.30 != -0.78) # True
True
False
True
True
print('hello' == 'hello') # True
print('hello' != 'world') # True
print('hello' < 'alphabet') # False -- คอมพิวเตอร์เรียงลำดับข้อความตามตัวอักษร
True
True
False
ตัวเชื่อม | ความหมาย | ตัวอย่าง |
---|---|---|
and |
และ | a == b and x == y |
or |
หรือ | a != b or c != d |
not |
ไม่ | not (a > b) |
( ) |
วงเล็บ | (a == b) and not (c > d) |
v1 = 100
v2 = 200
v3 = 300
print(v1 == v2 and v2 == v3) # False and False = False
print(v1 + v2 == v3 or v2 + v3 == v1) # True or False = True
print(not(v1 == v2 and v2 == v3) or v1 == v2) # not(False and False) or False = True
False
True
True
'You are tall.'
ถ้าหากว่าความสูงในตัวแปร my_height
มากกว่า 170my_height = 175
if my_height <= 170:
print('You are tall.')
'You are weathy and tall.'
ถ้าหากว่าเงินเดือนในตัวแปร my_salary
มากกว่า 10000 และความสูงในตัวแปร my_height
มากกว่า 170my_salary = 15001
my_height = 175
if my_height > 170 and my_salary > 15000:
print('You are wealthy and tall.')
You are wealthy and tall.
student_heights = [163.5, 150.0, 167.0, 161.25, 170.0]
for height in student_heights:
if height > 160:
print(height)
163.5
167.0
161.25
170.0
'A'
และ**ไม่ใช่** 'C'
และมีความสูงมากกว่า 160 เซนติเมตรเท่านั้นstudent_names = ['Arm', 'Bobby', 'Cathy', 'Dorothy', 'Emily']
student_heights = [163.5, 150.0, 167.0, 161.25, 170.0]
for i in range(len(student_names)):
if student_heights[i] > 160:
print(student_names[i], ':', student_heights[i])
Arm : 163.5
Cathy : 167.0
Dorothy : 161.25
Emily : 170.0
input
ครับ แต่เวลาสั่งคำสั่งนี้แล้ว จะต้องหาตัวแปรมาเก็บค่าอินพุตที่รับมาด้วยเสมอmy_name = input('Enter your name: ') # ใส่ข้อความเตือนผู้ใช้ที่ตรงนี้
print('Hello,', my_name)
Hello, iiii
int
และ float
ตามลำดับครับ
int
จะแปลงข้อความเป็นจำนวนเต็ม เช่น 10, 20, 30float
จะแปลงข้อความเป็นจำนวนจริง เช่น 0.25, 3.5, 10.0my_salary_str = input('Enter your salary: ')
my_salary = int(my_salary_str) # ต้องแปลงข้อความให้เป็นจำนวนเต็มก่อน ถึงจะเปรียบเทียบได้
if my_salary > 10000:
print('Your salary is quite high.')
Your salary is quite high.
'Prachya'
หรือ 100.5
โปรแกรมจะระเบิดทันทีValueError
นั้นหมายความว่า คอมพิวเตอร์ไม่สามารถแปลงข้อความให้กลายเป็นตัวเลขได้นั่นเองครับif ... else ...
(else แปลว่า ‘ไม่เช่นนั้น’) ได้ครับif <เงื่อนไข> :
<กระบวนการ 1>
else:
<กระบวนการ 2>
'Hurray!'
ถ้าหากว่าเงินเดือนในตัวแปร salary
มีค่ามากกว่า 10,000 บาท หรือไม่เช่นนั้นก็พิมพ์ข้อความว่า 'Poor you.'
แทนsalary = 5000
if salary > 10000:
print('Hurray!')
else:
print('Poorly you.')
Poorly you.
จงตั้งเงื่อนไขเพื่อควบคุมการพิมพ์ชื่อของนักเรียนแต่ละคนและความสูงออกมา โดยจะพิมพ์ออกมาเฉพาะคนที่ชื่อนำหน้าด้วยตัวอักษรอื่นที่**ไม่ใช่** 'A'
และ**ไม่ใช่** 'C'
และมีความสูงมากกว่า 160 เซนติเมตรเท่านั้น ไม่เช่นนั้นก็ให้พิมพ์เฉพาะชื่อนักเรียนออกมาเท่านั้น
student_names = ['Arm', 'Bobby', 'Cathy', 'Dorothy', 'Emily']
student_heights = [163.5, 150.0, 167.0, 161.25, 170.0]
for i in range(len(student_names)):
if student_names[i][0] != 'A' and student_names[i][0] != 'C' and student_heights[i] > 160:
print(student_names[i], ':', student_heights[i])
else:
print(student_names[i])
Arm
Bobby
Cathy
Dorothy : 161.25
Emily : 170.0
if ... elif ... else ...
ได้ครับ (elif
ย่อมาจากคำว่า ‘else if’ แปลว่า ‘ไม่เช่นนั้น ถ้าหาก’)if <เงื่อนไข 1> :
<กระบวนการ 1>
elif <เงื่อนไข 2> :
<กระบวนการ 2>
elif <เงื่อนไข 3> :
<กระบวนการ 3>
:
:
:
else:
<กระบวนการสุดท้าย>
score = int(input('Enter your score: '))
if score >= 80: # score >= 80
grade = 4
elif score >= 70: # 70 <= score <= 79
grade = 3
elif score >= 60: # 60 <= score <= 69
grade = 2
elif score >= 50: # 50 <= score <= 59
grade = 1
else: # score < 50
grade = 0
print('Your grade =', grade)
Your grade = 2
break
ครับbreak
student_names = ['Arm', 'Bobby', 'Cathy', 'Dorothy', 'Emily']
student_heights = [163.5, 150.0, 167.0, 161.25, 170.0]
for i in range(len(student_heights)):
# พิมพ์ชื่อนักเรียนและความสูง
print(student_names[i], ':', student_heights[i])
# ถ้าความสูงของนักเรียนคนนั้น > 165 เซนติเมตร ให้ออกจากลูป
if student_heights[i] > 165.0:
break
print('That is all.')
Arm : 163.5
Bobby : 150.0
Cathy : 167.0
That is all.
continue
จะสั่งให้คอมพิวเตอร์เลิกทำกระบวนการที่กำลังทำกับสมาชิกตัวปัจจุบัน แล้วกระโดดไปสมาชิกตัวถัดไปทันทีครับ'A'
หรือตัว 'C'
ก็จะไม่ต้องพิมพ์ต่อท้ายว่า blacklisted
ได้ดังนี้student_names = ['Arm', 'Bobby', 'Cathy', 'Dorothy', 'Emily']
student_heights = [163.5, 150.0, 167.0, 161.25, 170.0]
for i in range(len(student_heights)):
# พิมพ์ชื่อนักเรียนและความสูง
print(student_names[i], ':', student_heights[i], end='')
# ถ้าชื่อนักเรียนขึ้นต้นด้วยตัว A หรือตัว C ให้ตัดจบ แล้วไปสมาชิกตัวถัดไปทันที
if student_names[i][0] == 'A' or student_names[i][0] == 'C':
print()
continue
print(' --> blacklisted')
Arm : 163.5
Bobby : 150.0 --> blacklisted
Cathy : 167.0
Dorothy : 161.25 --> blacklisted
Emily : 170.0 --> blacklisted
จงเขียนโปรแกรมเพื่อแสดงรายการนักเรียนที่ได้เกรดตำกว่า 4 ถ้านักเรียนคนใดได้เกรดต่ำกว่า 3 ให้พิมพ์ข้อความเตือน 'warning'
ที่หลังเกรด และให้โปรแกรมหยุดการทำงานเมื่อพบนักเรียนที่ได้เกรดตำกว่า 2
student_names = ['Arm', 'Bobby', 'Cathy', 'Dorothy', 'Emily']
student_scores = [86, 78, 54, 65, 34]
for i in range(len(student_names)):
grade = 0
# คำนวณเกรดของนักเรียน เก็บใส่ตัวแปร grade ไว้
if student_scores[i] >= 80:
grade = 4
elif student_scores[i] >= 70:
grade = 3
elif student_scores[i] >= 60:
grade = 2
elif student_scores[i] >= 50:
grade = 1
else:
grade = 0
# ถ้าพบว่านักเรียนได้เกรด 4 ให้กระโดดข้ามไปนักเรียนคนถัดไป โดยใช้คำสั่ง continue
if grade == 4:
continue
# พิมพ์ชื่อนักเรียนและเกรด โดยที่ยังไม่ต้องขึ้นบรรทัดใหม่
print(student_names[i], ':', grade, end='')
# ถ้าพบนักเรียนคนใดได้เกรดตำกว่า 3 ให้พิมพ์ข้อความเตือนว่า 'warning' และขึ้นบรรทัดใหม่
if grade < 3:
print(' warning')
continue
else:
print()
# หากพบนักเรียนที่ได้เกรดต่ำกว่า 2 ให้ออกจากลูปทันที โดยใช้คำสั่ง break
if grade < 2:
break
Bobby : 3
Cathy : 1 warning
Dorothy : 2 warning
Emily : 0 warning
Enter the size of the left-angle pyramid (n): 5
*
**
***
****
*****
n = input("Enter the size of the left-angle pyramid (n): ")
for i in range(int(n)+1):
print("*" * i)
*
**
***
****
*****
Enter the height of the pyramid (h): 5
*
***
*****
*******
*********
n = int(input("Enter the height of the pyramid (h): "))
for i in range(n):
for j in range(n-i):
print(" ", end="")
for k in range(i*2+1):
print("*", end="")
print()
*
***
*****
*******
*********
***********
*************
***************
Enter the height of club (h): 5
*
***
*****
*******
*********
*******
*****
***
*
n = 5
for i in range(n):
# space
for j in range(n-i):
print(" ", end="")
# star
for j in range(i*2+1):
print("*", end="")
print()
for i in range(n, -1, -1):
# space
for j in range(n-i):
print(" ", end="")
# star
for j in range(i*2+1):
print("*", end="")
print()
*
***
*****
*******
*********
***********
*********
*******
*****
***
*
Enter the height of hollow club (h): 5
*
* *
* *
* *
* *
* *
* *
* *
*
n = int(input("Enter the height of hollow club (h): "))
fp = lambda n, i: print(f"{' '*(n-i+1)}*{' '*(i*2-1)}{'*' if i != 0 else ''}")
for i in range(n):
fp(n,i)
for i in range(n, -1, -1):
fp(n,i)
*
* *
* *
* *
* *
* *
* *
* *
* *
* *
*