Heim >Backend-Entwicklung >Python-Tutorial >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
2. Auspacken
rrree3. Verwendung von Operatoren in
rrree4 5. Wörterbuch-Schlüsselwertliste 6. Wörterbuch-Schlüsselwertbeurteilung 7. Wörterbuch-Get- und Setdefault-Methode 8. Bestimmen Sie die Authentizität 9. Durchsuchen Sie die Liste und den Index 10 . Listenverständnis 11. Listenverständnis-verschachtelt Verschachtelte Schleifen 13. Versuchen Sie, Generatoren anstelle von Listen zu verwenden##不推荐
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
##不推荐
if fruit == "apple" or fruit == "orange" or fruit == "berry":
# 多次判断
##推荐
if fruit in ["apple", "orange", "berry"]:
# 使用 in 更加简洁
##不推荐
colors = ['red', 'blue', 'green', 'yellow']
result = ''
for s in colors:
result += s # 每次赋值都丢弃以前的字符串对象, 生成一个新对象
##推荐
colors = ['red', 'blue', 'green', 'yellow']
result = ''.join(colors) # 没有额外的内存分配
##不推荐
for key in my_dict.keys():
# my_dict[key] ...
##推荐
for key in my_dict:
# my_dict[key] ...
# 只有当循环中需要更改key值的情况下,我们需要使用 my_dict.keys()
# 生成静态的键值列表。
##不推荐
if my_dict.has_key(key):
# ...do something with d[key]
##推荐
if key in my_dict:
# ...do something with d[key]
##不推荐
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]
##不推荐
if x == True:
# ....
if len(items) != 0:
# ...
if items != []:
# ...
##推荐
if x:
# ....
if items:
# ...
##不推荐
items = 'zero one two three'.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 = 'zero one two three'.split()
for i, item in enumerate(items):
print i, item
##不推荐 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)]
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...
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 & y ##推荐 from itertools import product for x, y, z in product(x_list, y_list, z_list): # do something for x, y, z
16. Eigenschaft (Eigenschaft)
##不推荐 def my_range(n): i = 0 result = [] while i < n: result.append(fn(i)) i += 1 return result # 返回列表 ##推荐 def my_range(n): i = 0 result = [] while i < n: yield fn(i) # 使用生成器代替列表 i += 1 *尽量用生成器代替列表,除非必须用到列表特有的函数。
17
##不推荐 reduce(rf, filter(ff, map(mf, a_list))) ##推荐 from itertools import ifilter, imap reduce(rf, ifilter(ff, imap(mf, a_list))) *lazy evaluation 会带来更高的内存使用效率,特别是当处理大数据操作的时候。
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...
Verwenden Sie with, um Sperren zu behandeln
##不推荐 class Clock(object): def __init__(self): self.__hour = 1 def setHour(self, hour): if 25 > hour > 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 > hour > 0: self.__hour = hour else: raise BadHourException def __getHour(self): return self.__hour hour = property(__getHour, __setHour)
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!