变量中的Python If变量

变量中的Python If变量,python,file,filereader,Python,File,Filereader,我制作了一个名为helloworld.simon的文件。 我在信中写道: Public class helloworld { main = (main.method()); main { console.print("Hello World"); } 我写了这段代码: Public = ("Public") Private = ("Private") code = open('helloworld.simon' , 'r') print(code.read()) if Publ

我制作了一个名为
helloworld.simon
的文件。 我在信中写道:

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")
输出为:

更改此行:

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")

文件读取是顺序的。读取文件(使用
print(code.read())
后,除非使用
code.seek(0)

产出:

Pub

如果你评论
code.seek(0)
,输出J

你的问题是什么?它打印了
J
,这是个愚蠢的问题!lolHint:
中的
应该用于字符串对象,而不是文件对象。@Kevin但是我如何将文件对象转换为字符串对象?这仍然打印“J”,不是吗?
在[“Public class helloworld{\n”中的“Public”,…]
的计算结果仍然为False。@Kevin这不会打印“J”奇怪,它会在我的机器上打印“J”。@Kevin-Hmm…我应该指定我使用的是Python 3.43.5。如果执行
打印(行)
,你会看到什么?我得到
['Public class helloworld{\n',main=(main.method());\n',main{\n',console.print(“Hello World”);\n','}]
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