持續更新中
1、list,tuple,dict,set
dict為字典,可以主動修改key,定義方式如下:[『a』:1, 『b』:2, 『c』:[4, 5]]
set為不可存在重複選項的list
2、函式接收可變引數可使用如下方法
def
calc
(*numbers):
sum = 0
for i in numbers:
sum += i*i
return sum
print(calc(1,2,3,4))
3、函式接收關鍵字引數可使用如下方法
info('cheng', 25, **extra)4、函式接收命名關鍵字引數可使用如下方法
def
info2
(name, age, *, city='fuzhou', company):
print(name, age, city, company)
info2('chengwei', 25, company='baidu')
其中*不需要傳入,為標記,說明後面的引數為命名關鍵字引數,如果沒有指定預設值,則該引數為必填引數。
如果已經存在可變引數,則這個*可以省略,如下
def
info2
(name, age, *args, city='fuzhou', company):
print(name, age, city, company)
info2('chengwei', 25, aaa, bbb, company='baidu')
5、引數組合
在python中定義函式,可以用必選引數、預設引數、可變引數、關鍵字引數和命名關鍵字引數,這5種引數都可以組合使用。但是請注意,引數定義的順序必須是:必選引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數,如下
def
info3
(name, age, ***='male', *numbers, city='beijing', company, **other):
print(name, age, ***, numbers, city, company, other)
info3('cheng', 25, 'male', 1, 2, city='fuzhou', company='baidu', school='university')
6、對於任意的函式,都可以使用tuple與dict的組合來傳入引數,如下
def
info3
(name, age, ***='male', *numbers, city='beijing', company, **other):
print(name, age, ***, numbers, city, company, other)
args = ('xing', 22, 'cheng', 1, 2)
kw =
info3(*args, **kw)
//輸出 xing 22 cheng (1, 2) fuzhou wangyi
7、python的切片功能,能夠是用在list, tuple,str中,如下
>>> l = range(100)
>>> l[1:10]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> l[:10]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> l[-10:]
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
>>> l[:10:2]
[0, 2, 4, 6, 8]
>>> l[::5]
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]
>>> t = (1,2,3,4,5,6)
>>> t[:3]
(1, 2, 3)
>>> s = "hello world"
>>> s[:5]
'hello'
#python中最簡單的將字串逆序輸出的方法
>>> s
'12345'
>>> s[::-1]
'54321'
8、裝飾器的使用
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import functools
deflog
(func):
def(*args, **kw):
print('call %s()' % func.__name__)
return func(*args, **kw)
@log
defnow
(): print('2015-01-01')
now()
print(now.__name__)
deflog2
(text):
defdecorator
(func):
def(*args, **kw):
print('call %s(), %s' % (func.__name__, text))
return func(*args, **kw)
return decorator
@log2('hello world!')
defnow2
(): print('2015-01-02')
now2()
print(now2.__name__)
deflog3
(text):
defdecorator
(func):
@functools.wraps(func)
def(*args, **kw):
print('call %s(), %s' % (func.__name__, text))
return func(*args, **kw)
return decorator
@log3('hello world!')
defnow3
(): print('2015-01-03')
now3()
print(now3.__name__)
deflog4
(text):
defdecorator
(func):
@functools.wraps(func)
def(*args, **kw):
print('before call %s(), %s' % (func.__name__, text))
res = func(*args, **kw)
print('after call')
return res
return decorator
@log4('hello world!')
defnow4
(): print('2015-01-03')
now4()
# call now()
# 2015-01-01
# call now2(), hello world!
# 2015-01-02
# call now3(), hello world!
# 2015-01-03
# now3
# before call now4(), hello world!
# 2015-01-03
# after cal
9、高階函式map,reduce,sorted
sorted的用法
#正常用法
>>> sorted([36, 5, -12, 9, -21])
[-21, -12, 5, 9, 36]
#此外,sorted()函式也是乙個高階函式,它還可以接收乙個key函式來實現自定義的排序,例如按絕對值大小排序:
>>> sorted([36, 5, -12, 9, -21], key=abs)
[5, 9, -12, -21, 36]
>>> l = [('bob', 75), ('adam', 92), ('bart', 66), ('lisa', 88)]
>>> def sort_by_name(l):
...return l[0]
...
>>> sorted(l, key=sort_by_name)
[('adam', 92), ('bart', 66), ('bob', 75), ('lisa', 88)]
>>> def sort_by_score(l):
...return l[1]
...
>>> sorted(l, key=sort_by_score)
[('bart', 66), ('bob', 75), ('lisa', 88), ('adam', 92)]
>>>
Kt學習筆記(一) 語法基礎
二 基本資料型別 1 1 定義變數 var n int 30 定義變數 var ok int 定義乙個變數,沒有進行初始化 val m int 20 定義乙個常量 不需要設定m ok 40 對變數賦值 m 40 編譯出錯 var cannot be reassigned var k 100 自動推導...
Lua (一)語法基礎
表 a3 for i 1,3 do a3 i i enda3 key val print a3 key print a3 none for key,value in pairs a3 do print key value key value end函式 function test1 n if n 0...
Python學習筆記 (一)python語法
python識別符號 語法 由字母,數字,下劃線組成 不能以數字開頭 python中的識別符號區分大小寫。行和縮排 python中以縮排作為 塊的標誌,不再採用c語言的 多行語句 python中以新行作為語句的結束符號,如果語句過長需要多行顯示的時候可以使用反斜槓 連線 注意 若語句中包含,或者 就...