0

私はPythonバージョン3を使用しています。

宿題については、ユーザーからの5桁の入力を許可し、それらの桁の平均を見つけようとしています。私はその部分を理解しました(マップ機能について学ぶのに1時間費やしました、とてもクールです)。

問題の2番目の部分は、リストの個々の要素を平均と比較してから、平均よりも大きい要素を返すことです。

一番下の「もしあれば」はリストの数値を平均と比較すると思いますが、その値を引き出して印刷する方法がわかりません。あなたたちはすべての助けを求めて揺れ動きます。

#Creating a list
my_numbers = [input("Enter a number: ") for i in range(5)]

#Finding sum
Total = sum(map(int, my_numbers))

#Finding the average
Average = Total/5

print ("The average is: ")
print (Average)
print ("The numbers greater than the average are: ")

if any in my_numbers > Average:
4

3 に答える 3

0

あなたがする必要があるのは、リストを繰り返して、平均より上の数を印刷することです:

for i in my_numbers:
    if int(i) > Average:
        print(i)

物事を簡単にするために、リストをmy_numbers実際に整数のリストとして開始することもできます。

my_numbers = [int(input("Enter a number: ")) for i in range(5)]

これで関数を取り除くことができmapます(心配しないでください。時間が無駄になることはありませんでした。他の状況でも非常に便利です)。合計を再度計算する必要がないため、合計を計算せずに平均の計算に直接進むこともできます。

Average = sum(my_numbers) / 5

これは、forループを変更して、に置き換えることができることを意味int(i)しますi

リスト内包表記を使用してリストを作成し、そのリストの値を出力することもできます。

aboveAverage = [i for i in my_numbers if i > Average]
for i in aboveAverage:
    print i
于 2013-03-01T06:54:39.070 に答える
0

残念ながら、「もしあれば」は機能しません。関数の機能を確認するには、関数のドキュメントを参照してください。構文が正しかったとしても、それはあなたが望むことをしません。必要なのは、平均よりも大きい数だけです。リスト内包表記を使用できます:[数値>平均の場合はmy_numbersの数値の数値]。または、ループを使用することもできます。

于 2013-03-01T06:56:05.123 に答える
0
#Creating a list
my_numbers = []
r = range(5)
for i in r:
    try:
        my_numbers.append(int(input("Enter a number: ")))
    except:
        print( 'You must enter an integer' )
        r.append(i)

#Finding sum
Total = sum(my_numbers)

#Finding the average
Average = Total/5
print ("The average is: ")
print (Average)
print ("The numbers greater than the average are: ")
print ([x for x in my_numbers if x>Average])

誰も答えなかったとしても、あなたは最終的にあなたのコードで成功しただろうと私は確信しています。

私のコードは、実際には、エントリが非整数である可能性があることを予測してから、エントリのエラーを管理する命令を配置する必要があることを指摘しています。
ここでの基本的な方法は、try except

消費された要素を補うために、エラーが発生するたびに追加iする方法に注意してください。rr

于 2013-03-01T07:16:40.900 に答える