分裂成一个if政治家

2024-04-23 20:08:22 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,如果我有一个范围,我想遍历它并将每个数字除以另一个数字,我可以在if语句中这样做吗。

a = range(20)
for i in a:
   if i / 3 == True:
      print i

Tags: intrueforifrange数字语句print
3条回答

在命令提示下:

>>> [i for i in range(20) if i%3 == 0]
>>> [0, 3, 6, 9, 12, 15, 18]

或者

>>> a = [i for i in range(20) if i%3 == 0]
>>> print a
[0, 3, 6, 9, 12, 15, 18]
>>>

这里的每个人都很好地解释了如何正确地做这件事。我只想解释你做错了什么。

if i / 3 == True

相当于:

if i / 3 == 1

因为True==1。所以你基本上是在检查我除以3等于1。你的代码将实际打印3 4 5。

我想你想做的是检查我是不是3的倍数。像这样:

if i % 3 == 0

你当然可以用if语句来做。或者可以将list comprehension与if一起使用

[x for x in range(20) if x % 3 == 0]

python documentation到那些反对投票的人:

布尔值是两个常量对象False和True。它们用于表示真值(尽管其他值也可以被视为假值或真值)。在数字上下文中(例如用作算术运算符的参数时),它们的行为分别类似于整数0和1。

是的,但是。

拜托,拜托,拜托。不要说if some expression == True。这是多余的,会让很多人怀疑你在想什么。

更重要的是。

i/3是商。

i%3是余数。如果我是3的倍数,i%3 == 0

相关问题 更多 >