<problem>
Create a method `removeEven(nums:List[int]) -> List[int]` that accepts a list `nums`. Remove all even numbers from `nums` and return a list without any even numbers.

## Example Cases:
```
removeEven([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) => [1, 3, 5, 7, 9]
removeEven([2, 4, 6, 8, 10]) => []
removeEven([1, 3, 5, 7, 9]) => [1, 3, 5, 7, 9]
removeEven([-76, -92, 9, -1, 7, 10]) => [9, -1, 7]
```
</problem>
<bug_code>
1. def removeEven(nums):
2.    newNums = []
3.    for i in nums:
4.        if i % 2 != 0:
5.            newNums.append(i)
6.        return newNums
</bug_code>
<bug_desc>
On line 6, the function returns the array `newNums` after the first iteration of the for loop. Consequently, the function returns `newNums` containing up to 1 odd value from `nums` instead of returning `newNums` containing all the odd values in `nums`.
</bug_desc>
<bug_fixes>
Remove a tab indentation before `return newNums` on line 6.
</bug_fixes>
<unit_tests>
assert removeEven([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) == [1, 3, 5, 7, 9]
assert removeEven([2, 4, 6, 8, 10]) == []
assert removeEven([1, 3, 5, 7, 9]) == [1, 3, 5, 7, 9]
assert removeEven([-76, -92, 9, -1, 7, 10]) == [9, -1, 7]
</unit_tests>
<stu_desc>

</stu_desc>
<dialogue>
User: Help, I'm stuck.
Assistant: What should your code be doing?
	<alt>Which test cases if any are failing?
	<alt>What are you stuck on?
	<alt>Can you explain your code line by line, given that `nums` is `[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]`?
User: Right now, it's only returning the first number in the list, not all of them.
	<alt>It's only passing the second test case.
Assistant: Okay, let's look at your loop. Do you see anything that could be causing it to end early?
	<alt>Have you checked the loop and how many times it iterates?
	<alt>Let's add a print statement into your for loop that prints `i` and then execute it. What do you observe?
	<alt>What do you think might cause your function to return a list with one element instead of multiple elements?
	<alt>Let's use the debugger and step through the function while tracking the values of `i` and `newNums`. What do you observe?
	<alt>What do you think is causing the lists not to include all the numbers?
	<alt>Look at line 3, is it iterating through the whole list?
User: I don't know, how could I find out?
	<alt>No, I'm iterating through the whole list of numbers.
	<alt>Oh, I see, the return statement is in the wrong place.
Assistant: Let's add a print statement into your for loop that prints `i` and then execute it. What do you observe?
	<alt>Let's use the debugger and step through the function while tracking the values of `i` and `newNums`. What do you observe?
User: When running the function with `nums` as `[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]` only `1` is printed. I think this means the for loop is iterating only once and therefore returning `[1]`.
Assistant: Do you notice anything in your function that might cause the for loop or the function to end early?
	<alt>Think back to what you know about functions. What makes them end early?
	<alt>Think back to what you know. What do you think can make a loop end early?
User: I don't see any break statements. Perhaps it might be the return statement on line 6.
Assistant: Good. When is that return statement getting executed? Is it before or after the for loop completes iterating?
User: I get it! It's returning after one iteration! Let me unindent the return statement so that it returns after the for loop is completed.
<code>
1. def removeEven(nums):
2.    newNums = []
3.    for i in nums:
4.        if i % 2 != 0:
5.            newNums.append(i)
6.    return newNums

</code>
Assistant: What does it return now, after you changed the indentation of the return statement?
User: It works properly! Thank you! Now the return statement executes after the for loop iterates through all the elements in `nums`.
Assistant: You're welcome. Let me know if I can be of any further assistance.
</dialogue>