gpt4 book ai didi

python - Testdome "Path"Python - 无法确定为什么我的解决方案不是 100% 正确

转载 作者:太空宇宙 更新时间:2023-11-03 15:13:46 25 4
gpt4 key购买 nike

所以我正在使用 testdome 的公共(public) questions练习python,其中之一就是这个路径问题。我只能得到 50% 的解决方案,但我不明白为什么。我什至无法创建自己的失败测试。

class Path:
def __init__(self, path):
self.current_path = path

def cd(self, new_path):
new_path_list = new_path.split('/')
for item in new_path_list:
if item == '':
self.current_path = '/'
elif item == '..':
self.current_path = self.current_path[:-2]
else:
self.current_path = self.current_path + '/' + item

if '//' in self.current_path:
self.current_path = self.current_path.replace('//','/')

编辑:根据第一个响应更新了代码。不过还是50%。

感谢大家的帮助。

最佳答案

猜猜你在哪里

for item in new_path_list:
if new_path_list[0] == '':

你的意思是

for item in new_path_list:
if item == '':

编辑:我想我自己尝试一下;我是这样做的(得分 100%):

# https://www.testdome.com/questions/python/path/8735

ROOT = "/"
DIV = "/"
PREV = ".."

class Path:
def __init__(self, path):
self.dirs = []
self.cd(path)

@property
def current_path(self):
return str(self)

def cd(self, path):
if path.startswith(ROOT):
# absolute path - start from the beginning
self.dirs = []
path = path[len(ROOT):]

# follow relative path
for dir in path.split(DIV):
if dir == PREV:
self.dirs.pop()
else:
self.dirs.append(dir)

def __str__(self):
return ROOT + DIV.join(self.dirs)


path = Path('/a/b/c/d')
path.cd('../x')
print(path.current_path)

关于python - Testdome "Path"Python - 无法确定为什么我的解决方案不是 100% 正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44036874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com