我遇到了Python的問題(對不起,我的個人感受之前..:P)。生成python文件
我有一個txt文件,它包含一個自定義語言,我必須將它翻譯成工作的python代碼。
輸入:
import sys
n = int(sys.argv[1]) ;;print "Beginning of the program!"
LOOP i in range(1,n) {print "The number:";;print i}
BRANCH n < 5 {print n ;;print "less than 5"}
的通緝輸出看上去完全是這樣的:
import sys
n = int(sys.argv[1])
print "Beginning of the program!"
for i in range(1,n) :
print "The number:"
print i
if n < 5 :
print n
print "less than 5"
輸入文件的名稱從參數讀取。 out文件是out.py。如果參數錯誤,則會顯示錯誤消息。 ;;;意味着一條新線。
當我試圖做到這一點,我做了一個數組,我讀了所有的行,按「」分割。然後,我想從我不需要的標記中剝離它。我做了2個循環,一個用於行,一個用於單詞。於是我開始替換這些東西。一切都很順利,直到達到標記。它發現它,但它不能取代或剝離它。我不知道該怎麼做。
我的代碼(這是凌亂的,我沒有在時刻,文件寫入):
f = open('test.txt', 'r')
#g = open('out.py', 'w')
allWords = map(lambda l: l.split(" "), f.readlines())
for i in range(len(allWords)):
vanfor = -1
vanif = -1
for j in range(len(allWords[i])):
a=allWords[i][j]
a=a.replace(";;","\n")
a=a.replace("CIKLUS","for")
a=a.replace("ELAGAZAS","if")
if a == "for":
allWords[i][j+3] = str(allWords[i][j+3])+" :\n"
if a == "if":
allWords[i][j+3] = str(allWords[i][j+3])+" :\n"
zarojel=a.find('}')
if zarojel>-1:
a=a.rstrip('}')
a=a.replace("}","")
a=a.replace("{","")
if vanfor == -1:
vanfor=a.find("for")
if vanif == -1:
vanif=a.find("if")
if (vanfor > -1) or (vanif > -1):
a=a.replace("print"," print")
if j != (len(allWords[i]))-1:
allWords[i][j]=a+" "
print allWords[i][j],
有人能幫助我,好嗎? 在此先感謝!
1.您還沒有發佈您的Python代碼,除了您想要的輸出示例。 2.你想責怪Python,但向那些欣賞Python的人尋求幫助?不,Python和它的圖書館對這個字符沒有特別的問題 - 你做錯了。 4.這顯然是功課;你應該添加「作業」標籤到你的問題。 – 2010-05-31 17:26:59
當我上大學時,我的算法教授有一個嚴格的政策:如果你來到他的辦公室尋求幫助,而沒有你已經嘗試過的例子,我們會告訴學生走出去。以同樣的方式:走出去。 – 2010-05-31 17:30:10