Skip to main content

การรับ input / function

การรับ input

การรับ input ใน Python คือกระบวนการที่โปรแกรมขอข้อมูลจากผู้ใช้ในระหว่างการทำงาน โดยข้อมูลที่รับจากผู้ใช้จะถูกนำไปใช้ในโปรแกรมต่อไป

  • มันจะเหมือนกับเวลาเราใส่ input ผ่านเว็บไซต์หรือ application
  • การใส่ข้อมูลผ่านเว็บไซต์ หรือ application = การ input ของ user เข้ามาสู่ software (application)

จริงๆ python ก็สามารถทำแบบนั้นได้เช่นกัน แต่เพื่อเป็นการปูพื้นฐาน เราจะลองการรับ input ผ่าน command line หรือ terminal กันก่อน (เป็นวิธีการใส่ input อย่างง่ายเข้าสู่ software)
การรับค่า input ใน Python สามารถทำได้ด้วย function input() ซึ่งจะรับข้อมูลในรูปแบบของข้อความ (string) เสมอ
ตัวอย่าง

name = input("Enter your name: ")
print("Hello, " + name + "!")

ในตัวอย่างนี้ โปรแกรมจะพิมพ์ข้อความ "Enter your name: " บนหน้าจอและรอให้ผู้ใช้ป้อนชื่อ หลังจากที่ผู้ใช้กด Enter ข้อความที่ผู้ใช้ป้อนจะถูกเก็บไว้ในตัวแปร name และโปรแกรมจะแสดงผลการทักทายด้วยชื่อที่ผู้ใช้ป้อนเข้ามา
python-07.webp

การรับค่าเป็นชนิดข้อมูลอื่น ๆ

เนื่องจาก input() คืนค่ากลับมาเป็น string หากต้องการรับค่าเป็นชนิดข้อมูลอื่น เช่น จำนวนเต็ม (integer) หรือ จำนวนทศนิยม (float) จำเป็นต้องแปลงชนิดข้อมูลที่ได้รับมาจาก input() ด้วย function แปลงข้อมูล เช่น int() หรือ float()
ตัวอย่าง

age = int(input("Enter your age: "))
print("Your age is:", age)

price = float(input("Enter the price: "))
print("The price is:", price)

ผลลัพธ์
python-08.webp

การรับค่า input หลายค่าในครั้งเดียว

หากต้องการรับค่าหลาย ๆ ค่าในครั้งเดียว สามารถใช้ function split() ร่วมกับ input() เพื่อแยกค่าที่ป้อน input เข้ามาตามเครื่องหมายเว้นวรรคหรือเครื่องหมายที่กำหนด
ตัวอย่าง

x, y = input("Enter two numbers separated by a space: ").split()
print("First number:", x)
print("Second number:", y)

ในตัวอย่างนี้ ผู้ใช้จะต้องป้อนตัวเลขสองตัวที่คั่นด้วยเว้นวรรค เช่น 10 20 และโปรแกรมจะแยกตัวเลขทั้งสองไปเก็บในตัวแปร x และ y ตามลำดับ
python-09.webp
หรือหากต้องการแปลงชนิดข้อมูล:

x, y = map(int, input("Enter two integers separated by a space: ").split())
print("Sum of the numbers:", x + y)

ในตัวอย่างนี้ โปรแกรมจะรับตัวเลขสองตัวและแปลงเป็นจำนวนเต็ม จากนั้นนำมาบวกกันและแสดงผลรวมออกมาได้
สรุป
การรับ input ใน Python ทำได้ง่าย ๆ ด้วย function input() ซึ่งสามารถใช้รับข้อความจากผู้ใช้ และหากต้องการรับค่าที่เป็นตัวเลขหรือชนิดข้อมูลอื่น ๆ สามารถใช้การแปลงชนิดข้อมูลร่วมด้วยเพื่อให้ได้ค่าที่ต้องการ

ตัวอย่างที่ 1 โปรแกรมตัดเกรด

โปรแกรมนี้เป็นโปรแกรมตัดเกรดอย่างง่ายที่รับคะแนนของนักเรียนจากผู้ใช้ในรูปแบบของจำนวนเต็ม จากนั้นโปรแกรมจะใช้โครงสร้างควบคุมแบบเงื่อนไข ( if, elif, else) เพื่อตรวจสอบช่วงคะแนนและกำหนดเกรดตามเกณฑ์ที่กำหนดไว้ ได้แก่

  • เกรด A สำหรับคะแนน 80 ขึ้นไป
  • เกรด B สำหรับคะแนน 70-79
  • เกรด C สำหรับคะแนน 60-69
  • เกรด D สำหรับคะแนน 50-59
  • และเกรด F สำหรับคะแนนที่น้อยกว่า 50 สุดท้ายโปรแกรมจะแสดงผลลัพธ์เป็นเกรดที่สอดคล้องกับคะแนนที่ผู้ใช้ป้อนเข้ามา
# รับคะแนนจากผู้ใช้
score = int(input("Enter the student's score: "))

# ตรวจสอบคะแนนและตัดเกรด
if score >= 80:
grade = 'A'
elif score >= 70:
grade = 'B'
elif score >= 60:
grade = 'C'
elif score >= 50:
grade = 'D'
else:
grade = 'F'

# แสดงผลลัพธ์
print(f"The grade for the score {score} is: {grade}")

ตัวอย่างที่ 2 โปรแกรมตัดเกรดหลายคน

โปรแกรมนี้เป็นโปรแกรมตัดเกรดสำหรับนักเรียน "หลายคน" โดย

  • ผู้ใช้จะกำหนดจำนวนของนักเรียนที่ต้องการตัดเกรด
  • จากนั้นโปรแกรมจะวนลูป ( for loop) เพื่อรับคะแนนของนักเรียนแต่ละคน
  • โปรแกรมจะใช้โครงสร้างควบคุมแบบเงื่อนไข ( if, elif, else) เพื่อตรวจสอบคะแนนและกำหนดเกรดตามเกณฑ์ที่กำหนดไว้ (เหมือนกับตัวอย่างที่แล้ว)

ตัวอย่าง code

# กำหนดจำนวนของนักเรียน
num_students = int(input("Enter the number of students: "))

# วนลูปรับคะแนนและตัดเกรดสำหรับนักเรียนแต่ละคน
for i in range(num_students):
score = int(input(f"Enter the score for student {i + 1}: "))

# ตรวจสอบคะแนนและตัดเกรด
if score >= 80:
grade = 'A'
elif score >= 70:
grade = 'B'
elif score >= 60:
grade = 'C'
elif score >= 50:
grade = 'D'
else:
grade = 'F'

# แสดงผลลัพธ์
print(f"Student {i + 1}: Score = {score}, Grade = {grade}")

Function

Function คือกลุ่มของคำสั่งที่ถูกจัดเก็บไว้ด้วยกันภายใต้ชื่อหนึ่งชื่อ เพื่อให้สามารถเรียกใช้งานได้หลายครั้งโดยไม่ต้องเขียนคำสั่งซ้ำไปซ้ำมา function ช่วยทำให้โปรแกรมเป็นระเบียบและอ่านเข้าใจได้ง่ายขึ้น อีกทั้งยังช่วยลดความซ้ำซ้อนของ code อีกด้วย
การสร้างfunction ใน Python ใช้คำสำคัญ (keyword) def ตามด้วยชื่อของfunction และวงเล็บ (). ข้างในวงเล็บสามารถใส่พารามิเตอร์ (parameter) ซึ่งเป็นตัวแปรที่ส่งค่าไปยังfunction เมื่อfunction ถูกเรียกใช้งาน คำสั่งที่อยู่ในfunction จะถูกดำเนินการ
ตัวอย่างโครงสร้าง

def function_name(parameters):
# คำสั่งที่ต้องการให้function ทำ
return value # ค่าที่function จะส่งคืน (ถ้ามี)
  • Parameter คือค่าหรือข้อมูลที่คุณสามารถส่งเข้าไปในfunction เมื่อคุณเรียกใช้งานfunction นั้น พารามิเตอร์จะถูกประกาศในวงเล็บ () หลังชื่อfunction เมื่อคุณกำหนดfunction พารามิเตอร์เหล่านี้เป็นตัวแปรที่function สามารถใช้เพื่อดำเนินการต่าง ๆ ได้
  • Return value (ค่าที่คืนกลับมา) คือค่าที่function ส่งกลับไปยังที่เรียกใช้function เมื่อfunction ทำงานเสร็จแล้ว การคืนค่าทำได้โดยใช้คำสั่ง return ภายในfunction function สามารถคืนค่ากลับมาได้เพียงค่าเดียว แต่ค่านั้นอาจเป็นโครงสร้างข้อมูลเช่น ลิสต์ (list), ทูเพิล (tuple), หรือดิกชันนารี (dictionary) ที่ประกอบด้วยหลายค่า

ตัวอย่างการใช้ function ใน Python

ตัวอย่างที่ 1: function ที่ไม่รับ parameter และไม่คืนค่า
function ที่ไม่รับ parameter และไม่คืนค่า คือfunction ที่ไม่ต้องการข้อมูลจากภายนอกเพื่อทำงาน และจะไม่มีการส่งค่ากลับไปหลังจากที่function ทำงานเสร็จ function ประเภทนี้มักใช้เพื่อดำเนินการเฉพาะบางอย่าง เช่น การแสดงข้อความบนหน้าจอ โดยไม่ต้องคำนวณหรือประมวลผลข้อมูลเพิ่มเติม

ตัวอย่าง code

def greet():
print("Hello, welcome to Python programming!")

# เรียกใช้function greet
greet()

ผลลัพธ์

Hello, welcome to Python programming!

คำอธิบาย:

  • function greet() ไม่มี parameter (ไม่มีข้อมูลที่ต้องส่งไปให้function ) และไม่คืนค่า (ไม่มี return statement)

  • เมื่อเรียกใช้ greet(), function จะพิมพ์ข้อความ "Hello, welcome to Python programming!" บนหน้าจอ

ตัวอย่างที่ 2: function ที่รับ parameter และคืนค่า
function ที่รับ parameter และคืนค่า คือ function ที่ต้องการข้อมูลจากภายนอกเพื่อใช้ในการประมวลผล และจะส่งค่ากลับไปเมื่อfunction ทำงานเสร็จ function ประเภทนี้มักใช้เมื่อคุณต้องการส่งข้อมูลเข้าสู่function เพื่อให้function ดำเนินการบางอย่างกับข้อมูลนั้น และผลลัพธ์จากการประมวลผลนั้นจะถูกส่งกลับออกมาเพื่อใช้งานต่อไป

ตัวอย่าง code

def add_numbers(a, b):
result = a + b
return result

# เรียกใช้function add_numbers พร้อมส่งค่าพารามิเตอร์
sum_result = add_numbers(5, 7)
print(f"The sum is: {sum_result}")

ผลลัพธ์

The sum is: 12

ในตัวอย่างนี้ function add\_numbers(a, b) รับพารามิเตอร์สองตัว ( a และ b) แล้วนำมาบวกกัน จากนั้นส่งผลลัพธ์กลับด้วย return. ผลลัพธ์จะถูกเก็บในตัวแปร sum\_result และพิมพ์ออกมา

ลองกับตัวอย่าง ตัดเกรด

ต่อไปนี้เป็นตัวอย่างการทำ code ตัดเกรด ให้เป็นfunction ใน Python

def calculate_grade(score):
# ตรวจสอบคะแนนและตัดเกรด
if score >= 80:
grade = 'A'
elif score >= 70:
grade = 'B'
elif score >= 60:
grade = 'C'
elif score >= 50:
grade = 'D'
else:
grade = 'F'

return grade

# function หลักเพื่อเรียกใช้และแสดงผล
def main():
# รับคะแนนจากผู้ใช้
score = int(input("Enter the student's score: "))

# เรียกใช้function calculate_grade() เพื่อคำนวณเกรด
grade = calculate_grade(score)

# แสดงผลลัพธ์
print(f"The grade for the score {score} is: {grade}")

# เรียกใช้function main() เพื่อเริ่มโปรแกรม
main()

คำอธิบาย:

  1. function calculate_grade(score):
    • function นี้รับพารามิเตอร์ score ซึ่งเป็นคะแนนของนักเรียนที่ต้องการตัดเกรด
    • ใช้โครงสร้างควบคุมแบบเงื่อนไข ( if, elif, else) เพื่อตรวจสอบค่าของ score และกำหนดเกรด ( grade) ตามเงื่อนไขที่กำหนดไว้
    • สุดท้ายfunction จะส่งค่าเกรด ( grade) กลับไปให้ที่เรียกใช้function ด้วยคำสั่ง return
  2. function main():
    • function นี้ทำหน้าที่เป็นfunction หลักในการรับข้อมูลจากผู้ใช้, เรียกใช้function calculate_grade() เพื่อคำนวณเกรด และแสดงผลลัพธ์
    • เริ่มด้วยการรับคะแนนจากผู้ใช้ด้วย input(), จากนั้นส่งคะแนนนั้นไปยังfunction calculate_grade() เพื่อคำนวณเกรด
    • เมื่อได้ค่าเกรดที่คืนกลับมาแล้ว จะแสดงผลลัพธ์เป็นข้อความที่บอกคะแนนและเกรด
  3. เรียกใช้ function main():
    • code ส่วนสุดท้ายเรียกใช้function main() เพื่อเริ่มการทำงานของโปรแกรมทั้งหมด