2012-02-07 3 views
-2

У меня есть функция python, которая содержит if-инструкцию, чтобы что-то проверить.Использование условного условного в python

def my_func(a, b, c): 
    if a < b and b < c: 
    #do complicated stuff 

Я хочу, чтобы изменить функцию так, чтобы вызывающий абонент может определить, следует ли выполнять проверку, если-заявление, передав булево.

def my_func(a, b, c, perform_check=True): 

Я пытаюсь выяснить, как заставить условный вызов вызываться иногда или пропустить другие времена.

+0

Может быть, вы могли бы быть более краткими и просто сосредоточиться на общей версии вашей проблемы. – shenshei

+1

Проблема, безусловно, может быть переделана до более общей формы, что действительно поможет как ассер, так и всем остальным понять причину проблемы. – mattbornski

+0

Извините! Я, как правило, получаю комментарии, что у моих вопросов недостаточно информации, поэтому я пытался быть многословным. –

ответ

3

Я думаю, что-то вроде этого является то, что вам нужно:

if include_already_seen or not data[person].get(item, 0): 
+0

Ах, вот и все. Мне нужно потратить немного времени на мою логическую логику. [Http://codingbat.com/python/Logic-2](http://codingbat.com/python/Logic-2) –

1
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 
Смежные вопросы