if (i + j) % 8 in [1, 5]:
Run Code Online (Sandbox Code Playgroud)
这行代码是什么意思,它将如何执行?
for i in range(8):
for j in range(16):
if (i + j) % 8 in [1, 5]:
print('/', end = '')
Run Code Online (Sandbox Code Playgroud)
它检查i+j模8是1还是5。
(i+j) 返回其总和(显然)
% 8返回模 8。例如:8 % 8 == 0, 9 % 8 == 1, 10 % 8 == 2etc
in [1, 5]检查(i + j) % 8结果是否可以在列表中找到[1, 5]-等于1还是等于5
这是有关模运算符的官方Python文档:
%(取模)运算符从第一个参数除以第二个参数得出余数。首先将数字参数转换为通用类型。右零参数引发ZeroDivisionError异常。参数可以是浮点数,例如3.14%0.7等于0.34(因为3.14等于4 * 0.7 + 0.34。)模运算符始终产生与第二个操作数具有相同符号的结果(或为零);结果的绝对值严格小于第二个操作数1的绝对值。
这是有关“ in”运算符的官方Python文档:
运营商正在测试中,而未进行成员资格测试。如果x是s的成员,则x in s的结果为True,否则为False。x not in s返回x in s的取反。所有内置序列和集合类型都支持此功能以及字典,为此,它们会测试字典是否具有给定的键。对于列表,元组,集合,frozenset,dict或collections.deque等容器类型,y中的表达式x等于any(x为e或y中的e为x == e)。
对于字符串和字节类型,当且仅当x是y的子字符串时,y中的x才为True。等效测试为y.find(x)!= -1。空字符串始终被认为是任何其他字符串的子字符串,因此“ abc”中的“”将返回True。
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |