Python入门分享(需有其他语言基础)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Python入门分享
人生苦短,我用Python,从入门到兴趣
读音: 拍搡 我所追求的:最精简可读的一手代码
一、快速入门
list、dict、tuple、generator、exception、function、 lambda、 decorator、class、方向的一下讨论。
自学路线建议: Python简明教程→[廖雪峰Python教程→]→Python核心编程 推荐环境: Python3.6+PyCharm(工具) 内容量:基础4页,进阶2页
匿名函数,装饰器 lambda x: x * x
“列表生成式”的同桌
“乘法口诀” [x * x for x in [1, 2, 3, 4, 5, 6, 7, 8, 9]] list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
预处理和扫尾的好工匠
异常处理、函数 try…except…else…finally…;def
文件读取异常处理
try: fhandler = open("a.txt", "r") except Exception as e: raise("文件不存在") else: # 和可能报错代码区分,为了整洁
函数,上例改造
def heaping_words(layer=100): word = "A" base = ord(word) count = 26 for col in range(layer):
def singleton(cls): box = {} def _singleton(*args, **kwargs): if cls not in box: box[cls] = cls(*args, **kwargs) return box[cls] return _singleton
相当于
def f(x):
11 2b
c3
延伸:enumerate()函数如何使用?
元组和生成器 atuple = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
元组
元素不可修改 其他同list alist[0] = alist[0] + 1是否会报错? 延伸:列表、元组、字典之间转换。
生成器
print(1) def __new__(cls, *args, **kwargs): print(2) return object.__new__(cls) def __init__(self, x=3): print(x) def __call__(self):
self.public()
self._private() self.__protect() def public(self):
列表 alist = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
取出、切片
alist[0] => 0 alist[-1] => 9 alist[10], alist[-11] => 超出索引
遍历
for num in alist:
print(f"数字:{num}")
alist[0:2], alist[:2] => [0, 1]
print(key, value)
遍历
[key for key in adict] => [1, '2', 'c'] [adict[k] for k in adict] => [1, 'b', '3']
new_dict = dict(1=1, "2"="b", "c"=3)
延伸:合并,删除,复制,有序字典。
比“迭代器iterator” 占用内存少 lwords = [chr(ord("A") + col % 26) for col in range(100)] gwords = (chr(ord("A") + col % 26) for col in range(100)) 所占字节 lwords => 460 gwords => 48 延伸:了解yield,yield from用法
head = chr(base + col % count)
times = col // count yield word * times + head 延伸:如果return 100在前,yield是 否起作用?
print(fhandler.read())
finally: fhandler.close() 延伸:了解with用法
alist和range(10)的区别? 延伸:list的步长,排序,合并。
如何精简? new_list = [num + 1 for num in alist] 延伸:了解“列表生成式”
字典 adict = {1: 1, "2": "b", "c": 3}
取出、赋值
adict[1] => 1 adict["2"] => "b" adict[0], adict[2] # key不存在 adict.get(0, -1) => -1 如何优雅的遍历? for key, value in adict.items(): adict["key"] = "value"
print("public")
def _private(self): print("_private") def __protect(self):
print("__protect")
test = Test() test()
• 了解“抽象类”和“元类”
常省身,我多久能会这些?
以上列举结果的内容,几分钟可以学完,延伸的内容可能要花上半天,真正会用恐怕要 按“周”计算。 坚持,回头看,干了很多事。
return x * x 延伸:除了map,还有哪些内置函数 支持lambda?
延伸: *args和 **kwargs区别,了解 “单例模式”
class Test(object):
类,模块
• __init__和__new__那个优先执行? 还有哪些魔法方法? • 区分cls和self • 类方法有哪些装饰器? @property、 @classmethod、。。。 • 动态赋值test.y = 4? • getattr函数和__getattribute__ 方法 • 继承Test后,重写public方法 • 多重继承后tpye(Class)查看对象 • 在其它.py文件中import该类, from test import Test • 尝试实现一个“枚举”类?

我该选择那条路?
。。。 。。。
”Biblioteka Baidu
爬虫、Web、API、硬件、量化交易、NLP、大数据、机器学习
还有很多内置内容:字符串、日期、正则、JSON、日志、IO、FTP、并发、… 也有无数的第三方库:Requests、Gevent、Django、RESTful、Celery、Redis、 SQLAlchemy、MQ、openCV、es、numpy、pandas、spark、tsf、…
alist[:], alist[-11:10] => alist alist[0] = alist[0] + 1是否会报错?
如何为每个元素+1? new_list = [] for num in alist:
new_list.append(num + 1)
alist[::-1]结果是什么?换成2,-2呢?
相关文档
最新文档