[英]Problem with reading lines from txt or with dictionary usage in Python 3.10
出于 OOP 学习的原因,(目前)创建了一个包含区域的字典 class 和一个 class ,您可以在其中移动访问受限的区域,例如,从区域 3 您只能 go 到区域 2、4、6、8 或从区域 10 到区域 9。当我想为区域添加描述时出现问题。 对于少数地区,它读取错误的行并且找不到原因。
(...)
class Territory(object):
def __init__(self, **regions):
player = Player()
self.player = player
regions_file = open("regiony.txt", "r")
regions_description = regions_file.readlines()
regions = {
1: {1: 2, "desc": regions_description[2]},
2: {1: 3, "desc": regions_description[3],
4: 1, "desc": regions_description[1]}, # prints regions_description[3] instead
3: {1: 8, "desc": regions_description[8], # prints regions_description[4] instead
2: 6, "desc": regions_description[6], # prints regions_description[6] instead
3: 4, "desc": regions_description[4], # prints regions_description[8] instead
4: 2, "desc": regions_description[2]},
4: {2: 3, "desc": regions_description[3],
4: 5, "desc": regions_description[5]},
5: {1: 4, "desc": regions_description[4]}, # prints regions_description[6] instead
6: {1: 7, "desc": regions_description[7],
3: 3, "desc": regions_description[3]},
7: {3: 8, "desc": regions_description[8], # prints regions_description[4] instead
4: 6, "desc": regions_description[6]},
8: {1: 9, "desc": regions_description[9],
2: 7, "desc": regions_description[7],
4: 3, "desc": regions_description[3]},
9: {1: 10, "desc": regions_description[10],
4: 8, "desc": regions_description[8]}, # prints regions_description[4] instead
10: {4: 9, "desc": regions_description[9]}}
self.__dict__.update(regions)
regions_file.close()
class Moving(object):
def __init__(self):
self.territory = Territory()
self.regions = self.territory.__dict__
def movement(self):
region = 1
path = 1
POSSIBLE_PATHS = (1, 2, 3, 4, 0)
print(region)
print(self.regions[region]["desc"])
while path:
try:
path = int(input("Which path you take? "))
if path in POSSIBLE_PATHS:
region = self.regions[region][path]
print(region)
print(self.regions[region]["desc"])
elif path == 0:
break
except:
while path not in POSSIBLE_PATHS:
path = int(input("Which path you take? "))
(...)
regiony.txt
现在只是:
test1
test2
(...)
test9
test10
试图将regions_file
和regions_description
移动到def movement
并使用print(regions_description[region])
,但效果是一样的。
几个小时前无法解决它,但这个想法是在我想在慢跑时提神醒脑的时候产生的:) 似乎是一个菜鸟错误
以防将来其他人遇到这个问题,将"desc": regions_description[x]
添加到每一行是错误的,它应该只在主键的行中。
1: {1: 2, "desc": regions_description[1]},
2: {1: 3, "desc": regions_description[2],
4: 1},
3: {1: 8, "desc": regions_description[3],
2: 6,
3: 4,
4: 2},
4: {2: 3, "desc": regions_description[4],
4: 5},
5: {1: 4, "desc": regions_description[5]},
6: {1: 7, "desc": regions_description[6],
3: 3},
7: {3: 8, "desc": regions_description[7],
4: 6},
8: {1: 9, "desc": regions_description[8],
2: 7,
4: 3},
9: {1: 10, "desc": regions_description[9],
4: 8},
10: {4: 9, "desc": regions_description[10]}}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.