Кто знает Python

Poet77
Reactions: 335
Сообщения: 864
Зарегистрирован: Вт июн 14, 2022 10:26 pm

Кто знает Python

Сообщение Poet77 »

Кто знает Python и найдет пару минут времени.
Есть код на Python и нужно сделат его ревью Я сам всегда работал с Микрософт технологиями и не знаком с Питоном.
Буду признателен если кто-либо из zнающих Python напишет свое ревью.

Попробовал на сайте который делает автоматическое ревью но не уверен что он все правильно написал.

P.S. Заранее спасибо вcем ответившим.

Вот Код:

The following small python program (see image) is designed to ask the user which breed of cat
they have (if any). The results are compared to the list of breeds held within breeds.txt (the file
has the format breedname,breedname2,breedname3…,...).
Python_Code.jpg
Python_Code.jpg (96.35 КБ) 580 просмотров
Аватара пользователя
Not Too Late
Reactions: 3856
Сообщения: 11893
Зарегистрирован: Сб июн 04, 2022 7:14 pm
Откуда: The First State

Re: Кто знает Python

Сообщение Not Too Late »

Poet77 писал(а): Ср июл 19, 2023 7:37 pm Кто знает Python и найдет пару минут времени.
Есть код на Python и нужно сделат его ревью Я сам всегда работал с Микрософт технологиями и не знаком с Питоном.
Буду признателен если кто-либо из zнающих Python напишет свое ревью.

Попробовал на сайте который делает автоматическое ревью но не уверен что он все правильно написал.

P.S. Заранее спасибо вcем ответившим.

Вот Код:

The following small python program (see image) is designed to ask the user which breed of cat
they have (if any). The results are compared to the list of breeds held within breeds.txt (the file
has the format breedname,breedname2,breedname3…,...).

Python_Code.jpg
findBreed можно же упростить используя или in operator или count().

Это так, навскидку глянув одним глазом.
Аватара пользователя
Not Too Late
Reactions: 3856
Сообщения: 11893
Зарегистрирован: Сб июн 04, 2022 7:14 pm
Откуда: The First State

Re: Кто знает Python

Сообщение Not Too Late »

Вижу еще проблемы. Это кто этот код писал?
Poet77
Reactions: 335
Сообщения: 864
Зарегистрирован: Вт июн 14, 2022 10:26 pm

Re: Кто знает Python

Сообщение Poet77 »

Not Too Late писал(а): Ср июл 19, 2023 7:49 pm Вижу еще проблемы. Это кто этот код писал?
Я его не писал - отвечу так, а можете еще написать какие проблемы есть ?
Аватара пользователя
Not Too Late
Reactions: 3856
Сообщения: 11893
Зарегистрирован: Сб июн 04, 2022 7:14 pm
Откуда: The First State

Re: Кто знает Python

Сообщение Not Too Late »

Poet77 писал(а): Ср июл 19, 2023 7:58 pm
Not Too Late писал(а): Ср июл 19, 2023 7:49 pm Вижу еще проблемы. Это кто этот код писал?
Я его не писал - отвечу так, а можете еще написать какие проблемы есть ?
Я не имела ввиду что это Вы писали. Подумала что может школьник который только познает азы программирования.
Аватара пользователя
Not Too Late
Reactions: 3856
Сообщения: 11893
Зарегистрирован: Сб июн 04, 2022 7:14 pm
Откуда: The First State

Re: Кто знает Python

Сообщение Not Too Late »

Functions main and findBreed will not be executed.
1 Изображение
alex_127
Reactions: 953
Сообщения: 4530
Зарегистрирован: Ср июн 15, 2022 9:44 am

Re: Кто знает Python

Сообщение alex_127 »

Not Too Late писал(а): Ср июл 19, 2023 8:07 pm Functions main and findBreed will not be executed.
Сколько раз нету собаки напечатает… break missing
Последний раз редактировалось alex_127 Ср июл 19, 2023 8:38 pm, всего редактировалось 2 раза.
в этом мире мрачно все / как поэзия басё
alex_127
Reactions: 953
Сообщения: 4530
Зарегистрирован: Ср июн 15, 2022 9:44 am

Re: Кто знает Python

Сообщение alex_127 »

Wb+ незачем
А так я питона тоже не знаю :-)
в этом мире мрачно все / как поэзия басё
Poet77
Reactions: 335
Сообщения: 864
Зарегистрирован: Вт июн 14, 2022 10:26 pm

Re: Кто знает Python

Сообщение Poet77 »

Not Too Late писал(а): Ср июл 19, 2023 8:07 pm Functions main and findBreed will not be executed.
спасибо за ваш ответ.
>>Functions main and findBreed will not be executed.
Ето потому что findBreed должна быть определена до того как она вызывается из main ?
a main должна откуда-то вызыватся ?

Вот что мне выдал сайт для код ревю когда я запустил там етот код :

вы со всем согласны или нет ?

Possible Improvements
The script could be improved by adding error handling for file I/O operations.
The script could be improved by using a set instead of a list to store the breeds.
The script could be improved by handling user input more gracefully.
Possible Bugs
There are some bugs in the script:

The getBreeds function opens the "breeds.txt" file in binary mode, but it should be opened in text mode.
The findBreed function is not defined before it is called in the main function.
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.
The if _name_ == "__main__" line is missing underscores.
Possible Edge-Cases
The script could be tested with different user inputs to ensure that it handles them correctly.

Performance Improvements
The findBreed function could be improved by using a set instead of a list to store the breeds.

Possible Extensibility Features
The script could be extended to allow the user to add new breeds to the list.

Monitoring and Logging
The script could be improved by adding logging to track errors and user inputs.

Best-Practices Perspective
The script could be improved by following best practices for error handling and file I/O.
alex_127
Reactions: 953
Сообщения: 4530
Зарегистрирован: Ср июн 15, 2022 9:44 am

Re: Кто знает Python

Сообщение alex_127 »

Poet77 писал(а): Ср июл 19, 2023 8:51 pm >>The if _name_ == "__main__" line is missing underscores.
Disagree. might be cut and paste error - it should have calling main() instead of getBreeds(), thats the bug there
в этом мире мрачно все / как поэзия басё
kyk
Reactions: 446
Сообщения: 6125
Зарегистрирован: Ср июн 15, 2022 6:54 pm

Re: Кто знает Python

Сообщение kyk »

alex_127 писал(а): Ср июл 19, 2023 8:35 pm А так я питона тоже не знаю :-)
думаю, что языки после 50 учить поздно, равно как и печататать вслепую.
Не научился до 30, значит поезд ушёл :pope:

После 50ти можно только руками водить и бапки считать
Последний раз редактировалось kyk Ср июл 19, 2023 9:49 pm, всего редактировалось 1 раз.
Poet77
Reactions: 335
Сообщения: 864
Зарегистрирован: Вт июн 14, 2022 10:26 pm

Re: Кто знает Python

Сообщение Poet77 »

alex_127 писал(а): Ср июл 19, 2023 9:18 pm
Poet77 писал(а): Ср июл 19, 2023 8:51 pm >>The if _name_ == "__main__" line is missing underscores.
Disagree. might be cut and paste error - it should have calling main() instead of getBreeds(), thats the bug there
а я понял, т.е. в таком виде как сечас написано - main вообще не вызовется и ничего не произойдет, правильно ?

А с остальными замечаниями согласны ?
alex_127
Reactions: 953
Сообщения: 4530
Зарегистрирован: Ср июн 15, 2022 9:44 am

Re: Кто знает Python

Сообщение alex_127 »

Poet77 писал(а): Ср июл 19, 2023 9:49 pm
alex_127 писал(а): Ср июл 19, 2023 9:18 pm
Disagree. might be cut and paste error - it should have calling main() instead of getBreeds(), thats the bug there
а я понял, т.е. в таком виде как сечас написано - main вообще не вызовется и ничего не произойдет, правильно ?

А с остальными замечаниями согласны ?
я только про баги - с остальными багами согласен.

все "импровементы" они субъективны и я не обязательно с ними согласен.
потому что можно придумывать что угодно - а если список длинный то вставка в сет тоже денег стоит а использовать может всего один раз. докажите мне что в этом случае сет лучше!
а что если список вообще в память не влезает?
и переменные неинклюзивно названы
и с собаками работать не будет
море улучшений можно придумать :-)
в этом мире мрачно все / как поэзия басё
alex_127
Reactions: 953
Сообщения: 4530
Зарегистрирован: Ср июн 15, 2022 9:44 am

Re: Кто знает Python

Сообщение alex_127 »

kyk писал(а): Ср июл 19, 2023 9:48 pm
alex_127 писал(а): Ср июл 19, 2023 8:35 pm А так я питона тоже не знаю :-)
думаю, что языки после 50 учить поздно, равно как и печататать вслепую.
Не научился до 30, значит поезд ушёл :pope:

После 50ти можно только руками водить и бапки считать
предпочитаю смотреть на горизонт с умным видом. учить хочеться но куда мне этот питон нафиг нужен?
в этом мире мрачно все / как поэзия басё
Bobeg
Reactions: 1748
Сообщения: 12656
Зарегистрирован: Ср июн 15, 2022 4:01 am

Re: Кто знает Python

Сообщение Bobeg »

GetBreeds очень плохо хендлает эксепшен.
Это мазерфачество а не эксепшен хендлинг.

ФайндБридз вообще не нужен. Нужен просто
if breed in breed_list

В начале программы две неиспользуемые импорты

В конце программы вызываеца не та фукнция

К чтению файла тоже можно прикопаца.
wb+ там нинужен. Вместо Байнари райт там
должон быть рид. Иначе кабзда файлу бридз.тхт
А исчо следует клоузать файлы. Оупен есть а клоуза нет.это нихорошо.

Можно прикопаца к принт("....") инпут("")
Это долбоибизм по мелочи
Bobeg
Reactions: 1748
Сообщения: 12656
Зарегистрирован: Ср июн 15, 2022 4:01 am

Re: Кто знает Python

Сообщение Bobeg »

По поводу сет вместо лист - это очень верно.
in на сете будет работать намного быстрей чем на листе. Но: В этой программе ин вызываеца тока один раз. Точней ваще ни разу.
Bobeg
Reactions: 1748
Сообщения: 12656
Зарегистрирован: Ср июн 15, 2022 4:01 am

Re: Кто знает Python

Сообщение Bobeg »

Not Too Late писал(а): Ср июл 19, 2023 7:49 pm Вижу еще проблемы. Это кто этот код писал?
Галасую - строга наказать!
Аватара пользователя
Not Too Late
Reactions: 3856
Сообщения: 11893
Зарегистрирован: Сб июн 04, 2022 7:14 pm
Откуда: The First State

Re: Кто знает Python

Сообщение Not Too Late »

alex_127 писал(а): Ср июл 19, 2023 9:18 pm
Poet77 писал(а): Ср июл 19, 2023 8:51 pm >>The if _name_ == "__main__" line is missing underscores.
Disagree. might be cut and paste error - it should have calling main() instead of getBreeds(), thats the bug there
Согласна. Не понятно сколько на картинке этих underscores.
Аватара пользователя
Uzito
⭐ Top 5 most interesting users
Reactions: 1223
Сообщения: 5286
Зарегистрирован: Пт июн 24, 2022 1:35 pm

Re: Кто знает Python

Сообщение Uzito »

использование else после цикла? Как это собственно работает по мнению написавшего?
наверное всё таки функция должна делать не print("found")/print("not found", а return "found"/ return "not found"

функция getbreeds возвращает то ли список то ли просто строку с ошибкой? Тоже бить по рукам, так как в except нужно вместо return сделать print, а return list_of_breeds перенести наружу после try/except чтобы вернулся или пустой или загруженый список

оставив в стороне простоту проверки на наличие значения в наборе, за проход по списку через индекс нужно бить по рукам потому как есть простое "for item in list"

Вобщем "садись, два".
Аватара пользователя
Uzito
⭐ Top 5 most interesting users
Reactions: 1223
Сообщения: 5286
Зарегистрирован: Пт июн 24, 2022 1:35 pm

Re: Кто знает Python

Сообщение Uzito »

Как-то так

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

def getBreeds():
	list_of_breeds = set()
	try:
		f = open("breeds.txt")
		content=f.read()
		list_of_breeds = set(content.split(","))
		f.close()
	except:
		print("Error loading list of breeds")
	return list_of_breeds
	
def findBreed(breeds, pet):
	if pet in breeds:
		return "You have a known breed"
	return "You do not have a known breed"
	
def main():
	breeds = getBreeds()
	print("What breed of cat do you have:")
	UserBreed = input()
	print(findBreed(breeds, UserBreed))

if __name__ == "__main__":
	main()
Ответить