省略号也是对象

在python中一切皆对象,省略号(...)也是一个对象注意:只能是三个点的省略号

在python中叫做Ellipsis

在python3中能直接得到它

print(...)

print(type(...))

Ellipsis

而在python2中没有这个,只能通过Ellipsis来获取

print Ellipsis

print type(Ellipsis)

它转成布尔值为真

print(bool(...))

True

它还是一个单例

print(id(...))

print(id(...))

print(id(...))

print(id(...))

1435611440

1435611440

1435611440

1435611440

这东西有啥用呢?据说它是Numpy的语法糖,不玩 Numpy 的人,可以说是没啥用的。

在网上只看到这个 用 … 代替 pass ,稍微有点用,但又不是必须使用的。

奇怪的字符串

示例一

示例二

示例三

and 和 or 的取值顺序

and 和 or 是我们再熟悉不过的两个逻辑运算符。而我们通常只用它来做判断,很少用它来取值。

如果一个python表达式中所有值都为真,or会选择第一个值,而and表达式则会选择第二个。

如果一个python表达式中所有值有一个为假,or会选择第二个值,而and表达式则会选择第一个。

如果一个python表达式中所有值有都为假,or会选择第二个值,而and表达式则会选择第一个。

print(2 or 3)

print(2 and 3)

2

3

访问类中的私有方法

大家都知道,类中可供直接调用的方法,只有公有方法(protected类型的方法也可以,但是不建议)。也就是说,类的私有方法是无法直接调用的。但是是可以直接调用的

class People:

def __speak(self):

print('hello')

def call_speak(self):

self.__speak()

tim=People()

tim.call_speak()

tim._People__speak()

hello

hello

时有时无的切片异常

这是个简单例子

lis=[1,2,3]

print(lis[5])

执行一下,和我们预期的一样,会抛出索引异常。

但是今天要说的肯定不是这个,而是一个你可能会不知道的冷知识。

来看看,如下这种写法就不会报索引异常,它会返回一个空列表:

lis=[1,2,3]

print(lis[5:])

[]

两次 return

我们都知道,try…finally… 语句的用法,不管try里面是正常执行还是报异常,最终都能保证finally能够执行。

同时,我们又知道,一个函数里只要遇到 return 函数就会立马结束。

基于以上这两点,我们来看看这个例子,到底运行过程是怎么样的?

def text():

try:

return 1

finally:

return 0

print(text())

0

惊奇的发现,在try 里的return居然不起作用。

原因是,在try…finally…语句中,try中的return会被直接忽视,因为要保证 finally 能够执行。

for 死循环

for 循环可以说是 基础得不能再基础的知识点了。

但是如果让你用 for 写一个死循环,你会写吗?

这是个开放性的问题,在往下看之前,建议你先尝试自己思考,你会如何解答。

好了,如果你还没有思路,那就来看一下这个解法:

for i in iter(int,1):

print('1')

是不是懵逼了。iter 还有这种用法?这为啥是个死循环?

这真的是个冷知识,关于这个知识点,你如果看中文网站,可能找不到相关资料。

还好你可以通过 IDE 看py源码里的注释内容,介绍了很详细的使用方法。

原来iter有两种使用方法,通常我们的认知是第一种,将一个列表转化为一个迭代器。

而第二种方法,他接收一个 callable对象,和一个sentinel 参数。第一个对象会一直运行,直到它返回 sentinel 值才结束。

那int 呢,这又是一个知识点,int 是一个内建方法。通过看注释,可以看出它是有默认值0的。你可以在终端上输入int() 看看是不是返回0。

由于int() 永远返回0,永远返回不了1

所以这个 for 循环会没有终点。一直运行下去。

intern机制

字符串类型作为Python中最常用的数据类型之一,Python解释器为了提高字符串使用的效率和使用性能,做了很多优化.

例如:Python解释器中使用了 intern(字符串驻留)的技术来提高字符串效率,什么是intern机制?就是同样的字符串对象仅仅会保存一份,放在一个字符串储蓄池中,是共用的,当然,肯定不能改变,这也决定了字符串必须是不可变对象。

python冷知识_python冷知识相关推荐

  1. 视频教程-快速入门Python基础教程_Python基础知识大全-Python

    快速入门Python基础教程_Python基础知识大全 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即 ...

  2. python classmethod知识_python基础知识讲解——@classmethod和@staticmethod的作用

    python基础知识讲解--@classmethod和@staticmethod的作用 在类的成员函数中,可以添加@classmethod和@staticmethod修饰符,这两者有一定的差异,简单来 ...

  3. python教程是什么-Python基础教程_Python入门知识

    Python基础教程频道为编程初学者提供入门前的所有基础知识,必须要掌握的一些PYTHON基础语法语句,基本的数据类型. 让大家可以更快速.更容易理解的的方式掌握Python编程所需要的基础知识,灵活 ...

  4. python的基础_python基础知识,python必背内容,一、python的基

    python基础知识,python必背内容,一.python的基 一.python的基础 1.简单写一行python代码:print('hello,world')print('你好,北京') 2.变量 ...

  5. python基础教程是什么-Python基础教程_Python入门知识

    Python基础教程频道为编程初学者提供入门前的所有基础知识,必须要掌握的一些PYTHON基础语法语句,基本的数据类型. 让大家可以更快速.更容易理解的的方式掌握Python编程所需要的基础知识,灵活 ...

  6. python数学知识点_python基础知识整理

    序言:本文简单介绍python基础知识的一些重要知识点,用于总结复习,每个知识点的具体用法会在后面的博客中一一补充 2. 程序: 一组计算机能识别和执行的指令,是实现某种需求的软件. 3. 操作系统: ...

  7. python发音方法_Python基础知识之一

    一.Python的安装 Windows下: 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3.配置环境变量 [右键 ...

  8. python小知识_python小知识合集

    前言 学习过程中难免会遇到问题,将所遇到的一些小问题解决并整理起来.就像写日记一样的来写这篇博客. 变量存储 python中当数据存储所需要的内存不大时,python为了节省内存对于值一样的变量只开辟 ...

  9. python截取逗号_Python基础知识: 元组

    Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: tup1 = ('physi ...

最新文章

  1. 专题3 标准IO编程
  2. IPv6套接字编程介绍
  3. # 模糊图片边缘_PS大神给你变个魔术,如何巧用PS把模糊的照片变清晰
  4. SQL Server语句大全(增删改查数据、创建表、删除表、修改表)
  5. C# 实验三 判断一个字符、判断三角形、千名学生、a+aa+aaa+aaaa、求数列相加、约瑟夫环
  6. 和SAP Sales Organization相关的一些有用函数
  7. bzoj3224: Tyvj 1728 普通平衡树(打个splay暖暖手)
  8. 【环境搭建003】UBUNTU + ECLIPS + ANDROID 嵌入式系统编译环境搭建遇到的稀奇古怪的问题集合
  9. arm ubuntu 编译boost_Ubuntu交叉编译tslib并移植到嵌入式Linux
  10. 程序员35岁前需要完成的10件事
  11. ise仿真添加信号_「干货」推荐一款FPGA仿真调试鸟枪换炮的工具
  12. 迄今为止我所见过的将BP算法最好的PPT
  13. oracle批量更新之使用游标进行分批次更新的5种方式及速度比对
  14. Luogu2730 魔板 Magic Squares
  15. mysql数据库没有导出权限_mysql导出没有数据库
  16. 一些快捷键的用法,linux终端操作下
  17. 【Codeforces Round #695 (Div. 2) B】Hills And Valleys
  18. directx是什么?
  19. 人生的三把钥匙,太经典了!
  20. win10安装mujoco一点细节

热门文章

  1. json中omitempty字段的使用
  2. 大剑无锋之不都说面试不问mybatis,为什么我被虐了。。。【mybatis面试题】
  3. 那么到底什么是热点???
  4. 【牛客网】安置路灯 C++
  5. 【Python】忘记登录密码?遍历数字字母组合密码+模拟提交表单
  6. vb循环 Do While…Loop 语句/Do Until…Loop语句
  7. Effective Java之考虑自定义的序列化模式(七十五)
  8. 搜索引擎重复网页发现技术分析
  9. vue_prop注册及验证
  10. 【解题报告】Leecode911. 在线选举——Leecode每日一题系列