各位大大好,我是今天剛開始學python的小菜雞,我今天剛看完一部教學,想說自己寫個簡易計算機來測試看看,想要順便練習file的用法,於是就想用txt檔做計算,分別抓數字回來,但是在計算判斷的時候,不管怎樣他都偵測不到我的運算符號,我在文檔中打+,我用print來自己看有沒有抓到符號,是有抓到的,可是在if裡面卻是沒有偵測到直接跑到最後的否則了,小弟我嘗試許久都沒有辦法就來這邊求救了(剛開始學請不要鞭的太用力)
#抓取題目
with open("calculator.txt",mode="r",encoding="utf-8") as file:
#數字一
num1 = float(file.readline())
#運算符號
cal = file.readline()
#數字二
num2 = float(file.readline())
#運算
Ans = None
print(cal)
if cal=="+":
Answer = (num1 + num2)
elif cal=="-":
Answer = (num1 - num2)
elif cal=="*":
Answer = (num1 * num2)
elif cal=="x":
Answer = (num1 * num2)
elif cal=="/":
Answer = (num1 / num2)
else:
Answer= "我還沒寫這個算法"
print(str(Answer))
#將答案覆寫回去
with open("calculator.txt",mode="w",encoding="utf-8") as file:
file.write(str(num1))
file.write("\n"+cal)
file.write(str(num2))
file.write("\n=")
file.write("\n"+str(Answer))
前面縮排不要長短不一,從你中間if ... elif ....看到的
最後一個else 的段落一個tab,上排的elif卻是兩個tab
而且,搜尋文字,要用in不用==,從檔案裡讀出來的,不會只有看的見的部份,看不見的如tab、斷行\n\r..都會造成==不中
if "+" in calc:
answer.............
原
cal = file.readline()
改成
cal = file.readline().rstrip('\n')
我用print來自己看有沒有抓到符號,是有抓到的
如果你把 num1,num2 也 print 出來
就會發現 cal 多了一個換列
以致於不符合後面的所有 if 的判斷