ทำไม Python จึงแนะนำให้ใช้ภาษาการเขียนโปรแกรมระดับเริ่มต้น? [ปิด]


16

ฉันได้อ่านคำถามเพิ่มเติมจาก P.SE ที่โปรแกรมเมอร์ผู้เริ่มต้นควรเลือก Python เป็นภาษาโปรแกรมแรกของพวกเขา

อย่าเข้าใจฉันผิดฉันชอบ Python ผมชอบมันมาก! แต่ปรัชญามันหมุนรอบ "เราทุกคนยินยอมผู้ใหญ่ที่นี่"

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

ฉันคิดว่าในภาษาที่ "นิ่งกว่า" มันจะยากกว่าถ้าจะยิงตัวเองที่เท้าเพราะมันจะถูก จำกัด มากขึ้น

กลับไปที่คำถามของฉัน ทำไม Python จึงแนะนำให้ใช้ภาษาการเขียนโปรแกรมระดับเริ่มต้น?

อะไรคือประเด็นที่ทำให้มันดีสำหรับการสอนภาษาโปรแกรม หรือ ... มันเป็นความชอบส่วนตัวของผู้ให้คำปรึกษา?


17
I'm thinking that in a "more static" language it would be harder to shoot yourself in the foot- ดี C และ C ++ พิมพ์แบบคงที่และคุณจะไม่ดีประหลาด
ใจไม่ดีที่

@ PéterTörök: ใช่แล้วมันจะทำให้คุณหมดแรง (c ++: D) ฉันพูดว่า "นิ่งกว่า" พยายามหลีกเลี่ยงสงครามไฟสำหรับบางอย่างเช่น ... ฉันไม่รู้ ... Java?!?! ... ซึ่งทุกคนดูเหมือนจะเกลียดเพราะคิดว่าที่โรงเรียน / มหาวิทยาลัยและผู้คนมีบางอย่าง กลัวมัน ...
JohnDoDo

1
ฉันคิดว่า C ++ เป็นภาษาเริ่มต้นที่ดีกว่าเพราะมันช่วยให้ฉันเข้าใจสิ่งต่าง ๆ ในลากูนเกจอื่น ๆ ได้ดีขึ้น
systemovich

1
ฉันมีเนื้อวัวของฉันกับงูหลามเป็นภาษาเริ่มต้นหลังจาก TAing ชั้นเรียนการเขียนโปรแกรมภาคการศึกษาแรกที่ใช้มัน นักเรียนไม่เข้าใจ 'ประเภท' และการพึ่งพาช่องว่างฆ่าพวกเขา พวกเขายังมีช่วงเวลาที่ยากลำบากในการทำความเข้าใจวัตถุที่มีการอ้างอิงตัวเอง 'ธุรกิจ' kludged OO มันมีข้อดี แต่ก็มีผู้ว่าด้วยเช่นกัน
Rig

2
@MahmoudHossam ฉันเห็นด้วย ฉันแค่เน้นจุดที่ติดจากประสบการณ์ของฉัน Java, C #, Lisp และอื่น ๆ ล้วนมีปัญหา สิ่งเหล่านี้เป็นปัญหาสำคัญที่ฉันได้พบกับการสอน python ให้กับโปรแกรมเมอร์เป็นครั้งแรก
Rig

คำตอบ:


30

IMO จุดที่โดดเด่นที่สุดที่พูดถึง Python ในฐานะภาษาระดับเริ่มต้นคือ:

  • มันมีช่วงการเรียนรู้ที่ตื้น - การเปลี่ยนจากอะไรเป็น "Hello world" นั้นเร็วกว่าในภาษาอื่นส่วนใหญ่
  • มันเป็นสัญชาตญาณ - ไวยากรณ์ได้รับการออกแบบมาเพื่อทำตามหลักการของความประหลาดใจน้อยที่สุดและเป็นภาพรวมที่สอดคล้องกันมาก (น่าเสียดายที่ห้องสมุดมาตรฐานไม่ปฏิบัติตามความสอดคล้องนี้เสมอ)
  • ต้องใช้สำเร็จรูปน้อยมาก : "Hello world" โดยทั่วไปคือโค้ดหนึ่งบรรทัดและสามารถเขียนโปรแกรมง่าย ๆ โดยไม่มีสัญญาณรบกวนพื้นหลังเพิ่มเติมใด ๆ ที่จำเป็นต้องอธิบาย (เช่นคำสำคัญในการประกาศฟังก์ชั่น, คำสั่งการนำเข้า, คำสั่งสร้างชั้นเรียน ฯลฯ )
  • มีเครื่องมือที่ยอดเยี่ยมและตรงไปตรงมาในการทำงานกับโค้ดไพ ธ อนโดยเฉพาะล่ามแบบอินเทอร์แอคทีฟ คุณไม่จำเป็นต้องเรียนรู้ระบบการสร้าง, IDE, โปรแกรมแก้ไขข้อความพิเศษหรือสิ่งอื่นใดเพื่อเริ่มใช้งาน python - พรอมต์คำสั่ง, โปรแกรมแก้ไขเชิงโต้ตอบและโปรแกรมแก้ไขข้อความอย่างง่ายล้วนเป็นสิ่งที่คุณต้องการ
  • มันใช้การพิมพ์แบบไดนามิกแต่แตกต่างจากภาษาที่พิมพ์แบบไดนามิกอื่น ๆ ประเภทมีความโปร่งใสและข้อผิดพลาดที่เกี่ยวข้องกับประเภทเป็นของหายาก

เพียงแค่ต้องการเน้นความหยั่งรู้ของภาษา ฉันเคยเห็นคนที่มีประสบการณ์การเขียนโปรแกรม 0 คนเรียนรู้ Python อย่างรวดเร็ว นี่คือสาเหตุหลักมาจากไวยากรณ์ / ไวยากรณ์ที่ใกล้เคียงกับการพูดภาษาอังกฤษ
Stephen Gross

12
ที่จุดสุดท้ายคุณ: คนมักจะผสมการพิมพ์แบบ Dinamic กับการพิมพ์ที่อ่อนแอ Python ถูกพิมพ์แบบไดนามิก (ประเภทที่เกี่ยวข้องกับค่าแทนที่จะเป็นตัวแปร) แต่ก็มีการพิมพ์อย่างมาก (ดังนั้นโปรแกรมหยุดทำงานแทนการกลืนข้อผิดพลาดการแปลงแบบเงียบ ๆ )
hugomg

@missingo ฉันสอง - ดวงตาเจ้ามี;)
yati sagade

@missingno: ฉันรู้ถึงความแตกต่าง ตัวอย่างของประเภทที่ไม่โปร่งใสคือคีย์อาร์เรย์ของ PHP - อาร์เรย์ทำงานแตกต่างกันไปสำหรับคีย์จำนวนเต็มมากกว่าประเภทอื่น ๆ หากคุณเพิ่มจำนวนเต็มใหญ่พอสองคุณอาจท้ายด้วยการลอย และนี่เป็นเพียงตัวอย่างหนึ่งโดยเฉพาะอย่างยิ่ง PHP และ javascript (ภาษาไดนามิกสองภาษาที่ได้รับความนิยมมากที่สุดในการพัฒนาเว็บ) เต็มไปด้วยตัวพิมพ์ขอบที่ไม่ชัดเจน
tdammers

ตัดสินจากความคิดเห็นของคุณโดย "ประเภทมีความโปร่งใส" คุณหมายถึงกฎที่ควบคุมประเภทที่ง่ายต่อการเข้าใจ? คุณตั้งใจจะพูดอะไร
phant0m

8

สวัสดีชาวโลกในหลาม:

 print "Hi there"

สวัสดีชาวโลกใน Java:

 class HelloWorldApp {
  public static void main(String[] args) {
    System.out.println("Hello World!"); // Display the string.
    }
  }

สวัสดีชาวโลกใน C:

  #include<stdio.h>
  int main(int argc, char** argv)
  {
    printf("Hello World");
   }

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


15
คุณลืม "return 0;" คำสั่งในการใช้งาน C ของคุณ :) คำเตือนคอมไพเลอร์!
Stephen Gross

2
นี่คือเหตุผลที่ BASIC มีอยู่ในสถานที่แรก 10 พิมพ์ "Hello World!" 20 END สำหรับเครดิตพิเศษโปรแกรม Python ล้มเหลว "มีคำว่า 'Hello World!' หรือไม่? ทดสอบหน่วย :-)
Ross Patterson

3
เหมือนกันใน F #: printfn "Hello World!" Yay, F # เหมาะสำหรับผู้เริ่มต้น!
Den

7

นั่นเป็นมุมมองที่ผิดปกติ

สิ่งที่ผู้ใหญ่ยินยอมนั้นเป็นส่วนเล็ก ๆ ของปรัชญาของ Python แน่นอนมันไม่ได้ "หมุน" รอบ ๆ นั้น มันไม่ได้เป็นส่วนหนึ่งของ "Zen of Python" ที่คุณจะได้รับหากคุณimport thisใช้ล่าม

สิ่งอื่น ๆ เช่น "ชัดเจนดีกว่าโดยนัย" "ง่ายกว่าดีกว่าซับซ้อน" และ "จำนวนการอ่านได้" เป็นศูนย์กลางของ Python และแสดงว่าทำไม Python เป็นภาษาแรกที่ดี

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


1
ใช่ แต่เกี่ยวกับชิ้นส่วน "ส่วนตัว" เหล่านั้นเนื่องจากคุณสามารถเข้าถึงชิ้นส่วนเหล่านี้ได้คุณอาจถูกแฮ็กเพื่อแก้ไขปัญหา / ทางลัดบางอย่างรอบตัวพวกเขาโดยไม่รู้ตัว
JohnDoDo

@JohnDoDo ฉันตัดสินใจเปลี่ยนprivateฟิลด์publicเป็นแฮ็กไปทำอะไรใน C # หรือ Java BTW ใน Python คุณสามารถใส่คำนำหน้าคุณสมบัติด้วยการขีดเส้นใต้เพื่อทำให้เป็นส่วนตัว (แม้ว่าจะไม่ถูกซ่อนอยู่จริงๆ)
OnesimusUnbound

4

มีสองจุดที่แตกต่างกัน เมื่อเลี้ยงลูกคุณควรวางฟองที่มีสิ่งที่ปลอดภัยอยู่ในนั้นหรือปล่อยให้พวกเขาเล่นในสนามที่พวกเขาจะเดินทางและตกลง

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

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

นอกจากนี้ในโปรแกรมขนาดเล็กความปลอดภัยของประเภทไม่ใช่ปัญหาใหญ่ โค้ดใด ๆ ที่ผู้พัฒนาเริ่มต้นเขียนจะมีขนาดเล็กและมีอยู่ มันไม่ได้จนกว่าคุณจะมี code-base ที่ใหญ่กว่าโดยมีส่วนต่าง ๆ มากมายที่คุณใช้เป็นเลเยอร์นามธรรมและไม่คิดอย่างจริงจังเมื่อความปลอดภัยของประเภทแสดงให้เห็นว่ามันเป็นประโยชน์ในการทำให้แน่ใจว่าคุณทำสิ่งที่คุณต้องการ เมื่อรหัสทั้งหมดอยู่ในไฟล์เดียวกันมันง่ายกว่าที่จะไปดูฟังก์ชั่นและดูว่าคุณทำอะไรผิด

ผลประโยชน์อื่น ๆ :

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

3
การเปรียบเทียบโต้: สอนเด็กของคุณเกี่ยวกับการไม่เล่นด้วยไฟ 1) คุณสามารถพูดคุยกับเขาอธิบายว่าไฟคืออะไรและไฟทำอะไรให้แสดงสไลด์ PowerPoint ไม่ว่า .. หรือ 2) ให้เขาเล่นด้วยไฟและเผาไฟ วิธีที่สองนั้นมีประสิทธิภาพมากกว่าอย่างแน่นอน สิ่งที่ฉันสนใจคือความเป็นไปได้ที่เขาอาจวางบ้านบนกองไฟหรือแม้กระทั่งชอบและกลายเป็น pyromaniac เพราะไม่มีมาตรการด้านความปลอดภัย เป็นสถานการณ์ที่รุนแรง แต่ไม่สามารถแสดงออกได้เป็นคำพูด
JohnDoDo

1
@JohnDoDo - ให้เขาถูกเผา ... มันเป็นโรงเรียนที่ดีที่สุดและใครที่ไม่เคยถูกเผาในการแข่งขันตั้งแต่ยังเด็ก? มันจะไม่ฆ่าเขา ...
Rook

1
@JohnDoDo: เพราะภาษาให้คุณเล่นด้วยไฟไม่ได้หมายความว่าครูไม่ได้ชี้ให้เห็นว่าไฟนั้นอันตรายมากและอธิบายวิธีหลีกเลี่ยง ฉันคิดว่าอีกสิ่งที่คุณพลาดคือคนที่ไม่ได้ผูกติดกับภาษา หลังจากได้รับความเข้าใจพื้นฐานเกี่ยวกับการวางโปรแกรมพวกเขาสามารถใช้ภาษาที่แตกต่างกันเพื่อเรียนรู้แนวคิดที่ใหญ่กว่า (เช่นไม่ทำให้อาคารพังทลายลง)
unholysampler

3

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

  • รหัสขั้นต่ำสำเร็จรูปสำหรับโปรแกรมอย่างง่าย

  • เก็บขยะ

  • การพิมพ์แบบไดนามิก

  • ไวยากรณ์ที่เรียบง่ายสะอาดตา

เปรียบเทียบกับตัวอย่างเช่น Java หรือ C ++ และความยากลำบากในการอธิบายแนวคิดทั้งหมดที่เกี่ยวข้องในโปรแกรม "Hello, world" สิ่งที่ซับซ้อนรวมถึง:

  • วิปัสสนา (Python เทียบเท่ากับการสะท้อน)

  • การปะของลิง

  • สิ่งที่สามารถทำได้ด้วยห้องสมุดมาตรฐานขนาดใหญ่

ที่กล่าวว่าไม่มีใครรู้เพียง Python เป็นโปรแกรมเมอร์ที่ดีเพราะไม่มีใครรู้เพียงภาษาใดภาษาหนึ่งหรือหนึ่งรูปแบบของภาษาเป็นโปรแกรมเมอร์ที่ดี ทุกคนที่ร้ายแรงเกี่ยวกับการเขียนโปรแกรมควรในที่สุดก็เรียนรู้บางสิ่งบางอย่างในระดับต่ำกว่าเพียงแค่ไม่ได้ในขณะที่เขา / เธอจะยังคงพยายามที่จะควบคุมการไหล grok, recursion และข้อมูลพื้นฐานอื่น ๆ


2

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


1

IMHO การสอนคนให้ใช้รหัสในภาษา "ปลอดภัย" เป็นความคิดที่แย่มาก ผู้คนคิดว่าทุกอย่างง่ายและคิดเพียงแค่เพิ่มเลเยอร์และเลเยอร์ของโค้ด และสูญเสียโอกาสในการตรวจแก้จุดบกพร่อง / แก้ไขปัญหาเมื่อเกิดขึ้น

โปรแกรมเมอร์ที่ดีต้องรู้จัก C / C ++ หรือแม้แต่การประกอบ และความคิดของพวกเขาก็ต้องมาจากด้านนั้นเช่นกัน และไม่ใช่ - "โอ้ GC มันทำ Magic (tm) เราเจ๋งและทำไม C ++ ไม่มี GC มันโง่" ท่าที


1

สำหรับโปรแกรมเมอร์มือใหม่การขาดประเภทสแตติกเป็นคุณสมบัติไม่ใช่ข้อผิดพลาด!

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

นอกจากนี้ยังมีข้อได้เปรียบทางแนวคิดในการพิมพ์แบบไดนามิกในการตั้งค่าทางการศึกษา:

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

  2. ข้อความแสดงข้อผิดพลาดมีความชัดเจนและเป็นรูปธรรม ใน Python คุณจะได้รับ stack trace ที่สวยงามและมีข้อความระบุสิ่งที่ผิดพลาด ในภาษาพิมพ์แบบคงที่คุณจะได้รับการแจ้งเตือนคอมไพเลอร์พูดในสิ่งที่จะไปอย่างผิดปกติ

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

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

  4. แนวคิดที่สำคัญบางอย่างเช่นความแปรปรวนแบบพารามิเตอร์และการพิมพ์เป็ดมาฟรีในภาษาแบบไดนามิก แต่ต้องการระบบประเภทที่ซับซ้อนมากขึ้นในภาษาแบบคงที่

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

  • โปรแกรมเริ่มต้นมีขนาดเล็กและไม่มีเส้นทางรหัสจำนวนมาก (ดังนั้นคุณไม่ต้องกังวลเกี่ยวกับประเภทของข้อบกพร่องในรหัสที่เข้าถึงได้น้อยมาก)

  • โปรแกรม Begginer ไม่ได้ใช้อินเทอร์เฟซระดับสูงและฟังก์ชั่นที่มากดังนั้นจึงมีไม่มากในแผนก "ใช้ระบบประเภทเพื่อออกแบบโปรแกรม"


1

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

เช่นเดียวกับนักวิจารณ์คนอื่น ๆ ฉันสอนผู้เริ่มต้นไม่กี่ปี เป็นเรื่องปกติที่จะเห็นสิ่งต่าง ๆ เช่นนี้:

#include <stdio.h>

int main(char *args[])
                                                                     {
   int A = 1, B = 1, C;
for (int X = 0;X < 20;X++)
{
   printf("%d\n", A);
C = B + A;
      A = B;  B = C;
}
        }

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

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

ใน Python การเยื้องประเภทนี้ไม่ถูกต้องธรรมดา พวกเขาถูกบังคับให้ใช้สิ่งที่อ่านได้อย่างน้อยแม้ว่ามันจะไม่สอดคล้องกันบ้าง มันทำให้พวกเขามีนิสัยที่จะหวังว่าจะดำเนินต่อไปในที่สุดเมื่อพวกเขาเรียนรู้ภาษาอื่น


0

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

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

ในเวลานั้นผู้เริ่มต้นสามารถเข้าใจเพิ่มเติมเกี่ยวกับตัวเลือกและการแลกเปลี่ยนและพร้อมสำหรับ C / C ++, Java, Assembler, Prolog, Lisp และอื่น ๆ ที่จริง Lisp อาจเป็นภาษาแรกที่ดีเช่นกัน !


-1

ปัญหาสำคัญของ Python ในฐานะภาษาแรกคือการพิมพ์แบบไดนามิกและไม่มีการประกาศตัวแปร IMHO พวกเขาเป็นปัญหาสำคัญของภาษา

การเพิ่มบรรทัดอย่างง่าย ๆ ที่บอกว่าฉันจะเก็บสตริงไว้ในตัวแปรฟูเท่านั้นอนุญาตให้โปรแกรมเมอร์สภาพแวดล้อมการพัฒนาภาษา (และสำหรับ "รหัสอาชีพ" คนโง่ที่น่าสงสารที่ต้องเผชิญกับความหนาวเย็นและสนับสนุนในภายหลัง) ทำงานด้วยกัน สำหรับนักพัฒนาและผู้เริ่มต้นโดยเฉพาะมันไม่เหมาะสมที่จะใช้ตัวแปรมากกว่าหนึ่งประเภท มันค่อนข้างโอเคในโอกาสที่หายากเมื่อมันเหมาะสมที่จะใช้ var / object ชนิดที่ชัดเจนที่ช่วยให้การพิมพ์แบบไดนามิก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.