gpt4 book ai didi

python - 整数乘以错误的数字

转载 作者:行者123 更新时间:2023-11-30 23:04:41 26 4
gpt4 key购买 nike

我试图将数组的某些值乘以 3,但是当我使用新值打印数组时,我发现这些数字实际上已乘以 2187,而不是 3。非常奇怪。

for digit in digits:
digits[0] = digits[0]*3
digits[2] = digits[2]*3
digits[4] = digits[4]*3
digits[6] = digits[6]*3

数组中的原始数字为[1,2,3,4,5,6,7]

相乘后​​应该是:

[3,2,9,4,15,6,21]

相反,我们得到[2187,2,6561,4,10935,6,15309]

最佳答案

你每次都在乘以它,因此数字很大!循环每次将值乘以 3

因此1将变成2187,即1*3*3*3*3*3*3*3

  • 要么一次性完成所有操作(删除 for 循环)

    >>> digits =  [1,2,3,4,5,6,7]
    >>> digits[0] = digits[0]*3
    >>> digits[2] = digits[2]*3
    >>> digits[4] = digits[4]*3
    >>> digits[6] = digits[6]*3
    >>> digits
    [3, 2, 9, 4, 15, 6, 21]
  • 或者在循环中使用条件

    >>> digits =  [1,2,3,4,5,6,7]
    >>> for i, v in enumerate(digits):
    ... if(i % 2 == 0):
    ... digits[i] = v * 3
    ...
    >>> digits
    [3, 2, 9, 4, 15, 6, 21]

    这里我使用了enumerate,它将返回索引和值的元组。

  • 或者您甚至可以使用步长为 2 的范围函数

    >>> digits =  [1,2,3,4,5,6,7]
    >>> for i in range(0, len(digits), 2):
    ... digits[i] = digits[i]*3
    ...
    >>> digits
    [3, 2, 9, 4, 15, 6, 21]

关于python - 整数乘以错误的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33584675/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com