แผนการสอนหน วยที่ 7 ชนิดข อมูลเซต (set) ·...

13
1 ชนิดขอมูลเซต (Data Set) สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ แผนการสอนหนวยที่ 7 ชนิดขอมูลเซต (Set) แนวคิด ในบทนี้ผูเรียนจะไดรูจักกับชนิดขอมูลอีกหนึ่งประเภทที่ภาษาไพธอนไดจัดเตรียมไวใหใชงาน คือ ชนิด ขอมูลเซต ซึ่งเปนชนิดขอมูลที่มีลักษณะการจัดเก็บขอมูลแบบกลุม บอยครั้งเราตองทําการสรางกลุมขอมูลที่มี ลักษณะเดียวกันใหอยูดวยกัน การหาสมาชิกในกลุมขอมูล การหาสมาชิกที่เหมือนกันระหวางสองกลุมขอมูล ทําใหภาษาไพธอนไดสรางชนิดขอมูลประเภทนี้มารองรับ และยังมีเมธอดตางๆ ที่สนับสนุนการทํางานและ จัดการกับชนิดขอมูลนี้อีกดวย วัตถุประสงค เมื่อศึกษาหนวยที่ 7 จบแลวนักศึกษา 1. เพื่อใหเขาในหลักการใชงานตัวแปร การประกาศสรางตัวแปร การกําหนดคาใหตัวแปร 2. เพื่อใหเขาในหลักการตั้งชื่อตัวแปร ความสอดคลอง ความชัดเจนกับงานที่จะใชงานของตัวแปร 3. เพื่อฝกการเขียนโปรแกรมอยางงายดวยการใชงานตัวแปรและชนิดขอมูลเซต กิจกรรมการเรียน 1. อานแผนการสอนประจําหนวยที่ 7 2. ศึกษาเนื้อหาและฝกปฏิบัติตาม 3. ศึกษาเพิ่มเติมจากเอกสารอื่นหรือสื่อเสริมออนไลน (ถามี) 4. ทํากิจกรรมใบงานที่กําหนดไวในเอกสารคําสอน

Upload: others

Post on 20-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: แผนการสอนหน วยที่ 7 ชนิดข อมูลเซต (Set) · 2. เพื่อให เข าในหลักการตั้งชื่อตัวแปร

1 ชนิดขอมูลเซต (Data Set)

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

แผนการสอนหนวยท่ี 7

ชนิดขอมูลเซต (Set)

แนวคิด

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

เมื่อศึกษาหนวยที ่7 จบแลวนักศึกษา 1. เพื่อใหเขาในหลักการใชงานตัวแปร การประกาศสรางตัวแปร การกําหนดคาใหตัวแปร 2. เพื่อใหเขาในหลักการตั้งชื่อตัวแปร ความสอดคลอง ความชัดเจนกับงานที่จะใชงานของตัวแปร 3. เพื่อฝกการเขียนโปรแกรมอยางงายดวยการใชงานตัวแปรและชนิดขอมูลเซต กิจกรรมการเรียน

1. อานแผนการสอนประจําหนวยที่ 7 2. ศึกษาเนื้อหาและฝกปฏิบัติตาม 3. ศึกษาเพ่ิมเตมิจากเอกสารอื่นหรือสื่อเสริมออนไลน (ถามี) 4. ทํากิจกรรมใบงานที่กําหนดไวในเอกสารคําสอน

Page 2: แผนการสอนหน วยที่ 7 ชนิดข อมูลเซต (Set) · 2. เพื่อให เข าในหลักการตั้งชื่อตัวแปร

2 1046419 การเขียนโปรแกรมเชิงวัตถุเบื้องตน

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

หนวยท่ี 7

ชนิดขอมูลเซต (Set)

1. รูจักกับชนิดขอมูลเซต (Set) การสรางชนิดขอมูลเซตขึ้นมาใชงานจะเปนการจัดเก็บกลุมขอมูลประเภทเดียวกันหรือคลายกันใหอยูดวยกัน เชน กลุมขอมูลสัตวปก (“ไก”, “นก”, “เปด”, “หาน”) กลุมขอมูลรถยนต (“Toyota”, “Honda”, “BMW”, “Bezn”) กลุมขอมูลประเภทกีฬา (“Running”, “Football”, “Swimming”, “Racing”) เปนตน ขอมูลของชนิดขอมูลเซตจะอยูในเครื่องหมายปกกา {…} และถูกค่ันดวยเครื่องหมาย comma (,) หากเปนชนิดสตริงจะอยูในเครื่องหมาย (“…”) หรือ (‘…’) และขอมูลแตละตัวที่อยูภายในเซตจะถูกเรียกวา สมาชิก ชนิดขอมูลเซต (Set) จัดเก็บขอมูลแบบไมมีลําดับ (Unordered collection) แบงออกเปน 2 ประเภทไดแก set และ frozenset แตมีความแตกตางกันคือ set สามารถเปลี่ยนแปลงแกไขสมาชิกได แตสําหรับ frozenset นั้นไมสามารถแกไขสมาชิกเซตได กรณีท่ีสรางเซตขึ้นมาใชงานแลวมีขอมูลซ้ํากัน และเมื่อสั่งประมวลผลขอมูลที่ซ้ํากันจะเหลือเพียงแคตัวเดียวเทานั้น นอกจากนี้เรายังสามารถที่จะนําชนิดขอมูลลิสต ทูเพิล สตริง นํามาแปลเปนชนิดขอมูลเซตได และเมื่อตองการสรางตัวแปรเก็บเซตวางใหใช set( ) การสรางชนิดขอมูลเซตขึ้นมาใชงาน แสดงตัวอยางตอไปนี ้

ภาพที่ 7.1 ตัวอยางการสรางตัวแปรชนิดเซตและการตรวจชนิดขอมูล

จากตัวอยางอธิบายการทํางานของโปรแกรมไดดังนี้ บรรทัด 1 ประกาศวาสรางตัวแปร sport_set เปนชนิดขอมูลเซตวางดวยคําสั่ง set() บรรทัด 2-3 ประกาศสรางตัวแปรเปนชนิดขอมูลเซต books_set และ numbers_set ตามลําดับ บรรทัด 4-5 ใชฟงกชั่น print() แสดงคาตัวแปร books_set และ nembers_set จะสังเกตไดวาหากมีสมาชิกซ้ํากันภายในเซตจะถูกตัดออกใหเหลือเพียงตัวเดียวบรรทัด 6-8 ตรวจสอบชนิดขอมูลดวยฟงกชั่น type() จากที่ไดกลาวมาแลววาเราสามารถนําชนิดขอมูลอื่นๆ นํามาสรางเปนชนิดขอมูลเซตได แตเมื่อแสดงผลออกมาลําดับของสมาชิกจะไมเหมือนเดิม (ขึ้นอยูกับการประมวลผลของแตละเครื่อง) เนื่องจากเปนการสุมแสดงผลสมาชิก พิจารณาจากตัวอยางตอไปนี ้

Page 3: แผนการสอนหน วยที่ 7 ชนิดข อมูลเซต (Set) · 2. เพื่อให เข าในหลักการตั้งชื่อตัวแปร

3 ชนิดขอมูลเซต (Data Set)

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

ภาพที่ 7.2 ตัวอยางการแปลงชนิดขอมูลอื่นเปนชนิดขอมูลเซต

จากตัวอยางอธิบายการทํางานของโปรแกรมไดดังนี้ บรรทัด 1 ประกาศสรางตัวแปร float_tup เปนชนิดขอมูลทูเพิลเก็บขอมูลจํานวนทศนิยม บรรทัด 2 ประกาศสรางตัวแปร books_lst เปนชนิดขอมูลลิสตเก็บขอมูลสตริง บรรทัด 3 ประกาศสรางตัวแปร str1 เปนชนิดขอมูลสตริง บรรทัด 4 ประกาศสรางตัวแปร numbers เปนชนิดขอมูลสตริงที่เปนตัวเลข บรรทัด 5-8 แสดงผลลัพธการแปลงชนิดขอมูลที่ประกาศไวจากบรรทัดที่ 1-4 ใหเปนชนิดขอมูลเซตโดยฟงกชั่น set( ) ดวยฟงกชั่น print( ) จากตัวอยางในบรรทัดที่ 2 จะสังเกตเห็นวาไดสรางตัวแปร books_lst เปนชนิดขอมูลลิสตและมี “Java” ปรากฏอยู 2 ครั้ง เมื่อนํามาแปลงเปนชนิดขอมูลเซต และแสดงผลออกมาจะทําใหขอมูลที่ซ้ํากันเหลือเพียงคาเดียว ในบรรทัดที่ 3 สรางตัวแปร str1 เปนชนิดขอมูลสตริง เมื่อแปลงเปนชนิดขอมูลเซตแลวแสดงผลตัวอักขระจะไมถูกเรียงลําดับเนื่องจากเปนการสุม ถาหากรันโปรแกรมใหมอีกครั้งก็จะมีการเรียงลําดับใหมไปเรื่อยๆ ในบรรทัดที่ 4 ก็จะมีลักษณะการแสดงผลเหมือนกับบรรทัดที่ 2 และ 3 ซึ่งเปนการสุมขอมูลของเซตมาแสดงผลแบบไมมีลําดับ จากที่ไดนําเสนอตัวอยางขางตนเปนการสรางชนิดขอมูลเซต ซึ่งเปนชนิดขอมูลที่สามารถแกไขหรือลบสมาชิกออกจากเซตได และมีอีกหนึ่งชนิดขอมูลคือ frozenset ซึ่งเปนชนิดขอมูลที่มีการเก็บเหมือนกับชนิดขอมูลเซต แตภายในเซตจะไมสามารถแกไขหรือลบออกจากเซตได การสรางชนิดขอมูล ferzenset ขึ้นมาใชงานอยูในรูปแบบของ frozenset( ) แสดงตัวอยางการสรางชนิดขอมูล ferzenset ดังตัวอยางตอไปนี ้

ภาพที่ 7.3 ตัวอยางการสรางชนิดขอมูล ferzenset

Page 4: แผนการสอนหน วยที่ 7 ชนิดข อมูลเซต (Set) · 2. เพื่อให เข าในหลักการตั้งชื่อตัวแปร

4 1046419 การเขียนโปรแกรมเชิงวัตถุเบื้องตน

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

จากตัวอยางอธิบายการทํางานของโปรแกรมไดดังนี้ บรรทัด 1 ประกาศสรางตัวแปร cities เปนชนิดขอ frozenset บรรทัด 2 ประกาศสรางตัวแปร foods เปนชนิดขอมูล frozenset บรรทัด 3 เรียกใชงานฟงกชั่น print( ) แสดงสมาชิกท่ีเก็บอยูในคาตัวแปร cities บรรทัด 4 เรียกใชงานฟงกชั่น print( ) แสดงสมาชิกที่เก็บอยูในคาตัวแปร foods พรอมทั้งแปลงใหเปนชนิดขอมูลเซต ดวยฟงกชั่น set( ) บรรทัด 5-6 ตรวจสอบชนิดขอมูลตัวแปร cities และ foods ดวยฟงกชั่น type( ) จากตัวอยางผูเรียนจะสังเกตเห็นวาสมาชิกที่อยูในชนิดขอมูล frozenset จะเปนชนิดขอมูลประเภทใดก็ไดและยังสามารถถูกแปลงใหแสดงผลอยูในรูปแบบของเปนชนิดขอมูล frozenset

ภาพที่ 7.4 ตัวอยางการแจงเตือนขอผิดพลาด จากตัวอยางการเขียนคําสั่งโปรแกรมที่ 7.4 เปนการพยายามที่จะทําการแกไขสมาชิกภายในชนิดขอมูล frozenset ดวยการเรียกใชงานเมธอด add( ) ซึ่งเปนเมธอดเพ่ิมสมาชิกเขาไปในเซต แตไมสามารถเพิ่มไดจึงทําใหเกิดการแจงเตือนขอผิดพลาดขึน้ 2. เมธอดที่ใชกับชนิดขอมูลเซต ชนิดขอมูลเซตทีเมธอดและฟงกชั่นตางๆ ที่นํามาใชจัดการกับสมาชิกที่อยูภายในเซตจํานวนมาก ผูอานสามารถใชคําสั่ง help(set) ขอดูขอมูลการใชงานเมธอดกับชนิดขอมูลนี้เพิ่มเติมได 2.1 เมธอด add( ) ใชสําหรับเพิ่มสมาชิกเขาไปในเซต มีรูปแบบการใชงานดังนี้

ภาพที่ 7.5 ตัวอยางเพิ่มสมาชิกเขาไปในเซต

setVar.add( )

โดยท่ี setVar คือตัวแปรชนิดขอมูลเซตที่ตองการเพิ่มสมาชิก

Page 5: แผนการสอนหน วยที่ 7 ชนิดข อมูลเซต (Set) · 2. เพื่อให เข าในหลักการตั้งชื่อตัวแปร

5 ชนิดขอมูลเซต (Data Set)

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

2.2 เมธอด clear( ) ใชสําหรับลบสมาชิกท้ังในเซต มีรูปแบบการใชดังนี้

ภาพที่ 7.6 ตัวอยางการลบสมาชิก

2.3 เมธอด copy( ) ใชสําหรับคัดลอกชนิดขอมูลเซต มีรูปแบบการใชงานดังนี้

ภาพที่ 7.7 ตัวอยางการคัดลอกสมาชิก

2.4 เมธอด difference ( ) ใชสําหรับหาสมาชิกที่ตางกันระหวางสองเซต หรือใชตัวดําเนินการ (-) แทนได เมธอด มีรูปแบบการใชงานดังนี้

ภาพที่ 7.8 ตัวอยางการหาสมาชิกที่ตางกัน

setVar.clear( )

โดยท่ี setVar คือตัวแปรชนิดขอมูลเซตที่ตองการลบสมาชิกทั้งหมด

setVar.copy( )

โดยท่ี setVar คือตัวแปรชนิดขอมูลเซตที่ตองการคัดลอกสมาชิก

s1.difference(s2)

โดยท่ี s1 คือตัวแปรชนิดขอมูลเชตที่ตองการหาสมาชิกทีตางจาก s2 s2 คือตัวเปรชนิดขอมูลเซตที่ถูกน้ํามาเปรียบเทียบ

Page 6: แผนการสอนหน วยที่ 7 ชนิดข อมูลเซต (Set) · 2. เพื่อให เข าในหลักการตั้งชื่อตัวแปร

6 1046419 การเขียนโปรแกรมเชิงวัตถุเบื้องตน

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

2.5 เมธอด difference_update( ) ใชสําหรับหาสมาชิกที่ตางกันระหวางสองเซต แตเซตที่นํามาเปรียบเทียบ จะเก็บคาสมาชิกใหม

ภาพที่ 7.9 ตัวอยางการตางกันระหวางสองเซต แตเซตที่นํามาเปรียบเทียบ จะเก็บคาสมาชิกใหม จากตัวอยางอธิบายการทํางานของโปรแกรมไดดังนี้ บรรทัด 3 ใชเมธอด difference_update() หาสมาชิกในคาตัวแปร book1 ทีตางจากสมาชิกในคา ตัวแปร book2 ผลลัพธสมาชิกทตางจากตัวแปร book1 จะถูกนําไปเก็บไวตัวแปร book1 แทนทีสมาชิกเดิม และผลลัพธที่ไดจะเก็บไวในตัวแปร book_set บรรทัด 4 แสดงสมาชิกในคาตัวแปร book1 บรรทัด 5 แสดงสมาชิกในคาตัวแปร book2 บรรทัด 6 แสดงสมาชิกในคาตัวแปร book_set ผลลัพธที่ไดออกมาเปนคา None 2.6 เมธอด discard( ) ใชสําหรับลบสมาชิกในเซต มีรูปแบบการใชดังนี ้

ภาพที่ 7.9 ตัวอยางการลบสมาชิกในเซต

s1.difference_update(s2)

โดยท่ี s1 คือตัวแปรชนิดขอมูลเชตที่ตองการหาสมาชิกทีตางจาก s2 s2 คือตัวเปรชนิดขอมูลเซตที่ถูกน้ํามาเปรียบเทียบ

s1.discard(s2)

โดยท่ี s1 คือตัวแปรชนิดขอมูลเซตที่ตองการลบสมาชิก s2 คือชื่อสมาชิกท่ีตองการลบ

Page 7: แผนการสอนหน วยที่ 7 ชนิดข อมูลเซต (Set) · 2. เพื่อให เข าในหลักการตั้งชื่อตัวแปร

7 ชนิดขอมูลเซต (Data Set)

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

2.7 เมธอด intersection( ) ใชหาสมาชิกที่เหมือนกันระหวางเซ็ตสามารถใชเครื่องหมาย & แทนเมธอดไดมีรูปแบบการใชดังนี้

ภาพที่ 7.10 ตัวอยางการหาสมาชิกที่เหมือนกันระหวางเซ็ต

2.8 เมธอด intersection_updata( ) ใชสําหรับหาสมาชิกท่ีเหมือนกันระหวางสองเซต ผลลัพธที่ไดถูกนําไปแทนที่สมาชิกของเซตที่นํามาหาสมาชิกท่ีเหมือนกัน มีรูปแบบการใชงานดังนี้

ภาพที ่7.11 ตัวอยางการหาสมาชิกที่เหมือนกันระหวางเซ็ตผลลัพธที่ไดถูกนําไปแทนที่สมาชิกของเซต 2.9.เมธอด isdisjoint( ) ใชตรวจสอบสมาชิกภายในเซต เปนสมาชิกของเซตอื่นดวยหรือไม ถาเปนสมาชิกของเซตอ่ืนผลลัพธเปน False ถาเปนสมาชิกของเซตอ่ืนผลลัพธเปน True มีรูปแบบการใชงานดังนี้

s1.intersection(s2, …. , sn)

โดยท่ี s1 คือ คือ ตัวแปรชนิดขอมูลเซตที่ตองการหาสมาชิกท่ีเหมือนกันกับ s2,…,sn s2, … , sn คือตัวแปรชนิดขอมูลเซตที่ถุกนํามาหาสมาชิกที่เหมือนกันกับ s1

s1.intersection_update(s2)

โดยท่ี s1 คือตัวแปรชนิดขอมูลเซตที่ตองการหาสมาชิกที่เหมือนกันกับ s2 s2 คือตัวแปรชนิดขอมูลเซตที่ถุกนํามาหาสมาชิกที่เหมือนกันกับ s1

s1.isdisjoint(s2)

โดยท่ี s1 คือตัวแปรชนิดขอมูลเซตที่ตองการตรวจสอบสมาชิกเปนสมาชิดของ s2 ดวยหรือไม s2 คือตัวแปรชนิดขอมูลเซตที่ถูกนํามาตรวจสอบ

Page 8: แผนการสอนหน วยที่ 7 ชนิดข อมูลเซต (Set) · 2. เพื่อให เข าในหลักการตั้งชื่อตัวแปร

8 1046419 การเขียนโปรแกรมเชิงวัตถุเบื้องตน

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

ภาพที่ 7.12 ตัวอยางการตรวจสอบสมาชิกภายในเซต

2.10 เมธอด issubset( ) ใชสําหรับตรวจสอบการเปนซับเซต (subset) หรือเซตยอย ถาสมาชิกทุกตัวของ s1 เปนสมาชิกของ s2 จะไดผลลัพธเปน True ถามีบางตัวไมเปนสมาชิกของตัวแปร s2 จะไดผลลัพธเปน False มีรูปแบบการใชงานดังนี้

ภาพที่ 7.13 ตัวอยางการตรวจสอบการเปนซับเซต

2.11 issuperset( ) ใชตรวจสอบการเปนซุปเปอรเซตของเซต ถาเปนซุปเปอรเซตใหผลลัพธเปนจริง เมธอด (True) ถาไมเปนซุปเปอรเซตใหผลลัพธเปนเท็จ (False) มีรูปแบบการใชงานดังนี

ภาพที่ 7.14 ตัวอยางการตรวจสอบการเปนซุปเปอรเซตของเซต

s1.issubset(s2)

โดยท่ี s1 คือตัวแปรชนิดขอมูลเซตที่ถูกนํามาตรวจสอบเปน subset ของ s2 หรือไม s2 คือตัวแปรชนิดขอมูลเซตที่ถูกนํามาเปรียบเทียบ

s1.issuperset(s2)

โดยท่ี s1 คือตัวแปรชนิดขอมูลเซตที่ตองการนําไปตรวจสอบการเปนซปุเปอรเซต s2 s2 คือตัวแปรชนิดขอมูลเซตที่ถูกนํามาเปรียบเทียบ

Page 9: แผนการสอนหน วยที่ 7 ชนิดข อมูลเซต (Set) · 2. เพื่อให เข าในหลักการตั้งชื่อตัวแปร

9 ชนิดขอมูลเซต (Data Set)

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

2.12 ฟงกช่ัน len( ) ใชแสดงจํานวนสมาชิกท้ังหมดในเซต มีรูปแบบการใชงานดังนี้

ภาพที่ 7.15 ตัวอยางการจํานวนสมาชิกท้ังหมดในเซต 2.13 เมธอด pop( ) ใชสําหรับลบสมาชิกออกจากเซตโดยการสุม จะคืนคากลับมาเปนสมาชิกที่ถูกลบ ถาลบสมาชิกในเซตวางจะคืนคากลับมาเปนการแจงเตือนขอผิดพลาดมีรูปแบบการใชงานดังนี้

ภาพที่ 7.16 ตัวอยางการลบสมาชิกออกจากเซตโดยการสุม 2.14 เมธอด remove( ) ใชสําหรับลบสมาชิกออกจากเซตเหมือนกับเมธอด discard( ) แตเมื่อนําเมธอดนี้มาใชงาน ถาลบสมาชิกท่ีไมมีอยูในเซตจะเกิดการแจงเตือนขอผิดพลาด มีรูปแบบการใชงานดังนี้

len(s)

โดยท่ี s คือตัวแปรชนิดขอมูลเซตที่ตองการแสดงจํานวนสมาชิกั้งหมด

s.pop( )

โดยท่ี s คือตัวแปรชนิดขอมูลเซตที่ตองการลบสมาชิก

s.remove(x)

โดยท่ี s คือตัวแปรชนิดขอมูลเซตที่ตองการลบสมาชิกออกจากเซต X คือชื่อสมาชิกท่ีตองลบออกจากเซต

Page 10: แผนการสอนหน วยที่ 7 ชนิดข อมูลเซต (Set) · 2. เพื่อให เข าในหลักการตั้งชื่อตัวแปร

10 1046419 การเขียนโปรแกรมเชิงวัตถุเบื้องตน

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

ภาพที่ 7.17 ตัวอยางการลบสมาชิกออกจากเซต

2.15 เมธอด symmetric_difference( ) ใชสําหรับสมาชิกที่ไมมีอยูในเซต สามารถใชเครื่องหมาย (^) แทนเมธอดไดมีรูปแบบการใชงานดังนี้

ภาพที่ 7.18 ตัวอยางสมาชิกที่ไมมีอยูในเซต

2.16 เมธอด symmetric_difference_update( ) ใชสําหรับหาสมาชิกท่ีไมมีอยูในอีกเซต ผลลัพธที่ไดจะถูกนําไป update ในกับเซตแรกมรีูปแบบการใชดังนี้

ภาพที่ 7.19 ตัวอยางสมาชิกที่ไมมีอยูในเซตและ update 2.17 เมธอด union( ) ใชสําหรับรวมสมาชิกของเซตเขาดวยกัน สามารถใชเครื่องหมาย (I) แทน เมธอดไดถามีสมาชิกท่ีเหมือนกันจะเหลือเพียงตัวเดียว มีรูปแบบการใชงานดังนี้

s1.symmetric_difference (s2)

โดยท่ี s1 คือตัวแปรชนิดขอมูลเซตที่ตองการหาสมาชิกที่ไมปรากฏใน s2 s2 คือตัวแปรชนิดขอมูลเซตที่ตองการหาสมาชิกท่ีไมปรากฏใน s1

s1.symmetric_difference_update (s2)

โดยท่ี s1 คือตัวแปรชนิดขอมูลเซตที่ตองการหาสมาชิกที่ไมปรากฏใน s2 s2 คือตัวแปรชนิดขอมูลเซตที่ตองการหาสมาชิกท่ีไมปรากฏใน s1

Page 11: แผนการสอนหน วยที่ 7 ชนิดข อมูลเซต (Set) · 2. เพื่อให เข าในหลักการตั้งชื่อตัวแปร

11 ชนิดขอมูลเซต (Data Set)

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

ภาพที่ 7.20 ตัวอยางรวมสมาชิกของเซต

2.18 เมธอด update( ) ใชสําหรับ update สมาชิกของเซต หรือเปนการรวมสมาชิกสองเซต ถาสมาชิกมีซ้ํากันจะถูกตัดออกใหเหลือเพียงตัวเดียว มีรูปแบบการใชงานดังนี้

ภาพที่ 7.21 ตัวอยาง update สมาชิกของเซต

3. การดําเนินการกับชนิดขอมูลเซต นอกจากเราสามารถนาเมธอดตางๆ มาใชจัดการกับขอมูลชนิดเซตแลว เรายังสามารถนาฟงกชัน min(), max() และ sum() ตัวดาเนินการเปรยบเทียบ ตัวดาเนินการเปนสมาชิก หรือตัวดาเนินการเอกลักษณ เขามา ดาเนินการกับชนิดขอมลเซตไดอีกดวย ดังแสดงตัวอยางตอไปนี ้

s1.union (s2)

โดยท่ี s1 คือตัวแปรชนิดขอมูลเซตที่ตองรวมสมาชิกเขากับ s2 s2 คือตัวแปรชนิดขอมูลเซตที่ตองรวมสมาชิกเขากับ s1

s1.update (s2)

โดยท่ี s1 คือตัวแปรชนิดขอมูลเซตที่ตองรวมสมาชิกเขากับ s2 s2 คือตัวแปรชนิดขอมูลเซตที่ตองรวมสมาชิกเขากับ s1

Page 12: แผนการสอนหน วยที่ 7 ชนิดข อมูลเซต (Set) · 2. เพื่อให เข าในหลักการตั้งชื่อตัวแปร

12 1046419 การเขียนโปรแกรมเชิงวัตถุเบื้องตน

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

ภาพที ่7.22 ตัวอยางการใชงานตัวดําเนินการกับขอมูลเซต

4. สรุปทายบท ชนิดขอมูลเชตมีการจัดเก็บขอมูลแบบไมมีลําดับ แบงออกเปน 2 ชนิด ไดแก set และ frozenset เปนอีกหนึ่งชนิดขอมูลทีมีประโยชนมาก ทําใหลดการสรางตัวแปรการจัดเก็บขอมูลไดเปนจํานวนมาก และสามารถ ทีจะนําชนิดขอมูลอื่นๆ มาแปลงใหเปนชนิดขอมูลเซตได สําหรับชนิดขอมูลเซตสามารถที่จะจัดการแกไขขอมูล ภายในเขตโดยการเรียกใชงานเมธอดทีภาษาไพธอนไดจัดเตรียมไวใหเรียกใชงาน แตชนิดขอมูล frozenset ไมสามารถแกไขสมาชิกภายในเซตได แบบฝกหัดทายบท (5p) 1 จากแผนภาพเวนน-ออยเลอรที่กําหนดใหจงเขียนไปรแกรมเพื่อหาคําตอบตามเงือ่นไขดังตอไปนี ้

1.1 A & B = ………………………………………………………………………………………………………………………

Page 13: แผนการสอนหน วยที่ 7 ชนิดข อมูลเซต (Set) · 2. เพื่อให เข าในหลักการตั้งชื่อตัวแปร

13 ชนิดขอมูลเซต (Data Set)

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

1.2 A & C = ………………………………………………………………………………………………………………………

1.3 B | C = ………………………………………………………………………………………………………………………

1.4 A | C= ………………………………………………………………………………………………………………………

1.5 A - C = ……………………………………………………………………………………………………………………

2 กําหนดให x={"cat", "dog", "fish", "bird", "bee" }

Y= ("snake", "lion", "pig", "dog". "cat"

2 2.1 จงเขียนคาลังโปรแกรมหาผลลัพธสมาชิกทีเหมือนกันของเซต x และ y

คําสังโปรแกรม………………………………………………………………………………………………

ผลลัพธ …………………………………………………………………………………………………………

2.2 จงเขียนคาสิ่งโปรแกรมหาสมาชิกท่ีอยูในเชต X แตไมอยูในเซต y

คําสังโปรแกรม ……………………………………………………………………………………………….

ผลลัพธ ……………………………………………………………………………………………………………

2.3 จงเขียนคําสั่งโปรแกรมหาสมาชิกท่ีอยูในเซต x แตไมอยูในเซต y และอยูในเซต y แตไมอยูในเซต x

คําสั่งโปรแกรม.....................................................................................................................................

ผลลัพธ................................................................................................................................................. เอกสารอางอิง

สุพจน สงาทอง และปยะ นากสงค. (2561). การเขียนโปรแกรมภาษา Python. รีไววา : กรุงเทพฯ.

ณัฐวัตร คําภักดี. (2561). คูมือเขียนโปรแกรมดวยภาษาไพธอน. โปรวิชั่น : กรุงเทพฯ.

โชติพันธุ หลอเลิศสุนทร. (2554). คูมือเรียน เขียนโปรแกรมดวยภาษา Python (ภาคปฏิบัติ). คอรฟงกชั่น : กรงุเทพฯ.