Python如何使用while循环打印无空格连续数字至用户输入值
问题根因
Python内置print()函数默认在每次输出内容末尾追加换行符\n,循环中每次调用print(num)都会触发换行,最终导致每个数字单独占一行。另外原代码存在缩进语法错误:if __name__ == '__main__':下属的代码块没有做4空格缩进,直接运行会报错。
修复代码
通过给print()传入end=''参数,将默认追加的换行符替换为空字符串,即可实现无空格同行输出,同时修正缩进问题:
if __name__ == '__main__': n = int(input()) num = 1 while num <= n: print(num, end='') num = num + 1 # 可选:输出完所有数字后补一个换行,避免命令行提示符和结果挤在同一行 print()
原理说明
print()函数的end参数用于控制单次输出末尾追加的内容,默认值为'\n'(换行符)。将其设置为空字符串''后,每次输出数字后不会追加任何额外字符,后续输出会直接拼接在当前行已有内容后面,刚好符合题目要求的无空格连续同行输出效果。
最后单独调用无参数的print()是体验优化写法,不影响数字输出的正确性,不需要可以删掉。
内容的提问来源于stack exchange,提问作者Hedra ehab
相关产品推荐
相关产品推荐

