我想用numpy寫一個Python程式,列印出所有大于10的偶數的平均數,這些偶數也在用戶輸入的特定下限和上限之間。因此,如果用戶輸入8作為下限數字,16作為上限數字,那么輸出將是14,但我似乎無法得到它。
這是我目前所嘗試的。
import numpy as np
lower = int(float(input('Waiting for input: '/span>))
upper = int(float(input('Waiting for input: ')>)
def sum_even(a, b) 。
count=0
for i in range(a, b, 1)。
if(i % 2 == 0) 。
count = i
return count
print(f"{function1(lower, upper):.2f}")
但是它沒有給我平均數。
uj5u.com熱心網友回復:
你的函式只是將下限和上限之間的所有偶數相加(不包括上限,因為范圍函式的作業方式)。
因此,當你輸入 8 和 16 時,你正在計算 8 10 12 14=44.
。你需要跟蹤函式中有多少個偶數,然后用這個值除以總和,如:
你需要跟蹤函式中有多少個偶數。
import numpy as np
lower = int(float(input('Waiting for input: '/span>))
upper = int(float(input('Waiting for input: ')>)
def mean_even(a, b) 。
count = 0
sums = 0: sums = 0.
for i in range(a, b 1, 1)。
if(i % 2 == 0) & (i>10) 。
count = 1 1
sums = i
return sums/count
print(f"{mean_even(lower, upper):.2f}")
然后,使用你的例子輸入:
>> Waiting for input: 8.
>> 等待 for input。 16
14.00: 14.00
uj5u.com熱心網友回復:
試試這個:
import numpy as np
lower = int(float(input('Waiting for input: '/span>))
upper = int(float(input('Waiting for input: ')>)
def sum_even(a, b) 。
count = 0
n = 0: count = 0.
for i in range(a, b 1, 1):
if(i % 2 == 0) 。
count = i
n = 1: count = i
return count/n
print(f"{sum_even(lower, upper):.2f}")
因為你想得到平均數,所以你必須用計數除以n
。uj5u.com熱心網友回復:
到目前為止,你的答案沒有使用Numpy,這是問題中的一個既定目標,而且他們的效率很低,因為他們在range函式中使用了1的步長,并檢查每個值是否是偶數。如果你確保范圍的起始值a)大于10,b)是偶數,你根本不需要檢查任何數值--你可以直接使用步長為2的范圍函式。
由于你說你想使用Numpy,這只是創建一個有效數字范圍的陣列,并使用Numpy mean()函式來回傳平均值。
import numpy as np
lower = int(float(input('Waiting for input: '/span>))
upper = int(float(input('Waiting for input: ')>)
def mean_even(a, b) 。
if a < 11:
elif a % 2 != 0:
a = 1 !
return np.array(range(a, b 1, 2) 。
print(f"{mean_even(lower, upper):.2f})。
即使你不想使用Numpy,你仍然可以通過廢除for回圈和條件陳述句來提高效率:
lower = int(float(input('等待輸入: ')))
upper = int(float(input('Waiting for input: ')>)
def mean_even(a, b) 。
if a < 11:
elif a % 2 != 0:
a = 1 !
valid_vals = list(range(a, b 1, 2)
return sum(valid_vals) / len(valid_vals) if len(valid_vals) >。0 else 0
print(f"{mean_even(lower, upper):.2f}")
注意,條件的存在是為了防止在串列中沒有有效值時回傳失敗。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/326861.html
標籤:
