am_dot_com

AI 2022-10-12

Oct 12th, 2022 (edited)
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. """
  2. Problem: write a Python script that keeps
  3. asking non-negative integers to a user.
  4. To stop entering numbers, the user must
  5. enter "-1".
  6. While the user does NOT enter -1, we'll
  7. keep track of the following values:
  8. - minimum value
  9. - maximum value
  10. - sum of all values
  11. - average of values
  12. """
  13.  
  14. # variables
  15. # nMin = nMax = nSum = nAverage = 0 # cascade assignments
  16. nMin = None # keeps track of the min value
  17. nMax = None #
  18. nSum = 0 # neutral
  19. nAverage = None
  20. nUserNum = None # the number the user enters
  21.  
  22. # constant
  23. STOP_NUMBER = -1 # the number that must be entered to stop the program
  24.  
  25. SOME_QUESTION_ENG = \
  26. "Please enter a non-negative integer (-1 to stop):"
  27.  
  28. iHowManyNumbersTheUserHasEntered = 0
  29. """
  30. strAnswer:str = input(SOME_QUESTION_ENG)
  31. nUserNum = int(strAnswer) # cast str->int
  32. """
  33.  
  34. def askTheUserForNumber(
  35. pTheQuestion=SOME_QUESTION_ENG # default value
  36. ):
  37. try:
  38. strAnswer = input(pTheQuestion)
  39. iAnswer = int(strAnswer) # RTE for banana
  40. return iAnswer
  41. except Exception as e:
  42. strMsg = "Please, write an integer!"
  43. print (strMsg)
  44. return None
  45. # try-except
  46. # def askTheUserForNumber
  47.  
  48. # := in python 3.8
  49. while ((nUserNum:=askTheUserForNumber())!=-1):
  50. if (nUserNum!=None):
  51. iHowManyNumbersTheUserHasEntered+=1
  52.  
  53. # keep track of nMax
  54. if(nMax==None):
  55. nMax=nUserNum
  56. # if
  57. else:
  58. if(nUserNum>nMax):
  59. nMax = nUserNum
  60. # if
  61. # else
  62.  
  63. # keep track of nMin
  64. if(nMin==None): # first number
  65. nMin=nUserNum
  66. else:
  67. if(nUserNum<nMin):
  68. nMin = nUserNum
  69. # if
  70. # else
  71.  
  72. # nSum = nSum + nUserNum
  73. # using the cumulative-add operator
  74. nSum += nUserNum # equivalent to the above
  75. # nSum -= nUserNum # nSum = nSum - nUserNum
  76. # nSum *= nUserNum # nSum = nSum * nUserNum
  77. # nSum /= nUserNum # nSum = nSum / nUserNum
  78.  
  79. nAverage = nSum / iHowManyNumbersTheUserHasEntered
  80.  
  81. # give feedback of what is happening
  82. strMsg:str=f"Current user number: {nUserNum}\n"
  83. strMsg += f"How many numbers were entered yet:" \
  84. f" {iHowManyNumbersTheUserHasEntered}\n"
  85. strMsg+=f"Current max: {nMax}\n"
  86. strMsg+=f"Current min: {nMin}\n"
  87. strMsg += f"Current sum: {nSum}\n"
  88. strMsg += f"Current average: {nAverage}\n"
  89. print(strMsg)
  90. # if the user entered an integer
  91. # while
Advertisement
Add Comment
Please, Sign In to add comment