ชนิดข้อมูลสำหรับนักการตลาด: ตัวเลข สตริง และบูลีน

เผยแพร่แล้ว: 2017-08-10

หมายเหตุ: บล็อกโพสต์นี้เป็นชุดที่สามในซีรีส์ที่เขียนโดย Sr. Web Analyst, Adrian Palacios และออกแบบมาเพื่อให้ข้อมูลและคำแนะนำแก่นักการตลาดที่จำเป็นสำหรับการติดตั้งภาษาการเขียนโปรแกรม Python ในกรณีที่คุณพลาด โพสต์แรกของ Adrian จะอธิบายว่าเหตุใดนักการตลาดจึงควรพิจารณาทำสิ่งนี้ตั้งแต่แรก และโพสต์ที่สองของเขาจะอธิบายวิธีการติดตั้ง Python

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

ประเภทข้อมูลคืออะไร?

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

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

นี่เป็นเพียงประเภทข้อมูลทั่วไปสองสามประเภทใน Python:

ตัวเลข ซึ่งแบ่งเพิ่มเติมเป็นประเภทอื่นๆ เช่น:
จำนวนเต็ม: 0, 1, 2, 3
ลอยตัว: 0.0, 1.0, 2.5, 3.145
สตริง: 'คิดต่าง', 'Netflix และ Chill'
บูลีน: จริง เท็จ

มีประเภทข้อมูลอีกมากมายใน Python แต่สำหรับตอนนี้ เราจะเน้นที่ทั้งสามนี้

ในบทความนี้ คุณจะได้เรียนรู้บางสิ่งที่คุณสามารถทำได้ด้วยชนิดข้อมูลพื้นฐานใน Python และทำไมประเภทข้อมูลจึงมีความสำคัญ

จากประสบการณ์ของฉัน สิ่งนี้มักจะเป็นส่วนที่น่าเบื่อที่สุดในหนังสือ/วิดีโอ/หลักสูตร "เรียนรู้วิธีเขียนโปรแกรม" ใดๆ แต่เนื่องจากประเภทข้อมูลมีความสำคัญต่อการเขียนโปรแกรม ฉันขอแนะนำอย่างยิ่งว่าอย่าข้ามโพสต์นี้

ตัวเลข

ตัวเลขหลักสองประเภทใน Python คือจำนวนเต็ม (จำนวนเต็ม) และจำนวนทศนิยม ทศนิยมสามารถมองได้ว่าเป็นทศนิยม แต่มีข้อแตกต่างที่สำคัญบางประการ ซึ่งจะกล่าวถึงในภายหลัง

สิ่งที่ชัดเจนที่สุดที่เราสามารถทำได้กับตัวเลขคือ…คณิตศาสตร์! ต่อไปนี้เป็นอักขระพิเศษบางตัวที่ใช้ทำคณิตศาสตร์ใน Python:

ด้วยการดำเนินการพื้นฐานเหล่านี้ ตอนนี้เราสามารถทำงานในสถานการณ์ต่างๆ ได้

สถานการณ์ 1

ทีมเนื้อหาของคุณรายงานว่าบล็อกสร้างการดูหน้าเว็บ 80,000 ครั้งเมื่อสองสัปดาห์ก่อน และในสัปดาห์นี้มีการเปิดดูหน้าเว็บ 105,000 ครั้ง จำนวนการดูหน้าเว็บที่เพิ่มขึ้นรายสัปดาห์คือเท่าใด จำไว้ว่าการคำนวณเปอร์เซ็นต์การเปลี่ยนแปลงที่คุณสามารถทำได้ (หมายเลขใหม่ – หมายเลขเก่า) ÷ หมายเลขเก่า:

ดูเหมือนจะไม่ถูกต้องนัก ทำไมจะไม่ล่ะ? เช่นเดียวกับนักคณิตศาสตร์ที่ดี Python ปฏิบัติตามคำสั่งของการดำเนินการในคำสั่งที่เราพิมพ์ ที่นี่เราสามารถใช้วงเล็บเพื่อบอก Python ถึงลำดับที่เราต้องการ:

นั่นดีกว่า. จำไว้ว่าเรากำลังดูเปอร์เซ็นต์ ดังนั้นในกรณีนี้ การย้ายทศนิยมสองตำแหน่งไปทางขวาจะทำให้เราได้สิ่งที่ต้องการ ดูเหมือนว่าการเข้าชมบล็อกจะเพิ่มขึ้น 31.25% ต่อสัปดาห์

สถานการณ์ที่ 2

คุณกำลังทำงานร่วมกับผู้เผยแพร่ออนไลน์เพื่อเรียกใช้แคมเปญพิเศษที่มีแบนเนอร์ขนาดใหญ่และโฆษณาวิดีโอ ผู้เผยแพร่โฆษณาส่งข้อเสนอโดยระบุว่าแพ็กเกจดังกล่าวมีราคาคงที่ที่ 15,000 ดอลลาร์ และคาดว่าจะสร้างการแสดงผลได้ 550,000 ครั้ง คุณต้องการคำนวณ CPM เพื่อเปรียบเทียบข้อเสนอนี้กับตัวเลือกอื่นๆ ได้ดีขึ้น

ในการหา CPM เราใช้สูตร Cost of Campaign ÷ (Total Impressions ÷ 1000):

คราวนี้เราได้ลำดับการดำเนินการที่ถูกต้อง ดูเหมือนว่า CPM สำหรับแคมเปญจะอยู่ที่ประมาณ $27.27

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

Python เวอร์ชันเก่า (เวอร์ชัน 2.7 และต่ำกว่า) ให้คำตอบแปลก ๆ ในการหารจำนวนเต็มที่จะส่งผลให้เกิดการลอยตัว เช่น การหาร 1 ÷ 3 ในสองตัวอย่างนี้ เราได้ทำการหารจำนวนเต็มและลงท้ายด้วยทศนิยม โดยไม่มีปัญหาใดๆ ซึ่งเป็นส่วนหนึ่งของความมหัศจรรย์ของการใช้ Python เวอร์ชันใหม่กว่า มันทำให้เกิดคำถาม: ทำไมตัวเลขที่มีจุดทศนิยมเรียกว่าทศนิยมมากกว่าทศนิยม? Jackie Kazil และ Katharine Jarmul มีตัวอย่างที่ดีในหนังสือของพวกเขา Data Wrangling With Python : ในภาษาการเขียนโปรแกรมหลายภาษา 0.1 + 0.2 ไม่เท่ากับ 0.3 ลองใช้เอง: พิมพ์ 0.3 ลงในเทอร์มินัล แล้วตามด้วย 0.1 + 0.2

แปลกใช่มั้ย? Mark Lutz ลงลึกถึงความแปลกประหลาดนี้ในหนังสือของเขาที่ชื่อว่า Learning Python แต่เนื่องจากนักการตลาดโดยปกติไม่จำเป็นต้องคำนวณตัวเลขถึงระดับล้าน จึงไม่จำเป็นที่ต้องเข้าใจปัญหานี้อย่างถ่องแท้ และเพียงแค่รู้ว่ามีอยู่จริงก็ดีแล้ว แต่ถ้าคุณอยากรู้จริงๆ นี่คือบางโพสต์ที่อธิบายเพิ่มเติม:

  • จุดลอยตัวที่ลึกลับ ตอนที่ 1
  • จุดลอยตัวทำให้กระจ่าง ตอนที่ 2

เครื่องสาย

สตริงสามารถคิดได้ว่าเป็นอักขระที่อยู่ในเครื่องหมายคำพูด นี่เป็นคำจำกัดความที่เข้าใจง่ายเกินไป เพราะมันไม่สนใจความแตกต่างระหว่าง bytearrays, Unicode, ASCII ฯลฯ แต่ฉันคิดว่าการลงรายละเอียดแบบนั้นไม่จำเป็นในตอนนี้

หนึ่งจะป้อนอักขระที่อยู่ในเครื่องหมายคำพูดอย่างถูกต้องได้อย่างไร? ปรากฎว่ามีหลายวิธีที่แตกต่างกัน ตัวอย่างเช่น ส่วนใหญ่แล้วไม่ว่าคุณจะใช้เครื่องหมายคำพูดเดี่ยวหรือเครื่องหมายคำพูดคู่ ตราบใดที่คุณยังคงความสอดคล้อง:

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

สังเกตว่าสตริงแรกซึ่งอยู่ในเครื่องหมายคำพูดคู่ จัดการกับเครื่องหมายอะพอสทรอฟีได้ดี ในขณะที่สตริงที่สองไม่รองรับ ทำไม? เมื่อ Python พบ single-quote ที่สอง คาดว่าสตริงจะสิ้นสุด แต่ตัวอักษรก็ยังคงดำเนินต่อไป การตัดประโยคปิดเสียงข้อผิดพลาด:

แต่การมีประโยคเพียงบางส่วนไม่มีประโยชน์ หากคุณต้องการใช้อัญประกาศเดี่ยวจริงๆ ทางเลือกหนึ่งคือ “หลบหนี” อะพอสทรอฟี สามารถทำได้โดยใส่เครื่องหมายแบ็กสแลช (\) ก่อนเครื่องหมายอะพอสทรอฟีในประโยคของคุณ สิ่งนี้บอกให้ Python ปฏิบัติต่อตัวละครถัดไปในลักษณะพิเศษ:

การหลีกเลี่ยงเครื่องหมายอะพอสทรอฟีทำให้เราใช้เครื่องหมายอัญประกาศเดี่ยวและอะพอสทรอฟีในสตริงเดียวกันต่อไปได้

มีอีกวิธีหนึ่งที่คุณสามารถสร้างสตริงใน Python: เครื่องหมายคำพูดสามตัว สังเกตว่าเมื่อคุณพิมพ์สตริงแบบหลายบรรทัด คุณต้องกด Enter เพื่อเริ่มบรรทัดถัดไป สิ่งนี้จะเปลี่ยน Terminal ให้แสดง …: ทางด้านซ้ายของบรรทัดใหม่ของคุณ สิ่งนี้จะปรากฏขึ้นอีกครั้งเมื่อเราเริ่มพิมพ์โค้ดหลายบรรทัด

สุดท้าย คุณอาจสังเกตเห็นอักขระขี้ขลาดบางตัวในสตริง: \n สิ่งนี้จะบอกคอมพิวเตอร์ที่คุณป้อนบรรทัดใหม่ มีประโยชน์ถ้าคุณต้องการพิมพ์สตริงอีกครั้งและต้องการความแม่นยำเกี่ยวกับการจัดรูปแบบ

โอเค ตอนนี้เราได้ใช้เวลาทั้งหมดแล้วในการดูวิธีป้อนสตริงอย่างถูกต้อง (ฉันรู้ ใช่ไหม ทำงานหลายอย่างเพื่ออะไรง่ายๆ…) ได้เวลาไปยังส่วนที่สนุก: การจัดการสตริง

มีวิธีการอีกมากมายสำหรับสตริง นอกจากนี้ยังมีหัวข้ออื่นๆ ทั้งหมด เช่น การจับคู่รูปแบบและการแบ่งส่วนที่เราจะกล่าวถึงในภายหลัง ด้วยพื้นฐานที่ดี เรามาดูตัวอย่างที่เกิดขึ้นจริงกันดีกว่า

สถานการณ์ 1

สมมติว่าคุณมีสำเนาใหม่ที่ต้องอัปโหลดไปยัง AdWords แต่สำเนาทั้งหมดเป็นตัวพิมพ์เล็ก และคุณไม่แน่ใจว่าพาดหัวมีความยาวไม่เกิน 30 อักขระหรือไม่ ตรวจสอบความยาวและพิมพ์พาดหัวข่าวว่า “ตั๋วเครื่องบินไปปารีสที่ถูกที่สุด” เป็นกรณีหัวเรื่อง:

ตัวอย่างแรกคือฟังก์ชันทางเทคนิค ในขณะที่ตัวอย่างที่สองคือเมธอด สิ่งเดียวที่เราสนใจในตอนนี้คือการพิมพ์แต่ละรายการแตกต่างกัน: ด้วยฟังก์ชัน เราจะพิมพ์ “len(” ก่อน จากนั้นจึงพิมพ์สตริงเอง และสุดท้ายวงเล็บสุดท้าย “)” ข่าวดีก็คือพาดหัวมีความยาวไม่เกิน 30 อักขระที่ AdWords บังคับใช้

ขั้นต่อไป ด้วยวิธีดังกล่าว เราจะพิมพ์สตริงก่อน จากนั้นจึงเพิ่ม .title() หลังเครื่องหมายคำพูดปิด (โดยไม่มีช่องว่าง!)

สุดท้าย คุณอาจถามตัวเองว่า "ทำไมฉันถึงทำสิ่งนี้ใน Python ในเมื่อมีสูตรเดียวกันใน Excel" นั่นเป็นจุดที่ยุติธรรม

ในขณะที่พาดหัวข่าวเป็นตัวอย่างที่งี่เง่า ฉันหวังว่าประเด็นจะชัดเจน: มีตัวเลือกมากมายในการจัดการข้อความด้วย Python และคล้ายกับสถานการณ์ก่อนหน้าด้วยการคำนวณ CPM หรือเปอร์เซ็นต์การเปลี่ยนแปลง ความสามารถในการจัดการกับอักขระหลายพันตัวในโค้ดเพียงไม่กี่บรรทัดเป็นเครื่องมือที่ทรงพลังมาก

ตัวอย่างเช่น อาการปวดหัวที่ใหญ่ที่สุดที่ช่วยฉันได้คือการล้าง URL หลายล้านแถวจาก Google Analytics ประเด็นที่สองของแบบฝึกหัดนี้คือการชี้ให้เห็นบางสิ่งที่อาจช่วยรักษาความเจ็บปวดอื่นๆ ได้ในอนาคต ถ้าคุณรู้วิธีใช้สูตรใน Excel หรือ Google เอกสาร แสดงว่าคุณเข้าใจวิธีตั้งโปรแกรมล่วงหน้าไปหนึ่งก้าวแล้ว มีความคล้ายคลึงกันมากมายที่จะแปลจาก Excel เป็น Python

บูลีน

บูลีนหลักสองตัวใน Python คือ True และ False ความหมายของพวกเขาตรงไปตรงมามาก: จริงหมายถึงจริงและเท็จหมายถึงเท็จ

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

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

แล้วไง?

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

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

ในสถานการณ์ที่คุณฝึกคณิตศาสตร์ด้วยประเภทตัวเลข คุณสังเกตเห็นว่าไม่มีการใช้เครื่องหมายจุลภาคในการคำนวณเหล่านี้หรือไม่ คุณอาจเคยชินกับการพิมพ์ตัวเลขด้วยเครื่องหมายจุลภาค (หรือทศนิยมสำหรับเพื่อนชาวยุโรปของเรา!) แต่ถ้าคุณลองใน Python คุณจะพบกับพฤติกรรมแปลก ๆ บางอย่าง:

อืม; ไม่ใช่สิ่งที่คุณคาดหวัง โดยการวางเครื่องหมายจุลภาคในตัวเลขนี้ เราสร้าง "ทูเพิล" โดยไม่รู้ตัว ไม่จำเป็นต้องรู้ว่า tuple คืออะไรในขณะนี้ แต่สิ่งสำคัญคือต้องเห็นว่าเครื่องหมายจุลภาคแบ่งตัวเลขออกเป็น 500 และ 0 ซึ่งแตกต่างจากห้าแสนมาก

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

กฎข้อหนึ่งที่คุณอาจคาดหวังก็คือเมื่อพยายามเพิ่มจำนวนเต็มและสตริง คุณจะได้รับข้อผิดพลาด:

และคุณจะถูกต้อง ในโค้ดบรรทัดที่สอง เราพยายามเพิ่มจำนวนเต็ม 1 ลงในสตริง '1' ซึ่งทำให้เกิดข้อผิดพลาด คุณอาจจะคิดกับตัวเองว่า “นั่นเป็นตัวอย่างง่อย; เมื่อใดจะมีคนพยายามเพิ่มจำนวนเต็มในสตริง” คุณจะแปลกใจว่า API จำนวนเท่าใดที่ส่งคืนตัวเลขเป็นสตริง มีเหตุผลที่ดีมากในการทำเช่นนี้ แต่เมื่อคุณจัดการกับ API การสันนิษฐานว่าตัวเลขจะเป็นตัวเลขนั้นไม่ปลอดภัย ตัวอย่างที่ดีอย่างหนึ่งคือ Google Analytics Reporting API ใหม่ล่าสุด ดูภาพหน้าจอของข้อมูลที่ Google Analytics ให้เมื่อคุณขอรายงาน เซอร์ไพรส์! ตัวเลขทั้งหมด (ดูที่ช่อง "ค่า") อยู่ในเครื่องหมายคำพูด

ชนิดของการขว้างประแจเข้าไปในสิ่งต่าง ๆ ใช่ไหม? เป็นไปได้ แต่ถ้าคุณอ่านเอกสาร API ล่วงหน้า คุณจะประสบปัญหานี้ โชคดีที่ยังมีเครื่องมือบางอย่างใน Python ที่สามารถช่วยเราได้ เช่น int() ฟังก์ชัน:

โดยการวางสตริง '1' ไว้ในฟังก์ชัน int() เรากำลังบอก Python ว่าเราต้องการปฏิบัติต่อสิ่งนี้เหมือนเป็นจำนวนเต็ม ตอนนี้คุณสามารถรวมตัวเลขเหล่านี้เข้าด้วยกันและดำเนินชีวิตต่อไปได้

นี่เป็นเพียงความเป็นไปได้บางประการที่ชนิดข้อมูลสามารถกำหนดสิ่งที่คุณสามารถทำได้ใน Python แต่ยังแสดงให้เห็นว่ามีวิธีแก้ไขปัญหาเหล่านี้เกือบทุกครั้ง โปรดติดต่อฉันทาง Twitter หากคุณมีคำถามเกี่ยวกับประเภทข้อมูล