Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- Problem: write a Python script that keeps
- asking non-negative integers to a user.
- To stop entering numbers, the user must
- enter "-1".
- While the user does NOT enter -1, we'll
- keep track of the following values:
- - minimum value
- - maximum value
- - sum of all values
- - average of values
- """
- # variables
- # nMin = nMax = nSum = nAverage = 0 # cascade assignments
- nMin = None # keeps track of the min value
- nMax = None #
- nSum = 0 # neutral
- nAverage = None
- nUserNum = None # the number the user enters
- # constant
- STOP_NUMBER = -1 # the number that must be entered to stop the program
- SOME_QUESTION_ENG = \
- "Please enter a non-negative integer (-1 to stop):"
- iHowManyNumbersTheUserHasEntered = 0
- """
- strAnswer:str = input(SOME_QUESTION_ENG)
- nUserNum = int(strAnswer) # cast str->int
- """
- def askTheUserForNumber(
- pTheQuestion=SOME_QUESTION_ENG # default value
- ):
- try:
- strAnswer = input(pTheQuestion)
- iAnswer = int(strAnswer) # RTE for banana
- return iAnswer
- except Exception as e:
- strMsg = "Please, write an integer!"
- print (strMsg)
- return None
- # try-except
- # def askTheUserForNumber
- # := in python 3.8
- while ((nUserNum:=askTheUserForNumber())!=-1):
- if (nUserNum!=None):
- iHowManyNumbersTheUserHasEntered+=1
- # keep track of nMax
- if(nMax==None):
- nMax=nUserNum
- # if
- else:
- if(nUserNum>nMax):
- nMax = nUserNum
- # if
- # else
- # keep track of nMin
- if(nMin==None): # first number
- nMin=nUserNum
- else:
- if(nUserNum<nMin):
- nMin = nUserNum
- # if
- # else
- # nSum = nSum + nUserNum
- # using the cumulative-add operator
- nSum += nUserNum # equivalent to the above
- # nSum -= nUserNum # nSum = nSum - nUserNum
- # nSum *= nUserNum # nSum = nSum * nUserNum
- # nSum /= nUserNum # nSum = nSum / nUserNum
- nAverage = nSum / iHowManyNumbersTheUserHasEntered
- # give feedback of what is happening
- strMsg:str=f"Current user number: {nUserNum}\n"
- strMsg += f"How many numbers were entered yet:" \
- f" {iHowManyNumbersTheUserHasEntered}\n"
- strMsg+=f"Current max: {nMax}\n"
- strMsg+=f"Current min: {nMin}\n"
- strMsg += f"Current sum: {nSum}\n"
- strMsg += f"Current average: {nAverage}\n"
- print(strMsg)
- # if the user entered an integer
- # while
Advertisement
Add Comment
Please, Sign In to add comment