【问题标题】:While loop user input?While循环用户输入?
【发布时间】:2020-02-15 00:43:00
【问题描述】:

说明:创建一个要求用户输入一系列数字的程序。用户应该输入一个负数来表示系列的结束。输入所有正数后,程序应显示它们的总和。

我正在使用 Python 2,Python IDLE

我正在为这个分配使用一个while循环。到目前为止,我做了一个程序,当用户在 while 循环下输入一个正数时,收集该数字并继续添加它,直到用户输入一个负数。我正在尝试找到一种将第一个用户输入包含到程序中的方法。

print('This program calculates the sum of the numbers entered and ends 
after inputting a negative number')
total = 0.00
number = float(input('Enter a number: '))
while number >= 0:
    print('Enter another positive value if you wish to continue. Enter a 
    negative number to calculate the sum.')
    number = float(input('Enter a number: '))
    total = total + number
print('The sum is', total)

【问题讨论】:

  • 不是用 total = 0.0 初始化 total,而是将 total 设置为第一个数字(就在 while 循环之前)。
  • 第一个输入可能是一个负数,那么总数就会出错。用户可能希望在第一次输入时退出。

标签: python python-2.7 python-requests


【解决方案1】:

已将您的代码简化为以下内容。
在 while 循环中执行输入检查并在负值时退出。

total = 0.00

while True:
    print('Enter another positive value if you wish to continue. Enter a negative number to calculate the sum.')
    number = float(input('Enter a number: '))
    if number >= 0: # Check for positive numbers in loop
        total += number
    else:
        break
print('The sum is', total)

【讨论】:

    【解决方案2】:

    我假设你是一个初学者,所以首先欢迎使用 Python!我希望你玩得开心。现在,就您的代码而言,我立即注意到了两件事:

    1. 如果你想继续,你可以简单地把这个'输入另一个正值。 输入一个负数来计算总和。在您的输入中,为什么要打扰 有额外的打印声明?
    2. 您不必调用input() 函数两次。

    我会这样做:

    print('This program calculates the sum of the numbers entered and ends 
    after inputting a negative number')
    total = 0.00
    while True:
    
       number = float(input("Enter a positive number(Negative number if you wish to terminate program"))
       if number >=0:
           total += number #equivalent to total=total + sum
       else:
           break # break out of while loop
    
    print('The sum is', total)
    

    P.S - 你为什么使用 Python 2 顺便说一句?

    【讨论】:

    • 这是一个介绍类,我们被要求使用 python 2。但我仍在尝试通过。由于初始输入,我有 2 个输入,其余输入用于以下输入,直到用户输入负数。但事实证明我只需要切换总和第二个输入语句。但这种方式绝对是有道理的。另外,我还不确定 Python 的不同之处,但希望将来了解它
    猜你喜欢
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多