Почему ошибка ???

nas.tya_b

Новичок
Пользователь
Дек 7, 2021
1
0
1
Такая ошибка:
ine 8, in <module>
b=set(fib2)
TypeError: 'int' object is not iterable

Вот сам код :
a=set(range(1, 51))
print(a)

fib1=1
fib2=1
for i in a :
fib1, fib2= fib2, fib1+fib2
b=set(fib2)

z= a & b
print(len(z))

В задании нужно найти сечение множественного от 1 до 50 с числами Фибоначчи
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Почему ошибка ???
Потому что метод set() принимает в качестве аргумента итерируемый объект, а число таким объектом не является.
Вот исправленный вариант вашего кода:
Python:
a = set(range(1, 51))
print(a)

fib1 = 1
fib2 = 1
b = {fib1, fib2}  # создаем set из двух первых чисел фибоначчи
for i in a:
    fib1, fib2 = fib2, fib1 + fib2
    b.add(fib2)  # на каждой итерации цикла добавляем в set следующее число фибоначчи

z = a & b
print(z)
 
  • Мне нравится
Реакции: Domohod45

Форум IT Специалистов