【发布时间】:2018-10-30 21:40:11
【问题描述】:
我的编程教授要求我创建一个程序,该程序要求用户输入他们愿意输入的正整数(包括零)。除正整数之外的任何内容都会停止输入并计算/显示数字的总和、平均值和计数。
我遇到的主要问题与返回多个要在程序中传递的正整数有关。我似乎找不到我需要的东西。
inputPostiveInteger()
Pass in nothing
Ask the user for a positive integer
Return the integer is the user inputs one
Return -1 if the user does not input a positive integer
他让程序工作的方式就是例子-
Enter a positive integer, anything else to quit: 1
Enter a positive integer, anything else to quit: 5
Enter a positive integer, anything else to quit: 10
Enter a positive integer, anything else to quit: cat
Sum 16
Average 5.3
Total numbers 3
我尝试了多种方式的 try/except 和 while not 子句来获得正确的输入部分,但似乎无法将我的大脑包裹在这一点上。
我了解如何计算/显示平均值、计数、总和的公式 - 但似乎无法在多个公式中获得经过审查的整数条目。
例如。用于尝试输入
def inputPositiveInteger():
try:
userInt = int(input("Enter a positive integer, anything else to quit: ")) > -1
except ValueError:
return -1
def main():
total = 0
count = 0
posInt = inputPositiveInteger()
while posInt != -1:
total += posInt
count += 1
main()
total = 0
userInt = int(input('Enter a positive integer, anything else to quit: '))
while userNumber > -1:
total += userInt
userInt = int(input('Enter a positive integer, anything else to quit: '))
【问题讨论】:
-
在您的 try 块中,您不会遇到错误,因此它永远不会结束,由于除以零等原因会发生值错误,我建议您不要尝试使用简单的 break在 if 语句中,没有理由将这样一个简单的任务过度复杂化
-
你只是没有从你的函数返回
userInt,所以posInt将被设置为None(函数隐式返回这个值) -
如果输入有效,您不会从 inputPositiveInteger 返回,您的 while 循环是无止境的或永远不会命中,因为输入值永远不会改变 inside。您是否以任何形式或形式调试过您的代码? #stackoverflow.com/questions/1623039/python-debugging-tips
标签: python