簡體   English   中英

我的Python代碼有什么問題? Head First Python中的示例

[英]What's wrong with my Python code? Example in Head First Python

它說

 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)

我很確定第二個應該

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

基本上,它將查找以下類型的字符串:min:sec或min-sec或min,sec,然后嘗試將其轉換為min.sec

但是當前除了min-sec以外的其他任何時間都將失敗,因為split沒有有效的工作方法。

因此,看起來它僅適用於成對的csv文件,例如:

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

在第一行

如果您修復了第二個“如果”,它也將在min:sec上運行。.但是它還應該處理其他沒有:或-可能只是按原樣返回它們的令牌?

對於諸如<???>-<????>-<???>

Sanitize在確定要嘗試使用它拆分字符串然后重新構建的拆分器之后,正在尋找一個字符串以拆分其輸入。

但是,如果拆分器顯示的次數更多,則一旦分解器將失敗,因為可能會有太多的值需要解壓縮。 默認的分隔符是,這是該文本中唯一不可能出現的字符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM