Python语法,方法名称前的点
我正在努力理解代码:Python语法,方法名称前的点,python,Python,我正在努力理解代码: x = 1 size = 16 for i in range(size): print((' ' * (size - i)) + bin(x)[2:] .replace('0', ' ').replace('1', ' *')) x ^= x << 1 第一个示例打印了以下内容: * * * * * *
x = 1
size = 16
for i in range(size):
print((' ' * (size - i)) + bin(x)[2:]
.replace('0', ' ').replace('1', ' *'))
x ^= x << 1
第一个示例打印了以下内容:
*
* *
* *
* * * *
* *
* * * *
* * * *
* * * * * * * *
* *
* * * *
* * * *
* * * * * * * *
* * * *
* * * * * * * *
* * * * * * * *
* * * * * * * * * * * * * * * *
我原以为第二个会打印这个:
0
ONE
2
您的代码:
x = 1
size = 16
for i in range(size):
print((' ' * (size - i)) + bin(x)[2:]
.replace('0', ' ').replace('1', ' *'))
x ^= x << 1
通过引入一些变量更清楚:
x = 1
size = 16
for i in range(size):
spaces = (' ' * (size - i))
binary = bin(x)[2:]
print(spaces + binary
.replace('0', ' ').replace('1', ' *'))
x ^= x << 1
行开头的点不是错误的原因是您有一个未闭合的括号,Python正在下一行查找其余部分。计算括号。.replace仍在打印中。请正确粘贴代码。在第一个示例中,replace应用于打印中的字符串,而第二个示例无效。这就是为什么将布局元素用作语法分隔符是个坏主意。
x = 1
size = 16
for i in range(size):
spaces = (' ' * (size - i))
binary = bin(x)[2:]
print(spaces + binary
.replace('0', ' ').replace('1', ' *'))
x ^= x << 1