คอมพิวเตอร์, การเขียนโปรแกรม
Python - มันคืออะไร? ภาษาการเขียนโปรแกรมระดับสูง
งูหลามเป็นระดับสูงภาษาสากลซึ่งสามารถขยายและฝังตัว เขายกตัวอย่างเช่นเป็นชุดของการประยุกต์ใช้เป็นเครื่องมือสำหรับการเขียนแมโครได้ งูหลามทำให้มันเป็นทางเลือกที่เหมาะสมสำหรับงานเขียนโปรแกรมหลายขนาดใหญ่และขนาดเล็กและไม่ได้ดีสำหรับจำนวนเล็ก ๆ ของงานคอมพิวเตอร์
ฉันควรใช้?
งูใหญ่เหมาะสำหรับโครงการที่กำหนดให้การพัฒนาอย่างรวดเร็ว มันสนับสนุนกระบวนทัศน์การเขียนโปรแกรมหลายสิ่งที่ดีสำหรับโปรแกรมที่ต้องมีความยืดหยุ่น และการปรากฏตัวของส่วนใหญ่ของแพคเกจและโมดูลที่มีความยืดหยุ่นและประหยัดเวลา
กุยรถตู้ซัม - สร้างหลามชุมชนที่ได้รับรางวัลกรุณาชื่อของ "เผด็จการใจดีสำหรับชีวิต." ในช่วงปลายปี 1980 กุยชอบคุณสมบัติของบางภาษาการเขียนโปรแกรม แต่ไม่มีของพวกเขามีคุณสมบัติทั้งหมดที่เขาต้องการที่จะมี โดยเฉพาะอย่างยิ่งภาษาที่จะต้องมีลักษณะดังต่อไปนี้
สคริปต์ภาษา
สคริปต์ที่เป็นโปรแกรมที่รันโปรแกรมอื่น ๆ ภาษาสคริปต์ที่เหมาะสำหรับการพัฒนาอย่างรวดเร็วและสร้างต้นแบบเพราะพวกเขารับมือได้ดีกับการถ่ายโอนข้อมูลจากองค์ประกอบหนึ่งไปยังอีกและบรรเทาโปรแกรมเมอร์จากสิ่งที่ลำบากเหล่านี้เช่นการจัดการหน่วยความจำ
ชุมชนผู้ใช้ชอบเรียกงูหลามภาษาการเขียนโปรแกรมแบบไดนามิก
เยื้องสำหรับการจัดกลุ่มของผู้ประกอบการ
งูหลามกำหนดนิพจน์ที่อยู่ในกลุ่มเดียวกันด้วยความช่วยเหลือของช่องว่างภายใน กลุ่มดังกล่าวเรียกว่าการป้องกันรหัส ในภาษาอื่น ๆ จะใช้ไวยากรณ์ที่แตกต่างกันหรือเครื่องหมายวรรคตอน ยกตัวอย่างเช่นสัญลักษณ์ C หมายถึงสัญลักษณ์เริ่มต้นและ {} - ท้ายของคำแนะนำลำดับ การปรากฏตัวของการเยื้องถือว่าการปฏิบัติที่ดีในภาษาอื่น ๆ แต่อย่างใดอย่างหนึ่งเป็นครั้งแรกที่การปฏิบัติของกำลังการเยื้องที่มีให้เป็นงูหลาม สิ่งที่ให้? เยื้องทำให้รหัสของคุณให้อ่านง่ายขึ้นและต้องใช้น้อยบล็อกรหัสการกำหนดจุดเริ่มต้นและจุดสิ้นสุดของพวกเขาและเครื่องหมายวรรคตอนซึ่งสามารถถูกมองข้ามโดยไม่ได้ตั้งใจ ทั้งหมดนี้นำไปสู่ความผิดพลาดน้อยลง
ประเภทของข้อมูลในระดับสูง
คอมพิวเตอร์เก็บข้อมูลในหน่วยและศูนย์ แต่คนจะต้องมีรูปแบบที่ซับซ้อนมากขึ้นเช่นข้อความ เกี่ยวกับภาษาที่สนับสนุนข้อมูลที่ซับซ้อนบอกว่ามันรองรับประเภทของข้อมูลในระดับสูง ประเภทของข้อมูลเหล่านี้เป็นงานที่ง่าย ยกตัวอย่างเช่นในบรรทัดหลามสามารถแยกรวมแปลในกรณีบนหรือล่างที่พวกเขาสามารถค้นหาและ t. D. ระดับสูงชนิดข้อมูลเช่นรายการและพจนานุกรมซึ่งสามารถจัดเก็บและข้อมูลอื่น ๆ ที่มีการทำงานมากขึ้น กว่าภาษาอื่น ๆ
ขยาย
การเขียนโปรแกรมภาษา Extensible สามารถเพิ่ม ภาษาเหล่านี้มีประสิทธิภาพมากเพราะเพิ่มเติมทำให้พวกเขาเหมาะสำหรับความหลากหลายของการใช้งานและระบบปฏิบัติการ ส่วนต่อขยายที่สามารถเพิ่ม ชนิดข้อมูล หรือแนวคิดโมดูลและปลั๊กอิน ภาษา Python จะขยายตัวในหลายวิธี กลุ่มหลักของโปรแกรมเมอร์ที่ทำงานเกี่ยวกับมันเปลี่ยนแปลงและการปรับปรุงและร้อยโมดูลอื่น ๆ ที่เขียนขึ้นสำหรับวัตถุประสงค์เฉพาะ
การตีความ
แปลภาษาจะดำเนินการโดยตรงจากซอร์สโค้ดที่เขียนโดยมนุษย์และโปรแกรมที่เขียนในภาษาเรียบเรียงเช่น C ++ จะต้องได้รับการแปลเป็นรหัสเครื่อง แปลภาษาจะช้าเนื่องจากการแปลที่เกิดขึ้นในทันที แต่การเขียนและการแก้จุดบกพร่องโปรแกรมได้เร็วขึ้นเพราะมีไม่จำเป็นต้องรอให้เสร็จสิ้นการคอมไพเลอร์ พวกเขาจะง่ายต่อการพกพาไปยังแพลตฟอร์มที่แตกต่าง
หนึ่งสามารถยืนยันเกี่ยวกับว่างูหลามตีความหรือรวบรวมภาษา ถึงแม้ว่าในหลายวิธีที่เขาทำงานเป็นผู้ตีความก่อนที่จะดำเนินรหัสจะรวบรวม (เช่นใน Java) และอีกหลายส่วนประกอบที่มีการทำงานที่ความเร็วเต็มรูปแบบของเครื่องตามที่เขียนไว้ใน C.
กุยเริ่มเขียนหลามช่วงวันหยุดคริสต์มาสในปี 1989 และในปีถัดไปเขาเสร็จภาษาตามความคิดเห็นของเพื่อนร่วมงานของพวกเขา ประชาชนทั่วไปเห็นผลในเดือนกุมภาพันธ์ปี 1991 เมื่อเขาถูกวางไว้ในหนึ่งใน Usenet ข่าวสาร
งูใหญ่สำหรับผู้เริ่มต้น
เพื่อที่จะเริ่มต้นการเขียนโปรแกรมในหลามคุณจำเป็นต้องติดตั้ง ในรุ่นของงูหลาม 2.7 และ Python 3.5 มีความแตกต่างอย่างมีนัยสำคัญเนื่องจากการที่โปรแกรมที่เขียนในพวกเขาจะไม่เข้ากัน
ในคอมพิวเตอร์ "แมคอินทอช" ภาษาที่ถูกติดตั้งไว้ล่วงหน้าและมันขึ้นอยู่กับรุ่นอายุระบบปฏิบัติการ ภายใต้ Windows อาจต้องติดตั้งหลาม ไฟล์แพคเกจติดตั้งสามารถเลือกได้ในเว็บไซต์ python.org
สองวิธีของการปฏิสัมพันธ์
หนึ่งในเหตุผลของความเรียบง่ายซึ่งเป็นลักษณะการเขียนโปรแกรมในหลามก็คือว่ามันมาพร้อมกับเครื่องมือที่ช่วยให้คุณพัฒนาเขียนและโปรแกรมการแก้ปัญหา
ในโหมดโต้ตอบคำสั่งจะถูกป้อนในหนึ่งบรรทัดในเวลาที่เกือบจะเหมือนกับระบบปฏิบัติการ (เชลล์) ได้รับคำสั่งจากบรรทัดคำสั่ง นอกจากนี้คุณยังสามารถสร้างสั้นหลายโปรแกรมหรือจะนำเข้ารหัสจากแฟ้มข้อความหรือในตัวโมดูลหลาม สำหรับผู้เริ่มต้นมันจะเป็นประโยชน์ที่จะรู้ว่าโหมดโต้ตอบรวมถึงระบบช่วยกว้างขวาง นี้เป็นวิธีที่สะดวกในการเรียนรู้คุณลักษณะของภาษาการเขียนโปรแกรม
การพัฒนาสภาพแวดล้อม IDLE รวมถึงโหมดการโต้ตอบและเครื่องมือในการเขียนและเรียกใช้โปรแกรมเช่นเดียวกับชื่อของระบบการติดตาม พุธที่เขียนในหลามและแสดงให้เห็นถึงความเป็นไปได้ที่กว้างขวางของภาษา
โหมดโต้ตอบ
ที่นี่คุณสามารถทำได้เกือบทุกอย่างที่สามารถทำได้ในโปรแกรมแม้เขียนโค้ดหลาย โหมดนี้สามารถ:
- Sandbox สำหรับการทดลองปลอดภัย
- สภาพแวดล้อมที่ช่วยให้คุณสามารถที่จะศึกษาการเขียนโปรแกรมในหลาม;
- เครื่องมือสำหรับการค้นหาและแก้ไขข้อผิดพลาด
โปรดจำไว้ว่าที่จะบันทึกเข้ามาในโหมดโต้ตอบเป็นไปไม่ได้ การทำเช่นนี้คัดลอกโค้ดและบันทึกผลในแฟ้ม
โหมดโต้ตอบสามารถนำมาใช้เป็นเครื่องคิดเลขจัดการข้อความและกำหนดค่าตัวแปร นอกจากนี้คุณยังสามารถนำเข้าโมดูลฟังก์ชั่นหรือบางส่วนของโปรแกรมเพื่อทดสอบพวกเขา มันจะช่วยให้ทดสอบกับวัตถุหลามโดยไม่ต้องเขียนโปรแกรมยาวและโปรแกรมการแก้ปัญหาโดยการนำเข้าชิ้นส่วนหนึ่งที่เวลา
การทำงานออนไลน์
หลังจากที่งูใหญ่ทำงานในหน้าต่าง terminal แสดงข้อมูลเกี่ยวกับโปรแกรมเวอร์ชันปัจจุบันวันที่ของข่าวมันเป็นเคล็ดลับสำหรับการดำเนินการต่อไปและเชิญไปใส่ >>>
ในการทำงานในโหมดโต้ตอบป้อนคำสั่งหรือการแสดงออกและกดปุ่ม Enter
Python ตรวจป้อนข้อมูลและตอบสนองถ้าพิมพ์ต้องมีการตอบสนองหรือล่ามไม่เข้าใจเขา
คำสั่งดังต่อไปนี้จะพิมพ์บรรทัด ตั้งแต่ตำแหน่งการพิมพ์ไม่ได้ระบุการส่งออกไปที่หน้าจอ
- >>> พิมพ์ "สวัสดีชาวโลก"
- สวัสดีชาวโลก!
บรรทัดเดียวนี้เป็นโปรแกรมทั้งหมด! งูหลามโต้ตอบจัดการรหัสสตริงทุกป้อนโดยการกดปุ่ม Enter และผลที่ปรากฏด้านล่าง
ดูข้อมูลเกี่ยวกับวัตถุ
ในโหมดโต้ตอบมีสองวิธีที่จะดูข้อมูลเกี่ยวกับวัตถุที่:
- วางวัตถุ (หรือชื่อ) และกด Enter;
- ป้อนคำสั่งพิมพ์และวัตถุ (หรือชื่อ) และกด Enter
ผลที่ได้ขึ้นอยู่กับวัตถุ
กับชนิดข้อมูลบางส่วน (จำนวนเต็มและรายการตัวอย่างเช่น) ทั้งสองวิธีการผลิตผลเดียวกัน:
- >>> x = [3,2]
- >>> x
- [3, 2]
- >>> x พิมพ์
- [3, 2]
สำหรับสตริงเป็นผลมาจากการตั้งค่าของชื่อพิมพ์«ส่วน" คำสั่งแตกต่างกันเล็กน้อยจากผลที่ได้รับชื่อ ในกรณีแรกที่มีค่าเป็นในเครื่องหมายคำพูดในขณะที่สอง - ไม่เป็นปัจจุบัน:
- >>> x = "MyString"
- >>> x
- "MyString"
- >>> x พิมพ์
- myString
เมื่อชื่อหมายถึงบล็อกของรหัส (เช่นฟังก์ชั่นโมดูลเช่นชั้นหรือ) เข้าชื่อจะให้ข้อมูลเกี่ยวกับชนิดของข้อมูลชื่อและสถานที่ของการจัดเก็บข้อมูล
ตัวอย่างต่อไปนี้สร้างคลาสที่เรียกว่าข้อความและแสดงข้อมูลเกี่ยวกับ
มัน
- >>> ข้อความระดับ:
- ... ผ่าน
- ...
- >>> ข้อความ
- <คลาส ___ ___ หลัก ข้อความที่ 0x58db0>
- >>> ข้อความพิมพ์
- __main __ ข่าวสาร
เส้น
เส้นหลามมีลำดับของตัวอักษร สตริงตัวอักษรจะถูกสร้างขึ้นโดยการป้อนตัวอักษรในราคาเดียว ( ') สองครั้ง ( ") หรือสาม (' 'หรือ" '') ใส่เครื่องหมายอัญประกาศ ในตัวอย่างค่าที่กำหนดให้ตัวแปร x:
- >>> x = "MyString"
สตริงหลามมีในตัวคุณสมบัติหลายประการ หนึ่งในนั้นคือความสามารถในการส่งคืนสำเนาของคุณกับทุก ตัวอักษรตัวพิมพ์เล็ก ความสามารถเหล่านี้เป็นที่รู้จักกันเป็นวิธีการ ที่จะเรียกวิธีการบนวัตถุที่คุณต้องใช้ไวยากรณ์จุด นั่นคือหลังจากที่เข้าชื่อตัวแปรซึ่งในกรณีนี้คือการอ้างอิงไปยังวัตถุสตริงคุณจะต้องใส่ผู้ประกอบการจุดและจากนั้นชื่อของวิธีที่ใช้โดยการเปิดและปิดวงเล็บ (.):
- >>> x.lower ()
- "myString"
คุณสามารถรับส่วนหนึ่งของสายโดยใช้ประกอบการจัดทำดัชนี s [ผม] การจัดทำดัชนีเริ่มต้นที่ศูนย์เพื่อให้ s [0] จะแสดงตัวอักษรตัวแรกในสตริง, s [1] ผลตอบแทนที่สองและอื่น ๆ :
- >>> x [0]
- 'เอ็ม'
- >>> x [1]
- 'Y'
วิธีการทำงาน String สายสามัญและมี "Unicode" พวกเขาผลิตต่อไปนี้:
- จดทะเบียนเปลี่ยนแปลง (ประโยชน์, บน, ล่าง, swapcase ชื่อ);
- count (นับ);
- เปลี่ยนการเข้ารหัส (เข้ารหัสถอดรหัส);
- ค้นหาและแทนที่ (หาแทนที่ rfind ดัชนี rindex แปล);
- ตรวจสอบเงื่อนไข (startswith, endswith, isalnum, isalpha, isdigit, islower, isspace, istitle, isupper);
- รวมกันและแยกออกจากกัน (เข้าร่วมพาร์ทิชัน rpartition, แยก, splitlines);
- รูปแบบ (กลาง ljust, lstrip, rstring, rjust แถบ zfill, expandtabs)
งูหลาม: รายการ
ถ้าสตริงหลามเป็นสัญลักษณ์ จำกัด แสดงรายการข้อ จำกัด ใด ๆ ไม่ได้ พวกเขาจะได้รับคำสั่งลำดับของวัตถุโดยพลรวมทั้งรายการอื่น ๆ นอกจากนี้มันเป็นไปได้ที่จะเพิ่มลบและแทนที่องค์ประกอบดังกล่าว จำนวนของวัตถุที่คั่นด้วยเครื่องหมายจุลภาคภายใน วงเล็บ และมีรายชื่อหลาม สิ่งนี้แสดงให้เห็นถึงแสดงด้านล่าง - นี่เป็นตัวอย่างและข้อมูลการดำเนินงานกับพวกเขา
- >>> ฐาน = [ 'A', 'C', 'G', 'T']
- >>> ฐาน
- [ 'A' 'C', 'G', 'T']
- >>> bases.append ( 'U')
- >>> ฐาน
- [ 'A' 'C', 'G', 'T', 'U']
- >>> bases.reverse ()
- >>> ฐาน
- [ 'U', 'T', 'G', 'C' 'A']
- >>> ฐาน [0]
- 'U'
- >>> ฐาน [1]
- T '
- >>> bases.remove ( 'U')
- >>> ฐาน
- [ 'T', 'G', 'C' 'A']
- >>> bases.sort ()
- >>> ฐาน
- [ 'A' 'C', 'G', 'T']
ในตัวอย่างนี้มันถูกสร้างขึ้นด้วยรายการของตัวละครแต่ละคน จากนั้นถูกบันทึกอยู่ในตอนท้ายขององค์ประกอบที่ต้องเผชิญกับการสั่งซื้อของธาตุองค์ประกอบที่สกัดโดยตำแหน่งของดัชนีของพวกเขาถูกลบองค์ประกอบมีค่า 'U' และการเรียงลำดับรายการที่ผลิต ถอดจากรายการที่แสดงให้เห็นถึงสถานการณ์ที่เกิดขึ้นเมื่อมีการลบ () วิธีการเพื่อให้ข้อมูลเพิ่มเติมคือค่าที่ควรจะออก
นอกเหนือไปจากวิธีการลบคล้ายกัน (), Python มีอีกหนึ่งคุณลักษณะที่คล้ายกันเรียกว่าฟังก์ชั่น ข้อแตกต่างระหว่างการทำงานและวิธีการก็คือว่าคนแรกที่ไม่เกี่ยวข้องกับวัตถุที่เฉพาะเจาะจง
งูหลาม: ฟังก์ชั่น
ฟังก์ชั่นการดำเนินการอย่างใดอย่างหนึ่งหรือมากกว่าค่านิยมและผลที่ได้กลับมา จำนวนมากของพวกเขาที่ถูกสร้างขึ้นในหลาม ตัวอย่างของฟังก์ชั่นในตัว:
- len () - กลับจำนวนขององค์ประกอบในลำดับ;
- dir () - กลับรายการของสตริงที่เป็นตัวแทนของคุณลักษณะของวัตถุนั้น
- รายการ () - ส่งกลับรายการใหม่เริ่มต้นจากลำดับอื่น ๆ บาง
- >>> ช่วยเหลือ (รอบ)
- ช่วยเหลือเกี่ยวกับฟังก์ชั่นรอบ
- รอบ ( ... )
- รอบ (จำนวน [ndigits]) -> จำนวนจุดลอย
นอกจากนี้ยังเป็นไปได้ที่จะกำหนดฟังก์ชั่นของคุณเอง
ฟังก์ชั่นที่ผู้ใช้กำหนด
กระบวนการของการสร้างตัวเองหลามฟังก์ชั่นของดังกล่าว บรรทัดแรกเริ่มต้นด้วย def คำหลักตามด้วยชื่อฟังก์ชั่นและข้อโต้แย้ง (ค่าการป้อนข้อมูลคาดว่า) ในวงเล็บและจบลงด้วยการลำไส้ใหญ่ คำสั่งที่ตามมาทำให้ค่าการทำงานของร่างกายและจะต้องเยื้อง ถ้าแสดงความคิดเห็นตั้งอยู่ที่จุดเริ่มต้นของการทำงานของร่างกายที่มันจะกลายเป็นส่วนหนึ่งของเอกสาร บรรทัดสุดท้ายของการทำงานผลตอบแทน:
- >>> def คัดลอก (DNA):
- ... "" "กลับสตริงดีเอ็นเออาร์เอ็นเอเป็นสตริง." ""
- ... กลับมา dna.replace ( 'T', 'U')
- ...
- >>> อัดเสียง ( 'CCGGAAGAGCTTACTTAG')
- 'CCGGAAGAGCUUACUUAG'
ตัวอย่างนี้ได้รับการสร้างฟังก์ชั่นที่เรียกว่าอัดเสียงซึ่งคาดว่าสตริงที่แสดงลำดับดีเอ็นเอ แทนที่ () วิธีการส่งกลับสำเนาของสายเดิมที่มีเกิดขึ้นทั้งหมดของตัวละครหนึ่งไปยังอีก สามบรรทัดของรหัสที่ได้รับอนุญาตให้คัดลอกดีเอ็นเอเข้าไปในอาร์เอ็นเอ ฟังก์ชั่นผกผันเป็นดังนี้:
- >>> def ย้อนกลับ (s):
- ... "" "กลับสตริงลำดับย้อนลำดับ." ""
- ... ตัวอักษร = รายการ (s)
- ... letters.reverse ()
- ... กลับมา '' .join (ตัวอักษร)
- ...
- >>> ย้อนกลับ ( 'CCGGAAGAGCTTACTTAG')
- 'GATTCATTCGAGAAGGCC'
ฟังก์ชั่นย้อนกลับใช้เวลาสตริงสร้างรายชื่อที่ขึ้นอยู่กับมันและเปลี่ยนการสั่งซื้อของ ตอนนี้คุณต้องทำสิ่งที่ตรงกันข้าม วัตถุที่มีการเข้าร่วม () วิธีการซึ่งรวมรายการแบ่งองค์ประกอบของค่าสตริงแต่ละ ตั้งแต่แยกไม่จำเป็นต้องวิธีการที่ถูกนำมาใช้ในสายการแสดงโดยสอง apostrophes ( '' หรือ "")
พจนานุกรม
พจนานุกรมหลาม - มันคืออะไร? แต่ก็มีประโยชน์เช่นเดียวกับพจนานุกรมกระดาษธรรมดา จะช่วยให้คุณได้อย่างรวดเร็วพบค่าที่ต้องการ (ความคมชัด) ที่เกี่ยวข้องกับคีย์ (คำ) พจนานุกรมในวงเล็บปีกกาและคั่นด้วยเครื่องหมายจุลภาคประกอบด้วยลำดับของคู่คีย์ค่า พจนานุกรมยังไม่ได้รับคำสั่ง แทนค่าพจนานุกรมสามารถผ่านสำคัญของพวกเขาไม่ได้ตำแหน่งของพวกเขา
- >>> basecomplement = { 'A': 'T', 'C': 'G', 'T': 'A' 'G': 'C'}
- >>> basecomplement.keys ()
- [ 'A' 'C', 'T', 'G']
- >>> basecomplement.values ()
- [ 'T', 'G', 'A' 'C']
- >>> basecomplement [ 'A']
- T '
ชั้นเรียน
เพื่อที่จะสร้างวัตถุของคุณเองคุณจำเป็นต้องตรวจสอบชนิดของรูปแบบที่เรียกว่าชั้นเรียน ในหลามนี้สำหรับระดับผู้ประกอบการตามด้วยชื่อและลำไส้ใหญ่ ร่างกายของการกำหนดชั้นมีคุณสมบัติและวิธีการที่จะสามารถใช้ได้กับทุกกรณีของวัตถุที่อยู่บนพื้นฐานของชั้นนี้
ข้อได้เปรียบ
ภาษาโปรแกรมส่วนใหญ่มีคุณสมบัติที่ใช้งานง่าย แต่ไม่มีพวกเขาได้เช่นการรวมกันของความสะดวกสบายและสิ่งอำนวยความสะดวกที่นำเสนอโดยหลาม สิ่งที่เป็นประโยชน์เหล่านี้หรือไม่ นี่คือบางส่วนของพวกเขา
- ภาษาสามารถบูรณาการในการใช้งานอื่น ๆ และใช้ในการสร้างแมโคร ยกตัวอย่างเช่นใน Paint Shop Pro 8 หรือต่อมาก็เป็นภาษาสคริปต์
- งูหลามเป็นฟรีสำหรับการใช้และการจัดจำหน่ายในเชิงพาณิชย์หรือไม่
- ภาษามีความสามารถในการประมวลผลที่มีประสิทธิภาพและค้นหาข้อความที่ถูกนำมาใช้ในการใช้งานการทำงานกับข้อมูลจำนวนมากข้อความ
- มันเป็นไปได้ที่จะสร้างปพลิเคชันที่ดีโดยไม่ต้องมีการตรวจสอบโปรแกรมเริ่มต้น
- งูใหญ่รองรับการทดสอบและการแก้จุดบกพร่องของแต่ละโมดูลและโปรแกรมทั้งหมด
Similar articles
Trending Now