Я начал читать книгу Эла Свейгарта «Автоматизируйте скучные вещи».
В конце главы 3 автор предлагает создать последовательность Коллатца на Python в качестве практического упражнения. (практическое упражнение предполагает использование функции print и оператора return)
Когда я использую функцию print() в своем коде, она работает отлично, и я получаю все вычисленные значения, которые хочу видеть на экране:
print("This is The Collatz Sequence")
user = int(input("Enter a number: "))
def collatz(n):
print(n)
while n != 1:
if n % 2 == 0:
n = n // 2
print(n)
else:
n = n * 3 + 1
print(n)
collatz(user)
Вопрос:
Почему, когда я хочу использовать оператор return, цикл while выполняется только один раз?
Например, передача целого числа 3 в мою функцию с помощью оператора return дает мне возвращаемое значение только 3 и 10:
print("This is The Collatz Sequence")
user = int(input("Enter a number: "))
def collatz(n):
print(n)
while n != 1:
if n % 2 == 0:
n = n // 2
return n
else:
n = n * 3 + 1
return n
result = collatz(user)
print(result)
Подробнее здесь: https://stackoverflow.com/questions/333 ... -instead-o
Почему цикл while выполняется только один раз, когда я использую оператор return вместо print? [дубликат] ⇐ Python
Программы на Python
1762535702
Anonymous
Я начал читать книгу Эла Свейгарта «Автоматизируйте скучные вещи».
В конце главы 3 автор предлагает создать последовательность Коллатца на Python в качестве практического упражнения. (практическое упражнение предполагает использование функции print и оператора return)
Когда я использую функцию print() в своем коде, она работает отлично, и я получаю все вычисленные значения, которые хочу видеть на экране:
print("This is The Collatz Sequence")
user = int(input("Enter a number: "))
def collatz(n):
print(n)
while n != 1:
if n % 2 == 0:
n = n // 2
print(n)
else:
n = n * 3 + 1
print(n)
collatz(user)
[b]Вопрос:[/b]
Почему, когда я хочу использовать оператор return, цикл while выполняется только один раз?
Например, передача целого числа 3 в мою функцию с помощью оператора return дает мне возвращаемое значение только 3 и 10:
print("This is The Collatz Sequence")
user = int(input("Enter a number: "))
def collatz(n):
print(n)
while n != 1:
if n % 2 == 0:
n = n // 2
return n
else:
n = n * 3 + 1
return n
result = collatz(user)
print(result)
Подробнее здесь: [url]https://stackoverflow.com/questions/33324432/why-does-the-while-loop-only-runs-once-when-i-use-the-return-statement-instead-o[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия