在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ 又是Python初學(xué)者問題,關(guān)於空串列等等

又是Python初學(xué)者問題,關(guān)於空串列等等

""我理解為空字串
[]為空串列
請(qǐng)問下面碼中的 args[0][:0]該理解為什麼呢
type(args[0][:0])會(huì)顯示為<class 'list'>
請(qǐng)問它與[]有什麼不同及特性呢?
我將它替換為[]print(adder1(["a","b"],["c","d"]))還能執(zhí)行成功
執(zhí)行 print(adder1("god","damn","it"))就報(bào)錯(cuò)了
不了解其中差異.....

def adder1(*args):
    if type(args[0])==type(0):
        sum = 0
    else:
        sum = args[0][:0]
    for arg in args:
        sum = sum + arg
    return sum

print(adder1("god","damn","it"))
print(adder1(["a","b"],["c","d"]))
回答
編輯回答
心癌

你如果對(duì)計(jì)算過程詳細(xì)分析,就會(huì)發(fā)現(xiàn)其中的差別。python可變參數(shù)*para會(huì)將參數(shù)組成tuple存儲(chǔ)。因此,

adder1("god","damn","it") # 該函數(shù)執(zhí)行,args = ("god","damn","it")
adder1(["a","b"],["c","d"]) # 該函數(shù)執(zhí)行,args = (["a","b"],["c","d"])

python基礎(chǔ)牢固的,都知道

# 對(duì)于args = ("god","damn","it")
args[0][:0] = ''
# 對(duì)于args = (["a","b"],["c","d"])
args[0][:0] = []

很明顯是兩種不同的類型,一種是'',空字符串;一種是[]空的list。python里面,字符串和list都可以直接
進(jìn)行運(yùn)算,所以有了上面的結(jié)果。

2017年11月7日 21:06