Почему нельзя верить всему, о чем пишут «профессионалы»?

Ответ может быть простым и коротким: потому что ошибиться может каждый. Но я так хочу пошвыряться камнями в огород некоторых «Python Professionals«, что распишу, расковыряю, где именно и насколько глупо они выглядят.

На сайте https://intellipaat.com/ была опубликована статья «Python Interview Questions and Answers«, которая обсуждалась в группе LinkedIn. Потыкаем пальцем?

1. Вопрос 6:

How can you compare two lists in Python? На великом и могучем: Как Вы можете сравнить два списка?

Вот их ответ:

#We can simply perform it using compare function – cmp(intellipaatlist1, intellipaatlist2)
def cmp(intellipaatlist1, intellipaatlist2):
    for val in intellipaatlist1:
        if val in intellipaatlist2:
            return True
    return False

Ошибка бросается в глаза сразу же: после сравнения первого элемента, если он во втором списке присутствует, то сразу получаем ответ True. Они даже не проверяют следующие элементы. Если же элемента первого списка нет во втором, то для чего то проверяем следующие элементы. Косяк. Видимо автор перепутал True и False. Привожу правильный ответ:

def cmp(intellipaatlist1, intellipaatlist2):
    for val in intellipaatlist1:
        if not val in intellipaatlist2:
            return False
    return True

2. Мистер Michael Andrew Shaw пишет, что «strings are mutable». Правда он сразу же после потока критики удалил свой комментарий, но все же: строки — неизменяемый тип данных. Даже если Вы поменяете символ в строке — это уже другая строка.

3. Вопрос 9: What function randomizes the items of a list in place? Хотели спросить какая функция перетряхивает список? Так вот, модуля randomize не существует. import randomize — неверно. randomize.shuffle(lst) — косяк. Вот правильная функция

import random
lst = [2, 18, 8, 4];
random.shuffle(lst)
print 'Shuffled list : ', lst
random.shuffle(list)
print 'Reshuffled list : ', list

4. Вопрос 12: Explain the use of split function?

>>> y= ‘true,false,none’
>>> y.split(‘,’)
Result: (‘true’, ‘false’, ‘none’)

Боже! Что за…? Откуда?

y.split(‘,’) вернет нам list, а не tuple. Это знает любой начинающий python программист.

Дальше я не стал читать статью.

Дорогие Python разработчики. Не запоминайте «профессионала» Payal Raheja, занимающего позицию Sr. Python Developer at Mindfire Solutions. Он вам не конкурент.

Kamo Petrosyan Автор

Добавить комментарий

Ваш e-mail не будет опубликован.