Страница 1 из 5

Кто знает Python

Добавлено: Ср июл 19, 2023 7:37 pm
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 КБ) 645 просмотров

Re: Кто знает Python

Добавлено: Ср июл 19, 2023 7:48 pm
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().

Это так, навскидку глянув одним глазом.

Re: Кто знает Python

Добавлено: Ср июл 19, 2023 7:49 pm
Not Too Late
Вижу еще проблемы. Это кто этот код писал?

Re: Кто знает Python

Добавлено: Ср июл 19, 2023 7:58 pm
Poet77
Not Too Late писал(а): Ср июл 19, 2023 7:49 pm Вижу еще проблемы. Это кто этот код писал?
Я его не писал - отвечу так, а можете еще написать какие проблемы есть ?

Re: Кто знает Python

Добавлено: Ср июл 19, 2023 8:04 pm
Not Too Late
Poet77 писал(а): Ср июл 19, 2023 7:58 pm
Not Too Late писал(а): Ср июл 19, 2023 7:49 pm Вижу еще проблемы. Это кто этот код писал?
Я его не писал - отвечу так, а можете еще написать какие проблемы есть ?
Я не имела ввиду что это Вы писали. Подумала что может школьник который только познает азы программирования.

Re: Кто знает Python

Добавлено: Ср июл 19, 2023 8:07 pm
Not Too Late
Functions main and findBreed will not be executed.

Re: Кто знает Python

Добавлено: Ср июл 19, 2023 8:32 pm
alex_127
Not Too Late писал(а): Ср июл 19, 2023 8:07 pm Functions main and findBreed will not be executed.
Сколько раз нету собаки напечатает… break missing

Re: Кто знает Python

Добавлено: Ср июл 19, 2023 8:35 pm
alex_127
Wb+ незачем
А так я питона тоже не знаю :-)

Re: Кто знает Python

Добавлено: Ср июл 19, 2023 8:51 pm
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.

Re: Кто знает Python

Добавлено: Ср июл 19, 2023 9:18 pm
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

Re: Кто знает Python

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

После 50ти можно только руками водить и бапки считать

Re: Кто знает Python

Добавлено: Ср июл 19, 2023 9:49 pm
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 вообще не вызовется и ничего не произойдет, правильно ?

А с остальными замечаниями согласны ?

Re: Кто знает Python

Добавлено: Ср июл 19, 2023 10:13 pm
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 вообще не вызовется и ничего не произойдет, правильно ?

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

все "импровементы" они субъективны и я не обязательно с ними согласен.
потому что можно придумывать что угодно - а если список длинный то вставка в сет тоже денег стоит а использовать может всего один раз. докажите мне что в этом случае сет лучше!
а что если список вообще в память не влезает?
и переменные неинклюзивно названы
и с собаками работать не будет
море улучшений можно придумать :-)

Re: Кто знает Python

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

После 50ти можно только руками водить и бапки считать
предпочитаю смотреть на горизонт с умным видом. учить хочеться но куда мне этот питон нафиг нужен?

Re: Кто знает Python

Добавлено: Чт июл 20, 2023 1:58 am
Bobeg
GetBreeds очень плохо хендлает эксепшен.
Это мазерфачество а не эксепшен хендлинг.

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

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

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

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

Можно прикопаца к принт("....") инпут("")
Это долбоибизм по мелочи

Re: Кто знает Python

Добавлено: Чт июл 20, 2023 2:18 am
Bobeg
По поводу сет вместо лист - это очень верно.
in на сете будет работать намного быстрей чем на листе. Но: В этой программе ин вызываеца тока один раз. Точней ваще ни разу.

Re: Кто знает Python

Добавлено: Чт июл 20, 2023 2:24 am
Bobeg
Not Too Late писал(а): Ср июл 19, 2023 7:49 pm Вижу еще проблемы. Это кто этот код писал?
Галасую - строга наказать!

Re: Кто знает Python

Добавлено: Чт июл 20, 2023 3:36 am
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.

Re: Кто знает Python

Добавлено: Чт июл 20, 2023 3:50 am
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"

Вобщем "садись, два".

Re: Кто знает Python

Добавлено: Чт июл 20, 2023 4:09 am
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()