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

คู่มือสำหรับผู้เริ่มต้นใช้งาน 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
  • วันและเวลา
    • เวลาทูเปิล
    • โมดูลเวลา
    • โมดูลปฏิทิน
  • ฟังก์ชั่น
    • วิธีการกำหนดฟังก์ชัน
    • เรียกฟังก์ชัน
    • ผ่านโดยการอ้างอิง
    • ผ่านค่า
    • อาร์กิวเมนต์ของฟังก์ชัน
    • อาร์กิวเมนต์ความยาวผันแปร
    • อาร์กิวเมนต์ที่จำเป็น
    • อาร์กิวเมนต์เริ่มต้น
    • อาร์กิวเมนต์ของคีย์เวิร์ด
    • ฟังก์ชั่นนิรนาม
  • โมดูล
    • ใบแจ้งยอดการนำเข้า
    • คำสั่งจากการนำเข้า
    • จากการนำเข้า * Statement
    • ค้นหาโมดูล
    • locals() และ globals() ฟังก์ชั่น
    • เนมสเปซและการกำหนดขอบเขต
    • dir( ) ฟังก์ชัน
    • ฟังก์ชันรีโหลด()
  • ไฟล์ I / O
  • ข้อยกเว้น
  • ชั้นเรียนและวัตถุ
    • การสร้างคลาส
    • คลาส 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
  • การจัดการเรขาคณิต
  • บทความแนะนำ

ไฟล์ I / O

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

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

การเปิดไฟล์

Python มีฟังก์ชัน open() ที่ยอมรับสองอาร์กิวเมนต์ โหมดการเข้าถึง และชื่อไฟล์ที่เข้าถึงไฟล์ ฟังก์ชันจะส่งคืนวัตถุไฟล์ที่สามารถดำเนินการต่างๆ เช่น การอ่าน การเขียน ฯลฯ

ใช่ไม่ใช่ โหมดการเข้าถึง คำอธิบาย
หนึ่ง r มันเปิดไฟล์สำหรับโหมดอ่านอย่างเดียว ตัวชี้ไฟล์อยู่ที่จุดเริ่มต้น หากไม่ผ่านโหมดการเข้าถึง ไฟล์เป็นค่าเริ่มต้น open ในโหมดนี้
สอง rb มันเปิดไฟล์สำหรับอ่านอย่างเดียวในรูปแบบไบนารี ตัวชี้ไฟล์อยู่ที่จุดเริ่มต้น
3 r+ มันเปิดไฟล์สำหรับทั้งอ่านและเขียน ตัวชี้ไฟล์อยู่ที่จุดเริ่มต้น
4 rb+ มันเปิดไฟล์สำหรับทั้งอ่านและเขียนในรูปแบบไบนารี ตัวชี้ไฟล์อยู่ที่จุดเริ่มต้น
5 ใน มันเปิดไฟล์เพื่อเขียนเท่านั้น มันเขียนทับไฟล์หรือสร้างใหม่หากไม่มีไฟล์ที่มีชื่อเดียวกัน ตัวชี้ไฟล์อยู่ที่จุดเริ่มต้น
6 wb มันเปิดไฟล์สำหรับเขียนเฉพาะในรูปแบบไบนารี มันเขียนทับไฟล์หรือสร้างไฟล์ใหม่หากไม่มีไฟล์อยู่ ตัวชี้ไฟล์อยู่ที่จุดเริ่มต้น
7 ใน + มันเปิดไฟล์สำหรับทั้งเขียนและอ่าน มันเขียนทับไฟล์ก่อนหน้าหรือสร้างไฟล์ใหม่หากไม่มีไฟล์อยู่ ตัวชี้ไฟล์อยู่ที่จุดเริ่มต้น
8 wb+ มันเปิดไฟล์สำหรับทั้งเขียนและอ่านในรูปแบบไบนารี ตัวชี้ไฟล์อยู่ที่จุดเริ่มต้น
9 ถึง มันเปิดไฟล์สำหรับการต่อท้าย ตัวชี้ไฟล์อยู่ที่ส่วนท้ายของไฟล์ หากไม่มีไฟล์ ไฟล์นั้นจะสร้างไฟล์ใหม่สำหรับเขียน
10 ห่างออกไป จะเปิดไฟล์สำหรับการต่อท้ายในรูปแบบไบนารี ตัวชี้ไฟล์อยู่ที่ส่วนท้ายของไฟล์ หากไม่มีไฟล์ ไฟล์นั้นจะสร้างไฟล์ใหม่สำหรับเขียน
สิบเอ็ด a+ มันเปิดไฟล์สำหรับการต่อท้ายและการอ่าน ตัวชี้ไฟล์อยู่ที่ส่วนท้ายของไฟล์ หากไม่มีไฟล์ ไฟล์จะสร้างไฟล์ใหม่สำหรับเขียนและอ่าน
12 ab+ มันเปิดไฟล์สำหรับอ่านและต่อท้ายในรูปแบบไบนารี ตัวชี้ไฟล์อยู่ที่ส่วนท้ายของไฟล์ หากไม่มีไฟล์ก็จะสร้างไฟล์ใหม่สำหรับอ่านและเขียน
img 617dd2714c751

ผลลัพธ์

img 617dd2719c731

คุณสมบัติของวัตถุไฟล์

ใช่ไม่ใช่ คุณลักษณะ คำอธิบาย
หนึ่ง file.closed คืนค่า จริง หากไฟล์ถูกปิด มิฉะนั้นเท็จ
สอง ชื่อไฟล์ มันส่งกลับชื่อของไฟล์
3 file.mode ส่งคืนโหมดการเข้าถึงซึ่งเปิดไฟล์
4 file.softspace คืนค่าเท็จหากจำเป็นต้องใช้พื้นที่ในการพิมพ์ อย่างอื่นจริง.

การปิดไฟล์

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

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

SYNTAX

|_+_|

พร้อมถ้อยแถลง

คำสั่ง with จะใช้เมื่อต้องดำเนินการคู่ของคำสั่งโดยมีบล็อกของรหัสอยู่ระหว่างนั้น

ข้อดีของคำสั่ง with คือช่วยให้ปิดไฟล์ได้โดยไม่คำนึงว่าบล็อกที่ซ้อนกันจะออก

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

SYNTAX

|_+_|

วิธีการเขียน

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

SYNTAX

|_+_|

วิธีการอ่าน

เมธอด read() อ่านสตริงจากไฟล์ที่เปิดอยู่ จำเป็นอย่างยิ่งที่สตริง Python สามารถมีข้อมูลไบนารีนอกเหนือจากข้อมูลข้อความ

SYNTAX

|_+_|

เปลี่ยนชื่อ() method

วิธีการเปลี่ยนชื่อ () ใช้สองอาร์กิวเมนต์ ชื่อไฟล์ใหม่และชื่อไฟล์ปัจจุบัน

SYNTAX

|_+_|

วิธีการลบ ()

วิธีการลบ () ลบไฟล์โดยระบุชื่อไฟล์ที่จะลบเป็นอาร์กิวเมนต์

SYNTAX

|_+_|

ตำแหน่งไฟล์

  • วิธี tell() จะบอกคุณเกี่ยวกับตำแหน่งปัจจุบันภายในไฟล์
  • ค้นหา (offset[, จาก]) วิธีการเปลี่ยนตำแหน่งของไฟล์ปัจจุบัน อาร์กิวเมนต์ออฟเซ็ตแสดงถึงจำนวนไบต์ที่จำเป็นในการย้าย

ข้อยกเว้น

ข้อยกเว้นคืออะไร?

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

การจัดการข้อยกเว้น

หากคุณมีบ้าง สงสัย รหัสที่อาจทำให้เกิดข้อยกเว้น คุณสามารถปกป้องโปรแกรมของคุณโดยวางรหัสที่น่าสงสัยในบล็อก try: หลังจากลอง: บล็อก ให้ใส่คำสั่งยกเว้น ตามด้วยบล็อกของโค้ดที่จัดการกับปัญหาอย่างหรูหราที่สุด

SYNTAX

|_+_| img 617dd2722b717

ผลลัพธ์

ทำให้เกิดข้อยกเว้น

คุณสามารถยกข้อยกเว้นได้หลายวิธีโดยใช้คำสั่งยก

SYNTAX

|_+_|

รายการข้อยกเว้นมาตรฐาน

ใช่ไม่ใช่ ชื่อข้อยกเว้น คำอธิบาย
หนึ่ง มาตรฐานบกพร่อง คลาสพื้นฐานสำหรับข้อยกเว้นในตัวทั้งหมด ยกเว้น StopIteration และ SystemExit
สอง ออกจากระบบ มันถูกยกขึ้นโดยฟังก์ชัน sys.exit()
3 StopIteration มันถูกยกขึ้นเมื่อเมธอด next() ของ iterator ไม่ชี้ไปที่อ็อบเจกต์ใดๆ
4 ข้อยกเว้น เป็นคลาสพื้นฐานสำหรับข้อยกเว้นทั้งหมด
5 OverflowError จะเพิ่มขึ้นเมื่อการคำนวณเกินขีดจำกัดสูงสุดสำหรับประเภทตัวเลข
6 ข้อผิดพลาดทางคณิตศาสตร์ เป็นคลาสพื้นฐานสำหรับข้อผิดพลาดทั้งหมดที่เกิดขึ้นสำหรับการคำนวณตัวเลข
7 ZeroDivisionError จะเพิ่มขึ้นเมื่อมีการหารหรือโมดูโลด้วยศูนย์สำหรับตัวเลขทุกประเภท
8 FloatingPointError จะเพิ่มขึ้นเมื่อการคำนวณจุดลอยตัวล้มเหลว
9 ข้อผิดพลาดแอตทริบิวต์ จะเพิ่มขึ้นในกรณีที่การอ้างอิงแอตทริบิวต์ล้มเหลว
10 ยืนยันข้อผิดพลาด มันถูกยกขึ้นในกรณีที่ความล้มเหลวของคำสั่งยืนยัน
สิบเอ็ด EOFError จะเพิ่มขึ้นเมื่อไม่มีอินพุตจากฟังก์ชัน raw_input() หรืออินพุต () และคุณถึงจุดสิ้นสุดของไฟล์แล้ว
12 ImportError จะเพิ่มขึ้นเมื่อคำสั่งนำเข้าล้มเหลว
13 ค้นหาข้อผิดพลาด เป็นคลาสพื้นฐานสำหรับข้อผิดพลาดในการค้นหาทั้งหมด
14 แป้นพิมพ์ขัดจังหวะ จะเพิ่มขึ้นเมื่อผู้ใช้ขัดจังหวะการทำงานของโปรแกรม โดยการกด Ctrl+c
สิบห้า ข้อผิดพลาดที่สำคัญ มันถูกยกขึ้นเมื่อไม่พบคีย์ในพจนานุกรม
16 ดัชนีข้อผิดพลาด จะเพิ่มขึ้นเมื่อไม่พบดัชนีในลำดับ
17 ข้อผิดพลาดด้านสิ่งแวดล้อม เป็นคลาสพื้นฐานสำหรับข้อยกเว้นทั้งหมดที่เกิดขึ้นนอกสภาพแวดล้อมของหลาม
18 UnboundLocalError จะเพิ่มขึ้นเมื่อคุณพยายามเข้าถึงตัวแปรท้องถิ่นในฟังก์ชันหรือวิธีการ แต่ไม่มีการกำหนดค่าให้กับตัวแปรนั้น
19 ชื่อผิดพลาด จะเพิ่มขึ้นเมื่อไม่พบตัวระบุในเนมสเปซส่วนกลางหรือส่วนกลางในเครื่อง
ยี่สิบ ออกจากระบบ จะเพิ่มขึ้นเมื่อคุณออกจากล่ามหลามโดยใช้ฟังก์ชัน sys.exit() หากรหัสไม่ได้รับการจัดการทำให้ล่ามออก
ยี่สิบเอ็ด ข้อผิดพลาดทางไวยากรณ์ มันถูกยกขึ้นเมื่อมีข้อผิดพลาดในไวยากรณ์หลาม
22 IOError มันถูกยกขึ้นสำหรับข้อผิดพลาดเกี่ยวกับระบบปฏิบัติการ
23 ระบบผิดพลาด
มันถูกยกขึ้นเมื่อล่ามพบปัญหาภายใน แต่เมื่อพบข้อผิดพลาด ล่าม python จะไม่มีอยู่จริง
24 IndentationError มันถูกยกขึ้นเมื่อไม่ได้ระบุการเยื้องอย่างถูกต้อง
25 ประเภทข้อผิดพลาด จะเพิ่มขึ้นเมื่อมีการพยายามดำเนินการและไม่ถูกต้องสำหรับชนิดข้อมูลที่ระบุ
26 ValueError จะเพิ่มขึ้นเมื่อฟังก์ชันในตัวสำหรับชนิดข้อมูลมีชนิดของอาร์กิวเมนต์ที่ถูกต้อง แต่อาร์กิวเมนต์มีค่าที่ไม่ถูกต้องระบุไว้
27 ไม่ได้นำไปใช้ข้อผิดพลาด มันถูกยกขึ้นเมื่อวิธีการเชิงนามธรรมที่จะนำไปใช้ในคลาสที่สืบทอดมานั้นไม่ได้ถูกนำไปใช้จริง
28 การทำงานผิดพลาด เกิดขึ้นเมื่อข้อผิดพลาดไม่จัดอยู่ในหมวดหมู่ใดๆ

ผู้ใช้กำหนดข้อยกเว้น

Python อนุญาตให้คุณสร้างข้อยกเว้นโดยรับคลาสจากข้อยกเว้นในตัว

สิ่งนี้มีประโยชน์เมื่อคุณต้องแสดงข้อมูลที่แม่นยำยิ่งขึ้นเมื่อตรวจพบข้อยกเว้น

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

การยืนยันใน Python

การยืนยันคือการตรวจสอบสติว่าคุณสามารถเปิดหรือปิดได้เมื่อเสร็จสิ้นการทดสอบโปรแกรมของคุณ

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

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

SYNTAX

|_+_|