หน้าแรก
หน้าแรก
สมมติว่าเรามีสตริง S เราต้องหาสตริงย่อยพาลินโดรมที่ยาวที่สุดใน S เราถือว่าความยาวของสตริง S คือ 1,000 ดังนั้นหากสตริงคือ “BABAC” จากนั้นสตริงย่อยพาลินโดรมที่ยาวที่สุดคือ “BAB” เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ กำหนดหนึ่งตารางเมทริกซ์ของลำดับเดียวกับความยาวของสตริง และเติมด้วย เท็จ ตั้งค่า
ข้อยกเว้นอาจมีอาร์กิวเมนต์ ซึ่งเป็นค่าที่ให้ข้อมูลเพิ่มเติมเกี่ยวกับปัญหา เนื้อหาของอาร์กิวเมนต์แตกต่างกันไปตามข้อยกเว้น คุณจับอาร์กิวเมนต์ของข้อยกเว้นโดยการจัดหาตัวแปรในข้อยกเว้นดังนี้ - try: You do your operations here; ...................... except ExceptionType, Argumen
คุณสามารถยกข้อยกเว้นได้หลายวิธีโดยใช้คำสั่งยก ไวยากรณ์ทั่วไปสำหรับคำสั่งเพิ่มมีดังนี้ ไวยากรณ์ raise [Exception [, args [, traceback]]] ในที่นี้ ข้อยกเว้นคือประเภทของข้อยกเว้น (เช่น NameError) และอาร์กิวเมนต์คือค่าสำหรับอาร์กิวเมนต์ข้อยกเว้น อาร์กิวเมนต์เป็นทางเลือก หากไม่ระบุ อาร์กิวเมนต์ข้อยกเว้น
Python ยังอนุญาตให้คุณสร้างข้อยกเว้นของคุณเองโดยรับคลาสจากข้อยกเว้นในตัวมาตรฐาน นี่คือตัวอย่างที่เกี่ยวข้องกับ RuntimeError ที่นี่ คลาสถูกสร้างขึ้นที่คลาสย่อยจาก RuntimeError สิ่งนี้มีประโยชน์เมื่อคุณต้องการแสดงข้อมูลที่เฉพาะเจาะจงมากขึ้นเมื่อตรวจพบข้อยกเว้น ในบล็อกการลอง ข้อยกเว้นที่ผู้ใช้กำหนดขึ
คลาส − ต้นแบบที่ผู้ใช้กำหนดสำหรับออบเจ็กต์ที่กำหนดชุดของคุณลักษณะที่กำหนดคุณลักษณะของออบเจกต์ใดๆ ของคลาส แอตทริบิวต์เป็นสมาชิกข้อมูล (ตัวแปรคลาสและตัวแปรอินสแตนซ์) และเมธอดที่เข้าถึงได้โดยใช้เครื่องหมายจุด ตัวแปรคลาส − ตัวแปรที่ใช้ร่วมกันโดยอินสแตนซ์ทั้งหมดของคลาส ตัวแปรคลาสถูกกำหนดไว้ภายในคลาส แต่อ
คลาส คำสั่งสร้างนิยามคลาสใหม่ ชื่อของคลาสตามหลังคลาสของคีย์เวิร์ดทันทีตามด้วยโคลอนดังนี้ − class ClassName: 'Optional class documentation string' class_suite ชั้นเรียนมีสตริงเอกสาร ซึ่งสามารถเข้าถึงได้ผ่าน ClassName.__doc__ class_suite ประกอบด้วยคำสั่งส่วนประกอบที่กำหนดสมาชิกของคลาส คุณลักษ
ในการสร้างอินสแตนซ์ของคลาส คุณเรียกคลาสโดยใช้ชื่อคลาสและส่งผ่านอาร์กิวเมนต์ที่เมธอด __init__ ยอมรับได้ "This would create first object of Employee class" emp1 = Employee("Zara", 2000) "This would create second object of Employee class" emp2 = Employee("Manni",
ทุกคลาสของ Python จะติดตามแอตทริบิวต์ที่มีอยู่แล้วภายในและสามารถเข้าถึงได้โดยใช้ตัวดำเนินการ dot เช่นเดียวกับแอตทริบิวต์อื่น ๆ - __dict__ − พจนานุกรมที่มีเนมสเปซของคลาส __doc__ − สตริงเอกสารคลาสหรือไม่มี หากไม่ได้กำหนดไว้ __name__ − ชื่อคลาส __module__ − ชื่อโมดูลที่กำหนดคลาส แอตทริบิวต์นี้คือ __ma
Python ลบวัตถุที่ไม่จำเป็น (ประเภทในตัวหรืออินสแตนซ์ของคลาส) โดยอัตโนมัติเพื่อเพิ่มพื้นที่หน่วยความจำ กระบวนการที่ Python เรียกคืนบล็อกของหน่วยความจำที่ไม่ได้ใช้อีกต่อไปเป็นระยะนั้นเรียกว่า Garbage Collection ตัวรวบรวมขยะของ Python ทำงานระหว่างการทำงานของโปรแกรมและถูกทริกเกอร์เมื่อจำนวนการอ้างอิงขอ
แทนที่จะเริ่มต้นจากศูนย์ คุณสามารถสร้างคลาสโดยรับมาจากคลาสที่มีอยู่ก่อนโดยระบุคลาสหลักในวงเล็บหลังชื่อคลาสใหม่ คลาสลูกสืบทอดแอตทริบิวต์ของคลาสพาเรนต์ และคุณสามารถใช้แอตทริบิวต์เหล่านั้นได้เหมือนกับว่าถูกกำหนดไว้ในคลาสย่อย คลาสย่อยยังสามารถแทนที่สมาชิกข้อมูลและวิธีการจากพาเรนต์ได้ ไวยากรณ์ คลาสที่ไ
คุณสามารถแทนที่เมธอดคลาสพาเรนต์ของคุณได้เสมอ เหตุผลหนึ่งสำหรับการแทนที่เมธอดของพาเรนต์ก็เพราะคุณอาจต้องการฟังก์ชันพิเศษหรือฟังก์ชันอื่นในคลาสย่อยของคุณ ตัวอย่าง #!/usr/bin/python class Parent: # define parent class def myMethod(self): print 'Calling parent metho
ตารางต่อไปนี้แสดงรายการฟังก์ชันทั่วไปบางอย่างที่คุณสามารถแทนที่ได้ในคลาสของคุณเอง - Sr.No. วิธีการ คำอธิบาย &ตัวอย่างการโทร 1 __init__ ( self [,args...] ) ตัวสร้าง (พร้อมอาร์กิวเมนต์ที่เป็นตัวเลือก) ตัวอย่างการโทร:obj =className(args) 2 __del__( self ) Destructor ลบวัตถุ ตัวอย่างการโทร :del
สมมติว่าคุณได้สร้างคลาส Vector เพื่อเป็นตัวแทนของเวกเตอร์สองมิติ จะเกิดอะไรขึ้นเมื่อคุณใช้ตัวดำเนินการ plus เพื่อเพิ่มพวกมัน เป็นไปได้มากที่ Python จะตะโกนใส่คุณ อย่างไรก็ตาม คุณสามารถกำหนดเมธอด __add__ ในคลาสของคุณเพื่อทำการบวกเวกเตอร์ จากนั้นโอเปอเรเตอร์บวกจะทำงานตามที่คาดไว้ - ตัวอย่าง #!/usr/bi
แอตทริบิวต์ของวัตถุอาจมองเห็นหรือไม่ปรากฏภายนอกคำจำกัดความของคลาส คุณต้องตั้งชื่อแอตทริบิวต์ด้วยเครื่องหมายขีดล่างคู่ จากนั้นแอตทริบิวต์เหล่านั้นจะไม่ปรากฏแก่บุคคลภายนอกโดยตรง ตัวอย่าง #!/usr/bin/python class JustCounter: __secretCount = 0 def count(self): &nb
ฟังก์ชันนี้พยายามจับคู่รูปแบบ RE กับสตริงด้วยแฟล็กทางเลือก ไวยากรณ์ นี่คือไวยากรณ์ของฟังก์ชันนี้ - re.match(pattern, string, flags=0) นี่คือคำอธิบายของพารามิเตอร์ - ซีเนียร์ พารามิเตอร์ &คำอธิบาย 1 ลวดลาย นี่คือนิพจน์ทั่วไปที่จะจับคู่ 2 สตริง นี่คือสตริงที่จะค้นหาเพื่อให้ตรงกับรูปแบบที่จุดเ
ฟังก์ชันนี้จะค้นหารูปแบบ RE ที่เกิดขึ้นครั้งแรกภายในสตริงด้วยแฟล็กทางเลือก ไวยากรณ์ นี่คือไวยากรณ์ของฟังก์ชันนี้ - re.search(pattern, string, flags=0) นี่คือคำอธิบายของพารามิเตอร์ - ซีเนียร์ พารามิเตอร์ &คำอธิบาย 1 ลวดลาย นี่คือนิพจน์ทั่วไปที่จะจับคู่ 2 สตริง นี่คือสตริงที่จะค้นหาเพื่อให้ตร
Python เสนอการดำเนินการพื้นฐานสองแบบที่แตกต่างกันตามนิพจน์ทั่วไป:จับคู่ ตรวจสอบการจับคู่ที่จุดเริ่มต้นของสตริงเท่านั้น ในขณะที่ ค้นหา ตรวจสอบการจับคู่ที่ใดก็ได้ในสตริง (นี่คือสิ่งที่ Perl ทำโดยค่าเริ่มต้น) ตัวอย่าง #!/usr/bin/python import re line = "Cats are smarter than dogs"; matchObj =
วิธีที่สำคัญที่สุดวิธีหนึ่งที่ใช้นิพจน์ทั่วไปคือ ย่อย . ไวยากรณ์ re.sub(pattern, repl, string, max=0) เมธอดนี้แทนที่รูปแบบ RE รูปแบบในสตริงทั้งหมดด้วย repl , แทนที่การเกิดขึ้นทั้งหมด ยกเว้น สูงสุด ที่ให้ไว้. เมธอดนี้ส่งคืนสตริงที่แก้ไข ตัวอย่าง #!/usr/bin/python import re phone = "2004-959-559
ค่าของนิพจน์ทั่วไปอาจรวมถึงตัวดัดแปลงที่เป็นทางเลือกเพื่อควบคุมลักษณะต่างๆ ของการจับคู่ ตัวดัดแปลงถูกระบุเป็นแฟล็กทางเลือก คุณสามารถจัดเตรียมตัวแก้ไขได้หลายตัวโดยใช้ OR (|) แบบเอกสิทธิ์ดังที่แสดงไว้ก่อนหน้านี้และอาจแสดงโดยหนึ่งในตัวเลือกเหล่านี้ - ซีเนียร์ ตัวแก้ไข &คำอธิบาย 1 re.I ดำเนินการจับคู
ยกเว้นอักขระควบคุม (+ ? . * ^ $ ( ) [ ] { } | \) อักขระทั้งหมดตรงกัน คุณสามารถหลีกเลี่ยงอักขระควบคุมโดยนำหน้าด้วยแบ็กสแลช ตารางต่อไปนี้แสดงรายการไวยากรณ์นิพจน์ทั่วไปที่มีอยู่ใน Python - ซีเนียร์ รูปแบบและคำอธิบาย 1 ^ ตรงกับจุดเริ่มต้นของบรรทัด 2 $ ตรงกับปลายบรรทัด 3 . จับคู่อักขระเดี่ยวใ