python學習筆記一(語法)

2021-07-24 19:47:14 字數 4792 閱讀 7903

持續更新中
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中以新行作為語句的結束符號,如果語句過長需要多行顯示的時候可以使用反斜槓 連線 注意 若語句中包含,或者 就...