Python

Задача пайтон, циклы

сижу уже целый час, прошерстил весь инет, переспрашивал всех нейросетей, но ответа нет...

 a = int(input()) 
#Выведите в порядке возрастания все четырёхзначные числа в интервале от A до B, запись которых содержит ровно три одинаковые цифры
b = int(input())


for i in range(a, b+1):
g = str(i)
if len(g) == 4:
if ((g[0] == g[1]) and (g[2] == g[3]) and (g[2] == g[1]) and (g[0] == g[3])):
continue
if (((g[0] == g[1]) and (g[2] == g[1])) or ((g[0] == g[1]) and (g[3] == g[0])) or ((g[2] == g[1]) and (g[3] == g[1]))):
print(i)
Даже если не учитывать ведущие нули, таких чисел всего 360. Проще сформировать список всех возможных чисел, а потом просто выбрать из него те, что попадают в диапазон.
 a, b, t = max(int(input()), 1000), int(input()), [] 
for i in range(10):
for j in range(10):
if i != j: t += [i * 1111 + (j - i) * k for k in (1, 10, 100, 1000)]
print(*sorted(filter(lambda x: a
Алексей Суставов
Алексей Суставов
77 203
Лучший ответ
Алексей Суставов А ещё можно сделать такую проверку:
 a, b = max(int(input()), 1000), min(int(input()), 9999) 
for i in range(a, b + 1):
s = str(i)
if {s.count(min(s)), s.count(max(s))} == {1, 3}: print(s)
Использование циклов сильно нагружает все прошлые коды в предыдущих сообщениях.
Для решения задачи можно использовать генератор списка. Генератор списка - это способ создания списка на основе какого-то выражения. В данном случае, мы можем использовать генератор списка для создания списка всех четырехзначных чисел в интервале от A до B, запись которых содержит ровно три одинаковые цифры. Затем, мы можем использовать функцию filter() для фильтрации списка и оставления только нужных чисел.
Вот как можно переписать код с использованием генератора списка и функции filter():
 a = int(input()) 
b = int(input())

numbers = [str(i) for i in range(a, b+1) if len(str(i)) == 4]
result = list(filter(lambda x: len(set(x)) == 2, numbers))

print(*result)
В этом коде мы создаем список всех четырехзначных чисел в интервале от A до B, запись которых содержит ровно три одинаковые цифры, используя генератор списка. Затем мы используем функцию filter() для фильтрации списка и оставления только чисел, у которых ровно две уникальные цифры. Результат выводим на экран с помощью функции print().
Влад Лисицын
Влад Лисицын
14 273
 a = int(input()) 
b = int(input())

# Перебираем все четырёхзначные числа в интервале от a до b
for i in range(max(a, 1000), min(b, 9999) + 1):
# Преобразуем число в строку
num_str = str(i)

# Подсчитываем количество каждой цифры в числе
digit_count = [num_str.count(digit) for digit in num_str]

# Проверяем, есть ли ровно три одинаковые цифры
if 3 in digit_count:
print(i)
Sharif Aliyev
Sharif Aliyev
532
Всё бинго
 #Выведите в порядке возрастания все четырёхзначные числа в интервале от A до B, запись которых содержит ровно три одинаковые цифры   
g = sorted([str(x) for x in range(int(input()),int(input())+1)])
bek=[]
for gek in range(len(g)):
if len(g[gek]) == 4 and str(g[gek]).count(str(g[gek][0])) == 3 or str(g[gek]).count(str(g[gek][1])) == 3 or str(g[gek]).count(str(g[gek][2])) == 3 or str(g[gek]).count(str(g[gek][3])) == 3:
print(g[gek])
Akmal Adhamdzhonov два четырехзначных числа
Akmal Adhamdzhonov спасибо