python编程自学,Python编程技巧

  python编程自学,Python编程技巧

  计算机编程语言最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净、整洁、一目了然。要写出蟒蛇(优雅的、地道的、整洁的)代码,需要多看多学大牛们写的代码,github上有很多非常优秀的源代码值得阅读,比如:请求、烧瓶、龙卷风、下面列举一些常见的预言的写法。

  相关学习推荐:python视频教程

  0. 程序必须先让人读懂,然后才能让计算机执行。

  "程序必须是为人们阅读而写的,并且只是附带地为机器执行而写的."

  1. 交换赋值

  ##不推荐

  温度=a

  a=b

  b=a

  ##推荐

  a,b=b,a #先生成一个元组(元组)对象,然后打开2. Unpacking的行李

  ##不推荐

  l=[大卫,皮托尼斯塔, 1-514-555-1234]

  名字=l[0]

  姓氏=l[1]

  电话号码=l[2]

  ##推荐

  l=[大卫,皮托尼斯塔, 1-514-555-1234]

  名,姓,电话号码=l

  #仅限Python 3

  第一,*中间,最后=另一个_列出3. 使用操作符in

  ##不推荐

  如果水果==苹果或水果==桔子或水果==浆果 :

  # 多次判断

  ##推荐

  如果水果在[苹果,橘子,浆果]:

  # 使用在更加简洁4. 字符串操作

  ##不推荐

  颜色=[红色,蓝色,绿色,黄色]

  结果=

  对于彩色s:

  结果=s #每次赋值都丢弃以前的字符串对象,生成一个新对象

  ##推荐

  颜色=[红色,蓝色,绿色,黄色]

  结果=""。加入(颜色)#没有额外的内存分配5. 字典键值列表

  ##不推荐

  for key in my_dict.keys():

  #我的字典[答案].

  ##推荐

  对于我的字典中的键:

  #我的字典[答案].

  # 只有当循环中需要更改键值的情况下,我们需要使用my_dict.keys()

  # 生成静态的键值列表106 .6. 字典键值判断

  ##不推荐

  如果my_dict.has_key(key):

  # .用d[键]做某事

  ##推荐

  如果键入我的_字典:

  # .和迪7. 字典 get 和 setdefault 方法一起做点什么

  ##不推荐

  navs={}

  对于数据:中的(投资组合、权益、头寸)

  如果投资组合不在navs:中

  nav投资组合]=0

  nav投资组合]=头寸*价格[权益]

  ##推荐

  navs={}

  对于数据:中的(投资组合、权益、头寸)

  # 使用得到方法

  投资组合。get(投资组合,0)头寸*价格[权益]

  # 或者使用山转水也转方法

  navs.setdefault(投资组合,0)

  投资组合

  n * prices[equity]8. 判断真伪

  

##不推荐

  if x == True:

  # ....

  if len(items) != 0:

  # ...

  if items != []:

  # ...

  ##推荐

  if x:

  # ....

  if items:

  # ...

9. 遍历列表以及索引

  

##不推荐

  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

10. 列表推导

  

##不推荐

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

11. 列表推导-嵌套

  

##不推荐

  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...

12. 循环嵌套

  

##不推荐

  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

13. 尽量使用生成器代替列表

  

##不推荐

  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

  *尽量用生成器代替列表,除非必须用到列表特有的函数。

14. 中间结果尽量使用imap/ifilter代替map/filter

  

##不推荐

  reduce(rf, filter(ff, map(mf, a_list)))

  ##推荐

  from itertools import ifilter, imap

  reduce(rf, ifilter(ff, imap(mf, a_list)))

  *lazy evaluation 会带来更高的内存使用效率,特别是当处理大数据操作的时候。

15. 使用any/all函数

  

##不推荐

  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...

16. 属性(property)

  

##不推荐

  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)

17. 使用 with 处理文件打开

  

##不推荐

  f = open("some_file.txt")

  try:

  data = f.read()

  # 其他文件操作..

  finally:

  f.close()

  ##推荐

  with open("some_file.txt") as f:

  data = f.read()

  # 其他文件操作...

18. 使用 with 忽视异常(仅限Python 3)

  

##不推荐

  try:

  os.remove("somefile.txt")

  except OSError:

  pass

  ##推荐

  from contextlib import ignored # Python 3 only

  with ignored(OSError):

  os.remove("somefile.txt")

19. 使用 with 处理加锁

  

##不推荐

  import threading

  lock = threading.Lock()

  lock.acquire()

  try:

  # 互斥操作...

  finally:

  lock.release()

  ##推荐

  import threading

  lock = threading.Lock()

  with lock:

  # 互斥操作...

相关推荐:编程视频课程

  

以上就是掌握python 19个值得学习的编程技巧的详细内容,更多请关注盛行IT软件开发工作室其它相关文章!

  

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: