0'dan 9'a qədər təsadüfi tam ədəd yaradın

Python-da 0'dan 9'a (inclusive) təsadüfi tam ədədləri necə yarada bilərəm?

Məsələn, 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9

1003
22 окт. aneuryzm təyin 22 oktyabr. 2010-10-22 15:48 '10 at 15:48 2010-10-22 15:48
ответ 21 cavab

Keçir:

 from random import randint print(randint(0, 9)) 

Daha çox məlumat: https://docs.python.org/3/library/random.html#random.randint

1603
22 окт. 22 oktyabr covshenin tərəfindən verilən cavab 2010-10-22 15:51 '10 at 15:51 2010-10-22 15:51
 import random print(random.randint(0,9)) 

 random.randint(a, b) 
border=0

Təsadüfi bir tam ədədi qaytarır N belə bir <= N <= b.

Sənədlər: https://docs.python.org/3.1/library/random.html#random.randint

300
04 мая '13 в 20:13 2013-05-04 20:13 Cavab JMSamudio tərəfindən verilir 04 May '13 20:13 2013-05-04 20:13

Aşağıdakıları cəhd edin:

 from random import randrange, uniform # randrange gives you an integral value irand = randrange(0, 10) # uniform gives you a floating-point value frand = uniform(0, 10) 
95
22 окт. cümə axşamı Andrew Hareə cavab verdi . 2010-10-22 15:49 '10 at 15:49 2010-10-22 15:49
 from random import randint x = [randint(0, 9) for p in range(0, 10)] 

0'dan 9'a qədər aralığında 10 ədəd sözde təsadüfi tam ədədi yaradır.

54
26 нояб. Cavab 26 noyabr tarixində istifadəçi14372 tərəfindən verilmişdir. 2013-11-26 20:39 '13 at 8:39 pm 2013-11-26 20:39

secrets modul Python 3.6-da yenidir. Bu kriptoqrafiya və ya təhlükəsizlikdə istifadə üçün random moduldan daha yaxşıdır.

Təsadüfi bir 0-9 aralığında bir tamsayı çıxarmaq üçün:

 from secrets import randbelow print(randbelow(10)) 

Ətraflı məlumat üçün PEP 506-a baxın.

37
06 дек. Cavab Chris_Rands tərəfindən 06 Dek . 2016-12-06 13:29 '16 'da 13:29' de 2016-12-06 13:29

random.shuffle vasitəsilə cəhd edin

 >>> import random >>> nums = [x for x in range(10)] >>> random.shuffle(nums) >>> nums [6, 3, 5, 4, 0, 1, 2, 9, 8, 7] 
20
29 окт. Cavab 29 oct zangw verilir . 2015-10-29 12:13 '15 'da 12:13' de, 2015-10-29 12:13

Serialın ölçüsünü seçin (bu nümunədə 20 ölçüsünü seçdim). Və aşağıdakıları istifadə edin:

 import numpy as np np.random.randint(10, size=(1, 20)) 

Aşağıdakı formadan çıxmağı gözləmək olar (hər rastgele tamsayılar hər dəfə başladığınızda geri qaytarılacaq, beləliklə çıxış nömrəsində bütün nömrələri aşağıdakı nümunədən fərqli olmasını gözləmək olar).

 array([[1, 6, 1, 2, 8, 6, 3, 3, 2, 5, 6, 5, 0, 9, 5, 6, 4, 5, 9, 3]]) 
15
02 февр. Cavab Commoner tərəfindən verilir 02 fevral. 2017-02-02 09:35 '17 at 9:35 2017-02-02 09:35

Davamlı ədədlər üçün, randint və ya randrange ən yaxşı seçimdir, ancaq bir neçə fərqli dəyərləriniz varsa (yəni list ), choice də istifadə edə bilərsiniz:

 >>> import random >>> values = list(range(10)) >>> random.choice(values) 5 

choice də qeyri-davamlı bir nümunədən tək bir maddə üçün işləyir:

 >>> values = [1, 2, 3, 5, 7, 10] >>> random.choice(values) 7 

Sizə "kriptoqrafik secrets.choice güclü" ehtiyac varsa, python 3.6 və daha yeni secrets.choice də var.

 >>> import secrets >>> values = list(range(10)) >>> secrets.choice(values) 2 
13
03 июня '17 в 4:45 2017-06-03 04:45 Cavab MSeifert tərəfindən 03 iyun '17' də 4:45 'də 2017-06-03 04:45' də verilir

numpy istifadə etmək istəyirsinizsə, aşağıdakıları istifadə edin:

 import numpy as np print(np.random.randint(0,10)) 
9
12 янв. Cavab 12 yanvarda sushmit verilir 2017-01-12 06:12 '17 'da 6:12' də 2017-01-12 06:12 'də

İlkin sual, bir sıra təsadüfi tam ədədlərin yaradılmasını nəzərdə tutur.

Python'da 0'dan 9'a (tam daxil olmaqla) tamsayılar necə yarada bilər?

Lakin, bir çox cavab yalnız təsadüfi bir sıra, məsələn, random.randintrandom.choice .

Birdən çox təsadüfi tam ədəd

Aydınlıq üçün, bu üsulları istifadə edərək birdən çox təsadüfi ədəd yarada, sadəcə N dəfə təkrarlaya bilərsiniz:

 import random N = 5 [random.randint(0, 9) for _ in range(N)] # [9, 7, 0, 7, 3] [random.choice(range(10)) for _ in range(N)] # [8, 3, 6, 8, 7] 

Təsadüfi tam ədədi nümunəsi

Bəzi mesajlar əvvəlcədən təsadüfi tam ədədlərin necə yaradılacağını göstərir. 1 Burada nəzərdə tutulan sualları təsir edən bəzi variantlar:

random.sample bir populyasiyadan (heç bir əvəzsiz) random.sample unikal seçimi qaytarır: 2

 random.sample(range(10), k=N) # [4, 5, 1, 2, 3] 

Python random.choices , random.choices populyasiya k random.choices qaytarır (əvəzinə):

 random.choices(range(10), k=N) # [3, 2, 0, 8, 2] 

numpy.random.choice istifadə edərək, bu bağlı ismarıc da baxın.

Yəni @John Lawrence Aspden, @ST Mohammed, @SiddTheKid, @ user14372, @zangw və s.

2 @ prashanth bu modul bir tamsayı göstərildiyini xatırladır.

8

0'dan 9'a qədər təsadüfi tam ədəd yaradın.

 import numpy X = numpy.random.randint(0, 10, size=10) print(X) 

Çıxış:

 [4 8 0 4 9 6 9 9 0 7] 
5
06 июля '18 в 9:25 2018-07-06 09:25 Ashok Kumar Jayaraman tərəfindən cavab 06 iyul '18 'də saat 9:25' da 2018-07-06 09:25

random.sample istifadə edilə biləcək başqa bir random.sample

 import random n = 1 # specify the no. of numbers num = random.sample(range(10), n) num[0] # is the required number 
5
14 мая '17 в 19:46 2017-05-14 19:46 cavab 14 may '17 də 19:46 2017-05-14 19:46 ' da prashanth verilir

Ən yaxşı yolu Random funksiyasından istifadə etməkdir.

 import random print(random.sample(range(10), 10)) 

və ya kitabxana idxal etmədən:

 n={} for i in range(10): n[i]=i for p in range(10): print(n.popitem()[1]) 

burada popitems lüğət n dən özbaşına dəyərini silir və qaytarır.

4
15 мая '17 в 21:29 2017-05-15 21:29 15 May 'da 17:29' də ST Məhəmmədə cavab verdi 2017-05-15 21:29

Aralığı nəzarət etmək üçün dəyişən istifadə etdim

 from random import randint numberStartRange = 1 numberEndRange = 9 randomNumber = randint(numberStartRange, numberEndRange) print(randomNumber) 

Nəticələri görmək üçün çap funksiyasından istifadə etdim. Lazım olmasa şərh edə bilərsiniz.

1
19 сент. Cavab 19 sentyabrda Amir Md Amiruzzaman'a verilir 2017-09-19 14:30 '17 saat 14:30 'da 2017-09-19 14:30

Verdiyiniz nümunə üçün (0dan 9-a qədər tamsayılar) ən təmiz həll aşağıdakı kimidir:

 from random import randrange randrange(10) 
1
08 окт. Cavab Utku 08 oktyabr aiddir. 2018-10-08 17:38 '18 də 5:38 'də 2018-10-08 17:38' də

Aşağıdakıları edə bilərsiniz:

 import numpy as np print ( np.random.uniform(low=0, high=10, size=(15,)) ).astype(int) >>> [8 3 6 9 1 0 3 6 3 3 1 2 4 0 4] 

Qeydlər:

 ''' np.random.uniform generates uniformly distributed numbers over the half-open interval [low, high). .astype(int) casts the numpy array to int data type. I have chosen size = (15,). This will give you a numpy array of length = 15. ''' 

Numpy.random.uniform haqqında daha çox məlumat əldə edin

Numpy.ndarray.astype haqqında əlavə məlumat

0
28 нояб. Cavab Siddharth Satpathy tərəfindən verilir 2018-11-28 10:56 '18 saat 10:56 'da 2018-11-28 10:56

Bu, daha çox riyazi yanaşma deyil, halbuki 100% hallarda işləyir:

ab arasında a ədədi yaratmaq üçün random.random() istifadə etmək istəyirik. Bunu yerinə yetirmək üçün aşağıdakı adımları edin:

num = (ba)*random.random() + a;

Əlbəttə ki, daha çox nömrələr yarada bilərsiniz.

0
30 нояб. Cavab Orestis Zekai 30 noyabr tarixində verilir. 2018-11-30 21:27 '18 saat 21:27 2018-11-30 21:27

Təsadüfi modul üçün sənədlər səhifəsindən:

Xəbərdarlıq: bu modulun yalançı təsadüfi generatorları təhlükəsizlik məqsədləri üçün istifadə edilməməlidir. Əgər kriptoqrafik cəhətdən təhlükəsiz saxta təsadüfi sayda generator tələb etsə os.urandom () və ya SystemRandom istifadə edin.

Python 2.4-də təsvir edilmiş random.SystemRandom , kriptoqrafik baxımdan təhlükəsiz sayılır. Python 3.7.1-də hələ mövcuddur.

 >>> import string >>> string.digits '0123456789' >>> import random >>> random.SystemRandom().choice(string.digits) '8' >>> random.SystemRandom().choice(string.digits) '1' >>> random.SystemRandom().choice(string.digits) '8' >>> random.SystemRandom().choice(string.digits) '5' 

string.digits əvəzinə, string.digits birlikdə bəzi digər cavablar üçün istifadə edilə bilər. Qarışdırın və ehtiyaclarınıza cavab verin.

0
12 дек. Cavab 12 dekabrda Richard Riehle tərəfindən verilir. 2018-12-12 01:49 '18 saat 01:49 2018-12-12 01:49

Bunu sınayın

 import numpy as np X = np.random.randint(0, 99, size=1000) # 1k random integer 
0
19 дек. Cavab 19 dekabrda Rakesh Chaudhari tərəfindən verilir . 2018-12-19 13:38 '18 saat 13:38 'də 2018-12-19 13:38' a çatdı

Bununla Python 3.6 üçün şanslıyam

 str_Key = "" str_RandomKey = "" for int_I in range(128): str_Key = random.choice('0123456789') str_RandomKey = str_RandomKey + str_Key 

Sadəcə, "ABCD" və "abcd" və ya "^! ~ = → <" kimi simvolları çıxarın, çıxarmaq üçün simvollar həndəsini dəyişdirin, yaradılan simvolların sayını dəyişdirin.

-2
21 июля '17 в 2:43 2017-07-21 02:43 Cavab MT rəhbəri tərəfindən 21 İyul 21 'də 2:43 2017-07-21 02:43' də verilir

əlaqədar digər suallar və ya bir sual