你在Python的学习中有没有遇到过一些好玩又冷门的知识吗?我最近整理了一些,给大家分享一下。
省略号也是对象
...这是省略号,在Python中,一切皆对象,它也不例外。在Python中,它叫做Ellipsis,在Python 3中你可以直接写…来得到这玩意。
>>>...
Ellipsis
>>>type(...)
<class'ellipsis'>
而在2中没有…这个语法,只能直接写Ellipsis来获取。
>>>Ellipsis
Ellipsis
>>>type(Ellipsis)
<type'ellipsis'>
>>>
它转为布尔值时为真
>>>bool(...)
True
最后,这东西是一个单例。
>>>id(...)
4362672336
>>>id(...)
4362672336
这东西有啥用呢?据说它是Numpy的语法糖,不玩Numpy的人,可以说是没啥用的。在这里相信有许多想要学习Python的同学,大家可以+下Python学习分享群:304050799即可免费领取一整套系统的 Python学习教程!
类的首字母不一定是大写
在正常情况下,我们所编写的所见到的代码,好像都默许了类名首字母大写,而实例用小写的这一准则,但这并不是强制性的,即使你反过来也没有关系。
但有一些内置的类,首字母都是小写,而实例都是大写。
比如bool是类名,而True,False是其实例;比如ellipsis是类名,Ellipsis是实例;还有int,string,float,list,tuple,dict等一系列数据类型都是类名,它们都是小写。
增量赋值的性能更好
诸如+=和*=这些运算符,叫做增量赋值运算符。这里使用用+=举例,以下两种写法,在效果上是等价的。
#第一种
a=1;a+=1
#第二种
a=1;a=a+1
+=其背后使用的魔法方法是__iadd__,如果没有实现这个方法则会退而求其次,使用__add__。
这两种写法有什么区别呢?
用列表举例a+=b,使用__add__的话就 像是使用了a.extend(b),如果使用__add__的话,则是a=a+b,前者是直接在原列表上进行扩展,而后者是先从原列表中取出值,在一个新的列表中进行扩展,然后再将新的列表对象返回给变量,显然后者的消耗要大些。
所以在能使用增量赋值的时候尽量使用它。
and和or的取值顺序
and和or是我们再熟悉不过的两个逻辑运算符。而我们通常只用它来做判断,很少用它来取值。
如果一个or表达式中所有值都为真,Python会选择第一个值,而and表达式则会选择第二个。
>>>(2 or 3)*(5 and 7)
14#2*7
最后柠檬为大家准备了由北京尚学堂高淇老师亲自录制,400集python全栈入门到精通的python全套+前端+4个实战项目,第二季已经新鲜出炉了!小伙伴们快快领取学习吧!
Python作为一种编程语言,被称为“胶水语言”,更被拥趸们誉为“最美丽”的编程语言,从云端到客户端,再到物联网终端,无所不在,同时还是人工智能优选的编程语言。
硬件:
第一篇:操作系统简介
第二篇:操作系统
linux基础:
第一篇:初始Linux
第二篇:基本使用
第三篇:Linux进阶
python基础:
第一篇:python基础大纲
第二篇:变量与交互
第三篇:快捷键
第四篇:基本数据类型,基本二,字符串,列表,元组,字典,集合
第五篇:基础条件和循环
第六篇:循环,元组,字典列表代码整理,计算器小程序,一大波作业来袭
第七篇:第六篇-练习代码
第八篇:集合
第九篇:字典
第十篇:元组
第十一篇:列表
第十二篇:字符串
第十三篇:日期格式化
python-文件处理:
第一篇:字符编码、文件处理
python-函数:
第一篇:初始函数
第二篇:函数进阶
第三篇:装饰器
第四篇:递归与二分法
第五篇:内置函数思维导图
第六篇:迭代器、生成器、列表推倒。。
第七篇:eval一个神器的函数
python-模块和包:
第一篇:模块导入和包
第二篇:常用的几个模块
第三篇;摘要算法模块
第四篇:logging模块
第五篇:configparser模块
python-面向对象:
第一篇:初始面向对象
第二篇:面向对象三大特性
第三篇:property-staticmethod-classmethod
第四篇:神奇的反射
第五篇:面向对象拓展
python-异常处理:
第一篇:异常处理
python-网络编程:
第一篇:初始socket
第二篇:客户端服务端一、客户端服务端二
python-进程、线程、协程:
第一篇:线程与进程
第二篇:并发编程
第三篇:多进程模拟抢票
第五篇:进程的队列
第六篇:互斥锁
第七篇:开启线程的两种方式,线程queue
第八篇:线程与进程的两种应用
第九篇:死锁与递归锁,定时器
第十篇:event模式数据库链接
第十一篇:进程池与线程池,统一进程的两个任务切换问题
第十二篇:同步与异步
第十三篇:阻塞IO,非阻塞IO,多路复用
第十四篇:进程、线程、协程终极版
数据库-MySQL-MongoDB:
第一篇:MySQL--数据库基本操作一,基本操作二
第二篇:MySQL--进阶操作(了解即可)
第三篇:MySQL--经典习题
第四篇:MongoDB
前端:HTML、css、JavaScript、jquery、vue.js:
第一篇:HTML
第二篇:css
第三篇:JavaScript
第四篇:jQuery,跨域实例
第五篇:vue.js入门,项目结构介绍,es6入门
第六篇:vue.js详细的操作实例一
第七篇:vue-router篇
第八篇:快速上手npm
第九篇:初识webpack
python-Django框架:
第一篇:安装以及介绍--Django生命周期--一些命令----笔记---笔记2--笔记3
第二篇:初始django,MTV模型,请求方式测试
第三篇:简单的登录注册,admin管理,权限管理测试
第四篇:模板层,练习,模板继承,csrf跨站
第五篇:基于MySQL的图书管理,图书管理增删改,加了cookie的图书管理
第五篇:orm查询,查询二
第六篇:cookie验证,cookie与session
第七篇:diy自己的权限系统
第八篇:Django-ajax,,跨站请求伪造,jQuery-serizlize的用法
第九篇:文件上传,验证码,Django缓存问题
第十篇:Django-rest-framework,部分总结
第十一篇:content-type
Git-版本控制:
第一篇:Git入门
第二篇:git操作演示
python-flask框架:
第一篇:flask各种小东西
第二篇:flask开发框架,配置文件
第三篇:单例模式
第四篇:flask-session源码剖析
第五篇:flask-session组件
第五篇:信号
第六篇:sqlalchemy操作,操作2,详细,,命令使用
第七篇:flask-script
redis:
第一篇:基本使用
爬虫相关
第一篇:爬取校花网资源
第二篇:请求库-request
第三篇:解析库-re-beautifulsoup
第四篇:存储库-MySQL(见上面MySQL),MongoDB
第五篇:github绵密登录,自动投递简历
第六篇:提高爬虫性能,爬虫性能测试代码
第七篇:爬虫框架scrapy1,爬虫框架scrapy2
第八篇:爬取亚马逊商品信息,爬取网络小说
第九篇:分布式爬虫 ---
项目练习:
第一篇:基于bootstrap搭建静态网站
第二篇:基于bootstrap+MySQL搭建动态网站
第三篇:基于HTML,css,jQuery,JavaScript,MySQL搭建博客系统
第四篇:基于django做权限控制
第五篇:基于django做增删改查组件,分页器组件
第五篇:为公司做crm资产管理
第六篇:基于flask做权限控制
第七篇:爬虫项目
第八篇:路飞学成搭建
源码剖析:
第一篇:flask
第二篇:django
第三篇:django-restframework源码流程分析
金融与算法:
第一篇:金融介绍
第二篇:量化投资与python
第三篇:ipython基础认识
第四篇:numpy数组运算,事例代码
第五篇:pandas数据分析,事例代码
第六篇:matplotlib绘图可视化,事例代码
第七篇:金融分析实例(了解)
第八篇;算法基础(理论),实例代码
第九篇:排序lowB三人组,示例代码
第十篇:NB三人组,示例代码
第十一篇:算法进阶、其它(了解)
第十二篇:数据结构、数据结构实例代码
第十三篇:设计模式、设计模式实例代码