我需要知道为什么这是这些python条件的输出

我需要知道为什么这是这些python条件的输出,python,list,list-comprehension,Python,List,List Comprehension,为什么1,64,343是答案?这相当于代码: numbers=[i**3 for i in range (10) if i**3%3==1] print(numbers) #gets 1,64,343 您正在检查1到10之间的数字的立方体除以3所得的余数是否等于1。如果是,则将其添加到列表并打印。首先i位于[0,1,2,3,4,5,6,7,8,9] 然后如果(i*i*i)rem 3等于1 它选择(i*i*i) 对于[1,4,7]:(1*1*1)%3==1,(4*4*4)%3==1和(7*7*7

为什么
1,64,343
是答案?

这相当于代码:

numbers=[i**3 for i in range (10) if i**3%3==1]
print(numbers)
#gets 1,64,343

您正在检查1到10之间的数字的立方体除以3所得的余数是否等于1。如果是,则将其添加到列表并打印。

首先
i
位于
[0,1,2,3,4,5,6,7,8,9]

然后如果
(i*i*i)rem 3
等于
1

它选择
(i*i*i)

对于[1,4,7]:
(1*1*1)%3==1
(4*4*4)%3==1
(7*7*7)%3==1

1*1*1=1和1/3=0:余数=1
4*4*4=64和64/3=21:余数=1
7*7*7=343和343/3=114:余数=1

因此,输出为:
[1*1*1,4*4*4,7*7*7]也就是[1,64,343]

您的代码:

for i in range(10):
    if (i*i*i) % 3 == 1:
         numbers.append(i*i*i)
print (numbers)
该代码:

numbers=[i**3 for i in range (10) if i**3%3==1]
print(numbers)
输出此项:

numbers=[]
for i in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:
    if (i*i*i) % 3 == 1:
         numbers.append(i*i*i)
print(numbers)
  • **
    例:
    2**3
    =
    2*2*2
    #这意味着2次方3=8
  • %
    例:
    5%2
    =
    1
    #符号表示模块,即5除以2后的剩余值,即为1。
  • 按照您的方式,为每个对象编写的正确路径是

    [1, 64, 343]
    
    因此,结果是:

    for i in range(0,10):
        value = i**3
        if(value%3 == 1):
            print("the value is {0}".format(value))
    
    for循环内部的位解释
    • 首先获取
      i=0
      ,此时
      value=0*0*0=0
      ,然后
      value%3=0
    • 然后得到
      i=1
      ,此时
      value=1*1*1=1
      ,“value%3”表示
      1%3=1
      ,因此答案i
      1

    。。。。类似于此,请参见其他条件。希望这对您有所帮助。

    您知道
    **
    的作用吗?你知道
    %
    做什么吗?如果没有,你看过吗?**3意味着你必须像3x3x3一样将同一个数字乘以3倍,因为1、64和343是从0到9的数字中唯一一个1大于3的立方体。布伦巴恩。。。这就是我正在做的。我不明白为什么最后一个的答案是1,64和343(如果i2%2==0,那么i2代表范围(10)内的I)打印(evens)#所以结果是0,4,16,36,64赔率=[i3代表范围(10)内的I,如果i3%3==0]打印(赔率)#所以这个得到0,2726729#0x0x0=0#3x3=27#6x6=216ŧ如果I9=10%,那么这个得到范围内的数字打印(I641)353x3=1)我想这就是我要找的答案。谢谢。我过一会儿再回到你的例子。他在名单上加了iii,而我在名单上加了I。我现在已经改变了。
    the value is 1
    the value is 64
    the value is 343