Могу ли я сделать функцию, которая найдет для меня делится на х и у в диапазоне W, Z - PullRequest
0 голосов
/ 20 февраля 2019

Я хочу создать функцию, которая находит числа, кратные x и y в диапазоне от w до z .Например, это работает:

T = []
for i in range(1500,2701):
   if (i % 7 == 0) and (i % 5 == 0):
       T.append(str(i))
print('\n'.join(T))

Вопрос в том, могу ли я сделать все сверху в функции, где я могу изменить диапазон и делиться на:

x=input("range from")
y=input("range to")
w=input("divisible  by")
z=input("divisible  by")

def divisible(x,y,w,z):
    for i in range(x,y):
   if (i % w == 0) and (i % z == 0):
       T.append(str(i))
       return T
print('\n'.join(T))


def divisible(x,y,w,z):
    T=[]
    for i in range(x,y):
        if (i % w == 0) and (i % z == 0):
            T.append(str(i))
        return ('\n'.join(T))

print(divisible(1500,2701,5,7))

Эти две попытки не работаютесть идеи почему?Я новичок, и любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Сейчас работает

x=int(input("range from"))
y=int(input("range to"))
w=int(input("divisible  by"))
z=int(input("divisible  by"))

def divisible(x,y,w,z):
    T=[]
    for i in range(x,y):
        if (i % w == 0) and (i % z == 0):
            T.append(str(i))
    return T
print(divisible(x,y,w,z))
0 голосов
/ 20 февраля 2019

Отступы важны в Python.Вы возвращаете T сразу после того, как найдете первое делимое число.Вы должны вернуться, когда закончится цикл.Изменить на:

def divisible(x,y,w,z):
    for i in range(x,y):
        if (i % w == 0) and (i % z == 0):
           T.append(str(i))
    return T
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...