-1

I'm doing the Collatz Sequence problem from Automate the Boring Stuff for Python and I can't seem to figure out why I can't print 'Please enter an integer' even when I encounter a ValueError.

def collatz(number):
    while number!=1:
        if number%2==0: #even
            number=number//2
            print(number)
        elif number%2==1: #odd
            number=3*number+1
            print(number)
            

while True:
    print('Enter number:')
    a=int(input()) 
    try:
        collatz(a)
    except ValueError:
        print('Please enter an integer')

1 Answers1

0

For your code, you need to include following line after try statement then exception will work

a = int(input()

Hereafter is my code snippet and it worked perfectly

#!/usr/bin/python
def collatz(i):
    if i % 2 == 0:
        n = i // 2
        print n
        if n != 1:
            collatz(n)
    elif i % 2 == 1:
        n = 3 * i + 1       
        print n
        if n != 1:
            collatz(n)
try:
    i = int(raw_input("Enter number:\n"))
    collatz(i)
except ValueError:
    print "Error: You Must enter integer"
Dharman
  • 30,962
  • 25
  • 85
  • 135
Saleh
  • 1