Python with BirdsCoding freedom

คำสั่งเงื่อนไขในภาษาไทธอน (Conditions in Python)#

20 minutes

วัตถุประสงค์

หลังจากทำทำแล็บ นศ.จะสามารถ

*   เขียนคำสั่งเงื่อนไขเพื่อตัดสินใจเลือกทำ (Decision Making) ในภาษา Python (ใช้ตัวดำเนินการเปรียบเทียบ (Comparison Operators), ตัวดำเนินการทางตรรกะ (Logical Operators) และเขียนโค้ดที่มีทางเลือกหลายทาง (if-elif-else)) ได้

[Ref:]


คำสั่งเงื่อนไข (Condition Statements)#

ตัวดำเนินการเปรียบเทียบ (Comparison/Relational Operators)#

ตัวดำเนินการเปรียบเทียบจะเปรียบเทียบค่าตามเงื่อนไขโดยให้ผลลัพธ์เป็นบูลีน (Boolean) ตัวดำเนินการเปรียบที่ใช้เปรียบเทียบค่าสองค่ามีดังนี้

ตัวดำเนินการด้านการเปรียบเทียบ (Comparison operators)

  • equal(Mathematics =) : ==
  • not equal(Mathematics ≠) : !=
  • greater than (Mathematics >) : >
  • less than (Mathematics <) : <
  • greater than or equal to (Mathematics ≥) : >=
  • less than or equal to (Mathematics ≤) : <=

ลองกำหนดค่าให้ a มีค่าเป็น 5 แล้วใช้ตัวดำเนินการเครื่องหมาย == (equal operator) เพื่อพิจารณาว่าค่าทั้งสอง (ซ้ายกับขวา) มีค่าเท่ากันหรือไม่ กรณีด้านล่างเป็นการเปรียบเทียบตัวแปร a กับ 6

# Condition Equal

a = 5
a == 6
False

ผลลัพธ์ที่ได้เป็น False เพราะ 5 ไม่เท่ากับ 6

คำสั่งต่อไปนี้เปรียบเทียบว่า i > 5 หรือไม่

ผลลัพธ์จะเป็น True ก็ต่อเมื่อซ้าย (กรณีคือตัวแปร i) มากกว่าขวา (กรณีคือ 5), แต่ถ้าไม่ใช่ ผลลัพธ์จะเป็น False

# Greater than Sign

i = 6
i > 5
True

ผลลัพธ์ข้างต้นจึงเป็น True เนื่องจากกรณีนี้ i มีค่าเท่ากับ 6 ซึ่งมากกว่า 5

ลองกำหนดใหม่ ให้ i มีค่าเท่ากับ 2

ผลลัพธ์ที่ได้เป็น False เนื่องจากกรณีนี้ i มีค่าเท่ากับ 2 ซึ่งน้อยกว่า 5

# Greater than Sign

i = 2
i > 5
False

ตัวเลขที่มีค่ามากกว่า 5 สีเขียว และที่เหลือสีแดง

ถ้า i มีค่าอยู่ในขอบเขตสีเขียวผลลัพธ์เป็น True แต่ถ้ามีค่าอยู่ในขอบเขตสีแดงผลลัพธ์เป็น False.

ตัวดำเนินการ != ( Not equal ) ใช้ตรวจสอบว่าตัวแปร 2 ตัวมีค่าไม่เท่ากันใช่หรือไม่

# Inequality Sign

i = 2
i != 6
True
# Inequality Sign

i = 6
i != 6
False

ตัวเลขที่มีค่าเท่ากับ 6 สีแดง (False) นอกเหนือจากนั้นสีเขียว (True)

ตัวดำเนินการ != ( Not equal ) ใช้กับสตริงได้

# Use Equality sign to compare the strings

"Rap Against Dictatorship" == "Michael Jackson"
False
# Use Inequality sign to compare the strings

"Rap Against Dictatorship" != "Michael Jackson"
True

แอสกี หรือ รหัสมาตรฐานของสหรัฐอเมริกา(ASCII: American Standard Code for Information Interchange)

เป็นรหัสอักขระที่ประกอบด้วยอักษรละติน เลขอารบิก เครื่องหมายวรรคตอน และสัญลักษณ์ต่างๆ โดยแต่ละรหัสจะแทนด้วยตัวอักขระหนึ่งตัว เช่น รหัส 65 (เลขฐานสิบ) หรือ 01000001 (เลขฐานสอง) ใช้แทนอักษรเอ (A) พิมพ์ใหญ่ เป็นต้น

(Source: วิกิพีเดีย https://th.wikipedia.org)

Char. ASCII Char. ASCII Char. ASCII Char. ASCII
A 65 N 78 a 97 n 110
B 66 O 79 b 98 o 111
C 67 P 80 c 99 p 112
D 68 Q 81 d 100 q 113
E 69 R 82 e 101 r 114
F 70 S 83 f 102 s 115
G 71 T 84 g 103 t 116
H 72 U 85 h 104 u 117
I 73 V 86 i 105 v 118
J 74 W 87 j 106 w 119
K 75 X 88 k 107 x 120
L 76 Y 89 l 108 y 121
M 77 Z 90 m 109 z 122

Extra: เราสามารถหารหัส ASCII ของอักขระใดๆ ได้#

ฟังก์ชัน ord( ) เป็นฟังก์ชัน (Built-in function) ที่เปลี่ยนตัวอักขระให้เป็นเลขจำนวนเต็ม โดยเลขจำนวนเต็มดังกล่าวเป็นค่า “Unicode” หรือ “ASCII” ของอักษรตัวนั้น (Unicode code; ASCII code เป็นซับเซ็ทของ Unicode code) (ord = ordinal of a one character)

และในทางกลับกัน ฟังก์ชัน chr( ) เป็นฟังก์ชัน (Built-in function) ที่เปลี่ยนเลขจำนวนเต็ม (ค่า “Unicode” หรือ “ASCII”) ให้เป็นตัวอักขระ

ตั้งแต่ Python 3.0 ไทธอนเก็บข้อมูลสตริงก์เป็นอักขระยูนิโคด (Unicode code)

คอมพิวเตอร์ที่รู้จักเพียง “1” กับ “0”

Note

มาตรฐาน ASCII: คอมพิวเตอร์ในยุคแรกๆ รองรับเพียงตัวอักษรภาษาอังกฤษเป็นหลัก จึงมีมาตรฐาน ASCII เพื่อ “แปลง” (convert) ระหว่างตัวอักขระต่างๆ ให้เป็นรหัสคอมพิวเตอร์ (เนื่องจากคอมฯ รู้จักเพียง “1” กับ “0”) ในยุคนั้น รหัส ASCII มีขนาดเพียง 7 bits ซึ่งรองรับอักขระได้ \(2^7 = 128\) อักขระ (ตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่และตัวพิมพ์เล็กรวม 52 ตัว, ตัวเลข 10 ตัว, สัญลักษณ์พิเศษและคำสั่งพิเศษอีกหลักสิบตัว)

แต่ในยุคปัจจุบัน การใช้งานคอมพิวเตอร์ขยายตัวเพิ่มมากขึ้นและมีการเชื่อมต่อผ่านอินเทอร์เน็ตจากผู้ใช้ทั่วโลก ส่งผลให้การเข้ารหัส ASCII ที่รองรับตัวอักขระได้เพียงหลักร้อยตัวไม่เพียงพอต่อการใช้งาน

มาตรฐาน Unicode: เป็นมาตรฐานสากลเพื่อการเข้ารหัส (encoding) จัดระเบียบ และแสดงผลตัวอักขระข้อความที่ใช้กันอย่างแพร่หลายมากที่สุดในปัจจุบัน รองรับภาษาทั่วโลกกว่า 154 ภาษา (รวมถึงภาษาไทย) และสามารถแสดงผลตัวอักขระแบบต่างๆ เช่น emojis ได้มากกว่า 143,000 ตัว List of Unicode characters

ดังนั้นรหัสภาษาไทยเอาไปเปิดเครื่องที่เป็นภาษาญี่ปุ่น ก็ยังคงแสดงเป็นภาษาไทยอยู่ ไม่ออกมาเป็นภาษาญี่ปุ่น (สมัยก่อน) เพราะว่ามี code ตายตัวอยู่ว่า code นี้จองไว้สำหรับภาษาไทย แล้ว code ตรงช่วงนั้นเป็นภาษาจีน ตรงโน่นเป็นภาษาญี่ปุ่น จะไม่ใช้ที่ซ้ำกัน เป็นต้น

# Program to find the ASCII value of the given character
ch_A = 'A'
ch_Bath = '฿'
print("The ASCII value of '" + ch_A + "' is", ord(ch_A))
print("The ASCII value of '" + ch_Bath + "' is", ord(ch_Bath))
The ASCII value of 'A' is 65
The ASCII value of '฿' is 3647

ยกตัวอย่าง

ASCII code ของ ! คือ 33, ASCII code ของ + คือ 43. ดังนั้น + มีค่ามากกว่า ! เพราะ 43 มีค่ามากกว่า 33.

'+' > '!'
True

และเช่นเดียวกัน B มีค่ามากกว่า A

# Compare characters

'B' > 'A'
True

กรณีที่มีหลายอักขระ จะเปรียบเทียบอักขระตัวแรกก่อน

# Compare characters

'BA' > 'AB'
True

Note: ตัวพิมพ์ใหญ่มีรหัส ASCII แตกต่างจากตัวพิมพ์เล็ก นั่นหมายความว่าการเปรียบเทียบระหว่างตัวอักษรใน Python จะคำนึงถึงตัวพิมพ์ใหญ่ตัวพิมพ์เล็กเสมอ

ตัวอย่างนิพจน์ทางตรรกศาสตร์ (Boolean Logical Expression) (เพิ่มเติม)#

เราสามารถเก็บผลลัพธ์ในรูปตัวแปรได้

x, y = 1, 6 # x, y = (1, 6)

p = x**5 < y
q = x**5 <= y**0.5
r = x**5 + 5*x == y
s = len('ไมเคิล แจ็คสัน') >= len('Michael Jackson')
t = len('ไมเคิล แจ็คสัน'*20) > 19*len('Paul')
u = (x**2 + 3*x + 2) != y

ลองเขียนโค้ดเช็คดูว่า ผลลัพท์ของตัวแปรแต่ละตัวมีค่าเหมือนที่คิดไว้หรือไม่ (ถ้าไม่เหมือนที่คิดไว้ ให้ไปทบทวนอีกรอบ)

p
True

เราสามารถตรวจสอบช่วงของค่าได้

ra = 0 < x < -5
rb = -10 < y <= 10
ra
False

สำหรับภาษาไทย

ord('ข')
3586

คำสั่งเลือกทำ (if Statement)#

คำสั่ง if (if statement) เป็นคำสั่งที่ใช้ควบคุมการทำงานของโปรแกรมที่เป็นพื้นฐานและง่ายที่สุด เราใช้คำสั่ง if เพื่อสร้างเงื่อนไขให้โปรแกรมทำงานตามที่เราต้องการ คำสั่ง if เปรียบเสมือนกับห้องที่ถูกล็อกไว้ ถ้าหากเงื่อนไขเป็น True เราจะเข้าห้องได้และโปรแกรมทำงานบางอย่างตามที่เราต้องการ แต่ถ้าเงื่อนไขเป็น False โปรแกรมจะข้ามการทำงานไป

if syntax:

if < expr > :
     < statement >
    
     < statement >
< following_statement >

รูปแบบของการเขียนจะประกอบไปด้วยคำสั่ง if ต่อด้วยเงื่อนไข < expr > ซึ่งเป็นนิพจน์ตรรกะ (Logical Expressions) และปิดท้ายด้วย : (colon) โค้ดบรรทัดใหม่ที่เยื้องเข้าไปหลัง colon ทุกคำสั่ง (กรณีที่มีหลายคำสั่ง เราจะเรียกเป็น Block (บล็อกของโค้ด-if)) จะถูกรันก็ต่อเมื่อเงื่อนไข < expr > เป็นจริง (True) เท่านั้น แตะถ้าเป็นเท็จ (False) ก็จะข้ามคำสั่งในบล็อกของโค้ด-if ไป แล้วรันคำสั่งในบันทัดถัดไป < following_statement > ดังแสดงในรูปต่อไปนี้

ตัวอย่าง หากกำหนดให้สี่เหลี่ยมสีฟ้าแทนกลุ่มแร็ป Rap Against Dictatorship* ถ้ามีอายุมากกว่า 18 ปี จะสามารถเข้าร่วมคอนเสิร์ตได้ (รันโค้ด print(“you can enter”)) แต่ถ้าหากอายุต่ำกว่า 18 ปี จะไม่สามารถเข้าร่วมได้ (ข้ามโค้ด print(“you can enter”))

การทำงานของโค้ด print(“move on”) จะถูกรันทุกกรณี ไม่เกี่ยวข้องกับเงื่อนไขของคำสั่ง if

* RAP AGAINST DICTATORSHIP - Prathet Ku Mee 🇹🇭 (My Country Has) - YouTube

ภาษาไทธอนใช้การเยื้องในการจัดกลุ่มบล๊อก (Block หรือบล็อกของโค้ด) สำหรับกลุ่มเดียวกัน ต้องเยื้อง (Indent) ให้เท่ากัน!
# If statement example

if True:
    print('Hello')
    print('Have a good day')
Hello
Have a good day
# If statement example

if False:
    print('Hello')
print('Have a good day')
Have a good day
# If statement example

age = 19
#age = 17

# expression that can be true or false
if age > 18:
    
    # within an indent, we have the expression that is run if the condition is true
    print("you can enter" )

# The statements after the if statement will run regardless if the condition is true or false 
print("move on")
you can enter
move on

ลองเปลี่ยนค่าตัวแปรเป็นอายุที่เข้าไปไม่ได้ดู ได้ผลลัพธ์เป็นไปตามรูปหรือไม่?

โค้ดข้างต้นเป็นการประเมินเงื่อนไข หากเงื่อนไขเป็นจริงก็ให้ทำการรันโค้ดในบล็อก ซึ่งเป็นการเลือกให้ทำเพียงเส้นทางเดียว แต่ถ้าเราต้องการระบุให้ทำอีกเส้นทางหากเงื่อนไขเป็นเท็จ ก็สามารถเขียนได้ด้วยคำสั่ง else

if-else syntax:

if < expr > :
     < statement(s) >
else:
     < statement(s) >
< following_statement >

คำสั่ง else จะประกอบไปด้วยคำสั่ง else และปิดท้ายด้วย : (colon) ทันที่ โค้ดบรรทัดใหม่ที่เยื้องเข้าไปหลัง colon (กรณีที่มีหลายคำสั่ง เราจะเรียกเป็น Block (บล็อกของโค้ด-else)) จะถูกรันก็ต่อเมื่อเงื่อนไขของ if เป็นเท็จ (False) เท่านั้น

คำสั่ง if-else เป็นคำสั่งเลือกทำสองทาง กล่าวคือ หากเงื่อนไขของ if เป็นจริง (True) จะรันบล็อกของโค้ด-if แตถ้าเงื่อนไขของ if เป็นเท็จ (False) จะรันบล็อกของโค้ด-else แทน

เรากลับไปที่ตัวอย่างคอนเสิร์ต Rap Against Dictatorship อีกครั้ง หากมีอายุ 17 ปี (อายุต่ำกว่า 18 ปี) จะไม่สามารถไปเข้าร่วมคอนเสิร์ตได้ แต่สามารถดูคอนเสิร์ต BNK48 ได้

# Else statement example

age = 17
# age = 19

if age > 18:
    print("you can enter" )
else:
    print("go see BNK48" )
    
print("move on")
go see BNK48
move on

ลองเปลี่ยนค่าตัวแปรเป็นอายุ 19 ปี ได้ผลลัพธ์เป็นไปตามรูปหรือไม่?

หากเราต้องการทางเลือกมากกว่าสอง ก็สามารถเขียนได้โดยใช้คำสั่ง elif จะใช้ครั้งเดียวหรือมากกว่าหนึ่งครั้งก็ได้ (elif มาจาก else if)


if-elif-else syntax:

if < expr > :
     < statement(s) >
elif < expr > :
     < statement(s) >
    
elif < expr > :
     < statement(s) >
else:
     < statement(s) >
< following_statement >

Python จะประเมินเงื่อนไข < expr > ในแต่ละเงื่อนไข (จากบนลงล่าง) และทำการรันชุดคำสั่ง (บล็อกของโค้ด) ที่สอดคล้องกับเงื่อนไขหากเงื่อนไขนั้นเป็นจริง แต่ถ้าหากไม่มีเงื่อนไขใดเป็นจริง ก็จะรันบล็อกของโค้ด-else แทน

(จะมี elif กี่ตัวก็ได้ และมี else หรือไม่มีก็ได้)

(ภาษาอื่นอาจมี switch และ case แต่ไทธอนใช้ if อย่างเดียว)

เรากลับไปที่ตัวอย่างคอนเสิร์ตอีกครั้ง หากบุคคลนั้นมีอายุ 18 ปีพอดี พวกเขาจะไปดูคอนเสิร์ต SPRITE x GUYGEEGEE แทนการเข้าร่วมคอนเสิร์ตกลุ่มแร็ป Rap Against Dictatorship หรือ BNK48

# Elif statment example

age = 17

if age > 18:
    print("you can enter" )
elif age == 18:
    print("go see SPRITE x GUYGEEGEE")
else:
    print("go see BNK48" )
    
print("move on")
go see BNK48
move on

ตัวอย่างข้างต้นมีทางเลือก 3 ทาง

ทางเลือกขวาสุดสำหรับคนที่อายุน้อยกว่า 18 ปี ทางเลือกซ้าบสุดสำหรับคนที่อายุมากกว่า 18 ปี ทางเลือกตรงกลางสำหรับคนที่มีอายุพอดี 18 ปี

ลองดูโค้ดต่อไปนี้

# Condition statement example

album_year = 1983

if album_year > 1980:
    print("Album year is greater than 1980")
    
print('do something..')
Album year is greater than 1980
do something..

ลองเปลี่ยนตัวแปร album_year เป็นค่าอื่นๆ ดู

# Condition statement example

album_year = int(input('Enter year: '))
if album_year > 1980:
    print("Album year is greater than 1980")
    
print('do something..')
---------------------------------------------------------------------------
StdinNotImplementedError                  Traceback (most recent call last)
Cell In [23], line 3
      1 # Condition statement example
----> 3 album_year = int(input('Enter year: '))
      4 if album_year > 1980:
      5     print("Album year is greater than 1980")

File ~/.pyenv/versions/3.8.13/lib/python3.8/site-packages/ipykernel/kernelbase.py:1174, in Kernel.raw_input(self, prompt)
   1167 """Forward raw_input to frontends
   1168 
   1169 Raises
   1170 ------
   1171 StdinNotImplementedError if active frontend doesn't support stdin.
   1172 """
   1173 if not self._allow_stdin:
-> 1174     raise StdinNotImplementedError(
   1175         "raw_input was called, but this frontend does not support input requests."
   1176     )
   1177 return self._input_request(
   1178     str(prompt),
   1179     self._parent_ident["shell"],
   1180     self.get_parent("shell"),
   1181     password=False,
   1182 )

StdinNotImplementedError: raw_input was called, but this frontend does not support input requests.

คำสั่งที่เยื้องเข้าไป print(“Album year is greater than 1980”) จะถูกรันก็ต่อเมื่อเงื่อนไขเป็นจริง True เท่านั้น

ลองเขียนโค้ดใหม่ ให้เป็นตาม Flowchart ต่อไปนี้

ลองเขียนดู!

# Write your code below and press Shift+Enter to execute

album_year = 1983
album_year = 1970

if album_year > 1980:
    print("Album year is greater than 1980")
    
print('do something..')
do something..
Click here for the solution
# Condition statement example

album_year = 1983
#album_year = 1970

if album_year > 1980:
    print("Album year is greater than 1980")
else:
    print("less than 1980")

print('do something..')

ตัวดำเนินการทางตรรกะ (Logical operators): not, and, or#

ในบางครั้งเราต้องการตรวจสอบมากกว่าหนึ่งเงื่อนไขพร้อมๆ กัน ยกตัวอย่างเช่น ต้องการตรวจสอบว่าเงื่อนไข-1 และเงื่อนไข-2 เป็น True ทั้งคู่หรือไม่ ในกรณีนี้ ตัวดำเนินการทางตรรกะ (Logical operators) สามารถช่วยปรับแก้เงื่อนไขได้

ตัวดำเนินการตรรกศาสตร์ในภาษา Python

(ลำดับความสำคัญ not -> and -> or)
OperatorExampleResult
ora or bTrue if a or b are true, else False
anda and bTrue if a and b are true, else False
notnot aTrue if a is False, else True

ตัวดำเนินการข้างต้นสำหรับสองตัวแปรสรุปเป็นตารางความจริง ได้ดังนี้

คำสั่ง and เป็นจริง (True) เมื่อเงื่อนไขทั้งสองเป็นจริง คำสั่ง or จะเป็นเป็นจริง (True) ถ้าเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง ส่วนคำสั่ง not จะแสดงผลค่าความจริงที่ตรงกันข้าม

เรามาดูวิธีการตรวจสอบว่าอัลบั้มออกหลังปี 1979 (ไม่รวมปี 1979) และก่อนปี 1990 (ไม่รวมปี 1990) หรือไม่

จากรูปด้านล่าง Timeline 2 เส้น a และ b แทนข้อความข้างต้น สีเขียวแสดงเงื่อนไขเป็น True และสีแดงแสดงเงื่อนไขเป็น False เส้น c แสดงเงื่อนไขทั้งสองเป็น True

เขียนโค้ดได้เป็น

# Condition statement example

album_year = 1980

if(album_year > 1979) and (album_year < 1990):
    print ("Album year was in between 1980 and 1989")
    
print("")
print("Do Stuff..")
Album year was in between 1980 and 1989

Do Stuff..

ในภาษาไทธอนเขียนเป็นแบบนี้ก็ได้!!

album_year = 1980

if 1990 > album_year > 1979 :
    print ("Album year was in between 1980 and 1989")
    
print("")
print("Do Stuff..")
Album year was in between 1980 and 1989

Do Stuff..

ถ้าเราต้องตรวจสอบว่าอัลบั้มออกก่อนปี 1980 (1979 และก่อนหน้านั้น) หรือหลังปี 1989 (1990 และหลังจากนั้น) หรือไม่ ก็ก็ใช้คำสั่ง or

จากรูปด้านล่าง Timeline 2 เส้น a และ b แทนข้อความข้างต้น สีเขียวแสดงเงื่อนไขเป็น True และสีแดงแสดงเงื่อนไขเป็น False เส้น c แสดงเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง (True)

เขียนโค้ดได้เป็น

# Condition statement example

album_year = 1990

if(album_year < 1980) or (album_year > 1989):
    print ("Album was not made in the 1980's")
else:
    print("The Album was made in the 1980's ")
Album was not made in the 1980's

คำสั่ง not ตรวจสอบว่าเงื่อนไขนั้นเป็นเท็จหรือไม่:

# Condition statement example

album_year = 1983

if not (album_year == 1984):
    print ("Album year is not 1984")
Album year is not 1984

การเขียนคำสั่ง if หนึ่งบรรทัด (One-Line if Statements)#

จาก if syntax ข้างต้น

if <expr>:
    <statement>

เราสามารถเขียนคำสั่ง if ให้อยู่ในบรรทัดเดียวได้ ดังนี้

if <expr>: <statement>

กรณีที่มีหลายคำสั่ง ก็สามารถใช้ ** ; ** (semicolon) คั่นระหว่างคำสั่งได้

if <expr>: <statement_1>; <statement_2>; <statement_3>

album_year = 1983

if not (album_year == 1984): print ("Album year is not 1984"); print ("It is ", album_year)
Album year is not 1984
It is  1983

if-else, if-elif-else ก็สามารถเขียนให้เป็นบรรทัดเดียวได้เช่นกัน

คำสั่ง if-else ให้อยู่ในบรรทัดเดียวได้ ดังนี้

<value_on_true> if <expr> else <value_on_false>

Syntax ต่างกับ if บรรทัดเดียว (ระวังตำแหน่ง, <value_on_true> และ <value_on_false> มีได้คำสั่งเดียว)

album_year = 19843

print ("Album year is 1984") if (album_year == 1984) else print ("Album year is not 1984")
Album year is not 1984

[Exercise]#

  1. จงเขียนคำสั่ง if เพื่อตรวสอบว่าอัลบั้มมีเรตติ้งมากกว่า 8 หรือไม่ ทำการทดสอบโดยใช้การจัดเรตติ้งของอัลบั้ม “Back in Black” ที่มีค่าเรตติ้ง 8.5 หากเงื่อนไขดังกล่าวเป็นจริง ให้พิมพ์ “This album is Amazing!” ออกหน้าจอ

# Write your code below and press Shift+Enter to execute
  1. จงเขียนคำสั่ง if-else โดยมีเงื่อนไขดังนี้

ถ้าเรตติ้งสูงกว่า 8 พิมพ์ “this album is amazing” แต่ถ้าเรตติ้งน้อยกว่าหรือเท่ากับ 8 พิมพ์ว่า “this album is ok” ออกหน้าจอ

# Write your code below and press Shift+Enter to execute
  1. จงเขียนสำสั่ง if เพื่อเช็กดูว่าอัลบั้มออกก่อนปี 1980 หรือออกในปี 1991 หรือออกในปี 1993 หรือไม่ ถ้าเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง ให้พิมพ์ “This album came out in year xxxx” xxx ปีที่ออกจำหน่าย

# Write your code below and press Shift+Enter to execute
  1. เมื่อทำการรันโค้ตต่อไปนี้ บรรทัดแต่ละบรรทัดจะถูกรันหรือไม่ (Y/N)?

# Does line execute?                        Y/N?
#                                           ---
if 'foo' in ['foo', 'bar', 'baz']:        #  ?
    print('Outer condition is true')      #  ?

    if 10 > 20:                           #  ?
        print('Inner condition 1')        #  ?

    print('Between inner conditions')     #  ?

    if 10 < 20:                           #  ?
        print('Inner condition 2')        #  ?

    print('End of outer condition')       #  ?
print('After outer condition')            #  ?

ลองตอบโดยไม่ต้องเขียนโค้ด! (สามารถลองรันได้โดยการคัดลอกโค้ดข้างต้นแล้ววางลงในเซลล็ด้านล่าง…)

# Write your code below and press Shift+Enter to execute
# Does line execute?                        Y/N?
#                                           ---
if 'foo' in ['foo', 'bar', 'baz']:        #  Y
    print('Outer condition is true')      #  Y

    if 10 > 20:                           #  Y
        print('Inner condition 1')        #  N

    print('Between inner conditions')     #  Y

    if 10 < 20:                           #  Y
        print('Inner condition 2')        #  Y

    print('End of outer condition')       #  Y
print('After outer condition')            #  Y
Outer condition is true
Between inner conditions
Inner condition 2
End of outer condition
After outer condition

Magic Freebies: โค้ดเช็คราคาบิทคอยน์ ณ ปัจจุบัน#

# Beautiful Soup is a Python library for pulling data out of HTML and XML files.
from bs4 import BeautifulSoup as soup
import requests
  
url = "https://www.google.com/search?q=bitcoin+price"
data = requests.get(url)
data_html = data.text
data_soup = soup(data_html, 'html.parser')
c_price = data_soup.find("div", class_ ="BNeawe iBp4i AP7Wnd").text

print(c_price)
781,010.82 บาท

ลองเปลี่ยนโค้ดข้างต้นให้ค้นหาราคาดอลลาร์สหรัฐ?


“Everybody should learn to program a computer, because it teaches you how to think”” - Steve Jobs 1995


Author#

S.C.

Change Log#

Date

Version

Change Description

08-08-2021

0.1

First edition