Найти - Пользователи
Полная версия: Нужна функция, генерирующая четырехзначное число, все цифры которого различны, а первая цифра отлична от нуля
Начало » Центр помощи » Нужна функция, генерирующая четырехзначное число, все цифры которого различны, а первая цифра отлична от нуля
1
vladimir_vl_vlad
Не понимаю как создать условие чтобы цифры не повторялись в числе.
 def generate_number():
    num = random.randint(1000,9999)
    print(num)
generate_number()
doza_and
vladimir_vl_vlad
чтобы цифры не повторялись
Есть много способов. Я бы выбрал shuffle
AD0DE412
 import random
out_data = []
while len(out_data) < 4:
    num = random.randint(0, 9)
    if len(out_data):
        if not num in out_data:
            out_data.append(num)
    else:
        if num:
            out_data.append(num)
print(out_data)
 print(int("".join([str(i) for i in [7, 9, 6, 5]])))
py.user.next
  
>>> import random
>>> 
>>> def f():
...     digits_nine = list(range(1, 10))
...     digits_ten = list(range(10))
...     d1 = digits_nine.pop(random.randint(0, 8))
...     d2 = digits_ten.pop(random.randint(0, 9))
...     d3 = digits_ten.pop(random.randint(0, 8))
...     d4 = digits_ten.pop(random.randint(0, 7))
...     out = d1 * 1000 + d2 * 100 + d3 * 10 + d4
...     return out
... 
>>> for _ in range(10):
...     f()
... 
5910
4412
3542
3520
9280
2794
7134
7810
5318
3305
>>> for _ in range(10):
...     f()
... 
7475
9417
9574
2407
5359
7471
9403
2576
7208
1174
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB