2014-06-05 240 views
-3

我知道這是一個愚蠢的問題,但我不知道如何搜索它。將字符串傳遞給函數

我想將一個參數提供給一個函數來有條件地運行代碼。

在下面的例子中,如果我在函數調用中指定單詞single,我希望它在頂部運行代碼行並返回字符串「This」。如果我指定任何其他單詞,我希望它運行第二行代碼並返回「That」。

例子:

def condfunc(myvar): 
    if myvar == single: 
     something = "This" 
    else: 
     something = "That" 
    return something 

mysomething = condfunc(single) 

我不斷收到:

NameError: name 'single' is not defined 
+0

你想測試對字符串'「單個」'? –

+0

在這裏很難說出你想要做什麼。你能發表一個真實的例子嗎? – tzaman

+0

除了與「this」,「that」和「something」字段中的宏變量存在無關的代碼外,這是確切的示例。 Single不包含任何內容,我只是想用它來選擇要執行的代碼集合。所以如果這個參數是=「single」,那它比第一件事情要好。如果參數是「雙倍」,則它做另一件事。 – user3705236

回答

1

我想你想測試這兩個字符串參數myvar是嗎?在這種情況下,代碼應該是這樣的:

def condfunc(myvar): 
    if myvar == "single": 
     something = "This" 
    else: 
     something = "That" 
    return something 

這可以簡化爲:

def condfunc(myvar): 
    return "This" if myvar == "single" else "That" 

,你會調用它,如:

test = "single" 
mysomething = condfunc(test) 
+0

謝謝。我還必須在通話中加入單引號。我知道答案會很簡單。轉向新的語言可能會很艱難:) – user3705236