鱼C论坛

 找回密码
 立即注册
查看: 1651|回复: 3

[已解决]Python P24 杨辉三角的“三角形”输出问题

[复制链接]
发表于 2022-8-10 18:09:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 ytongxue 于 2022-8-10 18:13 编辑
  1. triangle = []
  2. for i in range(10):
  3.     triangle.append([])
  4.     for j in range(10):
  5.         triangle[i].append(0)
  6.    
  7. for i in range(10):
  8.     triangle[i][0] = 1
  9.     triangle[i][i] = 1
  10.    
  11. for i in range(2, 10):
  12.     for j in range(1, i):
  13.         triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]

  14. for i in range(10):
  15.     for k in range((10-i)//2):
  16.         print('\t', end='')
  17.     # 此处第一条内循环为添加空格
  18.     # 当变量i=0时,k在range(5)中迭代,打印出\t只有5个,为什么结果中输出杨辉三角第一行前面会有多个\t

  19.     for j in range(i+1):
  20.         if i % 2 == 1:
  21.             print("    ", end='')
  22.         print(triangle[i][j], end='\t')
  23.     print()
复制代码
最佳答案
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和空格并不能互换的,只是看起来是那般
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-10 18:27:05 | 显示全部楼层
本帖最后由 一点点儿 于 2022-8-10 18:42 编辑

我这里运行结果输出杨辉三角第一行是5个\t
IDLE中交互符 >>> 是要占位的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-11 10:13:57 | 显示全部楼层
一点点儿 发表于 2022-8-10 18:27
我这里运行结果输出杨辉三角第一行是5个\t
IDLE中交互符 >>> 是要占位的

明白了。

是我想岔了。

确实是5个\t。

问题出在我对比第一和第二次循环:

  1. for i in range(10):
  2.     for k in range((10-i)//2):
  3.         print('\t',end='')
  4.     for j in range(i+1):
  5.         if i % 2 == 1:
  6.     # 第一次循环 i = 0,第一行前面为5个'\t'
  7.     # 第二次循环 i = 1,第二行前面为4个'\t' + '    '
  8.     # 我理解的第二行4个'\t' + '    ',刚好就是5个'\t',输出应该跟第一行并排,结果没有并排说明第一行输出的不是5个'\t'
  9.             print("    ", end='')
  10.         print(triangle[i][j], end='\t')
  11.     print()
复制代码


所以问题应该是: '\t'不是四个空格,或者说'\t'长度上并不等于四个空格?!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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和空格并不能互换的,只是看起来是那般
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 13:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表