ด้านหนึ่งของการเขียนโปรแกรมที่หลายบทช่วยสอนไม่บอกล่วงหน้าคือปริมาณการวนลูปและนับที่คุณจะต้องทำ ดังนั้นภาษาโปรแกรมที่มีคุณค่าจะเสนอวิธีการนับเลขแบบซ้ำๆ Python range sequence type เป็นหนึ่งในวิธีนั้น
ในโพสต์นี้ เราดู Python range() และแสดงวิธีใช้ภายในโปรแกรมของคุณ
แนะนำ Python range() Sequence Type
แม้ดูเหมือนฟังก์ชัน range() จริงๆ แล้วเป็น built-in Python 3 immutable sequence type จึงจัดกลุ่มกับ lists และ tuples เป็นวิธีรวบรวมข้อมูลเพื่อวนลูปภายหลัง
สั้นๆ คือวิธีทำซ้ำการกระทำจำนวนครั้งที่กำหนด ใน Python 2 เรียกว่า xrange() ให้ฟังก์ชันเกือบเหมือนกัน จริงๆ range() มีพลังมากกว่า xrange() และมีความแตกต่างบ้าง จะอภิปรายรายละเอียดต่อไป
ตามคาด Python 3 range() เหมาะสำหรับ looping tasks และ iteration ผ่าน lists และ dictionaries มาดูการทำงานกัน
วิธีใช้ Python range() Sequence Type
ก่อนอื่น แสดงโครงสร้างพื้นฐานของ Python range():
range(y)
ง่ายที่สุดเท่าที่ Python function จะเป็น y สามารถเป็น integer ใดๆ (floating point numbers ไม่รองรับโดยค่าเริ่มต้น) ตามการประยุกต์ ปกติจะ assign range() ให้ตัวแปร เมื่อ range() รันเสร็จ จะคืนค่า tuple ถ้า print ตัวแปรที่ assign จะเห็น tuple ที่คืนมา
ในการใช้งานจริง ปกติใช้ looping เช่นตัวอย่างนี้กับ for:
for i in range(5):
print(i)
จะสังเกตว่า range() ใช้ศูนย์เป็นจุดเริ่มต้น แต่เป็นค่าเริ่มต้นเพียงอย่างเดียว จริงๆ range() มีอาร์กิวเมนต์อื่นๆ ที่ตั้งค่าได้ โครงสร้างคือ:
range(start, stop, step)
อธิบาย: กำหนด integer 3 ตัว: จุดเริ่มต้น จุดหยุด และว่าข้ามตัวเลขหรือไม่ เฉพาะ stop ที่จำเป็น - อื่นๆ เป็น optional
ให้ความยืดหยุ่นและพลังในการสร้าง loops และ tuples ที่ซับซ้อน ตัวอย่าง ระบุช่วงตัวเลขคู่ที่แน่นอน:
list(range(0, 10, 2)) # [0, 2, 4, 6, 8]
ยิ่งไปกว่านั้น สามารถรวมฟังก์ชันเพื่อแปลง tuple ที่สร้างได้เป็น list ธรรมดา:
list(range(5)) # [0, 1, 2, 3, 4]
Python range() ไม่ได้ดีแค่ ascending iteration - ใช้สำหรับ descending numbers ได้ด้วย:
list(range(10, 0, -1)) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
ในความคิดของเรา range() เป็น workhorse จริงๆ และจะหาประโยชน์มากในโปรแกรมของคุณ
สรุป
Python เก่งหลายเรื่อง แต่การสร้าง lists, dictionaries, และ tuples เป็นจุดแข็ง ด้วย Python range() sequence type คุณสร้าง tuple ที่มีเฉพาะตัวเลขที่ต้องการได้อย่างรวดเร็ว ยิ่งไปกว่านั้น Python ให้รวม range() กับฟังก์ชันอื่นๆ เช่น list() เพื่อให้ความยืดหยุ่นในการเก็บตัวเลขที่สร้างขึ้น
ถ้ายังไม่ย้ายไป Python 3 และใช้ macOS เราเคยเผยแพร่บทความแสดงวิธีทำไว้