加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 列表理解和%函数

发布时间:2020-12-20 11:27:57 所属栏目:Python 来源:网络整理
导读:当我使用以下代码时 [i for i in range(-9,10,2) if not i%3)] 它给 (-9,-3,3,9) 为什么会给出答案? ‘i%3’是什么意思? 谢谢. 解决方法 在您的示例中,%是 modulo operator.a%b返回a / b的余数. 所以在你的例子中,循环经历: [-9,-7,-5,-1,1,5,7,9] -9
当我使用以下代码时

[i for i in range(-9,10,2) if not i%3)]

它给

> (-9,-3,3,9)

为什么会给出答案? ‘i%3’是什么意思?

谢谢.

解决方法

在您的示例中,%是 modulo operator.a%b返回a / b的余数.

所以在你的例子中,循环经历:

[-9,-7,-5,-1,1,5,7,9]

-9%3等于0,因为-9可被3整除,因此没有余数.但是,5%3返回2,因为3进入5次,5 – 3 == 2.

不是我%3有点棘手.首先,评估i%3.如果结果大于0,则认为是True. not是一个布尔运算符,它得到布尔值的负数.所以不是True是假的(而不是False是真的).

0被认为是假,所以如果i%3 == 0,那么我将被包含在新列表中.

现在,print(“%s%s”,(“hello”,“world”))打印“hello world”的原因是因为它不是模运算符.这是string formatting.文档将比我更好地解释它:p.只是使用了%.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读