Python程式設計

2021-10-10 06:16:15 字數 4784 閱讀 2363

1、物件單一性

只有一種原因可以改變物件的狀態,如果有兩種原因可以改變物件的狀態,那這個物件就違背了單一性原則。目的時問了滿足「高內聚低耦合」中的「高內聚」。

2、黎克特制替換原則

父類出現中的地方一定可以用子類代替,為了提高**的可復用性以及可擴充套件性。

1、字串

python2中 「123」 和 b"123" 均為str型別,u"123"為unicode型別。

python3中"123" 和 u"123" 均為str型別,b"123"為byte型別。

1、map()使用

map(function, iterable),第乙個引數 function 以引數序列中的每乙個元素呼叫 function 函式,返回包含每次 function 函式返回值的新列表;第二個引數iterable是迭代器,可以有乙個或多個。

python 2.x 返回列表,python 3.x 返回迭代器(使用from six.moves import map python2/python3都返回迭代器)。

2、lambda()表示式使用

a = lambda x: x*x

print(a(3))

3、range()使用

range(start, stop[, step])

start: 計數從 start 開始。預設是從 0 開始。例如range(5)等價於range(0, 5);

stop: 計數到 stop 結束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5

step:步長,預設為1。例如:range(0, 5) 等價於 range(0, 5, 1)

4、sorted()使用

(1)list.sort(cmp=none, key=none, reverse=false)

列表.sort(),作用是將原來的列表正序排序,所以它是對原來的列表進行的操作,不會產生乙個新列表。其中引數的含義是:cmp – 可選引數, 如果指定了該引數會使用該引數的方法進行排序。key – 主要是用來進行比較的元素,只有乙個引數,具體的函式的引數就是取自於可迭代物件中,指定可迭代物件中的乙個元素來進行排序。reverse – 排序規則,reverse = true 降序, reverse = false 公升序(預設)。

(2)sorted(iterable, cmp=none, key=none, reverse=false)

sorted(列表),是python內建函式,該函式對原列表不會產生影響,只是在原來列表的基礎上,產生乙個有序的新列表,可以複製乙個列表名。iterable – 可迭代物件。cmp – 比較的函式,這個具有兩個引數,引數的值都是從可迭代物件中取出,此函式必須遵守的規則為,大於則返回1,小於則返回-1,等於則返回0。key – 主要是用來進行比較的元素,只有乙個引數,具體的函式的引數就是取自於可迭代物件中,指定可迭代物件中的乙個元素來進行排序。reverse – 排序規則,reverse = true 降序 , reverse = false 公升序(預設)。

(3)dict型別採用sorted排序,預設按key的大小進行排序,返回key列表,即:sorted (dict);按value排序:sorted(dict.items(), key = lambda kv:kv[1])。字典列表排序,按字典的某個key排序:sorted(lis, key = lambda i: i[『age』]);python2支援sorted(lis),預設採用key位元組碼最小的key對應value,如果相同採用key位元組碼第二小的key對應value進行排序,以此類推,這種方式在python3中不支援。

注:python3中cmp引數被去掉,取而代之的是key,如果想用自定義的函式進行排序可引入functools.cmp_to_key:sorted(iterable,key=cmp_to_key(cmp))

5、字串操作

(1)"".join(s1, s2),將是s1和s2連線在一起

6、檔案讀寫

1、變數交換

a =

1b =

2a, b = b, a

2、字串拼接

name =

"ross"

country =

"china"

age =

28print

("hi, i'm %s. i'm from %s. and i'm %d"

%(name, country, age)

)print

("hi, i'm {}. i'm from {}. and i'm {}"

.format

(name, country, age)

)print

("hi, i'm . i'm from . and i'm ."

.format

(name, country, age)

)# 僅支援python3.6以上版本

print

(f"hi, i'm . i'm from . and i'm ."

)

3、yield使用

def

fibonacci

(n):

a =0 b =

1 nums =

for _ in

range

(n):

a, b = b, a + b

return nums

for i in fibonacci(10)

:print

(i)# 使用yield實現同樣效果,產生就輸出

deffibonacci

(n):

a =0 b =

1 nums =

for _ in

range

(n):

yield a

a, b = b, a + b

for i in fibonacci(10)

:print

(i)

4、列表解析式

fruit =[,

"pear",,

"orange"

,"banana"

]# for i in range(len(fruit)):

# fruit[i] = fruit[i].upper()

fruit =

[x.upper(

)for x in fruit]

filtered_fruit =

[x for x in fruit if x.startswith(

"a")

]

5、enumerate函式

fruit =[,

"pear",,

"orange"

,"banana"

]# for x in fruit:

# print(x)

for i, x in

enumerate

(fruit)

:print

(i, x)

6.1、反向遍歷

fruit =[,

"pear",,

"orange"

,"banana"

]for i, x in

enumerate

(reversed

(fruit)):

print

(i, x)

6.2、按順序遍歷

fruit =[,

"pear",,

"orange"

,"banana"

]for i, x in

enumerate

(sorted

(fruit)):

print

(i, x)

7、字典的合併

a =

b =c =

# for k in a:

# c[k] = a[k]

# for k in b:

# c[k] = b[k]

c =

8、三元運算子

score =

1if score >60:

s ="pass"

else

: s =

"fail"

s ="pass"

if score >

60else

"fail"

9、序列解包

name =

"san zhang"

str_list = name.split(

)# first_name = str_list[0]

# last_name = str_list[1]

first_name, last_name = name.split(

)

10、with語句

# f = open("jimmy.py", "r")

# s = f.read()

# f.close()

with

open

("legend.py"

,"r"

)as f:

s = f.read(

)print s

常用演算法

python程式設計遊戲 python程式設計遊戲有哪些

1.github上面有個專案free python games,裡面集合了不少的python開發的小遊戲,能玩,也適合新手用來練練手,另外 pygame 這個 裡面裡面集合了很多python開發的小遊戲。3.小時候經常在手機上玩的乙個遊戲,也是一款經典的街機遊戲,這款遊戲進化之後其實就是乙個打桌球的...

python程式設計案例 python程式設計案例

利用python內建函式和列表物件方法def demo2 x,y,z i max x ipos x.index i j max y jpos y.index j k max z kpos z.index k return i j k,ipos,jpos,kpos 但是,上面的 看上去還是很笨啊,傻傻...

python程式設計題 python程式設計題庫

上期題目連線 1000道python題庫系列分享十一 9道 上期題目答案 本期題目 機器之心報道機器之心編輯部想要備戰 python 面試,這兩個專案有千道 python 問題與實現。之前機器之心介紹了 phd 大牛的求職之路,很多讀者感覺這位大牛太厲害了,他的經歷對我們幫助不大。對於一般的機器學習...