Python整数的缓存

>>> i=100
>>> k=100
>>> i==k
True
>>> i is k
True
>>>
>>>
>>> i=1000
>>> k=1000
>>> i==k
True
>>> i is k
False
>>> 

>>> i=0
>>> k=0
>>> while i<500:
	i+=1
	k+=1
	if i is not k:
		print(i)
		break

257

由此可见小于256的整数是共用一个对象的
时间: 2024-10-24 01:31:08

Python整数的缓存的相关文章

Python解惑:整数比较

在 Python 中一切都是对象,毫无例外整数也是对象,对象之间比较是否相等可以用==,也可以用is.==和is操作的区别是: is比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象,是否指向同一个内存地址. ==比较的是两个对象的内容是否相等,默认会调用对象的__eq__()方法. 清楚is和==的区别之后,对此也许你有可能会遇到下面的这些困惑,于是就有了这样一篇文章,试图把Python中一些隐晦的东西趴出来,希望对你有一定的帮助.我们先来看两段代码: 片段一: >>&g

python基础入门

以 #! 开头的称为组织行,这行告诉你的Linux/Unix系统当你执行你的程序的时候,它应该运行哪个解释器.例如:#!/usr/bin/python  以 # 开头的称为注释行. Python 源文件通常用.py 扩展名.当源文件被解释器加载或者显式地进行字节码编译的时候会被编译成字节码.由于调用解释器的方式不同,源文件会被编译成带有.pyc 或.pyo 扩展名的文件. 一.基本输入输出 print 语句调用str()函数显示对象,而交互式解释器则调用repr()函数来显示对象. 从用户那里得

python操作redis

[Redis] redis-cli 命令总结 Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以在Linux终端使用. 在编程时,比如使用Redis 的Java语言包,这些命令都有对应的方法.下面将Redis提供的命令做一总结. 官网命令列表:http://redis.io/commands (英文)   1.连接操作相关的命令 quit:关闭连接(connection) auth:简单密码认证 2.对value操作的命令 exists(key):

Python虚拟机的初始化概览

今天想跟下Python虚拟机的启动,看看以调试模式跑起python_d.exe是怎么一个过程. 1. d:\Python-2.7.2\Modules\python.c文件是main函数,直接调用Py_Main函数: 2. 在Py_Main函数中,初始化函数为Py_Initialize();,而后者直接调用Py_InitializeEx(1);函数: 3. 在Py_InitializeEx函数中,首先判断是否已经初始化过,如果有则返回,没有就改下标志,开始初始化:第一步也是十分关键的一步,是调用函

字符串转整数的问题

要点:要考虑到各种非法参数. 实现: /********************************** 字符串转整数 by Rowandjj 2014/7/15 ***********************************/ #include<iostream> #include<stdlib.h>//不加这个头文件在九度oj上会编译错误 using namespace std; int state = 0;//0代表串非法,1代表正常 long Str2Int(c

Python基础(10)--数字

本文的主题是 Python 中的数字.会详细介绍每一种数字类型,它们适用的各种运算符, 以及用于处理数字的内建函数.在文章的末尾, 简单介绍了几个标准库中用于处理数字的模块. 本文地址:http://www.cnblogs.com/archimedes/p/python-number.html,转载请注明源地址. 数字类型 数字提供了标量贮存和直接访问.它是不可更改类型,也就是说变更数字的值会生成新的对象.当然,这个过程无论对程序员还是对用户都是透明的,并不会影响软件的开发方式. Python

Python之位移操作符所带来的困惑

郑昀@玩聚SR 20091013 一.现象 Python 中执行左移操作(即将一个数的二进制位整体向左移若干位,移位后在低位补零,高位溢出部分舍弃): >>> 1000<<25结果是:33554432000L而在 C#.C++等语言中执行同样的左移操作,结果却迥然不同: Console.WriteLine(1000<<25); 结果是:-805306368   再举几个 Python 例子: >>> 1000L<<25 (注:L后缀代

Python 应用剖析工具介绍

[编者按]本文作者为来自 HumanGeo 的工程师 Davis,主要介绍了用于 Python 应用性能分析的几个工具.由国内 ITOM 管理平台 OneAPM 编译呈现. 在 HumanGeo,我们广泛使用 Python 进行编程,并且乐趣无穷.用 Python 写的程序不仅整洁美观,而且运行速度快得惊人.不论是私底下还是工作中,Python 都是笔者最爱的语言.然而,即便是 Python 这样美妙的语言,却也可能出现运行缓慢的情况.幸运的是,有许多不错的工具,可以帮助我们分析 Python

《Python 3程序开发指南(第2版•修订版)》——2.6 总结

2.6 总结 本章首先展示了Python的关键字列表,并描述了Python标识符的命名原则.由于Python对Unicode的支持,因此Python标识符不局限于来自小字符集(比如ASCII或Latin-1)的子集. 我们也描述了Python的int数据类型,该类型与大多数其他语言中的类似类型有所差别,因为其没有内在的大小限制.Python整数的大小取决于内存可以允许的最大数字,操纵由数百个数字组成的数字也是完全可行的.Python大多数基本类型都是固定的,但是实际上很少会有真正的影响,因为借助