การเขียนโปรแกรม

คู่มือสำหรับผู้เริ่มต้นใช้งาน Ultimate Python

30 ตุลาคม 2564

สารบัญ

  • การตั้งค่าสภาพแวดล้อม
    • การตั้งค่าสภาพแวดล้อมท้องถิ่น
    • วิธีรับ Python
    • วิธีการติดตั้ง Python
    • การติดตั้ง Windows
    • การติดตั้ง Unix/Linux
    • การติดตั้ง MAC
    • การตั้งค่าเส้นทางสำหรับ Python
    • การตั้งค่าพาธสำหรับ Unix/Linux
    • การตั้งค่าพาธสำหรับ Windows
  • ตัวแปรสภาพแวดล้อม Python
    • รัน Python
  • ไวยากรณ์พื้นฐาน
    • ตัวระบุ Python
    • คำสั่งหลาม
    • เยื้องใน Python
    • ความคิดเห็นใน Python
    • รับอินพุต
    • แสดงผลลัพธ์
  • ประเภทตัวแปร
    • การกำหนดค่าให้กับตัวแปร
    • ประเภทข้อมูลหลาม
    • เครื่องสาย
    • ทูเปิลส์
    • รายการ
    • ตัวเลข
  • ตัวดำเนินการพื้นฐาน
    • ผู้ปฏิบัติงานที่ได้รับมอบหมาย
    • ตัวดำเนินการระดับบิต
    • ตัวดำเนินการตรรกะ
    • ตัวดำเนินการเลขคณิต
    • ตัวดำเนินการเปรียบเทียบ
    • ตัวดำเนินการข้อมูลประจำตัว
    • ผู้ประกอบการสมาชิก
  • การตัดสินใจ
    • ถ้าคำสั่ง
    • if-else
    • ซ้อนกัน if
    • If-elif-else-บันได
    • ชวเลข if คำสั่ง
    • คำสั่ง if-else แบบย่อ
  • ลูป
    • ในขณะที่ลูป
    • สำหรับวง
    • ลูปซ้อน
    • คำสั่งควบคุมวง
    • ดำเนินการต่อคำสั่ง
    • คำสั่งหยุด
    • ใบแจ้งยอด
  • ตัวเลข
    • การแปลงประเภทตัวเลข
    • ฟังก์ชันตัวเลขสุ่ม
    • ฟังก์ชันตรีโกณมิติ
    • ฟังก์ชันทางคณิตศาสตร์
  • เครื่องสาย
    • การสร้างสตริง
    • ตัวดำเนินการพิเศษสตริง
    • ตัวดำเนินการจัดรูปแบบสตริง
    • ตัวละครหนี
    • สร้างขึ้นในวิธีการสตริง
  • ทูเปิลส์
    • การเข้าถึงค่าในทูเปิลส์
    • กำลังอัปเดต tuples
    • ตัวดำเนินการทูเพิลพื้นฐาน
    • สร้างขึ้นในฟังก์ชันทูเพิล
    • การจัดทำดัชนีและการแบ่งส่วน
    • การลบทูเพิล
  • รายการ
    • การเข้าถึงค่าในรายการ
    • กำลังอัปเดตรายการ
    • ตัวดำเนินการรายการพื้นฐาน
    • ฟังก์ชันและเมธอดของรายการในตัว
    • การจัดทำดัชนีและการแบ่งส่วน
    • ลบรายการองค์ประกอบ
  • พจนานุกรม
    • การสร้างพจนานุกรม
    • การเพิ่มองค์ประกอบในพจนานุกรม
    • การลบองค์ประกอบออกจากพจนานุกรม
    • วิธีพจนานุกรม Python
  • วันและเวลา
    • เวลาทูเปิล
    • โมดูลเวลา
    • โมดูลปฏิทิน
  • ฟังก์ชั่น
  • โมดูล
  • ไฟล์ I / O
    • การเปิดไฟล์
    • คุณสมบัติของวัตถุไฟล์
    • การปิดไฟล์
    • พร้อมถ้อยแถลง
    • วิธีการเขียน
    • วิธีการอ่าน
    • เปลี่ยนชื่อ() method
    • วิธีการลบ ()
    • ตำแหน่งไฟล์
  • ข้อยกเว้น
    • ข้อยกเว้นคืออะไร?
    • การจัดการข้อยกเว้น
    • ทำให้เกิดข้อยกเว้น
    • รายการข้อยกเว้นมาตรฐาน
    • ผู้ใช้กำหนดข้อยกเว้น
    • การยืนยันใน Python
  • ชั้นเรียนและวัตถุ
    • การสร้างคลาส
    • คลาส Objects
    • การเข้าถึงคุณสมบัติ
    • แอตทริบิวต์คลาสที่สร้างขึ้น
    • เก็บขยะ
    • การสืบทอดคลาส
    • วิธีการเอาชนะ
    • นิพจน์ทั่วไป
    • ฟังก์ชั่นจับคู่
    • ฟังก์ชั่นการค้นหา
    • ตัวแก้ไขนิพจน์ทั่วไป
    • รูปแบบนิพจน์ทั่วไป
    • คลาสตัวละคร
    • กรณีซ้ำ
    • สมอ
  • การเขียนโปรแกรม CGI
    • การท่องเว็บ
    • ส่วนหัว HTTP
    • ตัวแปรสภาพแวดล้อม CGI
    • GET วิธี
    • วิธีโพสต์
    • การใช้คุกกี้ใน CGI
    • มันทำงานอย่างไร?
  • การเข้าถึงฐานข้อมูล MySQL
    • การสร้างตารางฐานข้อมูล
    • INSERT การทำงาน
    • อ่านการดำเนินการ
    • อัพเดทการทำงาน
    • ลบการดำเนินการ
    • การทำธุรกรรม
    • COMMIT Operation
    • การดำเนินการย้อนกลับ
    • ยกเลิกการเชื่อมต่อฐานข้อมูล
    • การจัดการข้อผิดพลาด
  • เครือข่าย
    • ซ็อกเก็ตคืออะไร?
    • โมดูลซ็อกเก็ต
    • โมดูลอินเทอร์เน็ต Python
  • กำลังส่งอีเมล
    • การส่งอีเมล HTML โดยใช้ Python
    • การส่งไฟล์แนบเป็นอีเมล
  • การเขียนโปรแกรมมัลติเธรด
    • ตั้งกระทู้ใหม่
    • โมดูลเกลียว
    • การซิงโครไนซ์เธรด
    • คิวลำดับความสำคัญแบบมัลติเธรด
  • การประมวลผล XML
    • XML คืออะไร?
    • สถาปัตยกรรม XML Parser และ API
    • การแยกวิเคราะห์ XML ด้วย SAX APIs
      • เมธอด make_parser
      • วิธีการแยกวิเคราะห์
      • วิธี parseString
  • การเขียนโปรแกรม GUI
    • วิดเจ็ต Tkinter
  • การจัดการเรขาคณิต
  • บทความแนะนำ

ฟังก์ชั่น

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

Python มีฟังก์ชันในตัว เช่น print() เป็นต้น แต่เราสามารถสร้างฟังก์ชันของคุณได้ ฟังก์ชันเหล่านี้เรียกว่าฟังก์ชันที่ผู้ใช้กำหนดเอง

img 617dd26e8d81f

ผลลัพธ์

img 617dd26ece337

วิธีการกำหนดฟังก์ชัน

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

ไวยากรณ์

|_+_|

เรียกฟังก์ชัน

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

ผ่านโดยการอ้างอิง

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

ผ่านค่า

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

อาร์กิวเมนต์ของฟังก์ชัน

คุณสามารถเรียกใช้ฟังก์ชันได้โดยใช้อาร์กิวเมนต์ที่เป็นทางการเหล่านี้

  • อาร์กิวเมนต์ความยาวผันแปร
  • อาร์กิวเมนต์ที่จำเป็น
  • อาร์กิวเมนต์เริ่มต้น
  • อาร์กิวเมนต์ของคีย์เวิร์ด

อาร์กิวเมนต์ความยาวผันแปร

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

img 617dd26f125c2

ผลลัพธ์

img 617dd26f54165

อาร์กิวเมนต์ที่จำเป็น

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

img 617dd26f8f03f

ผลลัพธ์

img 617dd27001f4b

อาร์กิวเมนต์เริ่มต้น

อาร์กิวเมนต์เริ่มต้นคืออาร์กิวเมนต์ที่ถือว่าค่าเริ่มต้นไม่ว่าจะระบุค่าหรือไม่ในการเรียกใช้ฟังก์ชันสำหรับอาร์กิวเมนต์นั้น

img 617dd2703b6e4

ผลลัพธ์

img 617dd2707158f

อาร์กิวเมนต์ของคีย์เวิร์ด

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

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

img 617dd270b419f

ผลลัพธ์

img 617dd2710a550

ฟังก์ชั่นนิรนาม

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

โมดูล

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

กล่าวอีกนัยหนึ่งโมดูลคือไฟล์ที่ประกอบด้วยรหัส Python โมดูลสามารถกำหนดฟังก์ชัน คลาส และตัวแปรได้ นอกจากนี้ยังสามารถรวมโค้ดที่รันได้

ใบแจ้งยอดการนำเข้า

คุณสามารถใช้ไฟล์ต้นฉบับ Python เป็นโมดูลโดยดำเนินการคำสั่งนำเข้าในไฟล์ต้นฉบับ Python อื่นๆ

SYNTAX

|_+_|

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

คำสั่งจากการนำเข้า

Python from statement ช่วยให้คุณนำเข้าแอตทริบิวต์เฉพาะจากโมดูลไปยังเนมสเปซปัจจุบันได้

SYNTAX

|_+_|

จากการนำเข้า * Statement

เป็นไปได้ที่จะนำเข้าชื่อทั้งหมดจากโมดูลไปยังเนมสเปซปัจจุบัน

SYNTAX

|_+_|

เป็นวิธีที่ง่ายในการนำเข้ารายการจากโมดูลไปยังเนมสเปซปัจจุบัน แม้ว่า ควรใช้คำสั่งนี้เท่าที่จำเป็น

ค้นหาโมดูล

เมื่อคุณนำเข้าโมดูล ล่ามจะค้นหาโมดูลในลำดับเหล่านี้

  • ไดเรกทอรีปัจจุบัน
  • หากไม่มีโมดูล มันจะค้นหาแต่ละไดเร็กทอรีในตัวแปรเชลล์ PYTHONPATH
  • หากไม่สำเร็จ Python จะตรวจสอบพาธเริ่มต้น

โมดูลจะค้นหาพาธที่เก็บไว้ในโมดูลระบบเป็นตัวแปร sys.path ตัวแปร sys.path มีไดเร็กทอรีปัจจุบัน PYTHONPATH และค่าดีฟอลต์ที่ขึ้นกับการติดตั้ง

locals() และ globals() ฟังก์ชั่น

ฟังก์ชัน locals() และ globals() ใช้เพื่อส่งคืนชื่อในเนมสเปซท้องถิ่นและระดับโลกที่ขึ้นอยู่กับตำแหน่งจากตำแหน่งที่ถูกเรียก

ถ้า globals() ถูกเรียกจากภายในฟังก์ชัน มันจะส่งคืนชื่อทั้งหมดที่สามารถเข้าถึงได้ทั่วโลกจากฟังก์ชันนั้น

หาก locals() ถูกเรียกจากภายในฟังก์ชัน มันจะส่งคืนชื่อทั้งหมดที่สามารถเข้าถึงได้จากฟังก์ชันนั้นในเครื่อง

ชนิดส่งคืนของทั้งสองฟังก์ชันคือพจนานุกรม ดังนั้น สามารถแยกชื่อได้โดยใช้ฟังก์ชัน keys()

เนมสเปซและการกำหนดขอบเขต

ตัวแปรคือชื่อที่แมปกับวัตถุ เนมสเปซเป็นพจนานุกรมของชื่อตัวแปรและอ็อบเจ็กต์ที่เกี่ยวข้อง

คำสั่ง Python สามารถเข้าถึงตัวแปรในเนมสเปซท้องถิ่น หากตัวแปร global และ local มีชื่อคล้ายกันในเนมสเปซส่วนกลาง ตัวแปรโลคัลจะแรเงาตัวแปรโกลบอล

แต่ละฟังก์ชันมีเนมสเปซท้องถิ่น เมธอดของคลาสยังใช้กฎการกำหนดขอบเขตเดียวกันกับฟังก์ชันทั่วไปอื่นๆ

ในการกำหนดค่าให้กับตัวแปรส่วนกลาง คุณควรใช้คำสั่งส่วนกลาง

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

dir( ) ฟังก์ชัน

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

ฟังก์ชันรีโหลด()

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

SYNTAX

|_+_|