【发布时间】:2021-04-10 20:59:42
【问题描述】:
我正在学习 Python 课程的介绍,但我的程序无法运行。以下是项目说明:
- 创建一个名为“Nation”的类,其中包含四个实例变量来保存一个国家/地区的数据,并创建一个名为 popDensity 的方法来计算该国家/地区的人口密度。编写一个程序,使用该类创建一个包含 193 个项目的字典,其中字典的每个项目具有以下形式:
国家名称:该国家的 Nation 对象
使用文件“UN.txt”创建字典,并将字典保存在名为nationDict.dat 的腌制二进制文件中。
“UN.txt”文件主要包含国家、大陆、人口、地区的列表(例如:Albania,Europe,3.0,11100)
这是我创建的程序(使用 pythonanywhere.com):
import pickle
def main():
createDictionaryofNations()
def createDictionaryofNations():
nationdict = {}
for line in open("UN.txt", 'r'):
data = line.split(',')
country = Nation()
country.setName(data[0])
country.setContinent(data[1])
country.setPopulation (float(data[2]))
country.setArea (float(data[3].rstrip()))
nationdict[country.getName()] = country
pickle.dump(nationdict, open("nationdict.dat", 'wb'))
return nationdict
class Nation:
def __init__(self):
self._name = ""
self._continent = ""
self._population = 0.0
self._area = 0
def setName(self, name):
self._name = name
def getName(self):
return self._name
def setContinent(self, continent):
self._continent = continent
def getContinent(self):
return self._continent
def setPopulation(self, population):
self._population = population
def getPopulation(self):
return self._population
def setArea(self,area):
self._area = area
def getArea(self):
return self._area
def popDensity(self):
return self._population / self._area
main()
它会创建 Nationdict.dat 文件,但它只包含这 5 个字符 €}”.
你能告诉我我做错了什么吗?我已经经历了很多次,浏览了大量的文章、帮助网站等,但无法弄清楚我错过了什么。
欣赏!
杰斯
【问题讨论】:
-
您无法在文本编辑器中正确查看二进制文件。检查磁盘上文件的实际大小。
-
如果我的回答解决了您的问题,请将其标记为已接受。
标签: python