ผลต่างระหว่างรุ่นของ "Python Programming/User-Defined Functions"
ไปยังการนำทาง
ไปยังการค้นหา
Cardcaptor (คุย | มีส่วนร่วม) |
|||
แถว 42: | แถว 42: | ||
ถ้าฟังก์ชันที่เราต้องการนิยามมีหลายคำสั่ง คำสั่งทุกคำสั่งจะต้องเยื้องจากตำแหน่งของ <tt>def</tt> มาเป็นระยะเท่าๆ กัน เช่น | ถ้าฟังก์ชันที่เราต้องการนิยามมีหลายคำสั่ง คำสั่งทุกคำสั่งจะต้องเยื้องจากตำแหน่งของ <tt>def</tt> มาเป็นระยะเท่าๆ กัน เช่น | ||
<pre title="interpreter"> | <pre title="interpreter"> | ||
+ | >>> import math | ||
>>> def length(x0, y0, x1, y1): | >>> def length(x0, y0, x1, y1): | ||
return math.sqrt((x0-x1)**2 + (y0-y1)**2) | return math.sqrt((x0-x1)**2 + (y0-y1)**2) |
รุ่นแก้ไขเมื่อ 08:36, 16 ตุลาคม 2551
ผู้ใช้ภาษาไพทอนสามารถเขียนฟังก์ชันขึ้นมาเองได้ โดยใช้คำสั่ง def ซึ่งมีไวยากรณ์ดังต่อไปนี้
def <<ชื่อฟังก์ชัน>>(<<รายชื่อ parameter>>): คำสั่ง 1 คำสั่ง 2 คำสั่ง 3 . . .
โดยในตัวของฟังก์ชันเอง เราช้คำสั่ง return เพื่อบอกให้ฟังก์ชันคืนค่่าที่เรากำหนดให้ คำสั่ง return มีรูปแบบดังต่อไปนี้
return <<นิพจน์>>
ยกตัวอย่างเช่น ถ้าเราจะประกาศฟังก์ชัน square(x) ซึ่งคืนค่า x ยกกำลังสอง ก็สามารถทำได้ดังนี้
>>> def square(x): return x**2
หลังจากประกาศฟังก์ชันแล้ว เราก็สามารถนำมันไปใช้ได้เหมือนฟังก์ชันพร้อมใช้ของไพทอนหรือฟังก์ชันที่ import มาจากโมดูลต่างๆ
>>> square(100) 10000 >>> square(1+2) 9 >>> square(0.5) 0.25 >>> square(square(1.25)) 2.44140625
ในกรณีที่ฟังก์ชันที่ต้องการประกาศมี parameter มากกว่าหนึ่งตัว ให้ใช้คอมมา (,) คั่นระหว่าง parameter แต่ละตัว ยกตัวอย่างเช่นฟังก์ชัน lerp(a,b,x) (lerp ย่อมาจาก linear interpolation) ซึ่งคำนวณค่า a(1-x) + bx
>>> def lerp(a,b,x): return a*(1-x) + b*x >>> lerp(0,2,0.5) 1.0 >>> lerp(7,8,0.25) 7.25 >>> lerp(0,100,1) 100
ถ้าฟังก์ชันที่เราต้องการนิยามมีหลายคำสั่ง คำสั่งทุกคำสั่งจะต้องเยื้องจากตำแหน่งของ def มาเป็นระยะเท่าๆ กัน เช่น
>>> import math >>> def length(x0, y0, x1, y1): return math.sqrt((x0-x1)**2 + (y0-y1)**2) >>> def triangle_area(xA, yA, xB, yB, xC, yC): a = length(xA, yA, xB, yB) b = length(xB, yB, xC, yC) c = length(xC, yC, xA, yA) s = (a+b+c)/2 return math.sqrt(s*(s-a)*(s-b)*(s-c))
หน้าก่อน: Functions | สารบัญ | หน้าต่อไป: Print Command |