我想知道我做錯了什么。我正在撰寫一個 python 程式,它將我的“笑話制作”編程語言轉換為 python。我總是遇到這種奇怪的混亂。這是我的代碼
#input file
inputfile = input("Filename > ")
print("""
Available Languages:
Python
""")
langsel = input("Select > ")
fin = open(f"{inputfile}", "rt")
#output file to write the result to
fout = open(f"{inputfile}.py", "wt")
#for each line in the input file
if langsel == "Python":
for line in fin:
fout.write(line.replace('printiln(', 'print('))
fout.write(line.replace('rinput(', 'input('))
fout.write(line.replace('printiln("', 'print("'))
fout.write(line.replace("printiln('", "print('"))
else:
print("Invalid Language")
#close input and output files
fin.close()
fout.close()
我用這個檔案作為測驗:
printiln("Are you sure? ")
rinput("Yes or No? ")
Python在運行程式時會放出這個檔案:
print("Are you sure? ")
printiln("Are you sure? ")
print("Are you sure? ")
printiln("Are you sure? ")
rinput("Yes or No? ")
input("Yes or No? ")
rinput("Yes or No? ")
rinput("Yes or No? ")
我希望我的輸出是:
print("Are you sure? ")
input("Yes or No? ")
uj5u.com熱心網友回復:
每個輸入行有四個輸出行,因為您的for塊中有四個寫入。
for line in fin:
fout.write(line.replace('printiln(', 'print('))
fout.write(line.replace('rinput(', 'input('))
fout.write(line.replace('printiln("', 'print("'))
fout.write(line.replace("printiln('", "print('"))
確保為每個輸入行只寫一行。例如,您可以這樣做。
for line in fin:
line = line.replace('printiln(', 'print(')
line = line.replace('rinput(', 'input(')
fout.write(line) # single write to output file
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/394627.html
上一篇:嘗試在使用命令pipinstall-rrequirements.txt后在新創建的環境中安裝庫并出現錯誤
下一篇:如果X=1,則添加for回圈
