1

ループについて学び、ユーザー入力を蓄積してから合計を表示するループを作成しようとして、古い python 本を使い始めました。問題は、本が範囲でこれを行う方法のみを示していることです。ユーザーに必要な数の数字を入力してから合計を表示したいので、たとえば、ユーザーが 1,2,3,4 と入力した場合10を出力するにはpythonが必要ですが、pythonを数値の範囲に結び付けたくありません。上記のように、範囲を指定したコードは次のとおりです。範囲に縛られることなく、このユーザー入力を行う必要があります。また、作成したいプログラムの種類にセンチネルを適用する必要がありますか?

def main():

    total = 0.0

    print ' this is the accumulator test run '
    for counter in range(5):  #I want the user to be able to enter as many numbers
        number = input('enter a number: ') #as they want. 
        total  = total + number
    print ' the total is', total

main()
4

3 に答える 3

0

while ループを使用して不定回数ループします。

total = 0.0
print 'this is the accumulator test run '
while True:
    try:
        # get a string, attempt to cast to float, and add to total
        total += float(raw_input('enter a number: '))
    except ValueError:
        # raw_input() could not be converted to float, so break out of loop
        break
print 'the total is', total

テスト実行:

this is the accumulator test run 
enter a number: 12
enter a number: 18.5
enter a number: 3.3333333333333
enter a number: 
the total is 33.8333333333
于 2013-10-17T14:34:32.943 に答える
0

ここで while ループが必要になります。

def main():
    total = 0.0
    print ' this is the accumulator test run '
    # Loop continuously.
    while True:
        # Get the input using raw_input because you are on Python 2.7.
        number = raw_input('enter a number: ')
        # If the user typed in "done"...
        if number == 'done':
            # ...break the loop.
            break
        # Else, try to add the number to the total.
        try:
            # This is the same as total = total + float(number)
            total += float(number)
        # But if it can't (meaning input was not valid)...
        except ValueError:
            # ...continue the loop.
            # You can actually do anything in here.  I just chose to continue.
            continue
    print ' the total is', total
main()
于 2013-10-17T14:33:33.253 に答える