我有一個python函數,它包含一個if語句來檢查一些東西。在python中使用條件條件
def my_func(a, b, c):
if a < b and b < c:
#do complicated stuff
我想修改函數,以便調用者可以通過傳遞布爾值來確定是否執行if語句檢查。
def my_func(a, b, c, perform_check=True):
我想弄清楚如何使有條件只被調用有時,或跳過其他時間。
我有一個python函數,它包含一個if語句來檢查一些東西。在python中使用條件條件
def my_func(a, b, c):
if a < b and b < c:
#do complicated stuff
我想修改函數,以便調用者可以通過傳遞布爾值來確定是否執行if語句檢查。
def my_func(a, b, c, perform_check=True):
我想弄清楚如何使有條件只被調用有時,或跳過其他時間。
我想這樣的事情是你所需要的:
if include_already_seen or not data[person].get(item, 0):
啊,就是這樣。我需要花一些時間來梳理我的布爾邏輯。 [http://codingbat.com/python/Logic-2](http://codingbat.com/python/Logic-2) – 2012-02-07 23:17:49
def find_recommendations(person, using=pearson_correlation, data=critics, include_already_seen=True):
totals = {}
sim_sum = {}
for critic in critics:
if critic != person:
similarity_score = using(data, person, critic)
print "the similarity score between %s and %s is %d" % (person, critic, similarity_score)
if similarity_score <= 0: continue # ignore similarity_scores below 0
for item in data[critic]:
if include_already_seen or (item not in data[person] or data[person][item] == 0):
totals.setdefault(item,0)
totals[item] += data[critic][item] * similarity_score
sim_sum.setdefault(item,0)
sim_sum[item] += similarity_score
#create the normalized list
rankings = [ (total/sim_sum[item],item) for item, total in totals.items()]
rankings_sorted = sorted(rankings)
rankings_sorted.reverse()
return rankings_sorted
也許你可以更簡潔,只專注於你的問題的通用版本。 – shenshei 2012-02-07 23:03:17
這個問題絕對可以歸結爲一個更一般的形式,這真的會幫助提問者和我們其他人找出問題的根源。 – mattbornski 2012-02-07 23:05:14
對不起!我傾向於收到意見,我的問題沒有足夠的信息,所以我試圖做個冗長的。 – 2012-02-07 23:08:41