Список превращается в int

print("вас приветствует ""Нахождение НОК 2ух чисел")
x = input("введите 1ое число")
y = input("введите 2ое число")
# z = x/z and y/z no %
r = list()
for r in range(1000):
    if r % int(x) and r % int(y) == 0:
        list(r).append(r)
        print(r)

Пишет, что r это не список.


Ответы (2 шт):

Автор решения: Kirill Kondratenko

Попробуй так:

print("вас приветствует ""Нахождение НОК 2ух чисел")
x = input("введите 1ое число")
y = input("введите 2ое число")
# z = x/z and y/z no %
res = []
for r in range(1000):
    if r % int(x)==0 and r % int(y) == 0:
        res.append(r)
print(res)
→ Ссылка
Автор решения: MarianD

Пишет, что r это не список.

К сожалению, он когда-то и был списком, но уже нет:

У вас в переменной r

  • сначала был пустой список, вы его создали и присвоили командой  r = list(),

  • но затем вы превратили ту же самую переменную в переменную типа int (целое число) командой  for r in range(1000):.

Вы, вероятно, хотели применить разные имена — одно для списка, другое для числа (переменной цикла for).

Например, так — я заменил первое r на common_multipliers:

common_multipliers = list()                         # или короче common_multipliers = []
for r in range(1000):
    if r % int(x) == 0 and r % int(y) == 0:         # здесь я исправил ошибку
        common_multipliers.append(r)                # не надо list(common_multipliers)
        print(r)
→ Ссылка