2

私はPythonを使用して、ユーザーに数字を入力するかどうかを尋ね続けるような質問をしています。そうでない場合、プログラムはこれらの数値の平均を計算する必要があります。私のプログラムは 2 番目の while ループから抜け出せないようですが、「except」はまだ間違っています。これが私のプログラムです:

count =0
total=0
ask=input ("Do you want to enter a number? (Y/N)")
while ask=="Y":
    numbers=float(input("Enter number"))
    count= count+1
    total=total+numbers
    con_ask=input ("Do you want to continue entering a number? (Y/N)")
    if con_ask=="Y":
        numbers=float(input("Enter number"))
        count=count+1
        total=total+numbers
    elif con_ask=="N":
        print ("The average of", count, "numbers is", total/count)
except :
    print ("Zero Division Occured. Average cannot be calculated")
4

7 に答える 7

1

別のアプローチ:

numbers = []
ask = raw_input("Do you want to enter a number? (Y/N) ")
while ask == "Y":
   numbers.append(float(raw_input("Enter number ")))
   ask = raw_input("Do you want to continue entering a number? (Y/N) ")

if numbers:
    avg = sum(numbers,0.0) / len(numbers)
    print "The average of {0} numbers is {1}".format(len(numbers),avg)
else:
    print "You didn't enter any numbers"
于 2012-10-11T17:52:07.837 に答える
1

平均数を計算する私のバージョン:

count = 0
total = 0
ask = raw_input("Do you want to enter a number? (Y/N)")
try:
    while ask == "Y":
        numbers = float(raw_input("Enter number"))
        count = count + 1
        total = total + numbers
        con_ask = raw_input("Do you want to continue entering a number? (Y/N)")
        if con_ask == "Y":
            continue
        elif con_ask == "N":
            print "The average of", count, "numbers is", total / count
            break
except:
    print "Zero Division Occured. Average cannot be calculated"
于 2012-10-11T00:52:30.897 に答える
0

数値の平均を計算するための簡単なプログラムが必要な場合は、Python Cookbookを参照してください。

于 2012-10-11T16:18:22.930 に答える
0

while をループしているようですask == "Y"が、後で変数を設定しますcon_ask。再利用していただけaskますか?

また、これを達成する別の方法は、最初に入力からのすべての数値を配列に入力し、次に平均を次のようにすることです。

sum(numbers) / len(numbers)
于 2012-10-11T00:44:43.420 に答える
0

whileここにはループが 1 つだけあります。再利用askできるので、ループの繰り返しごとにテストされます。

ask=input ("Do you want to continue entering a number? (Y/N)")
于 2012-10-11T00:48:23.793 に答える