הפייתון אַקרַאִי מודול מאפשר יצירת מספרים אקראיים. המספרים שנוצרו הם רצף של מספרים פסאודו אקראיים, המבוססים על הפונקציה המשמשת. ישנם סוגים שונים של פונקציות המשמשות במודול אקראי ליצירת מספרים אקראיים, כגון random.random(), random.randint(), random.choice(), random.randrange(start, stop, width) , ועוד רבים.
כאן, נדון ב randrange() פונקציה של אַקרַאִי מודול. ה randrange() הפונקציה משמשת ליצירת מספר אקראי בין הטווח שצוין בפרמטר שלה. הוא מקבל שלושה פרמטרים: מספר התחלה, מספר עצירה ורוחב, המשמשים לדילוג על מספר בטווח.
תחביר של random.randrange()
random.randrange(start, stop[, width])
ה random.randrange() הפונקציה מחזירה מספר שלם אקראי בטווח הנתון, כלומר התחלה ועצירה. ה random.randrange() הפונקציה לוקחת שלושה פרמטרים כקלט התחל הפסק , ו רוֹחַב . מתוך שלושת הפרמטרים הללו, שני הפרמטרים הַתחָלָה ו רוֹחַב הם אופציונליים.
- ה הַתחָלָה פרמטר הוא מספר שלם התחלתי או גבול תחתון בטווח אקראי. אם פרמטר ההתחלה לא מועבר בפרמטר, הוא מקבל ערך ברירת מחדל 0 (אפס).
- א תפסיק פרמטר הוא המספר האחרון או המספר השלם של הגבול העליון בטווח אקראי.
- ה רוֹחַב פרמטר הוא טווח בין כל מספר ברצף האקראי. פרמטר זה הוא אופציונלי, ואם פרמטר הרוחב לא מועבר בפרמטר, הוא מקבל ערך ברירת מחדל 1 (אחד).
ה randrange (התחלה, עצירה, רוחב) הפונקציה אינה כוללת את פרמטר הסיום בזמן הפקת המספר האקראי השלם. ה תפסיק פרמטר הוא בִּלעָדִי , והוא לא נוצר במספר אקראי.
תסתכל על הפונקציה random.randrange(3, 30, 3) זו שתיצור כל ערך שלם אקראי בין 3 ל-30 כמו 3, 6, 9, 12, ...27. אבל פונקציה זו אף פעם לא כוללת 30 תוך יצירת מספר אקראי.
יצירת אקראי באפליקציה תמיד הייתה חשובה, ויש לה מספר שימושים בזמן אמת בחיי היום יום. לדוגמה, הפקה ושליחה של מספר אקראי ללקוח כ-OTP (סיסמה חד פעמית) לביצוע עסקה בטוחה. דוגמה נוספת ליצירת מספר אקראי משמשת תוך כדי משחק לודו כדי ליצור מספר קוביות אקראי.
דוגמאות 1: random.randrange() יוצרים מספר שלמים אקראי בטווח הנתון
בואו נראה דוגמה שבה אנו יוצרים מספר שלם אקראי בטווח נתון. דוגמה זו מציגה את כל הצורות השונות של הפונקציה random.randrange() .
import random print('Generating random number within a given range ') # Random number between 0 and 29 number1 = random.randrange(30) print('Random integer: ', number1) # Random number between 10 and 29 number2 = random.randrange(10, 30) print('Random integer: ', number2) # Random number between 25 and 200 divisible by 5 number3 = random.randrange(25, 201, 5) print('Random integer: ', number3)
תְפוּקָה:
דוגמה 2: צור טווח מספרים שלמים אקראי (כפול) של n
בואו ניצור את המספר האקראי השלם בין 5 ל-100, שהוא טווח של 5 כגון 5, 10, 25, …, 90, 95.
import random #print 'Random number range (multiple) of 5' number = random.randrange(5, 100, 5) print('Random number range (multiple) of 5 is ', number)
תְפוּקָה:
דוגמה 3: צור את המספר האקראי השלם של אורך ספציפי
אתה יכול גם ליצור מספר שלם אקראי באורך מסוים. אם אתה רוצה ליצור מספר אקראי באורך 3, הזן את הַתחָלָה ו תפסיק פרמטר ב randrange() מתפקד כמספר לפחות של 3 ספרות באורך (100) ומספר מינימלי של 4 ספרות באורך (1000) מכיוון שהוא יוצר מספר אקראי של 3 ספרות בצורה 100 עד 999 כאשר 4 ספרות (1000) אינן נכללות.
דוגמה: צור מספר אקראי בן 3 ספרות באמצעות random.randrange()
import random number1 = random.randrange(100, 1000) print('First random number of length 3 is: ', number1) number2 = random.randrange(100, 1000) print('Second random number of length 3 is: ', number2)
תְפוּקָה:
First random number of length 3 is: 813 Second random number of length 3 is: 770
דוגמה 4: צור מספר שלם שלילי אקראי:
בוא נראה דוגמה שמייצרת מספר שלם שלילי אקראי בין -50 ל -10.
import random randomNagativeInteger = random.randrange(-50, -10) print('Random negative integer number between -50 to -10') print('Random negative integer number between -50 to -10 is: ',randomNagativeInteger)
תְפוּקָה:
Random negative integer number between -50 to -10 Random negative integer number between -50 to -10 is: -43
דוגמה 5: צור מספר שלם אקראי חיובי או שלילי
import random number1 = random.randrange(-5, 5) print(number1) number2 = random.randrange(-5, 5) print(number2)
תְפוּקָה:
-5 0
שימו לב שהפרמטר הַתחָלָה ו תפסיק , אשר מועבר פנימה random.randrange() הפונקציה חייבת להיות בסדר הולך וגדל, כגון random.randrange(5, 10) אוֹ random.randrange(-20, -10) . ה הַתחָלָה פרמטר תמיד יהיה קטן יותר מה- תפסיק פָּרָמֶטֶר; אחרת, פונקציה זו יוצרת שגיאה בשם 'עקיבה חוזרת (השיחה האחרונה האחרונה) והעלאת טווח ValueError ריק עבור randrange()' .
לדוגמה:
תראה את הדוגמה הזו שבה אנו מפרים את הכלל על ידי העברת ה- הַתחָלָה פרמטר גדול מה- תפסיק פרמטר ב random.randrange() פונקציה, אשר יוצרת הודעת שגיאה כ:
ג'אווה דומה
import random randomNumber = random.randrange(10,5)
תְפוּקָה:
חלק מהפונקציות האחרות של של פייתון אַקרַאִי מודול המשמשים ליצירת מספרים באופן אקראי הם:
random.choice()
פִּיתוֹן אַקרַאִי למודול יש א בְּחִירָה() פונקציה המשמשת לבחירת אלמנט אקראי מתוך רשימה או רצף אחר. א random.choice() הפונקציה משמשת להחזרת אלמנט אקראי מרשימת הערכים.
תחביר של ramdom.choice()
random.choice(sequence)
אוֹ
random.choices(sequence, k=l)
כאן הפרמטר סדר פעולות יכול להיות מחרוזת, רשימה, tuple ו random.choice() רק אלמנט אקראי בודד.
בתוך ה random.choices() פוּנקצִיָה ק הוא מספר האלמנטים שיש להחזיר. נניח שלא נזכיר את הערך עבור ק פרמטר את random.choices() מחזיר פריט בודד מהרצף או מהרשימה.
דוגמה 1:
בדוגמה זו, אנו מספקים על רצף (רשימה) כפרמטר ומחזירים אלמנט אקראי יחיד.
import random listValue = [5,10,15,20,25,30] item = random.choice(listValue) print('random item from list is: ', item)
תְפוּקָה:
random item from list is: 10
דוגמה 2:
הפונקציה random.choices() משמשת בעיקר להחזרת אלמנטים אקראיים עם אפשרויות שונות. פונקציה זו גם לוקחת משקל (k) את מספר הבחירות האקראיות. לדוגמה, אנו רוצים להדפיס 3 שם סרטים אקראיים מתוך רשימה של 5 סרטים.
import random movieList = ['Matrix', 'Terminator', 'Black Panther', 'Avengers', 'Titanic'] randomMovies = random.choices(movieList, k=3) print('random movies from list are: ', randomMovies)
תְפוּקָה:
random movies from list are: ['Avengers', 'Black Panther', 'Titanic']
random.randint()
פִּיתוֹן random.randint() הפונקציה משמשת ליצירת מספר שלם אקראי בטווח שצוין.
תחביר:
random.randint(start, stop)
ה random.randint() הפונקציה לוקחת שני פרמטרים הַתחָלָה , שהוא טווח התחלה, ו תפסיק , שהוא טווח קצה. שני הפרמטרים (התחלה, עצירה) כלולים תוך יצירת מספר אקראי.
דוגמה ל-random.randint() היוצר רשימה של מספר שלם אקראי
דוגמה זו תיצור רשימה של מספרים שלמים אקראיים מרובים באמצעות הפונקציה randint() . יצירת רשימה של 5 מספרים שלמים אקראיים בין 1 ל-100, שני הערכים כוללים.
import random randomListValue = [] # specifing length of list equal to 5 for i in range(0, 5): # generates random numbers from 1 to 100 randomListValue.append(random.randint(1, 100)) print('Printing list of 5 generated random numbers') print(randomListValue)
תְפוּקָה:
Printing list of 5 generated random numbers [65, 82, 3, 39, 40]
עם זאת, עשויה להיות אפשרות לכך ה-random.randint() הפונקציה מחזירה מספר כפול בתוצאת הפלט. כדי להימנע מהמספר השלם האקראי הכפול בתוצאה, השתמש דגימה אקראית() פוּנקצִיָה.
דגימה אקראית()
בדוגמה שלעיל, תיתכן אפשרות ש random.randint() יוצר את המספר האקראי הכפול מהרשימה. אם ברצונך ליצור מספרים אקראיים ייחודיים מרשימה, השתמש דגימה אקראית() פוּנקצִיָה.
ה דגימה אקראית() הפונקציה יוצרת אלמנטים ייחודיים מקבוצה, רשימה ורצפים אחרים. הפונקציה random.sample() של Python מאפשרת דגימה אקראית של יותר מאלמנט אחד בטווח מהרשימה מבלי לשכפל.
דוגמה ל-random.sample() ליצירת אלמנטים אקראיים מרשימה ללא כפילויות:
בדוגמה זו, ניצור 10 מספרים שלמים אקראיים מהטווח 0 עד 100.
import random # Generate 10 unique random numbers within a range randomList = random.sample(range(0, 100), 10) print(randomList)
תְפוּקָה:
[15, 17, 16, 66, 34, 85, 71, 82, 97, 48]
אם ברצונך ליצור רשימה של מספרים אקראיים וכל אחד מהם חייב להיות כפול של 'n', השתמש בפרמטר הצעד של הפונקציה range().
לדוגמה, הפקת 10 מספרים שלמים אקראיים שהם כפולה של 5 מהטווח 0 עד 100 באמצעות random.sample(range(0, 100, 5), 10).
import random # Generate 10 unique random numbers within a range randomList = random.sample(range(0, 100, 5), 10) print(randomList)
תְפוּקָה:
[75, 40, 20, 55, 15, 10, 5, 90, 95, 70]
מיון רשימה()
הפייתון סוג() הפונקציה משמשת כדי למיין את המספרים השלמים האקראיים של הרשימה בסדר עולה (כברירת מחדל). נוכל גם למיין את ערך הרשימה בסדר יורד על ידי ציון הסדר שלו הפוך = נכון . ערך ברירת המחדל של לַהֲפוֹך הוא שֶׁקֶר .
דוגמה 1: sort() מיון רכיבי רשימה בסדר עולה
בדוגמה זו, ניצור רשימה אקראית של 5 מספרים בטווח של 50 עד 100 ברוחב של 5 ונמיין אותם באמצעות סוג() פוּנקצִיָה.
import random randomList = random.sample(range(50, 100, 5), 5) print('Before sorting random integers list') print(randomList) # sort the list ascending order by default randomList.sort() print('After sorting random integers list') print(randomList)
תְפוּקָה:
Before sorting random integers list [90, 80, 60, 55, 85] After sorting random integers list [55, 60, 80, 85, 90]
דוגמה 2: sort() מיון רכיבי רשימה בסדר יורד
בדוגמה זו, נמיין את רכיבי הרשימה בסדר יורד באמצעות randomList.sort(reverse=True) .
import random randomList = random.sample(range(50, 100, 5), 5) print('Before sorting random integers list') print(randomList) # sort the list descending order randomList.sort(reverse=True) print('After sorting random integers list') print(randomList)
תְפוּקָה:
Before sorting random integers list [70, 50, 80, 90, 85] After sorting random integers list [90, 85, 80, 70, 50]