Devdit
 

Python random ไม่ซ้ำ

6.2K

สอนเขียน Python random ไม่ซ้ำ โดยใช้ if not in มาเช็คว่าตัวเลขดังกล่าวซ้ำหรือไม่ โดยโจทย์คือต้องการ random ตัวเลข 0 - 20 ทั้งหมด 10 ตัวเลขแบบไม่ซ้ำ สามารถเขียนโปรแกรมได้ดังนี้

 

ตัวอย่าง Python random ไม่ซ้ำ

from random import randint

new_r = []
i = 1
while( i <= 10 ):
    r = randint(0, 20)
    if( r not in new_r ):
        new_r.append( r )
        i = i + 1

print( new_r )

ผลลัพธ์

[12, 16, 10, 6, 18, 7, 9, 14, 8, 4]
[14, 5, 2, 18, 11, 0, 7, 15, 6, 9]
[15, 13, 4, 0, 19, 10, 11, 9, 5, 8]
[6, 18, 11, 8, 15, 19, 5, 4, 7, 9]
[1, 16, 2, 9, 17, 3, 14, 8, 11, 19]

คำอธิบาย

1. import randint  จาก module random เพื่อใช้สำหรับ random number

2. สร้างตัวแปร new_r เป็นชนิด List เพื่อเก็บตัวเลขที่ random แบบไม่ซ้ำ

3. ใช้ลูป while วนทั้งหมด 10 รอบ ภายในลูป ตัวแปร r จะเก็บค่า random ตัวเลขเอาไว้

4. ใช้คำสั่ง if not in เพื่อเช็คว่าตัวแปร r มีอยู่ใน List new_r หรือไม่ กรณีถ้าไม่มีแปลว่าไม่ซ้ำ ให้เพิ่มตัวเลขดังกล่าวลงไปด้วยคำสั่ง append และให้ i บวกตัวเองเพิ่ม 1

5. นอกลูป while พิมพ์ตัวแปร new_r ออกมา

แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ