Heim  >  Artikel  >  Backend-Entwicklung  >  Beherrschen Sie Python 19-Programmierkenntnisse, die es wert sind, erlernt zu werden

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

coldplay.xixi
coldplay.xixinach vorne
2020-08-17 16:26:012892Durchsuche

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

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

6. Wörterbuch-Schlüsselwertbeurteilung

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

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

7. Wörterbuch-Get- und Setdefault-Methode

##不推荐
colors = ['red', 'blue', 'green', 'yellow']

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

##推荐
colors = ['red', 'blue', 'green', 'yellow']
result = ''.join(colors) # 没有额外的内存分配

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()
# 生成静态的键值列表。

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]

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]

11. Listenverständnis-verschachtelt

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

##推荐
if x:
# ....
if items:
# ...

Verschachtelte Schleifen

##不推荐
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

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)]

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen