Кто знает Python

caltrain
Reactions: 32
Сообщения: 180
Зарегистрирован: Чт авг 18, 2022 9:28 pm

Re: Кто знает Python

Сообщение caltrain »

Buddy писал(а): Чт июл 20, 2023 4:59 am

Код: Выделить всё


def getBreeds():
    try:
        with open("breeds.txt") as f:
            return f.read().split(",")
    except:
        return False

def findBreed(breeds, pet):
    if pet not in breeds:
        return "You don't have a known breed."
    return "You have a known breed."

def main():
    breeds = getBreeds()
    if not breeds:
        return "No list of breeds loaded."
    return findBreed(breeds, input("What breed of cat do you have? "))

if __name__ == "__main__":
    print(main())
	
Возможно, import csv - это намек
кроме того с set функция становится быстрой O(1) для поиска , хотя строить O(n), и решает проблему повторов
не отрабатывается вопрос пустых строк и пробелов
И мешать boolean с str - некошерно
Cкорее, str+None, str+exception

Код: Выделить всё

import csv
from typing import Set, Union

def getBreeds() -> Union[Set[str], None]:
    try:
        with open("breeds.txt") as f:
            return set([x.strip() for x in csv.reader(f) if (x and x.strip())])
    except:
        return None

def findBreed(breeds, pet) -> str:
    if not pet or pet.strip() not in breeds:
        return "You don't have a known breed."
    return "You have a known breed."

def main():
    breeds = getBreeds()
    if breeds is None:
        return "No list of breeds loaded."
    return findBreed(breeds, input("What breed of cat do you have? "))


if __name__ == "__main__":
    print(main())
на самом деле нет предела совершенству
по идее exception не должен быть too generic, а только IOError
еxpcetion должен как-то выводится (но не stacktrace), иначе пользователь не узнает, что неладно с файлов
в одном месте мне на такое елеменетарное задание была предьява, почему не класс?

нужет контекст.
или этот сниппет грузится в автоматический проверяльщик с юнит-тестами, где за 5 минут должно всё работать
или чел смотрит на техники программирования?
или это вообще в чате надо было печатать, хорошо что не гугль-докс?
Аватара пользователя
Sergunka
Reactions: 844
Сообщения: 2865
Зарегистрирован: Вт июн 14, 2022 9:35 pm
Откуда: Владивосток->Сан Франциско

Re: Кто знает Python

Сообщение Sergunka »

Mad Hatter писал(а): Чт июл 20, 2023 7:37 am Мысли вслух:
Все что связано с обработкой данных крайне рекомендуется делать с помощью Pandas. Вы мне ещё спасибо за это скажете ;)
Правильные пацаны используют Koalas вместо пандыс :)
Аватара пользователя
Mad Hatter
⭐ Top 5 most interesting users
Reactions: 2019
Сообщения: 10267
Зарегистрирован: Пн июн 13, 2022 7:22 am

Re: Кто знает Python

Сообщение Mad Hatter »

Sergunka писал(а): Чт июл 20, 2023 3:36 pm
Mad Hatter писал(а): Чт июл 20, 2023 7:37 am Мысли вслух:
Все что связано с обработкой данных крайне рекомендуется делать с помощью Pandas. Вы мне ещё спасибо за это скажете ;)
Правильные пацаны используют Koalas вместо пандыс :)
Для scalability есть Dask :)
У Коалы нет merge_asof, отказать.
Koalas is deprecated. If you try using Koalas on clusters that run Databricks Runtime 10.0 (Unsupported) and above, an informational message displays, recommending that you use Pandas API on Spark instead.
Poet77
Reactions: 403
Сообщения: 1031
Зарегистрирован: Вт июн 14, 2022 10:26 pm

Re: Кто знает Python

Сообщение Poet77 »

Ещяе раз спасибо всем ответившим.
Ишодя из ваших коментов и того что мне выдал сайт автоматического ревью я имею следующие замечания:

1. line 5 - The getBreeds function opens the "breeds.txt" file in binary mode, but it should be opened in text mode.
2. line 19 -The findBreed function is not defined before it is called in the main function.
3. line 30 - Must be called main() instead of calling getBreeds()
4. line 11 - The findBreed function does not return after finding a match, so it will always print "You do not have a known breed" even if the breed is found.
move return "list_of_breeds" to the end of getBreeds() function after line 13

5. line 21 - We should simplify findBreed function using "in" or "count()".
6. line 13 - switch "return" to "print"
7. line 21 - The findBreed function could be improved by using a set instead of a list to store the breeds.
8. line 9,24,26 - The script could be improved by adding error handling for file I/O operations.
9. line 5 - The script could be improved by handling user input more gracefully.
10.line 5 - remove "wb+" in - we don't need it

Напишите плиз если что то перекрутил или пропустил в комментах, мне кажется что можно обьединить 1), 9) и 10) или не надо ?
Python_Code.jpg
Python_Code.jpg (96.35 КБ) 382 просмотра
Аватара пользователя
Uzito
⭐ Top 5 most interesting users
Reactions: 1452
Сообщения: 6178
Зарегистрирован: Пт июн 24, 2022 1:35 pm

Re: Кто знает Python

Сообщение Uzito »

Poet77 писал(а): Чт июл 20, 2023 8:32 pm Напишите плиз если что то перекрутил или пропустил в комментах, мне кажется что можно обьединить 1), 9) и 10) или не надо ?
f = open перенести внутрь try блока
alex_127
Reactions: 1331
Сообщения: 6204
Зарегистрирован: Ср июн 15, 2022 9:44 am

Re: Кто знает Python

Сообщение alex_127 »

Uzito писал(а): Чт июл 20, 2023 8:40 pm
Poet77 писал(а): Чт июл 20, 2023 8:32 pm Напишите плиз если что то перекрутил или пропустил в комментах, мне кажется что можно обьединить 1), 9) и 10) или не надо ?
f = open перенести внутрь try блока
1==10
К маю в распоряжении команды было 38,5 URL-адресов, ведущих на различные видео
Poet77
Reactions: 403
Сообщения: 1031
Зарегистрирован: Вт июн 14, 2022 10:26 pm

Re: Кто знает Python

Сообщение Poet77 »

alex_127 писал(а): Чт июл 20, 2023 8:42 pm
Uzito писал(а): Чт июл 20, 2023 8:40 pm

f = open перенести внутрь try блока
1==10
Понял, спасибо за ответ, а все остальные что я нашел замечания - согласны ?
Аватара пользователя
OiCaramba
Reactions: 505
Сообщения: 3251
Зарегистрирован: Пт июн 17, 2022 8:09 pm

Re: Кто знает Python

Сообщение OiCaramba »

Я нихуа не шарю в питоне но скажу свое веское слово! Установить питона или шот там у вас это минут десять Скомильнуть и зтябы посмотреть на результат это ещё пару минут!
alex_127
Reactions: 1331
Сообщения: 6204
Зарегистрирован: Ср июн 15, 2022 9:44 am

Re: Кто знает Python

Сообщение alex_127 »

Poet77 писал(а): Чт июл 20, 2023 10:06 pm
alex_127 писал(а): Чт июл 20, 2023 8:42 pm

1==10
Понял, спасибо за ответ, а все остальные что я нашел замечания - согласны ?
5,7,8,9 - мелочи (придратся ко всему можно). работать должно же!
К маю в распоряжении команды было 38,5 URL-адресов, ведущих на различные видео
Poet77
Reactions: 403
Сообщения: 1031
Зарегистрирован: Вт июн 14, 2022 10:26 pm

Re: Кто знает Python

Сообщение Poet77 »

OiCaramba писал(а): Чт июл 20, 2023 10:54 pm Я нихуа не шарю в питоне но скажу свое веское слово! Установить питона или шот там у вас это минут десять Скомильнуть и зтябы посмотреть на результат это ещё пару минут!
Так смысл код ревью в том чтобы сказать - вот здесь плохо(не работает), нужно вот так а здес не оптимально - нужно тоже так
а если просто запустить его - то не покажет
1)Как нужно чтобы заработало там где не работает - можно догадатся но не всегда
2)Где не оптимально и как сделать чтобы стало оптимально
alex_127
Reactions: 1331
Сообщения: 6204
Зарегистрирован: Ср июн 15, 2022 9:44 am

Re: Кто знает Python

Сообщение alex_127 »

Poet77 писал(а): Чт июл 20, 2023 11:20 pm
OiCaramba писал(а): Чт июл 20, 2023 10:54 pm Я нихуа не шарю в питоне но скажу свое веское слово! Установить питона или шот там у вас это минут десять Скомильнуть и зтябы посмотреть на результат это ещё пару минут!
Так смысл код ревью в том чтобы сказать - вот здесь плохо(не работает), нужно вот так а здес не оптимально - нужно тоже так
а если просто запустить его - то не покажет
1)Как нужно чтобы заработало там где не работает - можно догадатся но не всегда
2)Где не оптимально и как сделать чтобы стало оптимально
мы же не знаем какова функция что мы оптимизируем - нужна куча дополнительных вопросов. как я говорил - а сколько раз искать будем, а какого размера может быть файл, а длина введенной породы ограниченна 16Тб и так далее.

может нужно решение с минимальным количеством букв, кто его знает.
К маю в распоряжении команды было 38,5 URL-адресов, ведущих на различные видео
kyk
Reactions: 545
Сообщения: 6995
Зарегистрирован: Ср июн 15, 2022 6:54 pm

Re: Кто знает Python

Сообщение kyk »

alex_127 писал(а): Чт июл 20, 2023 11:25 pmможет нужно решение с минимальным количеством букв, кто его знает.
или бит на ленте Тьюринга
alex_127
Reactions: 1331
Сообщения: 6204
Зарегистрирован: Ср июн 15, 2022 9:44 am

Re: Кто знает Python

Сообщение alex_127 »

kyk писал(а): Пт июл 21, 2023 12:55 am
alex_127 писал(а): Чт июл 20, 2023 11:25 pmможет нужно решение с минимальным количеством букв, кто его знает.
или бит на ленте Тьюринга
что интересно 1-машина (0 - пустышка) она такая - https://cs.stackexchange.com/questions/ ... g-complete
К маю в распоряжении команды было 38,5 URL-адресов, ведущих на различные видео
Аватара пользователя
Mad Hatter
⭐ Top 5 most interesting users
Reactions: 2019
Сообщения: 10267
Зарегистрирован: Пн июн 13, 2022 7:22 am

Re: Кто знает Python

Сообщение Mad Hatter »

Я уже сказал, что не согласен с некоторым пунктами ревью, но дело ваше.
Аватара пользователя
Mad Hatter
⭐ Top 5 most interesting users
Reactions: 2019
Сообщения: 10267
Зарегистрирован: Пн июн 13, 2022 7:22 am

Re: Кто знает Python

Сообщение Mad Hatter »

OiCaramba писал(а): Чт июл 20, 2023 10:54 pm Я нихуа не шарю в питоне
Минус в карму
1 Изображение
Bobeg
Reactions: 2537
Сообщения: 16758
Зарегистрирован: Ср июн 15, 2022 4:01 am

Re: Кто знает Python

Сообщение Bobeg »

Пюнкт 1. Там проблема не с байнари, хрен с ним. А с тем што открыто для райт рид криэйт. Существующий файл при этом стираеца.
Из него потом ничо низя прочесть.
Bobeg
Reactions: 2537
Сообщения: 16758
Зарегистрирован: Ср июн 15, 2022 4:01 am

Re: Кто знает Python

Сообщение Bobeg »

Проблема с пунктами 1 и 5 состоит в том што они выдают полнейшее непонимание ревьюэром того чего он делает. Прям как чят гопота.
В комбинации пункты 5 и 7 вообще выглядят как испанский стыд.

В пункте 8 написан откровенный бред про все три упомянутые линии. Пункт восемь в очередной раз демонстрит нам что ривьюэр не то што не знает питон а ваще ничего не знает о программировании.

Наконец в пункте 9 опять какоето невразумительное заявление про линию кода номер 5.

Выводы

Ривьюэр. Не надо творчества. Как люди написали так и копируй. Чтоб заниматься творчеством надо хоть чуть чуть понимать что происходит.
Последний раз редактировалось Bobeg Пт июл 21, 2023 6:29 am, всего редактировалось 2 раза.
Аватара пользователя
Buddy
Reactions: 100
Сообщения: 311
Зарегистрирован: Вс янв 29, 2023 2:36 pm
Откуда: The Earth

Re: Кто знает Python

Сообщение Buddy »

Mad Hatter писал(а): Чт июл 20, 2023 7:36 am
Not Too Late писал(а): Ср июл 19, 2023 8:07 pm Functions main and findBreed will not be executed.
Не будет? Серьёзно? :lol:
И ещё решает, кого нанять, а кого заменить индусом... Вот и вся правд о итерьвюирах, кто сидит на сеньёровскх позициях и гнобит поссоветы заменяя их рекомендоваными индусами :sorry:
1 Изображение
Аватара пользователя
Buddy
Reactions: 100
Сообщения: 311
Зарегистрирован: Вс янв 29, 2023 2:36 pm
Откуда: The Earth

Re: Кто знает Python

Сообщение Buddy »

Eсли использовать

Код: Выделить всё

test = open("test.txt", "wb")
без то нужно закрывать файл после чтения

Код: Выделить всё

test.close()
, а то утечка памяти на этот файл. Tак как файлы бывают разные. Я помню это в Жабе такое же вроде.
1 Изображение
Аватара пользователя
WebFunk
Reactions: 260
Сообщения: 1582
Зарегистрирован: Ср июл 20, 2022 7:52 pm

Re: Кто знает Python

Сообщение WebFunk »

Это называется не "код ревью", а "найдите проблемы в коде для проверки вас на вшивость". Код на ревью посылается после прохождения всех тестов, во время которых все явные баги будут вычищены. Так принято в компаниях, иначе это просто неуважение к коллегам. На код ревью редко вкапываются в логику, обычно проверяют оформление, наличие комментов, хэндлеров и принятых корпоративных стандартов.
Последний раз редактировалось WebFunk Пт июл 21, 2023 7:53 am, всего редактировалось 1 раз.
Ответить