我需要撰寫一個函式來找到三個輸入中的最大值。
例如:如果輸入是:
5
7
9
輸出是:
9
例如:如果輸入是:
-17
-8
-2
輸出是:
-17
def max_magnitude(user_val1, user_val2, user_val3):
if (user_val1 >= user_val2) and (user_val1 >= user_val3):
max = user_val1
elif (user_val2 >= user_val1) and (user_val2 >= user_val3):
max = user_val2
else:
max = user_val3
return max
def main():
user_val1 = int(input())
user_val2 = int(input())
user_val3 = int(input())
print(max_magnitude(user_val1, user_val2, user_val3))
if __name__ == '__main__':
main()
在此處輸入影像描述
uj5u.com熱心網友回復:
使固定
對于每個條件value is biggest添加相反的value is lowest
def max_magnitude(user_val1, user_val2, user_val3):
if (user_val1 >= user_val2 and user_val1 >= user_val3) or \
(user_val1 <= user_val2 and user_val1 <= user_val3):
return user_val1
elif (user_val2 >= user_val1 and user_val2 >= user_val3) or \
(user_val2 <= user_val1 and user_val2 <= user_val3):
return user_val2
return user_val3
提升
- 用作
*args引數,tp 處理任意數量的值 - 使用內置
max - 帶鍵
abs(絕對值)。
def max_magnitude(*args):
return max(args, key=abs)
max(abs(i) for i in args)不起作用,因為它會回傳答案的絕對值,而不是原始值
uj5u.com熱心網友回復:
不要使用“max”作為變數名
max()作為函式使用只需將函式輸入更改為 *args,然后取元組
max()的abs()
def max_magnitude(*args):
output = max(abs(i) for i in args)
return output if output in args else -output
測驗代碼:
def max_magnitude(*args):
output = max(abs(i) for i in args)
return output if output in args else -output
n1 = int(input())
n2 = int(input())
n3 = int(input())
print(max_magnitude(n1, n2, n3))
例子:
#inputs
> 5
> 7
> 9
#outputs
> 9
#inputs
> -2
> -8
> -17
#outputs
> -17
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/434859.html
下一篇:Python函式不回傳真或假
