1. 程式人生 > >python小總結

python小總結

() for tps 如何 value float idle sta 這一

1、獲取python IDLE當前工作目錄:

1 import os
2 os.getcwd()

2、更改當前工作目錄(目錄前面需要加“r”,不然會報語法錯誤):

os.chdir(r"工作目錄")

3、運行xxx.py內的某個函數:

1 from xxx import func_name  #xxx不需要包含擴展名.py
2 func_name() #直接調用即可

4、空函數

def func_name():
    pass  #pass是占位符,便於處理未寫好的函數

5、數據類型檢查可以使用函數isinstance(),對參數類型做檢查,只允許整數和浮點數類型的參數

def
my_abs(x): if not isinstance(x, (int, float)): raise TypeError(bad operand type) if x >= 0: return x else: return -x

6、定義包含可變參數的函數:

1 def calc(*numbers): #在參數前加一個“*”,調用函數是可以直接輸入calc(3,4,1,2)
2     sum = 0
3     for n in numbers:
4         sum = sum + n * n
5 return sum

7、關鍵字參數

可變參數允許傳入0個或者任意一個參數,這些可變參數在函數調用時自動組裝為一個tuple,而關鍵字參數允許傳入0個或者任意個含參數名的參數,這些參數在函數內部自動組織為一個dict。

def person(name, age, **kw):
    print(name:, name, age:, age, other:, kw)

>>> person(‘Bob‘, 35, city=‘Beijing‘)
name: Bob age: 35 other: {‘city‘: ‘Beijing‘}

>>> extra = {‘city‘: ‘Beijing‘, ‘job‘: ‘Engineer‘} #還可以這樣調用
>>> person(‘Jack‘, 24, **extra)
name: Jack age: 24 other: {‘city‘: ‘Beijing‘, ‘job‘: ‘Engineer‘}

8、python定義函數時,可以將5中參數同時組合使用(參數組合),組合順序必須為:必選參數、默認參數、可變參數、命名關鍵字參數、關鍵字參數。

9、改動下面的product函數,使之變成可接收一個或多個數並計算乘積:

 1 def product(x,y):
 2     return x*y
 3 
 4 
 5 #改為
 6 def product(*kw):
 7     pro = 1 
 8     for i in kw:
 9         pro = pro * i
10     return pro

要註意定義可變參數和關鍵字參數的語法:

*args是可變參數,args接收的是一個tuple;

**kw是關鍵字參數,kw接收的是一個dict。

以及調用函數時如何傳入可變參數和關鍵字參數的語法:

可變參數既可以直接傳入:func(1, 2, 3),又可以先組裝list或tuple,再通過*args傳入:func(*(1, 2, 3))

關鍵字參數既可以直接傳入:func(a=1, b=2),又可以先組裝dict,再通過**kw傳入:func(**{‘a‘: 1, ‘b‘: 2})

10、遞歸函數

漢諾塔:

 1  利用遞歸函數移動漢諾塔:
 2 def move(n, a, b, c):
 3     if n == 1:
 4         print(move, a, -->, c)
 5     else:
 6         move(n-1, a, c, b)
 7         move(1, a, b, c)
 8         move(n-1, b, a, c)
 9 
10 move(4, A, B, C)

11、叠代dict:

1 d={"a":3,"b":2,"c":6}
2 for key in d:          #叠代key值
3     print(key)
4 
5 for value in d.values():   #叠代value值
6     print(value)
7 
8 for k,d in d.items():     #同時叠代key、value值
9     print(k,d)

12、python內置函數enumerate可以將list、tuple變成索引-元素對,這樣可以在for循環中同時叠代索引和元素本身:

1 d=[(2,3),(4,5),(1,2)]
2 for i,value in enumerate(d):
3     print(i,value)

13、列表生成式語句非常簡潔,用一句話就可以生成一個list對象:

[x*x for x in range(1,11)]

14、楊輝三角生成器

 1 def triangles(lines):
 2     L=[]
 3     if lines == 0:
 4         yield L
 5     else:
 6         L=[1]
 7         i=1
 8         yield L
 9         while i<lines:
10             L=[sum(i) for i in zip([0]+L,L+[0])]
11             i=i+1
12             yield L

參考了 https://blog.csdn.net/zmy_3/article/details/51173580 這篇用的zip函數,自己稍加修改了一下。

一開始不懂的地方是第10行代碼,兩個list相加,就是合並,理解了這一點,在參考鏈接的那段代碼,就很容易理解了。

15、利用map()函數,把用戶輸入的不規範的英文名字,變為首字母大寫,其他小寫的規範名字。

1 def normalize(name):
2     return(name.capitalize())
3 
4 
5 l1=["xiaoming","dagou","john"]
6 l2=list(map(normalize,l1))

[‘Xiaoming‘, ‘Dagou‘, ‘John‘]#輸出結果

python小總結