python - Automate the boring tasks - exercise - collatz function -
beginner question here.
i have attempted exercise automate boring stuff. i've completed question in format suggested first defining function below:
"write function named collatz() has 1 parameter named number. if number even, collatz() should print number // 2 , return value. if number odd, collatz() should print , return 3 * number + 1."
and using same function, meeting minimal constraints, write programme meets following requirements:
then write program lets user type in integer , keeps calling collatz() on number until function returns value 1.
i've managed generate sequence of numbers ending one, following above rules, program prints each number in sequence 3 times. able explain why might be?
thanks help
def collatz(number): if int(number) % 2 == 0: print(int(number)//2) return int(number)//2 else: print(3 * int(number) + 1) return 3 * int(number) + 1 collatz(5) print('enter number') entry = input() while collatz(entry) != 1: collatz(entry) entry = collatz(entry)
your loop should this:
entry = input() while entry != 1: entry = collatz(entry)
Comments
Post a Comment