TouchDesigner Python 條件運算技巧|單行 if/else 與三元表達式寫法解析

學會在 TouchDesigner 中用 Python 寫單行條件運算(if/else)!本篇教你兩種高效語法:三元表達式與布林陣列索引,快速實現邏輯控制、文字切換與互動輸出。提升開發效率與可讀性,輕鬆應對 CHOP、DAT 與參數控制需求!

Jul 21, 2025
🧰 TouchDesigner 工具庫 | Luxmin Institute on Patreon
我們把接案與展場現場累積下來的 TouchDesigner 元件、專案檔與製作系統,整理發佈在 Patreon,部分工具與 Demo 免費開放下載。
https://www.patreon.com/cw/LuxminInstitute
⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑
在 TouchDesigner 中進行條件判斷時,我們經常會使用:
  • Logic (CHOP) 來判斷數值是否超出上下限 Outside Bounds
  • CHOP Execute (DAT) 來執行進一步的邏輯程式碼
但其實,還有一種簡潔又直觀的做法:單行 if/else 條件運算式

兩種常用單行條件運算寫法

寫法一:經典的 Python 三元表達式

'True' if op('constant1')['chan1'] < 0.5 else 'False'
這種語法非常接近自然語言,可讀性佳。語法結構如下:
{True的結果} if {條件邏輯} else {False的結果}
你可以把任何資料型別放進去,甚至是再撰寫額外指令,例如:
1 if val > 10 else 0 '播放' if op('slider1')['value0'] > 0.5 else '暫停'
 

寫法二:布林陣列索引邏輯表達

['False', 'True'][op('constant1')['chan1'] < 0.5]
這種寫法利用布林值 True / False 對應陣列的索引:
  • True 對應索引 1
  • False 對應索引 0
[{False的結果}, {True的結果}][{條件邏輯}]
等同於說:「根據條件布林值,去取陣列中第 0 或第 1 個值」
雖然不如方法一直觀,但當你習慣後,它的語法簡短、非常適合快速邏輯判斷與文字輸出
 

應用解析:兩者有什麼不同?

特性
三元運算子(方法一)
布林陣列索引(方法二)
可讀性
✅ 高
⭕ 中(熟悉後很快)
彈性
✅ 支援各種資料型別
✅ 同樣支援
複雜邏輯處理
✅ 可嵌套寫多層邏輯
⛔ 嵌套不直觀
適合用在
訊息判斷、數值轉換、狀態命名、多層邏輯
快速開發、簡單條件轉換
 

總結

無論你是 Python 新手還是熟練使用者,這兩種單行 if/else 寫法都值得學習起來。
而且別忘了,這些寫法也支援 intfloatstr 甚至 OP 物件,使用上非常彈性。
 
⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑
Luxmin Institute (互動研究院) on Patreon
教學講的是觀念,工具則是我們在真實展場裡跑過、改過、確定能用的東西。TD 元件、專案檔、校正與製作流程都陸續發佈在 Patreon 上,免費層可以先看 Demo 與公開工具,付費層取得完整檔案與更新:
https://www.patreon.com/cw/LuxminInstitute
最新的活動動態與報名資訊:
https://www.threads.com/@luxmin.institute
 
如有相關專案或其他需求,請洽 luxmin.art