Python P24 杨辉三角的“三角形”输出问题
本帖最后由 ytongxue 于 2022-8-10 18:13 编辑triangle = []
for i in range(10):
triangle.append([])
for j in range(10):
triangle.append(0)
for i in range(10):
triangle = 1
triangle = 1
for i in range(2, 10):
for j in range(1, i):
triangle = triangle + triangle
for i in range(10):
for k in range((10-i)//2):
print('\t', end='')
# 此处第一条内循环为添加空格
# 当变量i=0时,k在range(5)中迭代,打印出\t只有5个,为什么结果中输出杨辉三角第一行前面会有多个\t
for j in range(i+1):
if i % 2 == 1:
print(" ", end='')
print(triangle, end='\t')
print() 本帖最后由 一点点儿 于 2022-8-10 18:42 编辑
我这里运行结果输出杨辉三角第一行是5个\t
IDLE中交互符 >>> 是要占位的
一点点儿 发表于 2022-8-10 18:27
我这里运行结果输出杨辉三角第一行是5个\t
IDLE中交互符 >>> 是要占位的
明白了。
是我想岔了。
确实是5个\t。
问题出在我对比第一和第二次循环:
for i in range(10):
for k in range((10-i)//2):
print('\t',end='')
for j in range(i+1):
if i % 2 == 1:
# 第一次循环 i = 0,第一行前面为5个'\t'
# 第二次循环 i = 1,第二行前面为4个'\t' + ' '
# 我理解的第二行4个'\t' + ' ',刚好就是5个'\t',输出应该跟第一行并排,结果没有并排说明第一行输出的不是5个'\t'
print(" ", end='')
print(triangle, end='\t')
print()
所以问题应该是: '\t'不是四个空格,或者说'\t'长度上并不等于四个空格?!
本帖最后由 Py与C。。。 于 2022-8-11 10:34 编辑
ytongxue 发表于 2022-8-11 10:13
明白了。
是我想岔了。
\t到底跳过几个长度是没有规定的,也是没有标准的,每个设备都有自己的标准,比如你打开notepad,会发现他是8个长度,实际上是一个字符,并不等同于几个空格
idle里也有对tab长度的自由调整。
但是Python默认输出为4个长度,tab和空格并不能互换的,只是看起来是那般
页:
[1]