第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我應(yīng)該如何檢查函數(shù)中的參數(shù)是整數(shù)還是浮點數(shù)?

我應(yīng)該如何檢查函數(shù)中的參數(shù)是整數(shù)還是浮點數(shù)?

慕田峪7331174 2023-08-08 17:20:17
def sum_of_max(*args):    my_list = list(args)    first_max = max(my_list)    my_list.remove(max(my_list))    return first_max + max(my_list)print(sum_of_max( "qwerty", 1, 6))問題: 我應(yīng)該如何檢查函數(shù)中的參數(shù)是整數(shù)還是浮點數(shù)?
查看完整描述

2 回答

?
MYYA

TA貢獻1868條經(jīng)驗 獲得超4個贊

一種選擇可能是:


def sum_of_max(*args):

    if not all(type(x) in (float, int) for x in args):

        raise TypeError("Parameters should be of type 'int' or 'float'")


    my_list = list(args)

    first_max = max(my_list)

    my_list.remove(max(my_list))

    return first_max + max(my_list)


print(sum_of_max( "qwerty", 1, 6))

# Output: TypeError: Parameters should be of type 'int' or 'float'

但它只是max()用更明確的異常替換了引發(fā)的異常。最好的選擇可能是保持函數(shù)原樣,并在使用它時捕獲潛在的錯誤:


try:

    print(sum_of_max("qwerty", 1, 6))

except ValueError:

    # Do what you want in case of ValueError


查看完整回答
反對 回復(fù) 2023-08-08
?
人到中年有點甜

TA貢獻1895條經(jīng)驗 獲得超7個贊

您的函數(shù)不應(yīng)該真正關(guān)心它獲得的值的類型。它所關(guān)心的是:

  1. 列表中的所有值都可以相互比較

  2. 兩個最大值可以相加。

最簡單的做法是假設(shè)這些都是真的,并讓>+引發(fā)的任何異常傳播;無論是誰調(diào)用sum_of_max,都可以捕獲這些并處理它們,方法是修復(fù)參數(shù)并sum_of_max再次調(diào)用,或者提供一些默認值來代替sum_of_max可能返回的值。max實際上,不使用 而是自己迭代參數(shù)更容易做到這一點。

def sum_of_max(*args):

    biggest = None

    second_biggest = None

    for x in args:

        if biggest is None or x > biggest:

            biggest = x

            second_biggest = biggest

    return biggest + second_biggest

請注意,biggest + second_biggest將引發(fā)異常的一種情況是,如果沒有至少兩個可比較的值,在這種情況下,將永遠不會為一個或兩個值分配除 之外的值None。


查看完整回答
反對 回復(fù) 2023-08-08
  • 2 回答
  • 0 關(guān)注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號