ytongxue 发表于 2022-8-10 18:09:14

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:27:05

本帖最后由 一点点儿 于 2022-8-10 18:42 编辑

我这里运行结果输出杨辉三角第一行是5个\t
IDLE中交互符 >>> 是要占位的

ytongxue 发表于 2022-8-11 10:13:57

一点点儿 发表于 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:31:27

本帖最后由 Py与C。。。 于 2022-8-11 10:34 编辑

ytongxue 发表于 2022-8-11 10:13
明白了。

是我想岔了。


\t到底跳过几个长度是没有规定的,也是没有标准的,每个设备都有自己的标准,比如你打开notepad,会发现他是8个长度,实际上是一个字符,并不等同于几个空格
idle里也有对tab长度的自由调整。
但是Python默认输出为4个长度,tab和空格并不能互换的,只是看起来是那般
页: [1]
查看完整版本: Python P24 杨辉三角的“三角形”输出问题