On Friday, March 18, 2016 at 3:46:44 PM UTC-7, Alan Gabriel wrote:
> Sorry for the multiple questions but my while loop is not working as intended.
> 
> Here is the code :
> n = 1
> list1 = []
> count = 0  #amount of times program repeats
> steps = 0 # amount of steps to reach 1
> step_list = []
> while n!=0:
>     n= int(input())
>     list1.append(n)
> length = len(list1)
> 
> while count < length:
>     num= list1[count]
>     while num!= 1:
>         if num%2 == 0:
>             num= int(num/2)
>             print(num)
>             steps+=1
>         if num%2 == 1:
>             num=int(3*num+1)
>             print(num)
>             steps+=1
>             
>     count+=1
>     step_list.append(steps)
>     steps=0
> 
> This code is meant to get numbers from the user in different lines and 
> convert into a list. When this is done the first while loop  runs until it 
> checks all the numbers in the list. The 2nd while loop is meant to stop when 
> the number is equal to 1 however the 2nd while loop keeps running.
> 
> Sorry for the bad naming but I was in a rush, ty anyway

I'll give you a big hint.  Your problem is on this line:

        if num%2 == 1:

Step through your program slowly.  What happens when num == 2?
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to