您好,欢迎来到微智科技网。
搜索
您的当前位置:首页Python基础入门-风格

Python基础入门-风格

来源:微智科技网

推导式

  • 列表推导式
    • [x for x in range(10) if X % 2 == 0]
  • 集合推导式
    • {x for x in range(10) if X % 2 == 0}
  • 字典推导式
    • {x: x**2 for x in range(10) if x % 2 == 0}
  • 生成器表达式
    • (x for x in range(10) if x % 2 == 0)

异常处理

  • Exception 常规错误父类
    • BaseException 内置错误的父类
  • tr-except
    	try:	
    		测试执行代码...
    	except Exception:
    		异常处理流程...
    	else:
    		...
    	finally:
    		...
    
  • 自定义异常 ?

深浅拷贝

当a为列表时,更改a的值会同时更改b的值,具体原因待明确,应该和list的实现有关

	from copy import copy,deepcopy
	a=[1,["a","b"]]
	b=a
	c=copy(a)
	d=deepcopy(a)

	a.append(5)
	a[1].append("c")
	#a [1,['a','b','c'],5]
	#b [1,['a','b','c'],5]
	#c [1,['a','b','c']]
	#d [1,['a','b']]

迭代器

返回可迭代对象,用for循环迭代或者复制给list

  • map()
  • range()

序列化与反序列化

  • 将数据以JSON格式保存到文件中(使用Unicode文本)
    • 将对象在某一状态下“冻结”,以二进制形式写入文件,保存到硬盘中
  • 反序列化
	import pickle #二进制文件转换
	a=[1,2,3]
	b=pickle.dumps(a)
	print(b) #b'\x80\x03]q\x00(K\x01K\x02K\x03e.'
	c=pickle.loads(b)
	print(a==c) #true

timeit和Profiling

  • 性能分析Profiling
    • CPU
    • GPU
  • 计算方法
    • from time import timeit #系统时间
      • from time import clock #windows
       	from time import time
       	start =time()
       	s=0
       	for i in range(100000):
       		s=s+i
       	end= time()
       	print("time:%.4f s" %(end-start))
      
    • from timeit import timeit #timeit 完成任务的时间,不包括后续结尾工作
      from timeit import timeit
      print(timeit('for i in range(20):print i,globals=globals()))
      
    • import profile

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务