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 大牛的求職之路,很多讀者感覺這位大牛太厲害了,他的經歷對我們幫助不大。對於一般的機器學習...