Я новичок в Python, и я пытаюсь написать код, который определяет все кратные 5 в диапазоне, указанном пользователем. Я получаю код, который увеличивается в единицах 5. Например, если диапазон был 6 и 21, он сказал бы, что кратные 6,11,16,21.

a = int(input("Enter a value of a : "))
b = int(input("Enter a vlue of b : "))

if a%5 ==0:
    a = a+5

multiples = []

for value in range(a, b+1,5):
    multiples.append(value)

print(multiples)

Я ожидаю, что будут напечатаны только кратные 5.

0
Riyad Khan 3 Июл 2019 в 20:22

3 ответа

Лучший ответ

Если ожидаемый результат в диапазоне от 6 до 21 равен [10, 15, 20], вы можете сначала проверить, является ли начальная точка кратной 5, как вы делали с if a % 5 == 0, и если это правда, мы можем добавить 5 несколько раз, пока мы не достигнем конца диапазона, добавляя все шаги в список вывода.

Однако если a % 5 == 0 дает вам значение false, то нам нужно найти значение, которое нужно добавить к этой начальной точке, чтобы мы могли получить первое кратное 5 в этом диапазоне, т.е.

diff = 5 - a % 5

И добавив это значение в начальную точку a, мы получим первое значение:

first = a + diff

Затем мы можем добавлять 5 раз, пока не достигнем конца диапазона.

Чтобы поместить все вышеперечисленное в код:

# get user input for the range a to b
a = int(input("Enter a value of a : "))
b = int(input("Enter a value of b : "))

output_list = []

# determine first value
if a % 5 == 0: 
    first_val = a
else: 
    first_val = a + (5 - (a % 5))

# go through the range between the first value and the end, with step=5
for val in range(first_val, b + 1, 5):
    # append value to the list
    output_list.append(val)

print(output_list)

0
UdonN00dle 3 Июл 2019 в 17:47

Вы могли бы добавить следующее к своему выражению if:

else:            # if it isn't a multiple of 5
    a += (5-a%5) # add enough to get to the next multiple of 5
0
Scott Hunter 3 Июл 2019 в 17:32

Я думаю, вам нужно найти напоминание о input1, а затем начать цикл с этим напоминанием

    a = int(input("Enter a value of a : "))

    b = int(input("Enter a vlue of b : "))

    c=a%5 #reminder

    multiples = []

    for value in range(a+5-c, b+1,5):
       multiples.append(value)

    print(multiples)
0
spr93 3 Июл 2019 в 17:37