ตัวแปรในภาษาไพทอน มีอะไรบ้าง

73 ครั้งเข้าชม
ไพธอนรองรับตัวแปรหลายชนิด: ตัวอักษร (Character): แทนตัวอักษรหรือสัญลักษณ์เดียว ใช้ single quote หรือ double quote ล้อมค่า เช่น 'A' หรือ "B" (แม้จะมีความคล้ายคลึงกับ String ที่มีความยาว 1 ตัวอักษร แต่ในทางปฏิบัติมักใช้ String แทน) ข้อความ (String): ลำดับตัวอักษร ใช้ single quote หรือ double quote ล้อมค่า เช่น 'Hello' หรือ "Python" รองรับการต่อข้อความและฟังก์ชันการจัดการข้อความหลากหลาย จำนวนเต็ม (Integer): ตัวเลขจำนวนเต็ม เช่น 10, -5, 0 จำนวนทศนิยม (Float): ตัวเลขที่มีจุดทศนิยม เช่น 3.14, -2.5 บูลีน (Boolean): ค่าความจริง มีค่าได้สองค่าคือ True หรือ False ลำดับ (Sequence): รวม List, Tuple และ Range ใช้เก็บข้อมูลหลายรายการ List เปลี่ยนแปลงได้ Tuple เปลี่ยนแปลงไม่ได้ Range สร้างลำดับเลข เซต (Set): กลุ่มข้อมูลที่ไม่ซ้ำกัน ใช้สำหรับการตรวจสอบสมาชิกและการดำเนินการทางเซต พจนานุกรม (Dictionary): เก็บข้อมูลแบบ key-value pair เข้าถึงข้อมูลผ่าน key มีประสิทธิภาพในการค้นหา
ความคิดเห็น 0 ครั้งถูกใจ

ตัวแปรใน Python มีประเภทใดบ้าง?

อืมมม... จำได้ตอนเรียน Python ใหม่ๆ โค้ดฉันรกมาก แบบว่า ลืมไปเลยว่าตัวแปรแต่ละตัวเป็นอะไร งงไปหมด!

ข้อมูลชนิดตัวอักษร อืม... นี่มันอะไรนะ? ฉันจำได้ว่าใช้ char ในภาษา C แต่ Python มันดูจะไม่ค่อยมีแบบนี้ชัดเจนเท่าไหร่ มักใช้ string แทน ซึ่งจริงๆมันก็เก็บตัวอักษรได้ตัวเดียวอยู่ดีนี่นา ถ้าจำไม่ผิดนะ

ส่วน string นี่ชัดเจน ใช้เก็บข้อความ ยาวสั้นแค่ไหนก็ได้ จำได้แม่นเลยตอนทำโปรเจคส่งอาจารย์ ต้องใช้ string เก็บชื่อสินค้า ราคา และรายละเอียดสินค้า ยุ่งยากมาก ใช้เวลาไปตั้งหลายวัน จนเสร็จตอนตีสอง วันที่ 14 พฤศจิกายน ปีที่แล้ว ที่ห้องสมุดมหาวิทยาลัย เหนื่อยมากกกกก

จำนวนเต็ม int ใช่มั้ย? อันนี้ง่ายสุด ใช้บ่อยมาก จำได้ว่าตอนเขียนโปรแกรมคำนวณดอกเบี้ย ใช้ int เก็บจำนวนเดือน แต่ตอนหลังต้องเปลี่ยนเป็น float เพราะว่าดอกเบี้ยมันมีทศนิยม ไม่งั้นคำนวณผิดหมด! ลืมไปเลยว่ามี long สำหรับเลขจำนวนเต็มที่ยาวมากๆด้วยนะ!

ลืมไป! ยังมี float สำหรับทศนิยม boolean สำหรับ True/False และอื่นๆ อีกเยอะแยะเลย ฉันไม่ค่อยแน่ใจเท่าไหร่ว่ามีอะไรอีกบ้าง ต้องไปค้นหาในเอกสาร ตอนนี้สมองฉันมันตื้อไปหมดแล้ว! งงๆๆๆ

ตัวแปรในภาษาไพทอนมีกี่รูปแบบ

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

  • ขอบเขตการเข้าถึง (Scope): นี่คือสิ่งที่ทำให้เกิดความแตกต่างหลักๆ โดยทั่วไปเราแบ่งได้เป็น 4 แบบ ซึ่งเป็นเรื่องสำคัญมากในการเขียนโปรแกรมขนาดใหญ่ จะช่วยลดความสับสน และทำให้โค้ดอ่านง่ายขึ้น

    • Local Scope: ตัวแปรที่นิยามภายในฟังก์ชัน หรือ method ของ class สามารถเข้าถึงได้เฉพาะภายในฟังก์ชัน/method นั้นๆ เท่านั้น คิดง่ายๆ เหมือนเป็นห้องส่วนตัว คนนอกเข้าไม่ได้
    • Enclosing function locals: นี่คือ scope ของฟังก์ชันที่อยู่ถัดขึ้นไป ถ้ามีการเขียนฟังก์ชันซ้อนกัน ตัวแปรในฟังก์ชันชั้นนอก จะสามารถเข้าถึงได้จากฟังก์ชันชั้นใน แต่ฟังก์ชันชั้นในเข้าถึงตัวแปรของฟังก์ชันชั้นนอกไม่ได้เสมอไป (ขึ้นอยู่กับการเขียน) เหมือนบ้านที่มีห้องหลายห้อง บางห้องอาจมีประตูเชื่อมต่อกัน
    • Global Scope: ตัวแปรที่นิยามนอกฟังก์ชันใดๆ สามารถเข้าถึงได้จากทุกส่วนของโปรแกรม เหมือนพื้นที่สาธารณะ ใครก็เข้าถึงได้ แต่การใช้ global scope มากเกินไปมักนำไปสู่โค้ดที่ยากต่อการบำรุงรักษา เพราะการเปลี่ยนแปลงในส่วนหนึ่งอาจส่งผลกระทบต่อส่วนอื่นๆ ที่ไม่คาดคิด
    • Built-in Scope: ตัวแปรที่เป็นส่วนหนึ่งของภาษาไพทอนเอง เช่น print(), len(), input() เป็นต้น เสมือนเป็นห้องสมุดใหญ่ที่ทุกคนสามารถเข้าไปใช้ได้
  • ประเภทข้อมูล (Data Type): อีกมิติหนึ่งที่น่าสนใจ คือประเภทข้อมูลของตัวแปร เช่น จำนวนเต็ม (integer), จำนวนทศนิยม (float), ข้อความ (string), รายการ (list), พจนานุกรม (dictionary) เป็นต้น นี่เป็นการจำแนกประเภทตามชนิดของข้อมูลที่เก็บ ไม่ใช่ scope

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

Float คืออะไรในไพทอน

โอ้โฮ! Float ในไพธอนน่ะเหรอ ง่ายนิดเดียว! คิดซะว่ามันเป็นเลขที่มีจุดทศนิยมลอยๆ อยู่ไง ต่างจาก Integer ที่เป็นเลขจำนวนเต็มเปรี๊ยะๆ เหมือนกับความรักของฉันกับแฟนเก่า Integer น่ะ รักจริงหวังแต่ง แต่ Float เหมือนรักแบบ... เอ่อ... มีจุดๆ แล้วก็ลอยไปลอยมา ไม่แน่นอน!

  • ความแตกต่าง: Integer คือเลขเต็มๆ เช่น 1, 2, 3 แต่ Float มีทศนิยม เช่น 1.5, 2.71828, 3.14159 (อ้อ! นี่คือค่าประมาณนะจ๊ะ อย่าไปคิดเลขเยอะ เดี๋ยวปวดหัว!)
  • คุณสมบัติ: มันมีคุณสมบัติทางคณิตศาสตร์ครบถ้วน บวก ลบ คูณ หาร ได้หมด แต่ผลลัพธ์อาจจะไม่เป๊ะๆ เสมอไป เพราะทศนิยมมันลอยๆ ไง! เหมือนเวลาไปตลาดซื้อของ คิดเงินแล้วได้ทอน บางทีก็ไม่ตรงเป๊ะซักที
  • การใช้งาน: เอาไปใช้คำนวณพวกงานวิทยาศาสตร์ วิศวกรรม หรือแม้แต่คำนวณราคาสินค้า (แต่แนะนำให้ใช้กับเงินสดอย่างระมัดระวัง เผื่อเงินทอนมันจะลอยหายไปกับ Float!)

ปีนี้(2566) ฉันใช้ Float คำนวณค่าใช้จ่ายในการเลี้ยงแมว ได้ผลลัพธ์ที่... พอใช้ได้นะ แต่ก็มีเศษเหลืออยู่บ้าง เหมือนเงินในกระเป๋าฉันนั่นแหละ! ????

ตัวแปรภาษามีกี่ประเภท

ตัวแปรทางภาษามีเยอะมาก ขึ้นอยู่กับว่าเราจะมองจากมุมไหน

  • ภาษาถิ่น (Dialect): อันนี้คลาสสิกเลย ต่างกันตามภูมิภาค เช่น สำเนียงใต้ คำศัพท์บางคำที่คนกรุงเทพฯ อาจจะไม่คุ้น
  • ภาษาเฉพาะกลุ่ม (Sociolect): อันนี้เจ๋งดี คือภาษาที่คนในกลุ่มสังคมเดียวกันใช้ อาจจะเป็นกลุ่มเพื่อน กลุ่มอาชีพ หรือกลุ่มที่มีความสนใจคล้ายๆ กัน (นึกถึงศัพท์เฉพาะในวงการเกมเมอร์ดิ)
  • ระดับภาษา: ทางการ-ไม่เป็นทางการ อันนี้ชัดเจน เวลาคุยกับเพื่อน vs. เวลาเขียนรายงานส่งอาจารย์
  • ภาษาในบริบทเฉพาะ: ภาษาหมอ ภาษาทนาย ภาษาโปรแกรมเมอร์ ทุกวงการมีภาษาของตัวเองทั้งนั้นแหละ

(แอบคิดเล่นๆ ว่าภาษา AI นี่นับเป็น Sociolect ได้ไหมนะ?)

ข้อมูลเพิ่มเติมที่น่าสนใจ:

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

เน้นย้ำคำสำคัญ: ภาษาถิ่น, ภาษาเฉพาะกลุ่ม, ระดับภาษา, บริบทเฉพาะ

Variable type มีอะไรบ้าง

อืม… Variable type ใน Python นะเหรอ… ตอนนี้ก็ดึกมากแล้ว สมองมันช้าๆ คิดอะไรไม่ออกเลยจริงๆ

  • Int: จำนวนเต็ม จำง่ายๆ เลย แบบ 1, 2, 100, -5 อะไรแบบนี้ นี่แหละที่ใช้บ่อยสุด
  • String: ตัวอักษร พวก 'Hello', "Python", "วันนี้เหนื่อยจัง" อะไรประมาณนี้ ต้องใส่เครื่องหมาย ' หรือ " ไม่งั้นมันจะ error จำได้เพราะเคยโดนมาแล้ว ตอนนั้นนั่งแก้โค้ดอยู่นานเลย
  • Float: ทศนิยม เหมือน 3.14 หรือ 2.718 ตัวเลขที่มีจุดทศนิยม จำได้ว่าตอนเรียน มันบอกว่าใช้สำหรับตัวเลขที่มีความละเอียดสูง แต่ตอนนี้ไม่ค่อยได้ใช้เท่าไหร่แล้ว
  • Bool: ค่าความจริง True หรือ False อันนี้สำคัญ ใช้ในการควบคุมเงื่อนไข ถ้าจำไม่ผิด True คือ 1 False คือ 0 มั้งนะ ไม่แน่ใจเท่าไหร่ เดี๋ยวต้องไปเช็คอีกที ตอนนี้สมองล้าจริงๆ
  • None: คือไม่มีค่าอะไรเลย เหมือน null ในภาษาอื่นๆ ใช้บอกว่า ตัวแปรนั้นยังไม่มีค่าอะไร หรือไม่ต้องการมีค่าอะไร อันนี้ก็จำได้ไม่ค่อยแม่นเหมือนกัน มันนานมาแล้ว

ปีนี้… ตอนเรียนวิชา Data structure and algorithm เพิ่งใช้พวกนี้ไป รู้สึกเหนื่อย แต่ก็จำได้บ้าง ไม่มาก แบบว่าต้องกลับไปอ่านหนังสืออีกที พรุ่งนี้ต้องไปถามเพื่อนแล้วแหละ

ภาษา Python คืออะไร อธิบายโดยย่อ?

Python... งูเหลือมเลื้อยพันรัด

  • ภาษาโปรแกรม ???? เว็บ apps บานตะไท
  • พัฒนาซอฟต์แวร์ก็ใช่ วิทยาศาสตร์ข้อมูลอีกมากมาย
  • แมชชีนเลิร์นนิง ML คือเพื่อนสนิท
  • ฟรี! ดาวน์โหลดเลยจ้ะ ????
  • ทำงานได้ทุกที่ เร็วปรื๋อออ! ????

เรียนง่ายนะเออ... ว่าแต่... ตอนนี้ตีสามแล้วนี่นา แสงจันทร์สาดส่อง ฟุ้งซ่าน...Python ก็เหมือนดวงจันทร์... ส่องแสงนำทางในโลกดิจิทัล ????

STR คืออะไร ไพทอน?

STR ใน Python น่ะเหรอ? ง่ายนิดเดียว! มันคือ String นั่นเอง คิดภาพเป็นสายสร้อยไข่มุก แต่ไข่มุกแต่ละเม็ดคือตัวอักษร ทั้งภาษาไทย ภาษาอังกฤษ หรือสัญลักษณ์ อะไรก็ได้ที่คุณอยากใส่ลงไป! อยากเขียนโค้ดรักๆ หวานๆ ลงไปก็ได้นะ แต่ระวังพิมพ์ผิด อาจจะกลายเป็นคำสาปแทนก็ได้นะ!

  • String (str): ข้อมูลชนิดข้อความ เก็บได้ทุกอย่างตั้งแต่ "Hello, world!" ไปจนถึง "ฉันรักPythonมากกว่าSQL!!"(อันนี้ความเห็นส่วนตัวนะ!)

ส่วนพวก int, bool, float นี่... บอกเลยว่าเป็นเพื่อนซี้ของ String แต่คนละประเภทกันนะจ๊ะ!

  • Integer (int): จำนวนเต็ม อย่าง 1, 2, 100, 1000 คิดภาพเป็นถุงขนม แต่ละถุงมีขนมจำนวนเต็มๆ ไม่มีเศษ! อยากได้ 1.5 ถุงไม่ได้นะ

  • Boolean (bool): มีแค่ True หรือ False เท่านั้น! เหมือนไฟเปิด-ปิด ง่ายๆ ตรงไปตรงมา

  • Float (float): จำนวนทศนิยม อย่าง 3.14, 2.718 คิดภาพเป็นชิ้นพิซซ่า แบ่งได้เป็นทศนิยม ไม่ต้องแบ่งเป็นชิ้นๆ เป๊ะๆ

สรุปง่ายๆ เลยนะ ถ้าอยากเก็บข้อความ ใช้ str อยากเก็บตัวเลข ใช้ int กับ float ส่วน bool ไว้ตัดสินใจ ใช่หรือไม่ใช่ เท่านั้นเอง! ง่ายกว่าไปทะเลาะกับเพื่อนเรื่องแบ่งขนมอีกนะ! (ประสบการณ์ตรงของผมเลยล่ะ!)

Data structure Python มีอะไรบ้าง?

โครงสร้างข้อมูล Python เนี่ยนะ ที่ใช้กันบ่อยๆ มีหลายแบบเลยครับ เลือกใช้ให้เหมาะกับงาน แต่ละอันก็มีข้อดีข้อเสียต่างกันไป

  • String: ข้อความยาวๆ ที่เอาไว้เก็บชื่อ เก็บอะไรที่เป็นตัวอักษร อันนี้พื้นฐานสุดๆ แต่การจัดการข้อความนี่บางทีก็ซับซ้อนกว่าที่คิดนะ
  • Numerical: ตัวเลขไง มี integer (จำนวนเต็ม), float (ทศนิยม) แล้วก็ complex (จำนวนเชิงซ้อน) Python นี่ฉลาดเรื่องตัวเลขอยู่แล้ว แต่ต้องระวังเรื่องความละเอียดในการคำนวณนิดนึง
  • Boolean: True กับ False ง่ายๆ แต่สำคัญมากในการเขียนโปรแกรม เพราะเป็นตัวตัดสินใจว่าจะทำอะไรต่อ
  • List: อันนี้เหมือนกล่องสารพัดประโยชน์ ใส่ของได้หลายอย่าง แก้ไขได้ เปลี่ยนลำดับได้ ใช้บ่อยสุดๆ
  • Tuple: คล้ายๆ list แต่แก้ไขไม่ได้ สร้างมาแล้วสร้างเลย อันนี้เหมาะกับข้อมูลที่ไม่ต้องการให้ใครมาเปลี่ยน
  • Dictionary: เหมือนสมุดหน้าเหลือง มี key กับ value เอาไว้เก็บข้อมูลแบบคู่ๆ ค้นหาข้อมูลได้เร็ว แต่ต้องระวังเรื่อง key ต้องไม่ซ้ำกัน
  • Set: เก็บข้อมูลแบบไม่ซ้ำกัน ถ้ามีข้อมูลซ้ำ มันจะเอาออกให้เอง ใช้บ่อยในการหาความแตกต่างของข้อมูล

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

เกร็ดเล็กน้อย:

  • List กับ Tuple นี่เป็น iterable object คือวน loop ได้สะดวกมาก
  • Dictionary นี่สำคัญมากในการทำ web development เพราะ JSON ที่ใช้รับส่งข้อมูลกัน ก็มีโครงสร้างคล้ายๆ dictionary เลย
  • Set นี่จริงๆ แล้วมี operation หลายอย่างที่น่าสนใจ เช่น intersection, union, difference เอาไว้จัดการข้อมูลได้เยอะเลย

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

ฟังก์ชัน float() ในภาษา Python คืออะไร?

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

ตอนนั้นใช้มันแปลงเวลาจาก string "14:30" ให้เป็นตัวเลขทศนิยม เพื่อคำนวณระยะเวลา โค้ดประมาณนี้แหละ จำไม่ค่อยได้เป๊ะๆแล้วนะ แต่หลักๆคือแบบนี้

time_str = "14:30" hours, minutes = map(float, time_str.split(':')) total_minutes = hours * 60 + minutes print(total_minutes) # ผลลัพธ์จะเป็น 870.0
  • ปัญหา: โค้ด error เพราะใช้ string ในการคำนวณโดยตรง
  • วิธีแก้: ใช้ float() แปลง string เป็น float ก่อนคำนวณ
  • ความรู้สึก: ตอนนั้นเซ็งมาก นั่งงมอยู่เป็นชั่วโมง แต่พอแก้ได้ก็รู้สึกโล่ง และได้บทเรียนสำคัญเลยแหละ เรื่องการตรวจสอบชนิดข้อมูลนี่สำคัญมาก

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

เอาจริงๆนะ ถ้าไม่เจอปัญหานั้น ก็คงไม่จำวิธีใช้ float() ได้ละเอียดขนาดนี้ ตอนนี้ก็จำได้แม่น เพราะมันเป็นบทเรียนราคาแพง ใช้เวลาไปเยอะเลย กับ bug เล็กๆแบบนี้ 555