我需要知道为什么这是这些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%3”表示value=1*1*1=1
,因此答案i1%3=1
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