การรับค่าและการแสดงผล

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับการรับค่าและการแสดงผลพื้นฐานในภาษา Python ซึ่งเป็นสิ่งสำคัญที่โปรแกรมต้องมีสำหรับการติดต่อกับผู้ใช้ การรับค่าคือการรับข้อมูลจากภายนอกโดยทั่วไปแล้วมักจะเป็นการรับค่าทางคีย์บอร์ด ส่วนการแสดงผลนั้นจะเป็นบน Console ถ้าหากคุณรัน Python บนเว็บเซิฟเวอร์ การแสดงผลจะเป็นทางเว็บบราวน์เซอร์แทน และการรับค่าจะเป็นทาง URI หรือเว็บฟอร์ม

การแสดงผลด้วยฟังก์ชัน print()

ในการแสดงผลในภาษา Python นั้นจะใช้ฟังก์ชัน print() เพื่อแสดงผลข้อความ ตัวเลข หรือข้อมูลประเภทอื่นๆ ออกทางหน้าจอหรือสร้าง Http response นี่เป็นรูปแบบของการใช้งานฟังก์ชัน print() ในภาษา Python

print(value, ..., sep = ' ', end = '\n');

ในรูปแบบการใช้งาน ฟังก์ชัน print() เราสามารถส่งอาร์กิวเมนต์ได้ตั้งแต่หนึ่งถึงหลายตัวเข้าไปในฟังก์ชัน นอกจากนี้ฟังก์ชันยังมี keyword อาร์กิวเมนต์ sep ซึ่งเป็นตัวแบ่งหากอาร์กิวเมนต์ที่ส่งเข้าไปนั้นมากกว่า 1 ตัว ซึ่งมีค่า default เป็น whitespace และ keyword อาร์กิวเมนต์ end เป็นการแสดงผลในตอนท้ายของฟังก์ชัน ซึ่งมีค่า default เป็น \n หมายถึงการขึ้นบรรทัดใหม่ มาดูตัวอย่างการใช้งานฟังก์ชัน

print("Hello Python")
print("My name is Mateo")
print("Mercury", "Venus", "Earth")
name = "marcuscode.com"
year = 2017
print(name)
print(year)

ในตัวอย่าง เป็นการแสดงผลในภาษา Python โดยในคำสั่งแรกและคำสั่งที่สองนั้นเป็นการแสดงข้อความ และในคำสั่งที่สามเป็นการส่งค่าแบบหลายอาร์กิวเมนต์ และในสองคำสั่งสุดท้ายเป็นการแสดงผลข้อมูลจากตัวแปร name และตัวแปร year

Hello Python
My name is Mateo
Mercury Venus Earth
marcuscode.com
2017

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

นอกจากนี้ เรายังสามารถใช้ keyword อาร์กิวเมนต์สำหรับกำหนดการแสดงผลเพื่อแบ่งแต่ละอาร์กิวเมนต์ และการแสดงผลในตอนท้ายของฟังก์ชัน นี่เป็นตัวอย่างการใช้งาน

print("Mercury", "Venus", "Earth", sep=', ')
print("One", end=' ')
print("Two", end=' ')
print("Three", end=' ')

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

Mercury, Venus, Earth
One Two Three 

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

นอกจากนี้ฟังก์ชัน print() นั้นยังสามารถส่งพารามิเตอร์ในรูปแบบของ String Formatting ได้โดยการใช้รูปแบบการแปลงข้อมูล ที่คล้ายกับการจัดรูปแบบการแสดงผลในภาษา C นี่เป็นตัวอย่างการใช้งาน

lang = "Python"
version = 3.6
print("%s language" % lang)
print("Version %f" % version)
print("%d" % 123)
print("%s %f %d" % (lang, version, 123))

ในตัวอย่าง เป็นการจัดรูปแบบการแสดงผลของ String โดยการแทรกรูปแบบของการแสดงผลใน String literal ได้ เช่น %s สำหรับการแสดงผล String %f สำหรับการแสดงผล Float และ %d สำหรับการแสดงผล Integer

Python language
Version 3.600000
123
Python 3.600000 123

นี่เป็นผลลัพธ์การทำงานของโปรแกรม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับประเภทของการจัดรูปแบบ String คุณสามารถเรียนรู้เพิ่มเติมได้ที่เว็บไซต์ของ Python

เพราะว่าภาษา Python นั้นสามารถใช้กับการพัฒนาเว็บโดยสร้าง response ในรูปแบบ HTML หรือกำหนด Content type ประเภทต่างๆ ได้ ดังนั้นเราจึงสามารถใช้ฟังก์ชันนี้สำหรับการแสดงผลได้ อย่างไรก็ตามคุณต้องรันโค้ดนี้บนเว็บบราวน์เซอร์เพื่อดูผลลัพธ์ ไม่เช่นนั้นคำสั่งจะแสดงผลโค้ดของ HTML เหมือนที่เราเขียนลงในฟังก์ชันหากใช้แสดงบน Console นี่เป็นตัวอย่างการสร้างหน้าเว็บอย่างง่ายด้วยภาษา Python

print('<!DOCTYPE html>');
print('<html>');
print('<body>');
print('<h1>Welcome to Python tutorial on marcuscode.com</h1>');
print('</body>');
print('</html>');

การรับค่าจาก Keyboard ด้วยฟังก์ชัน input()

นอกจากการแสดงผลแล้วนั้น การติดต่อกับผู้ใช้ในอีกรูปแบบหนึ่งคือการรับค่า โดยทั่วไปแล้วมักจะเป็นการรับค่าทางคีย์บอร์ด ในภาษา Python เราใช้ฟังก์ชัน input() สำหรับการรับค่า String จากทางคีย์บอร์ด มาดูตัวอย่างการรับค่าจากผู้ใช้ในภาษา Python

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

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

Enter your name: Mateo
Hello Mateo

นี่เป็นผลลัพธ์การทำงานของโปรแกรม โดยเราได้กรอกชื่อ "Mateo" และโปรแกรมแสดงข้อความทักทายทางหน้าจอ

อย่างไรก็ตาม ในการรับค่าด้วยฟังก์ชัน input() นั้นจะใช้กับการรับค่าที่เป็น String เท่านั้น และในการที่จะรับข้อมูลประเภทอื่นๆ เช่น ตัวเลข เราสามารถใช้ฟังก์ชันที่มากับภาษา Python ในการแปลงข้อมูลจาก String ไปเป็นข้อมูลประเภทอื่นได้ ต่อไปมาดูตัวอย่างการรับค่าตัวเลขในภาษา Python

a = int(input("Enter first number: "))
b = int(input("Enter second number: "))
print("a + b = %d" % (a + b))

ในตัวอย่าง เป็นโปรแกรมในการรับค่าตัวเลขสองตัวจากคีย์บอร์ด เราใช้ฟังก์ชัน int() เพื่อแปลงข้อมูลแบบ String ให้เป็น Integer และนำมาใส่ในตัวแปร a และ b ตามลำดับ หลังจากนั้นเราแสดงผลบวกของตัวเลขทั้งสอง

Enter first number: 5
Enter second number: 3
a + b = 8

นี่เป็นผลลัพธ์การทำงานของโปรแกรม เราได้กรอกตัวเลขสองตัวและโปรแกรมแสดงผลรวมออกมา ในตัวอย่างคุณเห็นว่าเราสามารถใช้ฟังก์ชัน input() ในการรับค่าตัวเลขโดยการใช้ฟังก์ชัน int() ในการแปลง คุณสามารถรับค่าตัวเลขแบบอื่นได้เช่นกัน เช่น การใช้ฟังก์ชัน float() สำหรับแปลงข้อมูลแบบทศนิยม

Note: ถ้าคุณเคยเขียนภาษา Python ในเวอร์ชัน 2 มาก่อนคุณจะคุ้นเคยกับการรับค่าด้วยฟังก์ชัน raw_input() แทน ซึ่งถูกแทนที่ด้วยฟังก์ชัน input() ในเวอร์ชัน 3

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