我正在處理Python任務,並且完全卡住了。任何援助將不勝感激。我知道這可能不像我腦海中那麼複雜......細節如下。非常感謝。使用列表和鍵的Python數量平均值
實現以下三個功能(你應該使用合適的循環結構來計算平均值):
allNumAvg(numList):取號的列表,在列表返回所有數的平均值。
posNumAvg(numList):獲取數字列表並返回列表中大於零的所有數字的平均值。
nonPosAvg(numList):獲取數字列表並返回列表中小於或等於零的所有數字的平均值。
編寫一個程序,要求用戶輸入一些數字(正數,負數和零)。你的程序不應該要求用戶輸入固定數量的數字。它也不應該要求用戶想要輸入的號碼的數量。但是它應該要求用戶輸入一些數字並以-9999(一個定點值)結尾。用戶可以按任何順序輸入數字。您的程序不應要求用戶分別輸入正數和負數。
然後,您的程序應該創建一個輸入數字的列表(確保不要在此列表中包含sentinel值(-9999)),並使用以下鍵值對輸出列表和字典(使用輸入列表,並且上述功能):
密鑰=「AvgPositive」:值=所有的正數
密鑰=「AvgNonPos」的平均:值=所有的非正數的平均
Key ='AvgAllNum':Value =所有數字的平均值
樣品運行:
輸入號碼(-9999至結束):4
輸入號碼(-9999至結束):-3
輸入號碼(-9999至端) :-15
輸入號碼(-9999至結束):0
輸入號碼(-9999至結束):10
輸入號碼(-9999至端):22
輸入號碼(-9999至結束):-9999
輸入的所有數字的列表:
[4,-3,-15,0,10,22 ]
的字典,平均值是:
{ 'AvgPositive':12.0, 'AvgNonPos':-6.0 'AvgAllNum':3。0}
編輯:這是我到目前爲止,我做了相當快,只是爲了有一個工作,但我不知道如何實現鍵/字典像任務要求。再次感謝任何幫助。
print("This program takes user-given numbers and calculates the average")
counter = 0
sum_of_numbers = 0
first_question = int(input('Please enter a number. (Enter -9999 to end):'))
while first_question != -9999 :
ent_num = int(input('Please enter a number. (Enter -9999 to end):'))
sum_of_numbers = sum_of_numbers + ent_num
counter = counter + 1
first_question = int(input('Please enter a number (Enter -9999 to end):'))
print("Your average is " + str(sum_of_numbers/counter))
這個問題似乎強烈暗示您應該將這些數字放在列表中,後處理列表中,而不是在輸入循環中進行計算。那麼快速瀏覽可用於列表操作的函數(例如'sum()')應該使得這很容易......列表推導使它更容易...... – twalberg