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
source to share
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)
source to share
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
source to share
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')
source to share