Looping the code and ending the cycle by pressing 0

I'm a newbie here and a python newbie, so please help me. I did the following to create a program that tells the user if the entered number is Up, Down, or the same from the first entered number. my question is, how can I create a loop for it so that the user can enter as many numbers and then terminate the process when they enter 0?


print ('Please enter your first number')
firstNumber = input()

print('Enter the next number(0 to finish)')
nextNumber=input()

if firstNumber<nextNumber:
    print ('Up')

if firstNumber>nextNumber:
    print ('Down')

if firstNumber==nextNumber:
    print ('Same')

      


thank

+3


source to share


3 answers


English to python translation what you want,

while nextNumber != 0:
    ...keep looping...

      

So, without changing too much code, you can simply do:

print ('Please enter your first number')
firstNumber = input()

print('Enter the next number(0 to finish)')
nextNumber=input()

while nextNumber != 0:

    if firstNumber<nextNumber:
        print ('Up')

    if firstNumber>nextNumber:
        print ('Down')

    if firstNumber==nextNumber:
        print ('Same')

    # turn the nextNumber into the firstNumber
    firstNumber = nextNumber

    print('Enter the next number(0 to finish)')
    nextNumber=input()

      

There are also a few things you could do better. For example, you don't need to use the operator print

before input

. You can just do input('Please enter your first number')

. Alternatively, you can use if

- else

instead of if

.



Here's an example of how it would look:

firstNumber = input('Please enter your first number')

nextNumber=input('Enter the next number(0 to finish)')

while nextNumber != 0:

    if firstNumber<nextNumber:
        print ('Up')

    elif firstNumber>nextNumber:
        print ('Down')

    elif firstNumber==nextNumber:
        print ('Same')

    # turn the nextNumber into the firstNumber
    firstNumber = nextNumber

    nextNumber=input('Enter the next number(0 to finish)')

      


Now you say you want to collect everything Ups

and Downs

and print them at the end. You can just create list

and add value to this list

. For example:

ups_and_downs = []

firstNumber = input('Please enter your first number')

nextNumber=input('Enter the next number(0 to finish)')

while nextNumber != 0:

    if firstNumber<nextNumber:
        ups_and_downs.append('Up')
        print ('Up')

    elif firstNumber>nextNumber:
        ups_and_downs.append('Down')
        print ('Down')

    elif firstNumber==nextNumber:
        ups_and_downs.append('Same')
        print ('Same')

    # turn the nextNumber into the firstNumber
    firstNumber = nextNumber

    nextNumber=input('Enter the next number(0 to finish)')

print(ups_and_downs)

      

+2


source


nextNumber = 1 #define 
while nextNumber != 0: #as long as its not 0, run loop
  print ('Please enter your first number')
  firstNumber = int(input()) #python treats input as str so cast to int

  print('Enter the next number(0 to finish)')#cast str to int
  nextNumber= int(input())

  if firstNumber<nextNumber:
      print ('Up')

  if firstNumber>nextNumber:
      print ('Down')

  if firstNumber==nextNumber:
      print ('Same')

      

Output:



Please enter your first number
 4
Enter the next number(0 to finish)
 6
Up
Please enter your first number
 7
Enter the next number(0 to finish)
 8
Up
Please enter your first number
 5
Enter the next number(0 to finish)
 4
Down
Please enter your first number
 8
Enter the next number(0 to finish)
 0
Down

      

+1


source


firstNumber = input('Please enter your first number ') # ask for the first number
fn = int(firstNumber) # turn into an integer to compare

while True: # start a loop
    nextNumber = input('Enter the next number (0 to finish) ') # ask for another number
    nn = int(nextNumber)
    if nn == 0: break # leave the loop if the new number is 0
    if fn<nn: print('Up') # compare
    if fn>nn: print('Down')
    if fn==nn: print('Same')

      

-2


source







All Articles