我粘貼你的代碼在一個文件中,保存它,然後在Python的外殼打開一看:
In [10]: f=open('test2.py')
In [11]: content=f.read()
In [12]: content
Out[12]: '#!/usr/bin/env python\n# coding: utf-8\n\nimport math,sys,time;i=0\nwhile 1: sys.stdout.write("\\r"+\':(_\xe2\x80\x8b_)\'[:3+int(round(math.sin(\xe2\x80\x8bi)))]+\'n\'+\':(__)\'[3+int(ro\xe2\x80\x8bund(math.sin(i))):]);sys.s\xe2\x80\x8btdout.flush();time.sleep(.\xe2\x80\x8b15);i+=0.5*math.pi\n'
通知的'\xe2\x80\x8b'
字節在這裏和那裏灑。這些都是ZERO WIDTH SPACE
字符UTF-8編碼:
In [24]: print(repr(u'\N{ZERO WIDTH SPACE}'.encode('utf-8')))
'\xe2\x80\x8b'
這就是爲什麼你的代碼引起SyntaxErrors。
只需重新鍵入(或複製下面的代碼),它會在Python3運行:
import math, sys, time; i=0
while 1: sys.stdout.write('\r'+':(__)'[:3+int(round(math.sin(i)))]+'n'+':(__)'[3+int(round(math.sin(i))):]); sys.stdout.flush(); time.sleep(0.15); i+=0.5*math.pi
這是代碼高爾夫挑戰? – RoundTower
@RoundTower是啊 –
我認爲你只是有編碼問題(非ASCII字符) – wim