我是编程新手,正在尝试写一个程序,告诉一个家庭是高于还是低于贫困水平。report4data和report4file是全局变量,report4data从一个文件读取,report4file写入同一个文件。你知道吗
def appendpovolevel(AorB):
report4list = [report4data.readlines()]
appendata = report4list.append(AorB+"Poverty level")
report4file.write(str(appendata))
def report4(win):
report4data
for line in report4data.readlines():
split = line.split()
#equation to see if family is above or below poverty level
povolevel = int(split[2])/int(split[1])
#tells based on state if a family is above or below poverty level, if they fall below poverty level
if split[3] == "HI":
if povolevel >= 3600:
appendpovolevel("Above")
elif povolevel < 3600:
appendpovolevel("Below")
elif split[3] == "AK":
if povolevel >= 3980:
appendpovolevel("Above")
elif povolevel < 3980:
appendpovolevel("Below")
else:
if povolevel >= 3180:
appendpovolevel("Above")
elif povolevel < 3180:
appendpovolevel("Below")
report4data.close()
report4(win)
我收到一个append错误,但我在appedpovolevel函数中创建了一个列表,并附加到列表中,然后尝试写入文件,我不再得到这个错误,但它不起作用,我想也许是因为我从一个循环中调用appendpovolevel,它不起作用,但我想如果是这样的话,至少有一行会附加贫困线以上或以下的值。你知道吗
我正在使用python3.x
这里有两个明显的问题:
首先,您不必要地创建了一个嵌套列表(
.readlines()
已经返回了一个列表)。然后,.append()
修改它就地调用的列表。它不会返回新列表。因此,第一行将appendata
设置为None
,当您将其写入文件时,什么都不会发生。你知道吗相反,做一些像
除此之外,你发布的代码在我看来非常混乱。您的程序逻辑似乎随机分布在函数中,这使得代码很难理解。你知道吗
我会尝试用另一种方式来解决这个问题,将程序逻辑的每一部分封装在自己的函数中,使用一些更具启发性的变量名(尽我所能,因为我不知道文件中到底有什么数据):
相关问题 更多 >
编程相关推荐