Python在满足某些条件时添加到列表中
有人能解释为什么这不起作用吗 我认为应该根据Python在满足某些条件时添加到列表中,python,Python,有人能解释为什么这不起作用吗 我认为应该根据number最初的值为div3num和div5num赋值。然后它应该命中if语句的哪一部分返回整数。例如1。1/3和1/5应该直接跳转到else部分,因此不会添加到列表中。但是三个人。3/3=1,因此应在列表中添加3。在我运行代码时,它会输入0-9之间的所有值 number = 0 divisnumbers = []; while len(divisnumbers) < 10: div3num = number / 3; div
number
最初的值为div3num和div5num赋值。然后它应该命中if语句的哪一部分返回整数。例如1。1/3和1/5应该直接跳转到else部分,因此不会添加到列表中。但是三个人。3/3=1,因此应在列表中添加3。在我运行代码时,它会输入0-9之间的所有值
number = 0
divisnumbers = [];
while len(divisnumbers) < 10:
div3num = number / 3;
div5num = number / 5;
if type(div3num) is int:
divisnumbers.append(number)
number += 1
elif type(div5num) is int:
divisnumbers.append(number)
number += 1
else:
number += 1
print divisnumbers
number=0
除数=[];
而len(除数)<10:
div3num=数字/3;
div5num=数字/5;
如果类型(div3num)为int:
除数。追加(数字)
数字+=1
elif类型(div5num)为int:
除数。追加(数字)
数字+=1
其他:
数字+=1
打印数字
因为在python2中,int类型变量除以int类型变量总是产生int(在python3中是float)
您可以使用模:
if number % 5 == 0:
divisnumbers.append(number)
不要通过除法和检查类型来测试可分性(这永远不起作用;除法总是根据操作数的类型和Python版本生成一个类型,而不依赖于操作数的值)
使用余数/mod运算符并验证整数除法后剩余的余数为0:
if number % 3 == 0:
...
elif number % 5 == 0:
...
...
作为旁注,您可以将number+=1
完全移出if/elif/else
链,并通过将整个链替换为以下内容来简化代码:
if number % 3 == 0 or number % 5 == 0:
divisnumbers.append(number)
number += 1
请注意,number
现在是无条件递增的(因为所有案例都是递增的,所以您可以将增量移出),您只有一个append
调用(因为这两种情况下都是相同的append
),等等。如果number/3是int而不是number%3==0,我不明白为什么要使用它