Beherrschen Sie Python 19-Programmierkenntnisse, die es wert sind, erlernt zu werden

coldplay.xixi
Freigeben: 2020-08-17 16:26:24
nach vorne
2972 Leute haben es durchsucht

Beherrschen Sie Python 19-Programmierkenntnisse, die es wert sind, erlernt zu werden

Einer der größten Vorteile von Python ist seine prägnante Syntax Genau wie Pseudocode ist es auf einen Blick sauber, ordentlich und klar. Um pythonischen (eleganten, authentischen, sauberen) Code zu schreiben, müssen Sie mehr von Experten geschriebenen Code lesen und lernen. Es gibt viele hervorragende Quellcodes auf Github, die es wert sind, gelesen zu werden, wie zum Beispiel: Anfragen, Flask, Tornado, unten sind einige gängige Python-Schriftarten aufgeführt Methoden.

Verwandte Lernempfehlungen: Python-Video-Tutorial p>

0. Programme müssen von Menschen gelesen werden, bevor sie von Computern ausgeführt werden können.

„Programme müssen geschrieben werden, damit Menschen sie lesen können, und nur nebenbei, damit Maschinen sie ausführen können.“

1. Austauschaufgabe

##不推荐
temp = a
a = b
b = a 

##推荐
a, b = b, a # 先生成一个元组(tuple)对象,然后unpack
Nach dem Login kopieren

2. Auspacken

rrree

3. Verwendung von Operatoren in

rrree

4

5. Wörterbuch-Schlüsselwertliste

##不推荐
l = ['David', 'Pythonista', '+1-514-555-1234']
first_name = l[0]
last_name = l[1]
phone_number = l[2] 

##推荐
l = ['David', 'Pythonista', '+1-514-555-1234']
first_name, last_name, phone_number = l
# Python 3 Only
first, *middle, last = another_list
Nach dem Login kopieren

6. Wörterbuch-Schlüsselwertbeurteilung

##不推荐
if fruit == "apple" or fruit == "orange" or fruit == "berry":
# 多次判断 

##推荐
if fruit in ["apple", "orange", "berry"]:
# 使用 in 更加简洁
Nach dem Login kopieren

7. Wörterbuch-Get- und Setdefault-Methode< /strong>

##不推荐
colors = [&#39;red&#39;, &#39;blue&#39;, &#39;green&#39;, &#39;yellow&#39;]

result = &#39;&#39;
for s in colors:
result += s # 每次赋值都丢弃以前的字符串对象, 生成一个新对象 

##推荐
colors = [&#39;red&#39;, &#39;blue&#39;, &#39;green&#39;, &#39;yellow&#39;]
result = &#39;&#39;.join(colors) # 没有额外的内存分配
Nach dem Login kopieren

8. Bestimmen Sie die Authentizität

##不推荐
for key in my_dict.keys():
# my_dict[key] ... 

##推荐
for key in my_dict:
# my_dict[key] ...

# 只有当循环中需要更改key值的情况下,我们需要使用 my_dict.keys()
# 生成静态的键值列表。
Nach dem Login kopieren

9. Durchsuchen Sie die Liste und den Index

##不推荐
if my_dict.has_key(key):
# ...do something with d[key] 

##推荐
if key in my_dict:
# ...do something with d[key]
Nach dem Login kopieren

10 . Listenverständnis

##不推荐
navs = {}
for (portfolio, equity, position) in data:
if portfolio not in navs:
navs[portfolio] = 0
navs[portfolio] += position * prices[equity]
##推荐
navs = {}
for (portfolio, equity, position) in data:
# 使用 get 方法
navs[portfolio] = navs.get(portfolio, 0) + position * prices[equity]
# 或者使用 setdefault 方法
navs.setdefault(portfolio, 0)
navs[portfolio] += position * prices[equity]
Nach dem Login kopieren

11. Listenverständnis-verschachtelt

##不推荐
if x == True:
# ....
if len(items) != 0:
# ...
if items != []:
# ... 

##推荐
if x:
# ....
if items:
# ...
Nach dem Login kopieren

Verschachtelte Schleifen

##不推荐
items = &#39;zero one two three&#39;.split()
# method 1
i = 0
for item in items:
print i, item
i += 1
# method 2
for i in range(len(items)):
print i, items[i]

##推荐
items = &#39;zero one two three&#39;.split()
for i, item in enumerate(items):
print i, item
Nach dem Login kopieren

< strong>13. Versuchen Sie, Generatoren anstelle von Listen zu verwenden

##不推荐
new_list = []
for item in a_list:
if condition(item):
new_list.append(fn(item)) 

##推荐
new_list = [fn(item) for item in a_list if condition(item)]
Nach dem Login kopieren

14 Versuchen Sie, imap/ifilter anstelle von map/filter für Zwischenergebnisse zu verwenden

##不推荐
for sub_list in nested_list:
if list_condition(sub_list):
for item in sub_list:
if item_condition(item):
# do something... 
##推荐
gen = (item for sl in nested_list if list_condition(sl) \
for item in sl if item_condition(item))
for item in gen:
# do something...
Nach dem Login kopieren

15. Verwenden Sie die Funktion „any/all“

##不推荐
for x in x_list:
for y in y_list:
for z in z_list:
# do something for x &amp;amp; y 

##推荐
from itertools import product
for x, y, z in product(x_list, y_list, z_list):
# do something for x, y, z
Nach dem Login kopieren

16. Eigenschaft (Eigenschaft)

##不推荐
def my_range(n):
i = 0
result = []
while i &amp;lt; n:
result.append(fn(i))
i += 1
return result # 返回列表

##推荐
def my_range(n):
i = 0
result = []
while i &amp;lt; n:
yield fn(i) # 使用生成器代替列表
i += 1
*尽量用生成器代替列表,除非必须用到列表特有的函数。
Nach dem Login kopieren

17

##不推荐
reduce(rf, filter(ff, map(mf, a_list)))

##推荐
from itertools import ifilter, imap
reduce(rf, ifilter(ff, imap(mf, a_list)))
*lazy evaluation 会带来更高的内存使用效率,特别是当处理大数据操作的时候。
Nach dem Login kopieren

Verwenden Sie with, um Ausnahmen zu ignorieren (nur Python 3)

##不推荐
found = False
for item in a_list:
if condition(item):
found = True
break
if found:
# do something if found... 

##推荐
if any(condition(item) for item in a_list):
# do something if found...
Nach dem Login kopieren

Verwenden Sie with, um Sperren zu behandeln< / p>

##不推荐
class Clock(object):
def __init__(self):
self.__hour = 1
def setHour(self, hour):
if 25 &amp;gt; hour &amp;gt; 0: self.__hour = hour
else: raise BadHourException
def getHour(self):
return self.__hour

##推荐
class Clock(object):
def __init__(self):
self.__hour = 1
def __setHour(self, hour):
if 25 &amp;gt; hour &amp;gt; 0: self.__hour = hour
else: raise BadHourException
def __getHour(self):
return self.__hour
hour = property(__getHour, __setHour)
Nach dem Login kopieren

Verwandte Empfehlungen: Programmiervideokurs

Das obige ist der detaillierte Inhalt vonBeherrschen Sie Python 19-Programmierkenntnisse, die es wert sind, erlernt zu werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:jb51.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage