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