3 回答

TA貢獻1853條經驗 獲得超9個贊
跑步show_value(5, test_dictionary)讓我著迷(5, 'is not a valid key')。哪個沒有在您的字符串中添加逗號。如果您想要一個看起來像句子的字符串,請嘗試:
def show_value(a, b):
for item in b:
if item == a:
return(b[a])
if key == 0:
return "{} is not a valid key".format(a)
如果您想真正花哨,可以使用:
key = 0
test_dictionary = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
def show_value(a, b):
return b.get(5, "{} is not a valid key".format(a))

TA貢獻1872條經驗 獲得超4個贊
問題是您返回的是元組,(a, "is not a valid key")
而不是字符串。假設您使用的是 Python 3.6+,您可以使用 f-string:
return f'{a} is not a valid key'
正如@MasonCaiby 所建議的,您可以使用get
字典的方法在沒有與鍵關聯的值時返回一個值,并且還可以組合 f 字符串:
return b.get(5, f"{a} is not a valid key")

TA貢獻1821條經驗 獲得超5個贊
return(a, "is not a valid key")
返回一個元組。
相反,做return(str(a) + " is not a valid key")
編輯:其他答案很有趣,我會在這里總結一下。
首先,在字符串中插入變量的 Pythonic 方法是 '{} is not a valid key'.format(a)
.
從 3.6 開始,您可以使用 "f" 字符串,它允許更清晰的插入 : f"{a} is not a valid key"
。
最后,您可以用屬性替換您的答案dict.get(key,message_to_display_if_key_not_found)
,這正是您想要的。您甚至可以拋出異常消息:最終代碼將是:
return b.get(a, f"{a} is not a valid key")
添加回答
舉報