2016-03-31 5 views
-3

Может кто-нибудь, пожалуйста, помогите мне с моим кодом, чтобы сравнить 2 слова, а затем подсчитать разницу в строках? Теперь мой код генерирует неверный счет разницы. Похоже, что это слишком много. Я проверил, правильна ли моя переменная, и это было.Как сравнить 2 слова и подсчитать строки?

def difference(word_one, word_two): 
    count = 0 
    for letter in range(6): 
     if word_one[letter] == word_two[letter]: 
      count += 1 
      print(letter, "letter is right.") 
      return count 

Обновление для моего кода, но все же некоторые из них не работают. некоторое время, когда я считаю правильное письмо, они не совпадают.

BETTER Password incorrect 5/6 correct BASHER

def correct_letter(word_one, word_one): 
    count = 0 
    for letter in range(6): 
     if word_one[letter] != word_two[letter]: 
      count += 1 
    print(letter, "out of 6 letter is right.") 
    return count 
+0

выходного образца не соответствует оператору печати в своем пересмотренном коде. –

ответ

-1
def strcmp(word_one, word_two): 
    count = 0 
    i = j = 0 
    while i < len(word_one) and j < len(word_two): 
     if word_one[i] != word_two[j]: 
      count += 1 
     i += 1 
     j += 1 

    while i < len(word_one): 
     count += 1 
     i += 1 

    while j < len(word_two): 
     count += 1 
     j += 1 

    return count 
0

Просто еще одно предложение:

def difference(word_one, word_two): 
    return sum(l1 != l2 for l1, l2 in zip(word_one, word_two)) 

Это имеет то преимущество, что не требует word_one и word_two быть одинаковой длины, а также любые повышения эффективности вы могли бы получить от zip и sum.

Вы должны, конечно, использовать

def overlap(word_one, word_two): 
    return sum(l1 == l2 for l1, l2 in zip(word_one, word_two)) 

, если вы хотите, чтобы найти сходство между двумя строками, а не разницей

Смежные вопросы