แอปพลิเคชันคอมพิวเตอร์จำนวนมากต้องการตัวเลขสุ่มเพื่อสร้าง อย่างไรก็ตามไม่มีใครสร้างตัวเลขสุ่มอย่างแท้จริง Python เช่นเดียวกับเทคนิคการเขียนโปรแกรมอื่นๆ ใช้ตัวสร้างสุ่มหลอก การสร้างแบบสุ่มของ Python นั้นใช้อัลกอริทึม Mersenne Twister ที่สร้างโฟลตความแม่นยำ 53 บิต เทคนิคนี้รวดเร็วและปลอดภัยต่อเธรดแต่ไม่เหมาะกับวัตถุประสงค์ในการเข้ารหัส
ไลบรารีมาตรฐานของ Python มีโมดูลสุ่มซึ่งกำหนดฟังก์ชันต่างๆ สำหรับการจัดการการสุ่ม
random.seed() − ฟังก์ชันนี้จะเริ่มต้นตัวสร้างตัวเลขสุ่ม เมื่อนำเข้าโมดูลแบบสุ่ม เครื่องกำเนิดไฟฟ้าจะเริ่มต้นโดยใช้เวลาของระบบ หากต้องการรีซีฟเครื่องกำเนิดไฟฟ้า ให้ใช้อ็อบเจ็กต์ int, str, byte หรือ bytearray
random.getstate() ฟังก์ชันนี้ร่วมกับฟังก์ชัน setstate() ช่วยในการทำซ้ำข้อมูลสุ่มซ้ำแล้วซ้ำอีก ฟังก์ชัน getstate() จะคืนค่าสถานะภายในของเครื่องกำเนิดตัวเลขสุ่ม
random.setstate() − ฟังก์ชันนี้จะคืนสถานะภายในของเครื่องกำเนิดไฟฟ้า
ฟังก์ชันต่อไปนี้จัดการการสร้างเลขจำนวนเต็มแบบสุ่ม -
random.randrange() − ฟังก์ชันนี้สร้างจำนวนเต็มสุ่มระหว่างช่วงที่กำหนด ใช้พารามิเตอร์ได้สามตัว
random.randrange(start, stop, step)
พารามิเตอร์เริ่มต้นและขั้นตอนเป็นทางเลือก ค่าเริ่มต้นคือ 0 และ 1 ตามลำดับ ขั้นตอนกำหนดช่วงเวลาระหว่างตัวเลขที่ต่อเนื่องกัน
>>> random.randrange(10) 5 >>> random.randrange(10, 20) 17 >>> random.randrange(100, 200, 2) 188
(หมายเหตุ:โปรดทราบว่าผลลัพธ์ของข้อความข้างต้น และข้อความที่เหลือในบทความนี้อาจไม่เหมือนกับที่ถูกสร้างขึ้นแบบสุ่ม)
random.randint() − ฟังก์ชันนี้สร้างจำนวนเต็มสุ่มระหว่างสองพารามิเตอร์ คล้ายกับฟังก์ชัน randrange() ที่ไม่มีพารามิเตอร์ขั้นตอน จำเป็นต้องมีพารามิเตอร์เริ่มต้น
>>> random.randint(1,10) 6 >>> random.randint(100, 200) 134
ฟังก์ชันต่อไปนี้จัดการกับตัวเลขสุ่มจุดลอยตัว
random.random() - ฟังก์ชันนี้สุ่มสร้างจำนวนจุดลอยตัวระหว่าง 0.0 ถึง 1.0
>>> random.random() 0.668544544081956
random.uniform() − ฟังก์ชันนี้จะคืนค่าสุ่มตัวเลขทศนิยมระหว่างสองพารามิเตอร์
>>> random.uniform(0.5,1.5) 1.2760281470664903 >>> random.uniform(1,10) 7.336985794193224 >>> random.uniform(10,5) 7.817794757786727
ฟังก์ชันต่อไปนี้ทำหน้าที่ตามวัตถุลำดับ ได้แก่ สตริง รายการ หรือทูเพิล
random.choice() − ฟังก์ชันนี้จะเลือกองค์ประกอบแบบสุ่มจากลำดับ หากลำดับว่างเปล่า IndexError จะถูกส่งออกไป
>>> random.choice("Tutorialspoint") 'o' >>> random.choice(range(10)) 2 >>> random.choice([15,31,6,29,55, 5]) 55 >>> random.choice((15,31,6,29,25, 55)) 15
random.choices() − ฟังก์ชันนี้จะเลือกองค์ประกอบหลายรายการจากรายการในลักษณะสุ่ม พารามิเตอร์ตัวแรกของฟังก์ชันนี้คือลำดับ และพารามิเตอร์ที่สองคือจำนวนตัวเลือกที่จะทำ
>>> name = "TutorialsPoint" >>> random.choices(name, k = 2) ['T', 'o']
random.shuffle() − ฟังก์ชันนี้จะจัดลำดับองค์ประกอบใหม่ตามลำดับที่ไม่แน่นอนและจัดวางองค์ประกอบแบบสุ่ม
>>> num = [10,20,30,40,50] >>> random.shuffle(num) >>> num [50, 20, 40, 30, 10]
random.sample() − ฟังก์ชันนี้ทำงานกับลำดับที่ไม่เปลี่ยนรูป ส่งคืนรายการสุ่มเลือกจากลำดับโดยปล่อยให้ไม่บุบสลาย
>>> name = "TutorialsPoint" >>> nm = random.sample(name, k = 2) >>> name, nm ('TutorialsPoint', ['i', 'a'])