Как вы печатаете числа при определенных условиях? - PullRequest
0 голосов
/ 20 июня 2020

В вопросе задаются 4 числа di git в пределах условно исчисленного диапазона. Условия заключаются в том, что не должно быть числа 4, не должно быть числа, кратного 4, и должно быть указано число 7.

Примером может быть:

start: 1069
end : 1074

1070, 1071, 1073

Пока я только иметь это:

start = int(input("start: ")
end = int(input("end: ")

num_list = [i for i in range(start, end) if i % 4 != 0]

Ответы [ 2 ]

2 голосов
/ 20 июня 2020

Код

def satisfy(n):
  " Conditions "
  if n % 4 == 0:
    return False  # no multiples of 4
  s = str(n)
  if len(s) != 4:
    return False # lenght is not 4
  if '4' in s:
    return False # can't have a 4 in number
  if not '7' in s:
    return False # must have a 7 in number
  return True

start = int(input("start: "))
end = int(input("end: "))

num_list = [i for i in range(start, end+1) if satisfy(i)]
print(num_list)

Тестовый ввод

start: 1069
end: 1074
[1070, 1071, 1073]

Альтернативный однострочный текст от @Matthias в комментарии

print(', '.join(map(str, (n for n in range(start, end+1) if n%4 and '4' not in str(n) and '7' in str(n)))))
0 голосов
/ 20 июня 2020
def liste (start,end):
    num_list = []
    for  i in range(start,end):
        if (i % 4 != 0) and ('4' not in str(i)):
            num_list.append(i)
        else :

            return False
        if '7' in str(i):
            num_list.append(True)
    if True in num_list:
        return True
    else:
        return False
testlist = liste(int(input('start:')),int(input('end:')))
print(testlist)

Ввод: 1077,1078 Выход: Истина

...