+ 1
Python odd number help
I dont understand why my code is not working, its outputting nothing. I have a task to delete all the odd numbers in a list, and i made a script. For some reason its not outputting anything. The ‘idk’ variable was a try to indent the code because i for some reason though it would work. Any coding genius that can help me? Code: https://code.sololearn.com/clU3NSA8nin2/?ref=app
2 ответов
+ 4
as Lisa already mentioned:
this code in the second while loop is causing an issue: (infinite loop)
while lengthIndex < length:
if nums[lengthIndex] in oddNumbers:
....
> lengthindex, length and nums[lengthindex] are never changing, which causes the loop to be infinite.
general:
> the removing of elements from a list during an iteration causes problems with the indexes when starting to iterate from left to right in the list.
> if we are using a reverse iteration from right to left, the issue will not occur.
> i would recommend you to re-think the code. are you really forced to remove elements from a list, or is it allowed to create a new list base on the initial list and a condition that defines that only even numbers go to the new list?
> if the task is to really remove the odd numbers *inplace* without using an additional list, you can read more about this here:
https://stackoverflow.com/questions/1207406/how-to-remove-items-from-a-list-while-iterating
+ 3
in the while-loop (line 14) you are change the length of the list that you are iterating.
supposed you have [1, 2, 3]
you start at index = 0 and remove the element 1: [2, 3]. then you increase the index, so index = 1. now what is the element at index 1?