gpt4 book ai didi

python - 我的 Python 代码出了什么问题? Head First Python 中的示例

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

它说

 james.append(sanitize(each_item))  
(mins, secs) = time_string.split(splitter)

need more than 1 value to unpack

怎么了?谢谢。这是 Head First Python 中的示例

james = []
def sanitize(time_string):
if '-' in time_string:
splitter = '-'
elif ':' in time_string:
splitter = '-'
else:
splitter = ','
(mins, secs) = time_string.split(splitter)
return(mins + '.' + secs)

with open('james.txt', 'r') as jaf:
data = jaf.readline()
james_data = data.strip().split(',')

for each_item in james_data:
james.append(sanitize(each_item))
sort(james)
print(james)

最佳答案

我很确定第二个 if 应该有

elif ':' in time_string:
splitter = ':'

基本上它会查找以下类型的字符串:min:sec 或 min-sec 或 min,sec 并尝试将它们转换为 min.sec

但是,目前在除 min-sec 之外的任何其他操作上,它都会失败,因为 split 将没有任何有效的工作。

所以看起来它只适用于具有如下对的 csv 文件:

 min-sec, min-sec, min-sec,

在第一行

如果你修复第二个“if”,它也将在 min:sec 上工作。但它也应该处理没有 : 或 - 的其他标记,也许只是按原样返回它们?

它也会因 <???>-<????>-<???> 等值而失败有太多的值需要解压

Sanitize 正在寻找一个字符串来拆分其输入,一旦它决定使用拆分器,它会尝试使用它来拆分字符串,然后重建它。

但是,如果拆分器出现多次,则会失败,因为需要解压的值太多。默认分割器是 ,这是唯一不可能出现在此文本中的字符

关于python - 我的 Python 代码出了什么问题? Head First Python 中的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19901643/

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