杨辉三角形输出end = '\t'是什么意思
0.end = '\t'是什么意思?1.为什么不能用end='对应的空格'替换end = '\t'?请各位前辈帮忙
# 初始化杨辉三角形
# 创建一个10*10的二维列表,并将所有的元素初始化为0
triangle = []
for i in range(10):
triangle.append([])
for j in range(10):
triangle.append(0)
# 计算杨辉三角形
# 根据观察,我们知道杨辉三角形左右两边的元素均为1
for i in range(10):
triangle = 1
triangle = 1
# 第i行j列的值 = 第(i-1)行(j-1)列的值 + 第(i-1)行(j)列的值
for i in range(2, 10):
for j in range(1, i):
triangle = triangle + triangle
# 输出杨辉三角形
for i in range(10):
# 因为是三角形,所以i越小,前边需要填充的TAB越多
for k in range((10-i)//2):
print('\t', end='')
for j in range(i+1):
# 要形成“隔行错开”的效果,所以我们在偶数行加4个空格
if i % 2 == 1:
print(" ", end='')
# 为何要使用TAB而非空格,大家可以将下面的end='\t'改成对应的空格数即可知晓
print(triangle, end='\t')
print() \t 是水平制表符,它会根据终端的宽度来自动调整(不是调整制表符的宽度,
而是不够一个制表符的宽度会换行,因为制表符是一个整体),
而空格会按固定宽度输出(比如输出四个空格,
第一行的宽度只够放3个,那它还会在这一行放三个,
然后在第二行放一个,也就是空格会拆开放,而不像制表符一样当成一个整体) isdkz 发表于 2022-2-28 14:32
\t 是水平制表符,它会根据终端的宽度来自动调整(不是调整制表符的宽度,
而是不够一个制表符的宽度会 ...
感谢您的回答,我还有些疑问:
0.什么叫终端?
1.什么叫制表符?
2.制表符是一个整体,会自动根据终端宽度调整,不够一个会换行,
就比如一个制表符宽度是四,第一行不够那么换到下一行,即便是一个整体,
那么表达效果和空格有什么不同呢?
抱歉,前辈,我实在理解能力不足,可否给出代码更清晰直观理解,辛苦您了。 本帖最后由 isdkz 于 2022-3-4 21:51 编辑
李二蛋 发表于 2022-2-28 20:58
感谢您的回答,我还有些疑问:
0.什么叫终端?
1.什么叫制表符?
实在不好意思,我刚刚才看到你的回复。
第一个问题:终端(terminal)是命令行窗口(cmd),终端通常是Linux系统的说法。
就是那个运行命令的窗口
第二个问题:水平制表符就是一个tab键输出的符号,用来对文本做间隔的,
有间隔的格式是表,所以称它为制表符,\t 中的 t 就是 tab 的意思
第三个问题:制表符虽然是默认4个空格(在python中可以修改\t的宽度)的宽度,
但它不等同于 4 个空格,4 个空格是 4 个字符,而 \t 键是 1 个字符,
因为 \t 是一个字符,所以当终端的剩余宽度不够 4 个(空格的宽度)时,
它会 4 个(空格的宽度)都在第二行输出,
而 空格 是一个字符,当终端的剩余宽度不够 4 个(空格的宽度)时,
比如 这一行只剩下 3个(空格的宽度),它会在这一行输出3个空格,
剩下的那个会在第二行输出, \t 哪怕还能输出 3 个空格的宽度,它也不会拆开,
而是整体(4 个空格的宽度)在第二行输出,
制表符还可以自动调整间隔,它总能保证两行之间的列是对齐的,
而空格不懂变通,它总要输出四个空格
你执行这个代码就明白了:
# 使用 \t 制表符
print("使用制表符")
print('fdfdf\tfdfdf')
print('f\tfdfdfdf')
print('fdfer\tfvdgd')
print('fdfdfdf\tfdfdf')
print('-' * 50)
# 使用 4 个空格替代制表符
print("使用4个空格替代制表符")
print('fdfdf fdfdf')
print('f fdfdfdf')
print('fdfer fvdgd')
print('fdfdfdf fdfdf')
执行结果:
isdkz 发表于 2022-3-4 14:55
实在不好意思,我刚刚才看到你的回复。
第一个问题:终端(terminal)是命令行窗口(cmd),终端通 ...
太太太太太感谢您了,两行之间的列保证对齐可太神奇了,下一行的\t是自动识别上一行的\t才能和上一行对齐么?如下代码,默认一个tab是8么
>>> print("q qw")
q qw
>>> print("qq qw")
qq qw
>>> print("qqqqq qw")
qqqqq qw
>>> print("qqqqqqqq qw")
qqqqqqqq qw 李二蛋 发表于 2022-3-4 23:12
太太太太太感谢您了,两行之间的列保证对齐可太神奇了,下一行的\t是自动识别上一行的\t才能和上一行对齐 ...
对的,\t 水平制表符会跟上一行联动的,默认情况下,一个 \t 是占了 4 个宽度的 isdkz 发表于 2022-3-4 23:20
对的,\t 水平制表符会跟上一行联动的,默认情况下,一个 \t 是占了 4 个宽度的
感谢您,希望继续交流
页:
[1]