2016-09-27 76 views
-1

我做了一個文件叫helloworld.simon。 在那裏,我已經寫了:Python如果變量變量

Public class helloworld { 
main = (main.method()); 
main { 
    console.print("Hello World"); 
    } 

而且我寫了這個代碼:

Public = ("Public") 
Private = ("Private") 
code = open('helloworld.simon' , 'r') 
print(code.read()) 
if Public in code: 
    print("Pub") 
else: 
    print("J") 

輸出是:

Public class helloworld { 
main = (main.method()); 
main { 
    console.print("Hello World"); 
    } 

J 
+1

什麼是你的問題? –

+0

它打印'J'這就是問題傻!大聲笑 – andre3wap

+1

提示:'in'應該用於字符串對象,而不是文件對象。 – Kevin

回答

0

改變這一行:

code = open('helloworld.simon' , 'r')

要這樣:

with open('helloworld.simon' , 'r') as f: 
    lines = f.readlines() 
    if any([line for line in lines if Public in line]): 
     print("Pub") 
    else: 
     print("J") 
+1

這仍然打印「J」,不是嗎? '[Public class helloworld {\ n「,...]]中的」Public「仍然評估爲False。 – Kevin

+0

@Kevin這不打印「J」 –

+0

奇怪的是,它在我的機器上打印「J」。 (順便說一下,我不是那個downvoted的) – Kevin

1

文件讀取是連續的。一旦你讀一個文件(print(code.read())你不能再回來讀,除非重新閱讀與code.seek(0)

Public = ("Public") 
Private = ("Private") 
code = open('helloworld.simon' , 'r') 
print(code.read()) 
code.seek(0) 
if Public in code.read(): 
    print("Pub") 
else: 
    print("J") 
code.close() 

輸出:

Pub 

如果你對此有何評論code.seek(0),輸出Ĵ