Python循环中如何统一用.join()/.replace()简化print输出?
如何在Python循环层面统一实现print无空格拼接输出?
问题场景
现有一段Python循环代码,循环内的print语句输出字符串与数字时,默认会在两者之间添加空格。希望无需逐个修改print语句(比如不用.join()或.replace()),而是在循环层面统一处理,让输出的字符串和数字直接拼接在一起。
输入代码:
for a in range(1, 10): print("Squirtle",a) print("Bulbasaur",a) print("Charmander",a)
当前输出:
Squirtle 1 Bulbasaur 1 Charmander 1 Squirtle 2 etc. etc. etc.
期望输出:
Squirtle1 Bulbasaur1 Charmander1 Squirtle2
解决方案
可以通过重定义print函数的默认分隔符来实现,不用修改循环内的任何print语句:
# 先保存原始print函数 original_print = print # 重定义print,默认sep设为空字符串 def print(*args, sep='', **kwargs): original_print(*args, sep=sep, **kwargs) # 原循环代码完全不变 for a in range(1, 10): print("Squirtle",a) print("Bulbasaur",a) print("Charmander",a)
原理说明
Python内置的print函数默认使用sep=' '作为多个参数之间的分隔符,所以当你传入字符串和数字两个参数时,会自动用空格隔开。重定义后把sep的默认值改成空字符串,后续所有print调用都会默认使用空分隔,从而直接拼接参数内容。
内容的提问来源于stack exchange,提问作者WickedWebby
相关产品推荐
相关产品推荐

