python - 在 Python for 循环中更改范围会中断代码

标签 python python-2.7 range

<分区>

number=26
for n in range(101):
    if n is number:
        print(n, "This is the magic number")
        break
    else:
        print(n)

上面的代码运行完美,但是当我改变变量和范围时,如下所示,它不能正常工作。

number=260
for n in range(300):
    if n is number:
        print(n, "This is the magic number")
        break
    else:
        print(n)

最佳答案

一般来说,x == y 为 True 并不保证 x is y 也为 True。您的第一个代码利用了 CPython 中的特定优化,其中预先分配了小整数(-5 到 257 之间),因此对此类整数的任何使用总是使用相同的对象。

一般来说,你永远不应该假设文字会引用同一个对象。解释器可以为每次使用文字自由分配一个新对象。

关于python - 在 Python for 循环中更改范围会中断代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39083587/

相关文章:

Django View 有一个意外的关键字参数

range - 在 Cassandra 中加载 range_slices 时出现问题

python - 在 Python 中使用矩阵求解线性方程

python - 使用 beautifulsoup 在表格的第二列中打印文本

python - 查看一个素筛程序,但不确定为什么它不断出现有关切片长度的错误

excel - 按范围内的单元格顺序解决错误

c++ - 在 C/C++ 中定义一个数字范围

python - 如何改进在 Python 中移动所有不包含特定日期的文件?

python - 如何使用向量 "or"DataFrame 中的每一列?

python - 升级到适用于Python版本2.7.12的pip 10.0.0后的"ImportError: cannot import name main"-仅安装了一个版本的Python