【问题标题】:for loop in python with decimal number as step [duplicate]python中的for循环,以十进制数为步骤[重复]
【发布时间】:2018-08-10 04:46:20
【问题描述】:

我想创建一个如下所示的 for 循环:

for x in range(0, 1, 0.1):
    print(x)

显然它会抛出这个错误:

Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 对于范围内的 i (0, 1, 0.1): TypeError: 'float' 对象不能被解释为整数

那么在 python 3.6 中是否有一种方法可以创建一个带有浮点的 for 循环?

【问题讨论】:

    标签: python for-loop python-3.6


    【解决方案1】:

    使用numpy的范围代替范围:

    import numpy as np
    for x in np.arange(0, 1, 0.1):
        print(x)
    

    【讨论】:

    • 请记住,您可能无法得到您所期望的数字,因为0.1 不能完全表示为有限二进制分数。我更喜欢 Simon 使用整数和除以 10 的方法;它不太容易出现累积的舍入错误。
    【解决方案2】:

    为什么不将整数除以浮点数?

    for x in range(0, 10, 1):
        print(x/10)
    

    这里的取值范围是 0 到 10,然后将输出除以 10 得到一个浮点数。

    【讨论】:

    • 是的。我有点应该想到这一点,我猜它过去在 python2.x 中的经验让我害怕除整数
    猜你喜欢
    • 2014-02-19
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2016-02-22
    相关资源
    最近更新 更多