在Python中通过文件命令操作变量

2024-10-03 04:34:09 发布

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

我试图通过添加save/load函数(不幸的是,它必须使用文件)来完成一个使用python的赋值的收尾工作。我已经定义了四个函数,并尝试为每个函数编写代码,但我没有想到什么,因为它不想工作,而且我们的讲师对文件的说明非常基本

def savegame():
    f=open("savefile.txt","w")
    f.write(playeroneright/playeroneleft/playertworight/playertwoleft/playertworight/computerright/computerleft)
    f.close()

def opengame():
    f=open("savefile.txt")
    lines=f.readlines()
    playeroneright=lines[0]
    playeroneleft=lines[1]
    playertworight=lines[2]
    playertwoleft=lines[3]
    computerright=lines[4]
    computerright=lines[5]
    f.close()

def newgame():
    deletecontent("savefile.txt")
    f=open("savefile.txt","w")
    f.write(1)
    f.write(1)
    f.write(1)
    f.write(1)
    f.write(1)
    f.write(1)
    f.close()
    opengame()

def deletecontent(pfile):
    fn=pfile.name 
    pfile.close()

第一个函数(savegame)应该获取每个变量,并将其数值保存在不同的行上,因为它当前在游戏中保持不变(游戏操纵变量,playerOnRight等等)。它应该保存在savefile.txt文件中

第二个函数(opengame)应该获取当前保存在文件中的任何内容,并将该文件分配给变量,基本上是一个load函数

第三个函数(newgame)应该将游戏重置为起点(所有变量的值都是1),然后使用上面的函数打开游戏

最后一个函数(deletecontent)只在第三个函数中用于清除文档,以便它可以分配所有新值

这些都是我迄今为止的尝试,我还不是很擅长的文件,但我试图找出他们多一点。如果有人有任何想法(最好是简单的,如果可能的话),那就太棒了。谢谢你


Tags: 文件函数txt游戏closedefopenwrite
1条回答
网友
1楼 · 发布于 2024-10-03 04:34:09

只是为了让你走(不做其他人的家庭作业;)

def savegame(playerone_right, playerone_left, ....):
  f=open("savefile.txt","w")
  f.write(playerone_right + "\n")
  f.write(playerone_left + "\n")
  ...
  f.close()

“\n”导致换行符(新行) +在两个字符串上连接它们

一般来说,您会选择pickle、json等其他方式,但您的示例中似乎给出了所需的格式

要真正使用函数,您需要将变量保存在某个位置,并将它们作为需要它们的参数提供给函数,或者使用global variables

要使用全局变量,请添加:

  global playeroneright, playeroneleft, playertworight, playertwoleft, playertworight, computerright, computerleft

到每个函数的开头使用此变量。 现在您不需要再将它们作为参数赋给函数,因为每个函数都可以处理全局变量

这不是解决这个问题的最佳方法,但是如果不向您介绍更多的模式,这应该是最简单的方法

相关问题 更多 >