Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 26.11.2020
Сообщений: 1

Оцените код

26.11.2020, 15:06. Показов 600. Ответов 6

Студворк — интернет-сервис помощи студентам
Всем привет. Писал код который должен был разделить любую площадь на равные квадраты(Из 4 главы книги Грокаем алгритмы). Вроде все работает но хотелось бы понять можно ли написать лучше чем сейчас. Или правильнее.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
def areap(xdlina,ydlina ):
    if xdlina/ydlina >= 0.9999 and xdlina/ydlina <= 1.00001:
        return xdlina
    else:
        if xdlina > ydlina:
            xdlina = xdlina-ydlina
            return areap(xdlina,ydlina )
        else:
            ydlina = ydlina - xdlina
        return areap(xdlina,ydlina )
 
 
print(areap(1680,640))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.11.2020, 15:06
Ответы с готовыми решениями:

Оцените пожалуйста мой код
Здравствуй уважаемый форум меня зовут Тарас мне 16 и я хочу поступить на программиста занимаюсь этим уже пол года и смог создать своего...

Оцените код, изучаю python 1 день
qwe=&quot;Верный ответ!&quot; qwe1=&quot;Не верный ответ.&quot; qwerty=int(input(&quot;Корень из 169?\nОтвет:&quot;)) if qwerty==13: print(qwe) else: ...

Оцените код
Оцените код: from turtle import *;from math import *;from time import sleep;size = 20;verts, faces = ,,,,,,,], ,,,,,] def...

6
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
26.11.2020, 15:36
Цитата Сообщение от Aion Посмотреть сообщение
xdlina,ydlina
length и areap тоже наверное как кто понятнее можно назвать
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
26.11.2020, 15:42
Цитата Сообщение от Aion Посмотреть сообщение
if xdlina/ydlina >= 0.9999 and xdlina/ydlina <= 1.00001:
Здесь вы выполняете деление дважды - лучше сохранить в отдельную переменную.
Python
1
x = xdlina / ydlina
Ещё лучше:
Python
1
if 0.9999 <= xdlina / ydlina <= 1.00001:
А ещё лучше проверять деление нацело:
Python
1
if xdlina % ydlina == 0:
1
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
26.11.2020, 15:43
Aion, логику работы не проверял:

Python
1
2
3
4
5
6
7
8
9
def areap(width: float, height: float) -> float:
    if width % height == 0:  # Рыжий Лис подсказал верно
        return min(width, height)  # Убрал косяк
 
    if width > height:
        width -= height
    else:
        height -= width
    return areap(width, height)
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
26.11.2020, 15:49
Без рекурсии, сделал по картинкам из книги:
Python
1
2
3
4
5
6
7
8
width, height = 640, 400
while True:
    width, height = sorted((width, height))
    print(width, height)
    if height % width == 0:
        print(width)
        break
    height -= width
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
26.11.2020, 15:57
Рыжий Лис, переделал, с вашего позволения:

Python
1
2
3
4
5
def areap(width: float, height: float) -> float:
    while width % height != 0:
        width, height = sorted((width, height))
        height -= width
    return height
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
26.11.2020, 16:11
DmFat, только в начале функции надо тоже отсортировать.
Python
1
2
3
4
def areap(width: int, height: int) -> int:
    width, height = sorted((width, height))
    while width % height != 0:
        #…
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.11.2020, 16:11
Помогаю со студенческими работами здесь

Оцените мой код
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys from PySide import QtGui import webbrowser app =...

Оцените код, пожалуйста
Добрый день уважаемые програмисты. Начал недавно изучать python, решил немного попрактиковатся. Сделал бота который считает сумму матриц....

Оцените пожалуйста корректен ли данный код
Работает корректно, но может его можно написать проще? def factorial(): fac = int(input(&quot;Факториал числа: &quot;)) ...

Оцените, пожалуйста, код. Задача: Математический тест
Задача выглядит так: Напишите программу, которая позволяет проводить простые математические тесты. Она должна показать 2 случайных числа,...

Оцените код
Короче первый код который я забацл сам считай без помощи интернета! Теперь пришло время его показать хоть кому-то. Если посмотреть по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru