經常會在python中用到『*』和『**』,這不同於c/c++中的指標。在學習django的時候學習了*和**的區別。
*和**在python中有特殊的含義,它們都和函式有關但是在函式呼叫和函式宣告時卻有著不同的行為。且在此,不同於c/c++
中的指標。
一般來說,無論在函式還是在宣告,單個*號表示元組(列表)出現,而兩個星號則代表字典。
a:函式呼叫裡面的*和**
def check_web_server(host,port,path):
用check_web_server('127.0.0.1',8000,'/admin')即可呼叫這個函式,但是當這些資訊出現在三元組裡面的時候,可以如下呼叫。
check_web_server(*host_info)
**用法和*類似,只是用在字典的地方
如:
host_info=
check_web_server(**host_info)
類似於:
check_web_server(host='www.python.com', port=80,path='/')
b:函式簽名裡面的*和**
它們讓python得以支援變長引數。
def daily_sales_total(*all_sales):
total=0.0
for each in all_sales:
total+=float(each_sale)
return total
下面的呼叫都是合法的:
daily_sales_total()
daily_sales_total(10.0)
daily_sales_total(5.0,30.0)
JS學習之 和
在js中,轉換成false的有 undefined null nan 0 flase 其他都是true,即使是字串 false 它也是是true a b,條件滿足乙個就可以,如果a是true,那麼b不管是true,false都返回true,因此就不用判斷b了,返回a 如果a是false,就必須要判斷...
三數之和 python
給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。暴力求解時間複雜度為o n3 無法通過測試 感謝吳彥祖的題解 原來還可以這樣 首先將列表有序化方便排除重複解和確定三個...
Python三數之和
三數之和題目描述 給你乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 請你找出所有滿足條件且不重複的三元組。答案中不允許包含重複的三元組。示例 給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0 1 1,1,2 思路...