盤點Python那些不爲人知的冷知識,附贈400集python視頻教程分享
摘要:第四篇:基本數據類型,基本二,字符串,列表,元組,字典,集合。python-Django框架:。
你在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的人,可以說是沒啥用的。
類的首字母不一定是大寫
在正常情況下,我們所編寫的所見到的代碼,好像都默許了類名首字母大寫,而實例用小寫的這一準則,但這並不是強制性的,即使你反過來也沒有關係。
但有一些內置的類,首字母都是小寫,而實例都是大寫。
比如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
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三人組,示例代碼
第十一篇:算法進階、其它(瞭解)
第十二篇:數據結構、數據結構實例代碼
第十三篇:設計模式、設計模式實例代碼