Python 刷題記錄總結

2021-10-24 22:17:43 字數 3656 閱讀 1181

python endswith()

用於判斷字串是否以指定字尾結尾,如果以指定字尾結尾返回true,否則返回false。可選引數"start"與"end"為檢索字串的開始與結束位置

str.

endswith

(suffix[

, start[

, end]

])

引數

suffi:該引數可以是乙個字串或者是乙個元素

start:字串中的開始位置

end :字元中結束位置

返回值如果字串含有指定的字尾返回true,否則返回false

eg:

str

="hello world!!!"

suffix =

"ld!!!"

print

(str

.endswith(suffix)

)# true

print

(str

.endswith(suffix,6)

)#true

suffix =

"or"

;print

(str

.endswith(suffix,2,

8))#true

print

str.endswith(suffix,2,

10);#false

也就是說:

start預設是 0,即從第乙個元素開始搜尋,end 預設是字串/列表等的長度,表示結束搜尋的位置

除法運算

在 python 2.x 中,/ 除法就跟我們熟悉的大多數語言 ,整數相除的結果是乙個整數,把小數部分完全忽略掉,浮點數除法會保留小數點的部分得到乙個浮點數的結果

在 python 3.x 中 / 除法不再這麼做了,對於整數之間的相除,結果也會是浮點數

對於// python2和3是一樣的,擷取整數可以借用math的方法:

import math

math.trunc(1/

2)# 0

math.trunc(-1

/2)# 0

python變數傳遞

可變型別,值可以改變

list,dict 為可變型別

可變型別,新增或者修改資料時,變數對應的記憶體位址不會改變。也就是可變型別,一直在引用原來的記憶體位址

如果是重新賦值,記憶體位址就會發生改變。

而del變數名 則只是刪除乙個指標,不刪除變數。

不可變型別,值不可以改變:

數值型別int、long、bool、float,字串str,元組tuple為不可變型別

不可變型別,一旦被重新賦值,變數對應的記憶體位址就會發生改變

所以:不可變型別的資料作為實參傳遞, 修改形參不影響實參

可變型別的資料作為實參傳遞, 修改形參會導致實參跟著變化。但是形參賦值不會改變實參

re.match

re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none。

re.match(pattern, string, flags=

0)

第乙個引數為正規表示式,第二個是字串,第三個是標誌位

搭配使用的是:group

eg:

import re

line =

"cats are smarter than dogs"

# 以are為分割,有兩個匹配分組。(.*)表示代表匹配除換行符之外的所有字元

#(.*?) 後面多個問號,代表非貪婪模式,也就是說只匹配符合條件的最少字元

matchobj = re.match( r'(.*) are (.*?) .*'

, line, re.m|re.i)

if matchobj:

print

"matchobj.group() : "

, matchobj.group(

)print

"matchobj.group(1) : "

, matchobj.group(1)

print

"matchobj.group(2) : "

, matchobj.group(2)

else

:print

"no match!!"

matchobj.group() 相當於 matchobj.group(0),表示匹配到的完整文字字元

matchobj.group(1) 表示第乙個匹配分組匹配到的結果

matchobj.group(2) 表示第二個匹配分組匹配的結果

python socket

用 socket()函式來建立套接字,語法格式如下:

socket.socket(

[family[

,type

[, proto]]]

)

eg:

server.py

import socket               # 匯入 socket 模組

s = socket.socket(

)# 建立 socket 物件

host = socket.gethostname(

)# 獲取本地主機名

port =

12345

# 設定埠

s.bind(

(host, port)

)# 繫結ip和埠

s.listen(5)

# 監聽連線,最多連線5個

while

true

: c,addr = s.accept(

)# 建立客戶端連線

c.send(

'hello world'

) c.close(

)

client.py

import socket               # 匯入 socket 模組

s = socket.socket(

)# 建立 socket 物件

host = socket.gethostname(

)# 獲取本地主機名

port =

12345

# 設定埠號

s.connect(

(host, port)

)#發起連線

print

(s.recv(

1024))

#列印收到的資料,最多1024位元組

s.close(

)

小整數物件池
a =[1

,2,3

]b =[1

,2,4

]print(id

(a[1])

==id

(b[1

))

id:檢視記憶體位址

python對於小整數物件有乙個小整數物件池,範圍在[-5,257]之間(不同軟體可能上限有區別)。對於在這個範圍的數,不會新建物件。

所以,以上**列印出的是true

字典字典的鍵值必須是不可變型別

複數複數不可以比較大小

leetcode刷題記錄 python版

1 兩數之和 思路 在訪問資料元素的時候,把它儲存下來。在訪問其它的元素時就可以找它對應組成和的那個元素是否在訪問過的裡面,這樣一次迴圈就夠了。利用python的字典。class solution def twosum self,nums,target type nums list int type...

OI刷題記錄

2014 4 18 poj3264 bzoj1699 balanced lineup rmq 2014 4 19 bzoj1012 jsoi2008 最大數maxnumber noi2004 鬱悶的出納員 bzoj3224 tyvj 1728 普通平衡樹 2014 4 20 bzoj1862 105...

面試刷題記錄

寫一段 判斷乙個包括 的表示式是否合法 注意看樣例的合法規則。給定乙個表示式a,請返回乙個bool值,代表它是否合法。測試樣例 a b 5 4 返回 true 測試樣例 a b 5 4 返回 false include vector include iostream using namespace ...