如何将Python 2字符逐个输出代码改写为Python 3?
解决Python 2到Python 3的字符逐个输出问题
嘿,这个问题我熟!咱们一步步来拆解和解决:
首先,先理清楚两个核心差异点:
- 你原来的Python 2代码里,
"WELCOME TO EARTH!".center(35)会给字符串两边补空格,让总长度变成35——但你期望的输出是W E L C O M E T O E A R T H!,这里没有那些补位的空格,所以如果你不需要居中补空格的话,其实可以去掉.center(35)哦。 - Python 3的
print是个函数,和Python 2的print语句行为完全不一样:默认情况下,每次调用print()都会在结尾加换行符(end='\n'),所以你用print(ch,)的时候,每个字符会单独占一行,还带个空格,这显然不是你要的效果。
方法1:修改print的end参数
如果你还是想用循环逐个输出,只需要把end参数设置为空格,这样每次输出字符后只会加空格,不会换行:
# 不需要center补位空格的版本 for ch in "WELCOME TO EARTH!": print(ch, end=' ')
或者如果你确实需要处理居中后的字符串:
for ch in "WELCOME TO EARTH!".center(35): print(ch, end=' ')
不过这种方法最后会多一个末尾空格,如果在意的话,可以在循环结束后调用print()来换行,或者提前把字符收集到列表再处理。
方法2:更优雅的join方式
Python里处理这种字符分隔输出,用str.join()会更简洁高效,一行就能搞定,还不会有多余的末尾空格:
# 直接输出原字符串的字符分隔形式 print(' '.join("WELCOME TO EARTH!"))
如果要处理居中后的字符串,同样适用:
print(' '.join("WELCOME TO EARTH!".center(35)))
内容的提问来源于stack exchange,提问作者Crash Bandicoot
相关产品推荐
相关产品推荐

