我試圖使用三元來打印出一個字符串,如果事情是真的,而其他東西如果它不是(很簡單,對吧?)。它沒有給出任何錯誤,也不會造成任何麻煩。然而,運行的時候......三元組和打印組合給出了奇怪的結果
print('[',dr+1,']\t',d[dr] if fullpath else '[',dr+1,']\t',d[dr].split("/")[len(d[dr].split("/"))-2], sep='')
...它打印出
'[',dr+1,']\t'
兩次。 例如,它打印此:
[1] [1] Accoustic
[2] [2] Classical
[3] [3] Epic
[4] [4] Rock
[5] [5] Spoof
[6] [6] Techno & Electronic
如果你想,才能看到這些變量是什麼(這不應該的問題,因爲這只是一個概念的問題),你可以看到代碼的其餘部分here
認爲它可能是變量,我嘗試單獨打印語句(沒有三元),他們出來了,如我所料(即沒有奇怪的重複)。知道變量是好的,我試着用括號括起字符串(試圖防止字符串混合),但是,由於python從字面上解釋它們,它們以數組而不是字符串形式出現。此外,+符號(代替逗號)不起作用,因爲python無法組合數據類型。我結束了更改聲明
print('[',dr+1,']\t',d[dr]) if fullpath else print('[',dr+1,']\t',d[dr].split("/")[len(d[dr].split("/"))-2], sep='')
它工作正常。
拋開這麼大的代碼,爲什麼第一個字符串打印兩次?
啊......是的。我認爲。我的假設是,如果還有某種程度上沒有包含在這些分組中。 – Vreality