Python中print('\r')或print(' ')实现指定数字输出的原理疑问
核心原理说明
- Python的
print()函数默认自带end='\n'参数,也就是每次执行完打印操作后,会自动在输出内容末尾追加一个换行符\n。 - 你内层循环写的
print(f,end=' ')手动把end改成了空格,所以打印每个数字后只会加空格,不会换行,整行的数字都会输出在同一行。如果删掉循环末尾的print语句,整个程序运行全程没有输出过换行符,所有内容自然会挤在同一行。
为什么
print('\r')和print(' ')都能得到正确效果 你写的print('\r')或者print(' '),本质上起作用的不是你传入的\r或者空格,而是print()默认追加的\n换行符:
\r是回车符,作用只是把光标移动到当前行的行首,不会触发换行- 不管你给
print()传什么内容,只要不改end参数,执行完都会自动加\n完成换行,你传入的\r或者空格属于额外输出的无意义字符,对展示效果影响极小,所以肉眼看不出区别。
代码优化建议
- 循环末尾不需要传任何内容,直接写
print()即可,只会输出换行符,不会额外生成无效字符,逻辑更清晰。 - 你当前的代码每行末尾会多一个多余的空格(最后一个数字打印完也会追加
end=' '的空格),如果要消除这个冗余,可以用更简洁的写法:
a = int(input()) for num in range(1, a+1): print(' '.join([str(num)] * (a - num + 1)))
内容的提问来源于stack exchange,提问作者Singularity
相关产品推荐
相关产品推荐

