Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python
Python
  1. Python vs Ruby: ความเหมือนและความแตกต่าง

    Python และ Ruby เป็นภาษา high-level, object-oriented ที่มีทั้งความคล้ายและต่างกัน มาดูเปรียบเทียบกัน ภาพรวม Python: interpreted, powerful, high-level, OOP, เรียนรู้ง่าย เหมาะสำหรับผู้เริ่มต้น Ruby: dynamic, object-oriented, high-level, ไวยากรณ์ต่างจาก Python แต่ก็เรียนรู้ง่ายเช่นกัน ความคล้ายคลึ

  2. Python: ข้อดีและการประยุกต์ใช้งาน

    Python เป็นภาษาโปรแกรมมิ่งระดับสูง (high-level) ที่เป็น interpreted, object-oriented สร้างโดย Guido van Rossum ถือเป็นหนึ่งในภาษาที่เรียนรู้ง่ายที่สุด ข้อดีของ Python (Advantages) เหมาะสำหรับผู้เริ่มต้น (Beginner-friendly) - ไวยากรณ์อ่านง่าย ใกล้เคียงภาษาอังกฤษ รองรับหลาย Paradigm - เขียนได้ทั้ง p

  3. โปรแกรมพิมพ์ชื่อไฟล์สคริปต์ Python เอง (Script Name)

    ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่พิมพ์ ชื่อไฟล์สคริปต์ Python ที่กำลังรันอยู่ เราสามารถดึงข้อมูลนี้ได้จากโมดูล sys หลักการทำงาน โมดูล sys เก็บอาร์กิวเมนต์บรรทัดคำสั่ง (command line arguments) ไว้ในลิสต์ sys.argv อิลิเมนต์แรก (sys.argv[0]) คือ ชื่อไฟล์สคริปต์ (อาจเป็น relative path) ใช้ os.path.a

  4. Python Coding Style Guide: แนวทางเขียนโค้ดมาตรฐาน PEP 8

    ในบทช่วยสอนนี้ เราจะเรียนรู้ แนวทางเขียนโค้ดมาตรฐาน (Style Guide) ที่ควรปฏิบัติในโปรเจกต์ Python การปฏิบัติตามมาตรฐานจะทำให้โค้ดอ่านง่าย รักษาได้ และดูมืออาชีพ สำหรับ Python มาตรฐานที่นิยมใช้คือ PEP 8 โค้ดจะดูสวยงามและอ่านง่ายขึ้น คุณสามารถอ่านรายการเต็มได้ที่ pep8.org บทความนี้สรุปจุดสำคัญที่ควรทร

  5. Dictionary Comprehension ใน Python: สร้าง Dictionary แบบกระชับและมีประสิทธิภาพ

    ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีใช้ Dictionary Comprehension ใน Python หากคุณคุ้นเคยกับ List Comprehension แล้ว จะเรียนรู้ได้รวดเร็วมาก รูปแบบพื้นฐานของ Dictionary Comprehension {key: value for item in iterable} เราต้องระบุ key และ value จากแต่ละ item ใน iterable มีหลายวิธีในการทำ เรามาดูตัวอย่างที

  6. ตัวแปรส่วนตัว (Private Variables) ในคลาสของ Python

    ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับ ตัวแปรส่วนตัว (private variables) ใน คลาส (classes) ของ Python Python ไม่มีแนวคิด Private Variables โดยตรง Python ไม่มีกลไกการเข้าถึงแบบ private จริงๆ เช่นภาษา Java หรือ C++ แต่ผู้พัฒนาส่วนใหญ่ปฏิบัติตาม ข้อตกลงการตั้งชื่อ (naming convention) เพื่อบ่งชี้ว่า ตัว

  7. ฟังก์ชันลอการิทึม (Log Functions) ใน Python math Module

    โมดูล math ใน Python มีฟังก์ชันลอการิทึม 4 รูปแบบ ครอบคลุมฐานที่ใช้บ่อยทั้งหมด 1. math.log(x, [base]) ลอการิทึมฐานใดก็ได้ (default ฐาน e = natural log) import math print(math.log(15, 7)) # log₇(15) = 1.3917 print(math.log(15)) # ln(15) = 2.7081 # math.log(-15) # ValueError: math domain erro

  8. ใช้ Lambda Expression จัดเรียงลบ-บวกใน Python

    ใช้ Lambda function (Anonymous function) ร่วมกับ List Comprehension จัดเรียงลิสต์ให้ตัวเลขลบอยู่หน้า ตัวเลขบวกและศูนย์อยู่หลัง อัลกอริทึม กรองตัวเลข < 0 (ลบ) กรองตัวเลข ≥ 0 (บวกและศูนย์) รวมลิสต์ทั้งสองด้วย + ตัวอย่างโค้ด Python # เริ่มต้นลิสต์ arr = [3, 4, -2, -10, 23, 20, -44, 1, -23] # Lambd

  9. วิธีตรวจสอบจำนวนเฉพาะ (Prime Number) ใน Python หลายวิธี

    บทความนี้สำรวจ 3 วิธีในการตรวจสอบจำนวนเฉพาะใน Python ตั้งแต่พื้นฐานไปสู่การเพิ่มประสิทธิภาพ วิธีที่ 1: ตรวจสอบทุกตัว (Naive) ตรวจสอบหารได้ทุกตัวจาก 2 ถึง n-1 def is_prime(n): if n <= 1: return False for i in range(2, n): if n % i == 0: return False return Tru

  10. คำนวณดัชนีความเย็นลม (Wind Chill Index) ใน Python

    Wind Chill Index (WCI) หรือ Wind Chill Factor วัดความเย็นที่รู้สึกจริงจากลมและอุณหภูมิ สูตรมาตรฐาน (Celsius, mph): Twc = 13.12 + 0.6215×Ta − 11.37×v0.16 + 0.3965×Ta×v0.16 โดย: Twc = Wind Chill Index (°C) Ta = อุณหภูมิอากาศ (°C) v = ความเร็วลม (mph) ตัวอย่างโค้ด Python import math def wind_chill_

  11. ผลรวมเส้นทางน้อยที่สุด (Minimum Path Sum) ใน Python

    โจทย์: กำหนดเมทริกซ์ m×n หาเส้นทางจากมุมซ้ายบนไปขวาล่าง (เดินขวาหรือลงได้อย่างเดียว) ที่มีผลรวมน้อยที่สุด ตัวอย่าง Matrix: 1 3 1 1 5 1 4 2 1 Output: 7 (เส้นทาง: 1→3→1→1→1) อัลกอริทึม: Dynamic Programming (Bottom-up) คำนวณ last row (เดินขวาเท่านั้น) และ last column (เดินลงเท่านั้น) เติมค่าย้อนกล

  12. ค้นหาในอาร์เรย์หมุนซ้ำ (Search in Rotated Sorted Array II) ใน Python

    โจทย์: อาร์เรย์เรียงเพิ่มแต่หมุนที่จุดไม่ทราบ (อาจมีค่าซ้ำ) ค้นหา target คืน True/False ตัวอย่าง nums = [2,5,6,0,0,1,2], target = 0 Output: True อัลกอริทึม: Modified Binary Search จัดการ duplicate ด้วยการ skip low/high เมื่อ nums[low] == nums[mid] == nums[high] ตัวอย่างโค้ด Python class Solution(

  13. จับพื้นที่ถูกล้อมรอบ (Surrounded Regions) ใน Python

    โจทย์: กำหนดบอร์ด 2D ที่มี X และ O จับพื้นที่ O ที่ถูกล้อมรอบโดย X ทั้ง 4 ด้าน โดยเปลี่ยน O ในพื้นที่นั้นเป็น X ตัวอย่าง Input: X X X X X O O X X X O X X O X X Output: X X X X X X X X X X X X X O X X (เฉพาะ O มุมล่างซ้ายไม่ถูกล้อมรอบ) อัลกอริทึม: Flood Fill จากขอบ DFS/BFS จาก O บนขอบ 4 ด้าน →

  14. หาองค์ประกอบที่ K น้อยที่สุดในเมทริกซ์ที่เรียงแล้ว (Kth Smallest in Sorted Matrix) ใน Python

    โจทย์: กำหนดเมทริกซ์ n×n ที่แถวและคอลัมน์เรียงเพิ่มขึ้น หาองค์ประกอบที่ K น้อยที่สุด (ไม่ใช่ unique) ตัวอย่าง Matrix = [[1,5,9],[10,11,13],[12,13,15]], k = 8 Output: 13 อัลกอริทึม: Binary Search + Count ≤ mid Binary search บนช่วงค่า [min, max] ของเมทริกซ์ สำหรับ mid แต่ละค่า นับจำนวนองค์ประกอบ ≤

  15. หาตัวอักษรที่ดัชนี K ในสตริงถอดรหัส (Decoded String at Index) ใน Python

    โจทย์: กำหนดสตริงเข้ารหัส S (ตัวอักษร = เขียนต่อ, ตัวเลข = ทำซ้ำ tape ทั้งหมด digit-1 ครั้ง) หาตัวอักษรตำแหน่ง K (1-indexed) ในสตริงถอดรหัส ตัวอย่าง S = hello2World3, K = 10 Decoded: hellohelloWorldhellohelloWorldhellohelloWorld Output: o (ตัวที่ 10) อัลกอริทึม: Reverse Traversal + Modulo คำนวณคว

  16. สร้าง Binary Tree จาก Preorder และ Postorder Traversal ใน Python

    โจทย์: กำหนดลำดับ Preorder และ Postorder traversal สร้าง Binary Tree กลับคืนมา ตัวอย่าง Preorder: [1,2,4,5,3,6,7] Postorder: [4,5,2,6,7,3,1] ข้อสังเกต Preorder: Root → Left → Right Postorder: Left → Right → Root Root แรกของ Preorder = Root สุดท้ายของ Postorder Left subtree สิ้นสุดที่ค่าที่ตรงกับ

  17. ค้นหาและแทนที่รูปแบบ (Find and Replace Pattern) ใน Python

    โจทย์: กำหนดลิสต์คำ words และรูปแบบ pattern หาคำที่ match pattern โดยมีการแปลงตัวอักษรแบบ bijection (1-1 mapping) ตัวอย่าง words = [abc,deq,mee,aqq,dkd,ccc], pattern = abb Output: [mee, aqq] (mee: m→a, e→b; aqq: a→a, q→b) ccc ไม่ match เพราะ c→a และ c→b ขัดแย้งกัน อัลกอริทึม: Normalization Pattern

  18. เพิ่มวงเล็บน้อยที่สุดเพื่อให้ถูกต้อง (Minimum Add to Make Parentheses Valid) ใน Python

    โจทย์: กำหนดสตริงวงเล็บ ( และ ) หาจำนวนวงเล็บน้อยที่สุดที่ต้องเพิ่มเพื่อให้ถูกต้อง ตัวอย่าง Input: ()))(( Output: 4 อัลกอริทึม: Stack / Counter ใช้ตัวนับ balance แทนจำนวน ( ที่ยังไม่จับคู่ เจอ ( → balance++ 0 ให้ balance--, ไม่งั้นต้องเพิ่ม ( (ans++) ท้ายสุด ต้องเพิ่ม ) เท่ากับ balance ที่เหลือ

  19. Clumsy Factorial ใน Python

    Clumsy Factorial คือ factorial ที่สลับการดำเนินการ: ×, ÷, +, - ซ้ำกัน โดยยังคงลำดับความสำคัญของการดำเนินการ (×,÷ ก่อน +,-) ตัวอย่าง clumsy(10) = 10 × 9 ÷ 8 + 7 − 6 × 5 ÷ 4 + 3 − 2 × 1 = 12 อัลกอริทึม: Stack Simulation ใช้ stack เก็บตัวเลขที่จะบวก/ลบในท้ายที่สุด × และ ÷ คำนวณทันทีกับ top ของ stack

  20. จำนวนเต็มเล็กที่สุดที่หาร K ลงตัวและประกอบด้วยเลข 1 เท่านั้น ใน Python

    โจทย์: หาจำนวนเต็มบวก N ที่เล็กที่สุดที่หาร K ลงตัว และ N ประกอบด้วยตัวเลข 1 เท่านั้น (1, 11, 111, ...) คืนค่าความยาวของ N หาไม่ได้คืน -1 ตัวอย่าง Input: K = 3 Output: 3 (N = 111) ข้อสังเกตทางคณิตศาสตร์ ถ้า K หาร 2 หรือ 5 ลงตัว → ไม่มีคำตอบ (เพราะ 111...1 เป็นเลขคี่และไม่ลงตัว 5) ใช้ modulo arith

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:139/451  20-คอมพิวเตอร์/Page Goto:1 133 134 135 136 137 138 139 140 141 142 143 144 145