读取python fi时出错

2024-04-25 06:03:51 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我定义了这些:

def highscorenumber():
    file = open('GUESS THE NUMBER HIGHSCORE NUMBER.txt', 'r')
    highscorenum = file.readline(1)

def highscorename():
    file = open('GUESS THE NUMBER HIGHSCORE NAME.txt', 'r')
    highscorenum = file.readline(1)

它们和程序保存在同一个目录中。"GUESS THE NUMBER HIGHSCORE NUMBER.txt"打开时说:"1"

当打开时说"GUESS THE NUMBER HIGHSCORE NAME.txt"。你知道吗

但当我跑步时:

print("The current highscore is",highscorenumber,"set by",highscorename)

上面写着:

The current highscore is <function highscorenumber at 0x0000000002D46730> set by <function highscorename at 0x0000000001F67730>

为什么它说这个而不是"The current highscore is 1 set by max"?你知道吗


Tags: thetxtnumberbyisdefcurrentfile
2条回答

使用camel case。。。这就是python阅读东西的方式。Camel case是在名称中没有空格。。。另外,不要忘记关闭文件

例如,名称为:

GuessTheNumberHighscoreName.txt

或者

Guess_The_Number_HighScore_Name.txt

因为您没有调用函数,所以Python正在打印函数对象本身的表示:

>>> def f():
...     return 1
...
>>> print(f)
<function f at 0x015E1618>
>>> print(f())
1
>>>

如上所示,您需要调用函数以打印其返回值:

print("The current highscore is",highscorenumber(),"set by",highscorename())

您还应该从每个函数返回对readline的调用:

def highscorenumber():
    file = open('GUESS THE NUMBER HIGHSCORE NUMBER.txt', 'r')
    return file.readline(1)

否则,函数将默认返回None。你知道吗


最后,我将使用with语句打开文件:

def highscorenumber():
    with open('GUESS THE NUMBER HIGHSCORE NUMBER.txt', 'r') as file:
        return file.readline(1)

这将确保它们在您处理完后关闭。你知道吗

相关问题 更多 >