ภาษาการเขียนโปรแกรม Python ใช้ทั้ง * และ ** ในบริบทที่ต่างกัน ในบทความนี้เราจะมาดูกันว่าทั้งสองใช้อย่างไรและมีประโยชน์อย่างไร
ในฐานะผู้ดำเนินการ Infix
เมื่อใช้ * เป็นตัวดำเนินการ infix โดยทั่วไปจะให้ผลคูณทางคณิตศาสตร์ของตัวเลข ในตัวอย่างด้านล่างเราใช้จำนวนเต็ม ลอยตัวและจำนวนเชิงซ้อนเพื่อคูณและรับผลลัพธ์
ตัวอย่าง
# Integers x = 20 y = 10 z = x * y print(z,"\n") # Floats x1 = 2.5 y1 = 5.1 z1 = x1 * y1 print(z1,"\n") # Complex Numbers x2 = 4 + 5j y2 = 5 + 4j z2 = x2 * y2 print(z2,"\n")
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
200 12.75 41j
เรายังสามารถใช้เป็นตัวดำเนินการ infix เพื่อขยายสตริงได้
ตัวอย่าง
str = "Point-" print(str * 4,"\n") List = [4, 5, 6] print(List * 3,"\n") Tuple = (9, 8, 7) print(Tuple * 2)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Point-Point-Point-Point- [4, 5, 6, 4, 5, 6, 4, 5, 6] (9, 8, 7, 9, 8, 7)
เป็นตัวดำเนินการคำนำหน้า
เราสามารถใช้ดอกจันเดียวเป็นคำนำหน้าได้ ตัวอย่างด้านล่างจะอธิบายตัวอย่างต่างๆ ว่าเราสามารถใช้เป็นคำนำหน้าได้อย่างไร
ขยาย Iterable
รายการไลค์หรือทูเพิลที่ทำซ้ำได้สามารถขยายได้โดยเพียงแค่นำหน้าชื่อด้วยเครื่องหมายดอกจัน
ตัวอย่าง
week_days =['Mon','Tue','Wed','Thu','Fri'] print(week_days)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Mon Tue Wed Thu Fri
ใช้จำนวนตัวแปรของอาร์กิวเมนต์
เราสามารถกำหนดจำนวนตัวแปรของอาร์กิวเมนต์ให้กับฟังก์ชันได้โดยใช้เครื่องหมายดอกจันเพียงอันเดียว ดังแสดงในโปรแกรมด้านล่าง
ตัวอย่าง
def many_sums(*args): res = 0 # Iterating over the Python args tuple for x in args: res = res + x return res print(many_sums(1, 2)) print(many_sums(11, 21, 30)) print(many_sums(5.5,0))
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
3 62 5.5
การใช้งาน **
เครื่องหมายดอกจันคู่ใช้สำหรับอาร์กิวเมนต์ตามคีย์เวิร์ด อาร์กิวเมนต์จะถูกส่งผ่านในรูปแบบพจนานุกรมและไม่ใช่เป็นค่าส่วนบุคคล
ตัวอย่าง
def join_keys(**kwargs): result = "" # Iterating over kwargs dictionary keys for arg in kwargs.keys(): result += arg return result def join_values(**kwargs): result = "" # Iterating over kwargs dictionary values for arg in kwargs.values(): result += arg return result print(join_keys(day1="Mon-", day2="Tue-", day3="Wed-", day4="Thu-")) print(join_values(day1="Mon-", day2="Tue-", day3="Wed-", day4="Thu-"))
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
day1day2day3day4 Mon-Tue-Wed-Thu-