как использовать в функции, если результат = 1, то выйти - PullRequest
0 голосов
/ 02 июня 2018

Я начал изучать Python.Я написал этот код, чтобы проверить, является ли число четным или нечетным.Если число четное, возьмите это число и разделите его на 2. Если число нечетное, умножьте число на три и добавьте единицу.

Я не знаю, куда поместить цикл while.

Мой код:

def collatz(number):

    if number % 2 == 0:
        return number / 2
    else:
        return 3 * number + 1    
print("Enter the number: ")
qassam = int(input())
print(collatz(qassam))

Я хочу выйти, когда результат любого условия if == 1. Как это сделать?

Ответы [ 2 ]

0 голосов
/ 02 июня 2018
def collatz(number):
    If number%2==0:
        return number //2
    else:
        return 3*number+1
userInput = int(input())
while userInput != 1:
    userInput = collatz(userInput)
    print(userInput)

Надеюсь, это поможет. Согласно информации, указанной в ссылке, каждое число в конечном итоге становится 1, когда вы делаете num // 2 (деление по этажу, так как вам нужны только целые числа, а не числа с плавающей запятой) для четного и 3 * num+1 к коэффициентам неоднократно по результатам

0 голосов
/ 02 июня 2018

Вы хотите продолжать вызывать вашу функцию, пока ваш текущий номер не равен 1. Поэтому используйте while number != 1.

def collatz(number):
    if number % 2:
        number = (3 * number) + 1
    else:
        number =  number//2
    print(number)
    return number

number = int(input("Number: "))
while(number != 1):
    number = collatz(number)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...