บทช่วยสอนงูหลาม

Python HOME แนะนำ Python Python เริ่มต้น ไวยากรณ์หลาม ความคิดเห็นหลาม ตัวแปรหลาม ประเภทข้อมูลหลาม ตัวเลขหลาม Python Casting Python Strings Python Booleans ตัวดำเนินการ Python รายการหลาม Python Tuples ชุดหลาม พจนานุกรม Python Python If...Else Python ในขณะที่ลูป Python สำหรับลูป ฟังก์ชั่นหลาม Python Lambda Python Arrays Python คลาส/วัตถุ มรดกหลาม Python Iterators ขอบเขตหลาม โมดูล Python วันที่หลาม คณิตศาสตร์หลาม Python JSON Python RegEx Python PIP Python ลอง...ยกเว้น อินพุตผู้ใช้ Python การจัดรูปแบบสตริงหลาม

การจัดการไฟล์

การจัดการไฟล์ Python Python อ่านไฟล์ Python เขียน/สร้างไฟล์ Python ลบไฟล์

โมดูล Python

กวดวิชา NumPy เกมส์หมีแพนด้า กวดวิชา Scipy

Python Matplotlib

บทนำ Matplotlib Matplotlib เริ่มต้น Matplotlib Pyplot Matplotlib พล็อต เครื่องหมาย Matplotlib Matplotlib Line ป้ายกำกับ Matplotlib Matplotlib Grid แผนย่อย Matplotlib Matplotlib Scatter Matplotlib บาร์ Matplotlib Histograms Matplotlib แผนภูมิวงกลม

การเรียนรู้ของเครื่อง

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

Python MySQL

MySQL เริ่มต้น MySQL สร้างฐานข้อมูล MySQL สร้างตาราง MySQL Insert MySQL Select MySQL Where MySQL สั่งซื้อโดย MySQL Delete MySQL Drop Table MySQL Update MySQL Limit MySQL เข้าร่วม

Python MongoDB

MongoDB เริ่มต้น MongoDB สร้างฐานข้อมูล MongoDB สร้างคอลเล็กชัน MongoDB แทรก MongoDB ค้นหา แบบสอบถาม MongoDB MongoDB Sort MongoDB ลบ MongoDB Drop Collection อัพเดท MongoDB MongoDB Limit

การอ้างอิงหลาม

ภาพรวมของ Python ฟังก์ชันในตัวของ Python Python String Methods Python List Methods วิธีพจนานุกรม Python วิธี Python Tuple Python Set Methods วิธีไฟล์ Python คีย์เวิร์ด Python ข้อยกเว้นของ Python คำศัพท์หลาม

การอ้างอิงโมดูล

โมดูลสุ่ม โมดูลคำขอ โมดูลสถิติ โมดูลคณิตศาสตร์ โมดูล cMath

Python ฮาวทู

ลบรายการที่ซ้ำกัน ย้อนกลับสตริง เพิ่มสองตัวเลข

ตัวอย่าง Python

ตัวอย่าง Python Python Compiler แบบฝึกหัดหลาม แบบทดสอบ Python ใบรับรอง Python

ฟังก์ชั่นหลาม


ฟังก์ชันคือบล็อกของโค้ดที่ทำงานเมื่อมีการเรียกเท่านั้น

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

ฟังก์ชันสามารถส่งคืนข้อมูลได้


การสร้างฟังก์ชัน

ใน Python ฟังก์ชั่นถูกกำหนดโดยใช้ คำสำคัญ def :

ตัวอย่าง

def my_function():
  print("Hello from a function")

การเรียกใช้ฟังก์ชัน

หากต้องการเรียกใช้ฟังก์ชัน ให้ใช้ชื่อฟังก์ชันตามด้วยวงเล็บ:

ตัวอย่าง

def my_function():
  print("Hello from a function")

my_function()

ข้อโต้แย้ง

ข้อมูลสามารถส่งผ่านไปยังฟังก์ชันเป็นอาร์กิวเมนต์ได้

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

ตัวอย่างต่อไปนี้มีฟังก์ชันที่มีหนึ่งอาร์กิวเมนต์ (fname) เมื่อเรียกใช้ฟังก์ชัน เราจะส่งต่อชื่อ ซึ่งใช้ในฟังก์ชันเพื่อพิมพ์ชื่อเต็ม:

ตัวอย่าง

def my_function(fname):
  print(fname + " Refsnes")

my_function("Emil")
my_function("Tobias")
my_function("Linus")

อาร์กิวเมนต์มักจะย่อให้เหลืออาร์กิวเมนต์ในเอกสารประกอบของ Python



พารามิเตอร์หรืออาร์กิวเมนต์?

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

จากมุมมองของฟังก์ชัน:

พารามิเตอร์คือตัวแปรที่อยู่ในวงเล็บในนิยามฟังก์ชัน

อาร์กิวเมนต์คือค่าที่ส่งไปยังฟังก์ชันเมื่อมีการเรียก


จำนวนอาร์กิวเมนต์

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

ตัวอย่าง

ฟังก์ชันนี้คาดหวัง 2 อาร์กิวเมนต์ และรับ 2 อาร์กิวเมนต์:

def my_function(fname, lname):
  print(fname + " " + lname)

my_function("Emil", "Refsnes")
หากคุณพยายามเรียกใช้ฟังก์ชันด้วย 1 หรือ 3 อาร์กิวเมนต์ คุณจะได้รับข้อผิดพลาด:

ตัวอย่าง

ฟังก์ชันนี้ต้องการ 2 อาร์กิวเมนต์ แต่ได้เพียง 1:

def my_function(fname, lname):
  print(fname + " " + lname)

my_function("Emil")

อาร์กิวเมนต์ตามอำเภอใจ *args

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

วิธีนี้ฟังก์ชันจะได้รับ อาร์กิวเมนต์ tupleและสามารถเข้าถึงรายการได้ดังนี้:

ตัวอย่าง

หากไม่ทราบจำนวนอาร์กิวเมนต์ ให้เพิ่ม a *หน้าชื่อพารามิเตอร์:

def my_function(*kids):
  print("The youngest child is " + kids[2])

my_function("Emil", "Tobias", "Linus")

อาร์กิวเมนต์ตามอำเภอใจมักถูกย่อให้เหลือ*argsในเอกสารประกอบของ Python


อาร์กิวเมนต์คำหลัก

คุณยังสามารถส่งอาร์กิวเมนต์ด้วยคีย์ = ไวยากรณ์ของค่า

วิธีนี้ลำดับของข้อโต้แย้งไม่สำคัญ

ตัวอย่าง

def my_function(child3, child2, child1):
  print("The youngest child is " + child3)

my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")

อาร์กิวเมนต์คำหลักแบบวลีมักย่อให้สั้นลงเป็นkwargsในเอกสารประกอบของ Python


อาร์กิวเมนต์คำหลักโดยพลการ **kwargs

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

วิธีนี้ฟังก์ชันจะได้รับพจนานุกรมของอาร์กิวเมนต์ และสามารถเข้าถึงรายการได้ดังนี้:

ตัวอย่าง

หากไม่ทราบจำนวนอาร์กิวเมนต์ของคีย์เวิร์ด ให้เพิ่มคู่ **ก่อนชื่อพารามิเตอร์:

def my_function(**kid):
  print("His last name is " + kid["lname"])

my_function(fname = "Tobias", lname = "Refsnes")

อาร์กิวเมนต์ Kword โดยพลการมักจะย่อให้เหลือ**kwargsในเอกสารประกอบของ Python


ค่าพารามิเตอร์เริ่มต้น

ตัวอย่างต่อไปนี้แสดงวิธีการใช้ค่าพารามิเตอร์เริ่มต้น

หากเราเรียกใช้ฟังก์ชันโดยไม่มีอาร์กิวเมนต์ ฟังก์ชันจะใช้ค่าเริ่มต้น:

ตัวอย่าง

def my_function(country = "Norway"):
  print("I am from " + country)

my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

ผ่านรายการเป็นข้อโต้แย้ง

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

เช่น ถ้าคุณส่ง List เป็นอาร์กิวเมนต์ มันจะยังคงเป็น List เมื่อถึงฟังก์ชัน:

ตัวอย่าง

def my_function(food):
  for x in food:
    print(x)

fruits = ["apple", "banana", "cherry"]

my_function(fruits)

ส่งกลับค่า

หากต้องการให้ฟังก์ชันคืนค่า ให้ใช้return คำสั่ง:

ตัวอย่าง

def my_function(x):
  return 5 * x

print(my_function(3))
print(my_function(5))
print(my_function(9))

คำสั่งผ่าน

functionคำจำกัดความต้องไม่ว่างเปล่า แต่ถ้าคุณมีเหตุผลบางอย่างที่มีfunctionคำจำกัดความที่ไม่มีเนื้อหา ให้ใส่passคำชี้แจงเพื่อหลีกเลี่ยงข้อผิดพลาด

ตัวอย่าง

def myfunction():
  pass

การเรียกซ้ำ

Python ยังยอมรับการเรียกซ้ำของฟังก์ชัน ซึ่งหมายความว่าฟังก์ชันที่กำหนดสามารถเรียกตัวเองได้

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

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

ในตัวอย่างนี้tri_recursion()เป็นฟังก์ชันที่เรากำหนดให้เรียกตัวเอง ("recurse") เราใช้ ตัวแปร kเป็นข้อมูล ซึ่งจะลดลง ( -1 ) ทุกครั้งที่เราเรียกซ้ำ การเรียกซ้ำจะสิ้นสุดลงเมื่อเงื่อนไขไม่มากกว่า 0 (เช่น เมื่อเป็น 0)

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

ตัวอย่าง

ตัวอย่างการเรียกซ้ำ

def tri_recursion(k):
  if(k > 0):
    result = k + tri_recursion(k - 1)
    print(result)
  else:
    result = 0
  return result

print("\n\nRecursion Example Results")
tri_recursion(6)

ทดสอบตัวเองด้วยแบบฝึกหัด

ออกกำลังกาย:

สร้างฟังก์ชันชื่อmy_function.

:
  print("Hello from a function")