python學習筆記

2022-05-10 19:10:49 字數 3481 閱讀 1624

先貼乙個教程

▲input('……')     

輸出引號裡內容並讀入

▲print('……',a,b)  

引號裡內容原樣輸出;每用乙個逗號分隔都會輸出乙個空格;

print('%d %s %.2f' % (2,'123',3.0))

輸出乙個%需要用%%轉義

末尾會預設加乙個換行,可以用print(……,end=' ')取消回車

注意可以把輸出的值放在list裡再輸出來加速

print (' '.join(map(str, res)))

▲print('''a

bc''')

每行都能換行。

▲#注釋

▲單引號和雙引號都可以表示字串;用\進行轉義。

▲縮排決定子程式;if和else後要加冒號。可以用elif代替else if。

▲for迴圈:

for i in range(0,100000):

本質是生成了乙個很大的list然後乙個個訪問過去。

▲while迴圈:

while (x>0):

▲int():轉化成整數。

▲import math:匯入math庫。

▲dict:

類似於unordered_map,用大括號定義。d =

可以直接用中括號訪問和修改。

可以用'bob' in d 進行詢問是否存在;也可以用d.get('bob',-1)訪問,沒有元素返回-1。

用d.pop('bob',-1)刪除。

for迴圈in後面可以放dict型別。直接引用預設迭代key。

如果要迭代value,用for value in d.values()

如果要同時迭代key和value 用for k, v in d.items()。

enumerate()可以把list轉化為「下標-list」的pair

▲set:

用小括號和乙個list定義。s = set([1, 2, 3])

用add(key)和remove(key)進行加入和刪除。

注意可以完全看做乙個集合,因此可以進行s1&s2,s1|s2等運算。

▲用lambda快速定義函式

比如f=lambda x,y:x+y

▲定義乙個普通函式

def move(x, y, step, angle=0):

nx=ny=1

return nx, ny

▲傳入可變引數

def calc(*numbers):

sum = 0

for n in numbers:

sum = sum + n * n

return sum

呼叫的時候,可以往move裡放0或多個引數(如move(1,2,3))。進入函式後,它們會打包成乙個list。

如果就是要往裡面傳整個list型別的東西,可以簡寫成move(*list)。

▲傳入關鍵字引數

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

print('name:', name, 'age:', age, 'other:', kw)

呼叫的時候,可以在末尾放0或多個引數,比如person('adam', 45, gender='m', job='engineer')。

進入函式後,它們會打包成乙個dict。同樣的,可以簡單地用**dict來傳入乙個dict型別的容器。

▲傳入命名關鍵字引數

def person(name, age, *, city, job):

中間要加個*號以示區分。在這樣的情況下,後面只接受名字(第一維)為city,job的關鍵字。

如果之前已經定義過可變引數了,那麼不用加*來區分了。

▲定義函式引數的順序:必選引數->預設引數->可變引數->命名關鍵字引數->關鍵字引數

def f(a, b, c=0, *args, **kw):

print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)

甚至可以組裝乙個tuple和乙個dict直接傳進去,即任意乙個函式f都可以用形如f(*args,**kw)的形式呼叫。

▲基本函式

eval()將引號裡的東西用python表示式計算結果

math.sqrt()

math.acos()

abs()

round(x,2)保留2位小數

▲隨機數相關(import random)

seed(x)

random() 生成[0.0,1.0)之間的隨機小數

randint(a,b) 生成[a,b]之間的整數

shuffle(seq) 把乙個序列型別打亂

▲使用import decimal呼叫浮點數高精度庫。

設定計算時的精度:decimal.getcontext().prec=n

將乙個數x轉化為它:decimal.decimal(x)

初始化常量時,要用單引號括起來。

▲切片a[0:3] :擷取list裡固定的一段(注意下標左閉右開)。支援負數,0可以省略。

a[:10:2]:前10個數里每兩個中取乙個(即a[0],a[2],a[4],a[6],a[8])。中間的數省略,視為在整個list裡選。

▲列表生成式

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

甚至可以加判斷 [x * x for x in range(1, 11) if x % 2 == 0]

▲生成器generator

定義方式①:將列表生成式的替換成()

每次用g.next()呼叫下乙個值;也可以用 for i in g 迴圈呼叫

定義方式②:用函式。每次在關鍵字yield後丟擲乙個值,next後從上次丟擲位置繼續。

def fib(max):

n, a, b = 0, 0, 1

while n < max:

yield b

a, b = b, a + b

n = n + 1

return 'done'

▲開啟和關閉

《變數名》=open(《檔名》,《開啟模式》)

開啟模式和c類似。'r'是唯讀,'w'覆蓋寫,'a'追加;'t'為文字檔案型別,'b'為二進位制檔案型別;末尾加乙個'+'表示在原功能上同時加上讀寫功能。

open預設以"rt"的方式開啟;如果讀入、**等,就要用'*b'開啟。

釋放檔案使用權:《變數名》.close()

▲讀寫格式

.readall()

.readline(size=-1) 讀入一行。(如果有引數,就是讀入size個字元)

.readlines(size=-1) 讀入所有行,放到乙個list裡。

檔案變數本身是行序列,所以可以用 for line in 《檔名》: 遍歷。

.write(s) 寫入s

.writeline(lines) 將乙個字串list寫入檔案

.seek(offset)改變檔案裡操作指標位置。0(開頭),1(當前位置),2(檔案結尾)

python教學筆記 python學習筆記(一)

1.eval 函式 eval是單詞evaluate的縮寫,就是 求.的值的意思。eval 函式的作用是把str轉換成list,dict,tuple.li 1 1,2,3 print eval li 1 di 1 print eval di 1 tu 1 2,4,6 print eval tu 1 執...

python學習筆記

coding utf 8 coding utf 8 應該像八股文一樣在每個指令碼的頭部宣告,這是個忠告 為了解決中文相容問題,同時你應該選擇支援 unicode 編碼的編輯器環境,保證在執行指令碼中的每個漢字都是使用 utf 8 編碼過的。cdays 5 exercise 3.py 求0 100之間...

Python 學習筆記

python 學習筆記 def run print running.def execute method method execute run result running.condition false test yes,is true if condition else no,is false ...