我正在尝试理解代码:
x = 1
size = 16
for i in range(size):
print((' ' * (size - i)) + bin(x)[2:]
.replace('0', ' ').replace('1', ' *'))
x ^= x << 1
replace
之前的点如何应用于上面的print语句?
为什么会引发错误?
for i in range(3):
print(i)
.replace('1','ONE')
第一个例子打印出来:
*
* *
* *
* * * *
* *
* * * *
* * * *
* * * * * * * *
* *
* * * *
* * * *
* * * * * * * *
* * * *
* * * * * * * *
* * * * * * * *
* * * * * * * * * * * * * * * *
我期待第二个会打印出来:
0
ONE
2
答案 0 :(得分:4)
您的代码:
Other dialect flags
通过引入一些变量更清楚:
x = 1
size = 16
for i in range(size):
print((' ' * (size - i)) + bin(x)[2:]
.replace('0', ' ').replace('1', ' *'))
x ^= x << 1
行开头的点不是错误的原因是你有一个未闭合的括号,Python正在寻找下一行的剩余部分。
答案 1 :(得分:-2)
print方法不返回值,因此您无法将replace方法链接到该方法上。相反,你需要使用一个字符串。
因此正确的代码是
for i in range(3):
print(str(i).replace('1','ONE'))