Type Conversion & Type Casting ใน Python อธิบายพร้อมตัวอย่าง

เผยแพร่แล้ว: 2020-02-19

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

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

สารบัญ

ประเภทข้อมูลใน Python

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

จำนวนเต็ม

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

ตัวเลขทศนิยม

Floats in Python คือตัวเลขที่เขียนด้วยจุดทศนิยมเพื่อแยกเศษส่วนและจำนวนเต็ม ตัวอย่างของตัวเลขทศนิยม ได้แก่ 4.3, 9.18 เป็นต้น คุณสามารถเพิ่ม 'e' สำหรับสัญกรณ์วิทยาศาสตร์ใน Python ได้เช่นกัน

ตัวเลขที่ซับซ้อน

จำนวนเชิงซ้อนใน Python มีรูปแบบดังนี้: (ส่วนจริง + ส่วนจินตภาพ) ตัวอย่างของจำนวนเชิงซ้อน ได้แก่ (3+2i), (8-2x) เป็นต้น

เครื่องสาย

สตริงสามารถเป็นชุดอักขระใดๆ ก็ได้ใน Python พวกเขาจะเรียกว่า str. คุณสามารถเขียนได้โดยใช้เครื่องหมายคำพูด คุณสามารถใช้เครื่องหมายคำพูดเดี่ยวและเครื่องหมายคำพูดคู่สำหรับการเขียนสตริงใน Python สตริงสามารถเป็นอักขระใดก็ได้ที่อยู่ในเครื่องหมายคำพูด เช่น '91', “hello” เป็นต้น

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

ประเภทข้อมูลบูลีน

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

อ่าน: เงินเดือนนักพัฒนา Python ในอินเดีย 2020

เนื่องจากคุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับโอเปอเรเตอร์เชิงตรรกะใน Python คุณจะต้องจัดการกับอ็อบเจ็กต์และค่าบูลีน

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

เมื่อเราพูดถึงประเภทข้อมูลแล้ว เราสามารถย้ายไปยังการแปลงประเภทได้

การแปลงประเภทต่าง ๆ ใน Python

การแปลงประเภทใน Python มี 2 ประเภท มีดังต่อไปนี้:

โดยปริยาย

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

num_int = 18

num_flo = 1.8

num_new = num_int + num_flo

พิมพ์ ("ประเภทข้อมูลของ num_int:", ประเภท (num_int))

พิมพ์ ("ประเภทข้อมูลของ num_flo:", ประเภท (num_flo))

พิมพ์("ค่าของ num_new:",num_new)

พิมพ์ ("ประเภทข้อมูลของ num_new:", ประเภท (num_new))

ผลลัพธ์ของโค้ดด้านบนจะเป็นดังนี้:

ประเภทข้อมูลของ num_int: <class 'int'>

ประเภทข้อมูลของ num_flo: <class 'float'>

มูลค่าของ num_new: 19.8

ประเภทข้อมูลของ num_new: <class 'float'>

อย่างที่คุณเห็น เราแค่ต้องเพิ่ม num_flo และ num_int พร้อมกับ num_new เพื่อให้ได้ผลลัพธ์ที่ต้องการ เราแปลงจำนวนเต็ม 18 เป็นจำนวนทศนิยม 19.8 ผ่านโค้ดสองสามบรรทัด สิ่งสำคัญที่ควรทราบในที่นี้คือ Python เปลี่ยนจำนวนเต็มให้เป็นจำนวนเต็มโดยอัตโนมัติ

ชัดเจน

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

มีฟังก์ชันการแปลงประเภทบางประเภทที่คุณควรคุ้นเคยเพื่อดำเนินการพิมพ์ดีดใน Python Int(a,base) เป็นฟังก์ชันยอดนิยมเนื่องจากสามารถแปลงข้อมูลประเภทใดก็ได้ให้เป็นจำนวนเต็ม float() สามารถเปลี่ยนประเภทข้อมูลใด ๆ ให้เป็นตัวเลขทศนิยมได้ oct() แปลงจำนวนเต็มเป็นสตริงฐานแปด และ hex() แปลงจำนวนเต็มเป็นสตริงฐานสิบหก

นี่คือตัวอย่างการแปลงประเภทโดยใช้ oct():

ค = ต.ค. (80)

พิมพ์ (“ผลลัพธ์ : “, end="”)

พิมพ์ (ค)

และผลลัพธ์จะเป็น:

เอาท์พุต : 0o120

เมื่อทำงานกับฟังก์ชันเหล่านี้ โปรดจำไว้ว่าไวยากรณ์สำหรับการแปลงดังกล่าวควรเป็น:

(desired_datatype) (นิพจน์)

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

อ่าน: แนวคิดและหัวข้อโครงการนักพัฒนา Python

การแปลงสตริงเป็น int Python

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

ดังนั้น หากคุณกำลังแปลงสตริงเป็น int ใน Python คุณสามารถทำได้:

int(“5”)

หรือคุณสามารถเพิ่มฐานสำหรับสตริงประเภทต่างๆ ได้:

int("5" , ฐาน=10)

ตอนนี้ เรามาพูดถึงสิ่งที่ตรงกันข้ามของการแปลงนี้กัน นั่นคือ เมื่อคุณต้องการแปลงจำนวนเต็มเป็นสตริง

การแปลงเป็น String Python

คุณสามารถใช้ฟังก์ชัน str() เพื่อแปลงจำนวนเต็มเป็นสตริงได้ เพียงทำตามไวยากรณ์ที่เรากล่าวถึงก่อนหน้านี้:

สตริ(5)

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

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

num_int = 256

num_str = “64”

พิมพ์ ("ประเภทข้อมูลของ num_int:", ประเภท (num_int))

print(“ประเภทข้อมูลของ num_str ก่อนการแคสต์ประเภท:”,type(num_str))

num_str = int(num_str)

พิมพ์(“ประเภทข้อมูลของ num_str หลังการแคสต์ประเภท:”, ประเภท (num_str))

num_sum = num_int + num_str

พิมพ์("ผลรวมของ num_int และ num_str:",num_sum)

พิมพ์("ประเภทข้อมูลของผลรวม:",ประเภท(num_sum))

ผลลัพธ์ของโค้ดด้านบนจะเป็นดังนี้:

ชนิดข้อมูลของ num_int: <class 'int'>

ชนิดข้อมูลของ num_str ก่อนการแคสต์ประเภท: <class 'str'>

ชนิดข้อมูลของ num_str หลังการแคสต์ประเภท: <class 'int'>

ผลรวมของ num_int และ num_str: 320

ชนิดข้อมูลของผลรวม: <class 'int'>

อย่างที่คุณเห็นมันสนุกมาก อย่าลังเลที่จะทดลองกับการแปลงประเภทและขยายฐานความรู้ของคุณ

บทสรุป

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

หากคุณกำลังอ่านบทความนี้ เป็นไปได้มากว่าคุณมีความทะเยอทะยานที่จะเป็นนักพัฒนา Python หากคุณสนใจที่จะเรียนรู้ python และต้องการทำให้เครื่องมือและไลบรารีต่างๆ สกปรก ให้ตรวจสอบ PG Diploma in Data Science ของ IIIT-B

ในการเข้ารหัส การแปลงที่ชัดเจนแตกต่างจากการแปลงโดยนัยอย่างไร

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

Type Casting ต่างจาก Type Conversion อย่างไร?

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

สิ่งใดมีประสิทธิภาพมากกว่าใน Python- ทูเพิลหรือรายการ

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