Your ''.join() expression is filtering, removing anything non-ASCII; you could use a conditional expression instead: return ''.join([i if ord(i) < 128 else ' ' for i in text]) This handles characters one by one and would still use one space per chara
解决:Python如何判断字符串中是否有中文 In [240]: s Out[240]: '你好aa' In [241]: for i in s: ...: if u'\u4e00' <= i <= u'\u9fff': ...: print("yes") ...: else: ...: print("no") yes yes no no
python 判断字符串中是否只有中文字符 学习了:https://segmentfault.com/q/1010000007898150 def is_all_zh(s): for c in s: if not ('\u4e00' <= c <= '\u9fa5'): return False return True