简单好玩的Python知识点(五)

欢迎关注微信公众号:简说Python
关注后回复:1024,可以领取精选编程学习电子书籍。
简单好玩的Python知识点(五)_第1张图片
本文授权转载自Python编程时光
禁止二次转载
大家好,我是老表
阅读文本大概需要 5 分钟
Smaller And Smarter,简单好玩的Python


冷知识系列,直至今日,已经更新至第五篇。


前两篇传送门小明给你准备好了,还没阅读的可以学习一下。



还是老规矩, 一篇只分享五个 ,有时间了就整理。不想错过的,千万 记得 关注一下

01


空字符串计数



求一个字符串里,某子字符(串)出现的次数。在Python中使用 count() 函数,就可以轻松实现。
比如下面几个常规例子
 
   
>>"aabb".count( "a")
2
>>"aabb".count( "b")
2
>>"aabb".count( "ab")
1
但是如果使用空字符串呢,你可能想不到会是这样的结果。
 
   
>>"aabb".count( "")
5
具体原因,我不敢妄下结论。
由此我还衍生出另一个想法,实验了下。不知道空字符串,是一种什么样的存在,难道字母与字母之间 “缝隙” 也算吗?
 
   
>>>  ""  in  ""
True
>>>  ""  in  "ab"
True
有兴趣的可以去看看CPython的源码实现。如果有结论,还请后台回复一下。不胜感激。


02


负负得正



从初中开始,我们就开始接触了 负数  这个概念。知道了 负负得正 这和武侠世界里的 以毒功毒 ,有点神似。
Python 作为一门高级语言,它的编写符合人类的思维逻辑,这其中也包括 负负得正 这个思想。
 
   
>>>  5-3
2
>>>  5- -3
8
>>>  5+ -3
2
>>>  5++ 3
8
>>>  5-- -3
2



03


数值与字符串比较



在 Python2 中,数字可以与字符串直接比较。结果是数值永远比字符串小。
 
   
>>100000000 <  ""
True
>>100000000 <  "ming"
True
但在 Python3 中,却不行。
 
   
>>100000000 <  ""
TypeError:  '<'  not supported between instances of  'int'  and  'str'


04


循环中的局部变量泄露


在Python 2中x的值在一个循环执行之后被改变了。
 
   
# Python2
>>> x =  1
>>> [x for x in range( 5)]
[ 01234]
>>> x
4
不过在Python3 中这个问题已经得到解决了。
 
   
# Python3
>>> x =  1
>>> [x for x in range( 5)]
[ 01234]
>>> x
1


05


让字典可排序



字典不可排序的思想,似乎已经根深蒂固。
 
   
# Python2.7.10
>>> mydict = {str(i) :i for i in range( 5)}
>>> mydict
{ '1'1'0'0'3'3'2'2'4'4}
在 Python3 中字典已经是有序的。
 
   
# Python3.6.7
>>
> mydict = {str(i) :i for i in range( 5)}
>>> mydict
{ '0'0'1'1'2'2'3'3'4'4}
今日留言主题
说说你读完本文感受?
或者一句激励自己的话?
(字数不少于15字)
说明
今天是留言打卡第二十天
简说Python,等你~

今日赠书
640?wx_fmt=png
增强型分析是数据科学的未来,本书讲解了如何通过前沿的大数据技术和AI技术实现智能的数据分析和业务决策,即增强型分析。本书的重点聚焦在本质内容上,即数据处理、算法及模型、“模型洞见到业务决策”的分析等。
2小时快速掌握Python基础知识要点

完整Python基础知识要点


640?wx_fmt=jpeg
学Python | 聊赚钱
 
      
640?wx_fmt=png
给个[在看]

你可能感兴趣的:(简单好玩的Python知识点(五))