Python Python program to sort negative numbers and even numbers?

Click For Summary
The discussion revolves around creating a program that terminates upon entering a zero and separately prints negative and even numbers. The initial code provided has several issues, including incorrect handling of input and logic errors. Key suggestions for improvement include renaming the list for even numbers for clarity, converting input to integers immediately, and replacing the for loop with conditional statements for better logic flow. Additionally, the modulus operator should be used to check for even numbers, and a typo in the code needs correction. Overall, the focus is on refining the program's structure and ensuring it functions as intended.
acurate
Messages
17
Reaction score
1

Homework Statement


I have to make a program that would end when entered a 0 and print out negative numbers and even numbers separately but what I have so far is not working.

The Attempt at a Solution



Code:
numbers = []
negative_numbers = []

while True:
    number = input("Enter a number: ")
    if number == "0":
        print ("A zero has been entered.")
        break
    for i in number:
        number = int(number)
        if i >= 0:
            numbers.append(i)
        else:
            negaitve_numbers.append(i)print ("Numbers: ", numbers)
print ("Negative numbers: ", negative_numbers)

Any suggestions?
 
Technology news on Phys.org
acurate said:

Homework Statement


I have to make a program that would end when entered a 0 and print out negative numbers and even numbers separately but what I have so far is not working.

The Attempt at a Solution



Code:
numbers = []
negative_numbers = []

while True:
    number = input("Enter a number: ")
    if number == "0":
        print ("A zero has been entered.")
        break
    for i in number:
        number = int(number)
        if i >= 0:
            numbers.append(i)
        else:
            negaitve_numbers.append(i)print ("Numbers: ", numbers)
print ("Negative numbers: ", negative_numbers)

Any suggestions?
Here are several.
1. Instead of numbers for one of your lists, I recommend calling it even_numbers, to be more suggestive of what you'll put in it.
2. Instead of checking for number == "0" convert the input right away to an integer.
Python:
entry = input("Enter a number")
number = int(entry)
After that, your logic looks like if number == 0:
3. Don't use a for loop. Just continue on with more elif clauses. This code makes no sense to me:
Code:
for i in number:
4. To check whether a number is even, use the modulus operator %. The expression n % 2 evaluates to the remainder when n is divided by 2. If n is odd, the remainder is 1. If n is even (i.e., divisible by 2), the remainder is 0.
5. Fix the typo in your last line.
 
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

  • · Replies 28 ·
Replies
28
Views
4K
Replies
1
Views
2K
  • · Replies 17 ·
Replies
17
Views
3K
  • · Replies 29 ·
Replies
29
Views
3K
Replies
5
Views
2K
Replies
12
Views
2K
Replies
17
Views
10K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K