python 基礎2

  • hex(),只能將整數轉換成十六進制的字符串
  • bool(),bool(0),bool(”),bool(False)是轉換成False,其他都是True
  • 在當前目錄導入一個py的函數,from 文件名(不加py) import 函數名(不加括號)
  • 參數類型檢查,可以用 isinstance(x,(int,float)),檢查x是否是整型,浮點型
  • 函數默認參數,如下def enroll(name,gender,age=6,city=’beijing’)可以不按順序調用默認參數,指定默認參數值就行,如enroll(‘zhou’,’male’,city=’hangzhou’)
  • 默認參數的陷阱:
def add_end(L=[]):
    L.append('end')
    reutn L

每次調用都會加一個end,因爲函數定義時,L就指向了一塊內存,要避免這種情況,可以這樣

def add_end(L=None):
    if L is None:
        L = []
    L.append('end')
    return L
  • 可變參數調用在參數前加一個*即可
def calc(*numbers):
    sum=0
    for n in numbers:
        sum=sum+n*n
        return sum```
   可以calc(1,2)-->5 calc()-->0
*  把列表當作可變參數傳進去,直接傳遞給有可變參數的函數會報錯,calc(*[1,2,3])
* 關鍵字參數,能傳進去一個字典
···python
def person(name,age,**kw):
    print('name:',name,'age:',age,'other:',kw)

person(‘michael’,30)—->name:michael age:30 other:{}
persion(‘bob’,35,city=’beijing’)—->name:bob age:35 other:{‘city’:’beijing’}
person(‘adam’,45,gender=’m’,job=’engineer’)—>name:adam age:45 other:{‘gender’:’m’, ‘job’:’engineer}
extra={‘city’:’beijing’,’job’:’engineer’}
person(‘jack’,24,**extra)

  • 如果要限制關鍵字參數的名字,就可以使用命名關鍵字參數,例如,只接收city,job作爲關鍵字,
def person(name,age,*,city,job):
    print(name,age,city,job)
  • 如果關鍵字有缺省值,可以簡化調用,如def person(name,age,*,city=’beijing’,job) 可以這樣調用person(‘jack’,24,job=’engineer)
  • 參數定義的順序:必選參數,默認參數,可變參數/命名關鍵字參數,關鍵字參數
  • *
def f1(a,b,c=0,*agrs,**kw) 
    print('a=',a,'b=',b,'c=',c,'args=',args,'kw=',kw)
def f2(a,b,c=0,*,d,**kw):
    print('a=',a,'b=',b,'c=',c,'d=',d,'kw=',kw)

f1(1,2)—->a=1 b=2 c=3 args=() kw={}
f1(1,2,3,c=3)—>a=1 b=2 c=3 args=() kw={}
f1(1,2,3,’a’,’b’)–>a=1 b=2 c=3 args=(‘a’,’b’) kw={}
f1(1,2,3,’a’,’b’,x=99)–>a=1 b=2 c=3 args=(‘a’,’b’) kw={‘x’:99}
f2(1,2,d=99,ext=None)–>a=1 b=2 c=0 d=99 kw={‘ext’:None}

args=(1,2,3,4)
kw={‘d’:99,’x’:’#’}
f1(*args,**kw)
—>a=1 b=2 c=3 args=(4,) kw={‘d’,99,’x’:’#’}

args=(1,2,3)
kw={‘d’:88,’x’:’#’}
f2(*args,**kw)
—>a=1 b=2 c=3 d=88 kw={‘x’:’#’}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章