关于前面出现的and
Topic source本次作业
#! /usr/bin/python
# -*- coding: utf-8 -*-
def is_palindrome(n):
a = str(n)
return a == a[::-1]
if __name__ == '__main__':
output = filter(is_palindrome, range(1, 1000))
print('1~1000:', list(output))
if list(filter(is_palindrome, range(1, 200))) == [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111, 121, 131, 141, 151, 161, 171, 181, 191]:
print('success')
else:
print('false')
- 1
caizishuo
下面出现的
and
我不是特别理解,查了一些资料,希望对大家有点帮助。这是资料来源:参考资料对于较为简单的:
x and y
如果x
是false,那么值就是x
,否则就是y
x or y
如果x
是false, 那么值就是y
, 否则就是x
而对于not,不同于and和or,它返回的是***布尔值***
not x
如果x
是false的话,那么值就是True
,否则就是False
。如果有多个
and
和or
,会怎么样呢?and
:如果存在则返回第一个falsy值,不然返回最后一个值。or
:如果存在则返回第一个truthy值,不然返回最后一个值。现在距离我们得出and和or表达式的结果,就差理解***falsy***和***truthy***的值到底是啥了。
事实上,被认为是truthy的值,就是其作为
if
和while
语句的判断式子,语句内代码能执行。现在,我们可以对上面的代码为何使用
and
开始进行理解了。可以尝试将代码修改为下面的去理解。显然,上面代码是报错的。但原本的代码则不会,这大概就是这里用
and
的用意了吧。