我正在撰寫一個接受分數串列的函式,當j數字大于它之前所有數字的平均值時,至少一次,它回傳True,否則回傳False。
我唯一的問題是,當我輸入例如[1,1,1,9999]它回傳 False False True,我只想要一個沒有 False 的 True。例如,輸入[1,1,2,2,3]回傳 4 次 False,我只需要 False 一次。我怎么做?
我的代碼:
def Outstanding_Scores(scores):
for j in range(0,len(scores)-1):
if sum(scores[j::-1])//len(scores[j::-1]) < scores[j 1]:
print('True')
break
else:
print('False')
scoresInput = input().split(',')
scoreslist = [int(i) for i in scoresInput]
Outstanding_Scores(scoreslist)
編輯:我的代碼
def Outstanding_Scores(scores):
for j in range(0,len(scores)-1):
return True if (sum(scores[j::-1])//len(scores[j::-1]) < scores[j 1]) else False
scoresInput = input().split(',')
scoreslist = [int(i) for i in scoresInput]
suspicious_income(scoreslist)
uj5u.com熱心網友回復:
您應該在-loop之后使用print(True)or ,而不是在return Trueforelse
def Outstanding_Scores(scores):
for j in range(0,len(scores)-1):
if sum(scores[j::-1])//len(scores[j::-1]) < scores[j 1]:
return True
# --- after loop ---
return False
# --- main ---
print( Outstanding_Scores([1,1,1,9999]) ) # True
print( Outstanding_Scores([1,1,2,2,3]) ) # True
編輯:
我認為您的代碼中還有其他錯誤。
def Outstanding_Scores(scores):
# --- before loop ---
if len(scores) < 2:
return False
# --- loop ---
for j in range(1, len(scores)):
current = scores[j]
previous = scores[:j]
average = sum(previous) / len(previous)
print(f'j: {j:2} | val: {current:5} | average: {average:5} | previous: {previous} | {current > average}')
if current > average:
return True
# --- after loop ---
return False
print( Outstanding_Scores([1,1,1,9999]) ) # True
print( Outstanding_Scores([1,1,2,2,3]) ) # True
print( Outstanding_Scores([1,1,1,1]) ) # False
結果:
j: 1 | val: 1 | average: 1.0 | previous: [1] | False
j: 2 | val: 1 | average: 1.0 | previous: [1, 1] | False
j: 3 | val: 9999 | average: 1.0 | previous: [1, 1, 1] | True
True
j: 1 | val: 1 | average: 1.0 | previous: [1] | False
j: 2 | val: 2 | average: 1.0 | previous: [1, 1] | True
True
j: 1 | val: 1 | average: 1.0 | previous: [1] | False
j: 2 | val: 1 | average: 1.0 | previous: [1, 1] | False
j: 3 | val: 1 | average: 1.0 | previous: [1, 1, 1] | False
False
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/487561.html
上一篇:Python將多個函式合二為一
下一篇:使用自定義引數創建列函式
